Wednesday, June 19, 2013

Localization: a Challenge for Programmers

Mon Gonzales, programmer at Active Gaming Media, shares his views on Game Localization

Q- How is the process of localization from your point of view?

A - As a developer, my role is to make the localization process as simple and efficient as possible. This is usually how we proceed here:
During the conception of the game or application -the part where nothing yet is coded-, we determine which texts we will need, and write a first, simplified version of them, in a single language (usually English). When I'm coding the application, I use the previously mentioned texts as a reference. When we get a first version of the application, I gather all the texts and visual text elements, which are reviewed carefully and improved by a professional writer: dialogues are made more lively, in-game texts more pleasant to read, etc.. The final text is sent to our translators who start working on them. Our proofreaders check the translated texts. I get the texts back, it is a critical moment: I have to implement them exhaustively, while not spending too much time on it.
The last part, but not the least: text debugging. Our debug team checks all the texts directly inside the application and make sure there are no problems such as missing texts, overflows or mistranslations.

Q - How do you gather and implement texts and graphics?

A - I will start with graphic contents as the way of gathering texts depend of the platform you're working on. I always have two big folders for images: "Graphics only" and "Localizable Graphics", the later having as many subfolders as languages we translate. During the development, I keep not the localizable images, but also the template graphic files I used to generate them.
When the the localization starts, I send all the "Localizable Graphics" to our translators so that they can not only translate the text, but also check whether their new text will fit the image or not.
Then I can generate localized images for the application. If you did things methodically enough, you -as a programmer- should be able to retrieve these images quite easily.
As I said earlier, gathering texts can be different depending of the machine you're working on. I will take the example of the iPhone, as the iPhone SDK contains very useful tools for text gathering. Concretely, when you are developing an iPhone Application, rather than inputting the texts directly, you will rather use a function to indicate that you are using a localizable text. The iPhone will then, all by itself, pick the localized text (in the user's language) inside a file which consists on a series of lines like this one: "Press start key" = "Please press start"; Or more simply : "Text to be translated"="Translated text";
These files can be generated automatically by a program in a couple of seconds: the programmer doesn't need to spend hours seeking every line of text inside the code. The big advantage of this format is that it's easy to understand for translators, and convenient for programmers: when you get the text back, you're done with just one copy/paste. Sometimes, things are not made that easy: in this case the programmer has to create a similar system. Otherwise, there's a great chance you will lose time trying to copy the texts one by one, possibly forgetting some, and losing even more time when you need to copy them back one by one. Organization is the key of a fast and complete localization, as a bad programming style can ruin what was otherwise a good localization.

Q - Are there some problems regarding the texts translators return you?

A - Well it depends. I am lucky enough to develop for a company specialized in game localization: it means that our translators are well aware of how they have to work and can avoid some common mistakes. So we don't really have problems. There can always be a few things like overflows, but never something too serious. The biggest risk is usually related to formatted texts. If the translators change or delete formatted parts, it can have some dramatic impact on the application. To avoid such problems, I always provide our translators with a complete documentation, guidelines, and I make sure I am always available if they have some questions for me. Gamers tend to think that localization work is only the problem of translators or translation companies, but the role of the programmer is capital. A bad programming work can cause a lot of trouble: untranslated texts/graphic elements, display problems, etc.. In the end, the success or failure of a localization depends half of the translators, half of the programmer.

Q - Finally, what tips would you give to a junior programmer, regarding localization?

A - If you are to localize your game/application, then you will have to think about it before coding a single line. First of all, you have to check whether your SDK includes or not tools that can make localization work easier. It would be a waste of time not to use them. If you don't have such tools already, before creating your own ones, try to ask a more experienced programmer for some advice, as some tools and functions may have already been created inside your company. In any case, it is a big mistake to start coding if you're not 100% sure to know how you will handle texts. As I said earlier, organization is everything!