I may be stomping on Michael Kaplan's toes with this one, but...
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"