Larry Osterman's WebLog

Confessions of an Old Fogey
Blog - Title

What is localization anyway?

What is localization anyway?

  • Comments 32
I may be stomping on Michael Kaplan's toes with this one, but...

I was reading the February 2005 issue of Dr. Dobbs Journal this morning and I ran into the article "Automating Localization" by Hew Wolff (you may have to subscribe to get access to the article).

When I was reading the article, I was struck by the following comment:

 I didn't think we could, because the localization process is prety straightforward. By "localization", I mean the same thing as "globalization" (oddly) or "internationalization." You go through the files looking for English text strings, and pull them into a big "language table," assigning each one a unique key

The first thing I thought was what an utterly wrong statement.  The author of the article is conflating five different concepts and calling them the same thing.  The five concepts are: localizability, translation, localization, internationalization, and globalization.

What Hew's talking about is "localizability" - the process of making the product localizable.

Given that caveat, he's totally right in his definition of localizability - localizability is the process of extracting all the language-dependant strings in your binary and putting them in a separate location that can be later modified by a translator.

But he totally missed the boat on the rest of the concepts.

The first three (localizability, translation, and localization) are about resources:

  • Localizability is about enabling translation and localization.  It's about ensuring that a translator has the ability to modify your application to work in a new country without recompiling your binary.
  • Translation is about converting the words in his big "language table" from one language to another.  Researchers love this one because they think that they can automate this process (see Google's language tools as an example of this).
  • Localization is the next step past translation.  As Yoshihiko Sakurai mentioned to Michael in a related discussion this morning "[localization] is a step past translation, taking the certain communication code associated with a certain culture.  There are so many aspects you have to think about such as their moral values, working styles, social structures, etc... in order to get desired (or non-desired) outputs.  This is one of the big reasons that automated translation tools leave so much to be desired - humans know about the cultural issues involved in a language, computers don't.

Internationalization is about code.  It's about ensuring that the code in your application can handle strings in a language sensitive manner.  Michael's blog is FULL of examples of internationalization.  Michael's article about Tamil numbers, or deeptanshuv's article about the four versions of "I" in Turkish are great examples of this.  Another example is respecting the date and time format of the user - even though users in the US and the UK both speak English (I know that the Brits reading this take issue with the concept of Americans speaking English, but bear with me here), they use different date formats.  Today is 26/01/2005 in Great Britain, but it's 01/26/2005 here in the US.  If your application displays dates, it should automatically adjust them.

Globalization is about politics.  It's about ensuring that your application doesn't step on the policies of a country - So you don't ever highlight national borders in your graphics, because you might upset your customers living on one side or another of a disputed border. I do want to be clear that this isn't the traditional use of globalization, maybe a better word would be geopoliticization, but that's too many letters to type, even for me, and since globalization was almost always used as a synonym for internationalization, I figured it wouldn't mind being coopted in this manner :)

Having said that, his article is an interesting discussion about localization and the process of localization.  I think that the process he went through was a fascinating one, with some merit.  But that one phrase REALLY stuck in my craw.

Edit: Fixed incorrect reference to UK dates - I should have checked first :)  Oh, and it's 2005, not 2004.

Edit2: Added Sakurai-san's name.

Edit3: Added comment about the term "globalization"

  • These definitions certainly cover the basics in understanding the concepts, and I am sure that any smart person can extend each one as needed based on that understanding. Certainly it is enough information to contrast the different concepts.

    The primary point that inspired your article (which did get lost here in the conversation!) is that LOCALIZATION is not a word that can be used for all of these concepts. Not unless you want to be incorrect....
  • Whatever you want to call it, making a software product ready for another market is much deeper than string translation, date formats, and other surface details.

    I spent a long time working on popular financial applications. While they weren't huge successes in other countries, there were a few localized versions here and there. I don't remember one minute of worrying about the trivial issues everyone here seems concerned with. Our problems were things like:

    1. A currency so devalued that we could not represent a typical net worth in a 32-bit integer.

    2. An accounting product in the UK couldn't be sold unless it enforced certain accounting practices that ran contrary to the "empower the user" approach of the original US version.

    3. Some tractor-fed A4 forms in Germany are a tad longer (or shorter?) than standard A4 so they can work with old printers that only advance in 1/6 inch increments. Many of the printer drivers didn't realize that, nor would they accept a custom form size from the application.

    4. Some common form sizes in some countries could not be exactly represented in the units allowed by the Microsoft printer driver (10ths of a mm, if I recall). No big deal when printing on blank paper (slight drift over long documents), but horrible placement when trying to fill in boxes on pre-printed forms.

    5. Compound interest is computed in different ways in different countries.

    6. There's no reliable way to count "business days" in places where holidays are set by decree rather than algorithm.

    Making sure your translatable resources are separated from your code is easy in the face of problems like this.
  • Why isn't there just a single term for "making software 'work' anywhere in the world?" Just for convienence's sake?
  • JMW, good question, and I'm not sure I've got a good answer. The simplest answer I can come up with has to do with the fact that there are three separate items involved in the process - resources, code, and politics.

    Most people just use internationalization or "making products "world ready"", whatever that means.
  • 1/27/2005 7:57 AM Adrian

    > 1. A currency so devalued that we could not
    > represent a typical net worth in a 32-bit
    > integer.

    Oh neat. Well surely no one who ever programmed a computer after Germany's or Hungary's experiences in the early 20th century would ever think of using a 32-bit integer for such a thing. (Sarcasm of course, but not aimed at Adrian of course.)

    > 5. Compound interest is computed in
    > different ways in different countries.

    And in different ways in different departments of the same bank.

    > 6. There's no reliable way to count
    > "business days" in places where holidays
    > are set by decree rather than algorithm.

    Such as varying by which department of my employer? Sometimes the border between these places is virtual instead of real.

    And for whoever mentioned daylight savings time, that of course depends not only on country and municipality, but also varies from year to year. Backward compatibility ensures that there will never be an unambiguous way to compute times.
  • Thank you for the excellent article. Being in testing, and having to deal with all of these in the past, its nice to see a well-thought out description.
  • In response to JMW's thought about a single term for "making software 'work' anywhere in the world" --

    The core name of the "subteam" I am on is the NLS team -- and many of us would joke (since people assumed that we were localizers even though we were about internationalizstion) that NLS stood for "Not Localization, Stupid!"

    I have an analogy that no one else likes, but I would tell people that internationalization is like being a proper guest in someone's house -- knowing when to say please and thank you, or how to format the dates, or whatever. Localization is about making yourself at home.

    Like I said, I have yet to find someone who likes this analogy. But I think it does point out the difference between the two....
  • I often see "automating translation" on the wishlist of software companies, but I strongly believe there is nothing like that in the near future.
    One of the oldest jokes out of automatic translation in germany is "in der mode der schnörkelfesselung" (in scroll lock mode) from the mid-80s, where just the dictionary suggested the wrong translation.
    But there are much simpler things, like I noted today in some freeware-tool:
    "No" and "No" are two totally different words (negation versus number)...
    Misinterpretations lilke that are even present in today's MS apps (though I haven't one at hand)...
    So at least proofreading the whole app is still the clue to truely localized software.
  • I believe they write the date 2005/02/14 in Sweden, and maybe other continental European countries.
  • PingBack from http://blogs.msdn.com/michkap/archive/2007/01/11/1449754.aspx

  • PingBack from http://weblogs.asp.net/aaronlerch/archive/2008/01/08/windows-forms-globalization.aspx

  • PingBack from http://www.aaronlerch.com/blog/2008/01/08/windows-forms-globalization/

  • PingBack from http://woodtvstand.info/story.php?id=6413

  • PingBack from http://toenailfungusite.info/story.php?id=60

  • PingBack from http://outdoordecoration.info/story.php?id=2540

Page 2 of 3 (32 items) 123