Fog Creek Software
Discussion Board




Localization

We plan to translate our application to several languages other than english. Our development is in Visual C++ 6. Standard Microsoft approach thru different resource files is very cumbersome. If I made one small change in my apllication I have to manually update all resource files. We plan to use outside translators and editing resource file is not an easy task. Every mistake or accident name chang will be very difficult to find. I am sure, there should be better tools or techniques for that. Any suggestions?

smm
Friday, May 23, 2003

Eat, Sleep, Breathe, Pray, and Learn to use the Message Compiler (MC.exe) that comes with Microsoft's Windows Platform SDK.

Here is a tutorial to get ya going!
http://www.codeproject.com/useritems/MCTutorial.asp

Because MC.EXE is a command line tool with documented input and output file strucutres, you can build a whole automated solution around it while still outsourcing all the translation and string-language management.

It is very easy to hook up as a custom build step in Visual Studio in any version of Visual Studio!

Heston Holtmann
Friday, May 23, 2003

Make sure you remember to build in support for the local currency symbol and date input mask too.

So many American products only accept date inputs in the mm-dd-yyyy format whereas a lot of the world uses dd-mm-yyyy.

Matthew Lock
Friday, May 23, 2003

Any solution boils down to seperating code and data (messages). (you really really don't want translators to change your code base)

You can have arrays of string constant for each language.
The same message in every language is at the same index -
then during runtime you can select the array for the current language .

Ups, I just invented resource, all over;
you see, whatever you do instead of resources just makes things more ugly.

Michael Moser
Saturday, May 24, 2003

Localisation is ultimately a much more difficult thing than just string lookups :(

Did a bit of work with it recently (internationalisation end, more so than localisation). Once you have string lookups, you have a lot of work done, but the remaining 30% of the work is actually much harder. Character sets & unicode formats come into play, and then you have cultural issues like colours, text directionality (shudder) and gui resizing for languages that are more verbose than english (i.e. all of them - this issue is the most painful in my experience).

Its nice to see that certainly, internationalising web apps is gettign much easier. Anyway, good luck.

Richard
Monday, May 26, 2003

Amen to that. I fell victim to an over-ambitious salesman who though translating software to other languages was easy because all you have to do is change the resource tables.

In fact, there's a whole load of other things in the UI to consider. For instance, an app running in Japanese uses a different standard font for labels, button text etc. than English, with a larger height.

It took four months to get it right in the end.

Better Than Being Unemployed...
Wednesday, May 28, 2003

*  Recent Topics

*  Fog Creek Home