Continued from page 1
Some translators and agencies might be positive to providing their service for free. There are numerous examples of shareware and freeware software where professional translators have been generous. Mozilla is a good example of such a co-operative effort.
The object of project is to develop multi-lingual software in which end result will consist of our executable files linked to our table(s) of text. The specific text file shipped with product will be in language of user’s choice. An alternative option is to store each translation in a specific language file and when user installs software they specify their language preference. Thus routine that reads text records needs to identify language needed and isolate itself to that language.
And of course you need to test resulting language versions. This is best performed by speakers of specific languages you’ve decided to implement. Testing under language versions of operating system might also be worthwhile.
Character constants are a special case. For example, software might need to determine that a particular key has been pressed from a selection. Assume menu selection includes Open, Save, Find, Copy and Paste. The routine in program might look something like:
switch (myInputString[0]) { case ‘Open’; DoOpen (); break; case ‘Save’; DoSave (); break; case ‘Find’; DoSearch (); break; case ‘Copy’; DoCopy (); break; case ‘Paste’; DoPaste (); break; }
The code above is efficient and concise, but it is difficult to translate. The various constants (Open, Save, Find, Close, and Paste) have to be replaced with data items that have been loaded with equivalent constants from specific language file being used by user.
What are potential pitfalls? A common problem is that space required by text on screens or reports differs between languages. For example phrase ‘enter name and address’ is 22 characters. In German equivalent phrase would be ‘Geben Sie ihr Name und Adresse ein’ which is 34 characters. We’re often faced with problem that translated language requires more screen and report space than equivalent English. So test carefully that truncation doesn’t occur. And consider cosmetic appeal of resulting screen or report.
There are some legal aspects that you need to research. Obviously every country makes its own laws. In Germany, for example, there are quite restrictive laws that disallow anyone to make claims that a product is better than another company’s product. Not to forget that United States also has export laws. Encryption algorithms are an obvious example. So do a little research, and if you are using a translation agency then ask for advice.
Copy protection, upgrades, error reporting are all issues that will broaden if you want to sell software offshore. You also need to take account that date format, paper sizes, currency symbols, sort order and addresses might differ, and lets not forget that majority of world uses metric system for weights and measurement.
The translations don’t have to perfect. In saying this I am not suggesting you lower your standards. But most people appreciate that you have taken trouble to translate text, and will overlook odd mistake. And let’s be realistic, English used in your software will likely have odd typo anyway.
Organising a marketing agreement with a local distributor can also provide a useful resource not only for product’s language development, but in ongoing product promotion and support.
Microsoft provides an extensive resource available on their web site. There are several very helpful news groups that you can subscribe to and a number of books are devoted to topic of software localization.
I hope this has given you something to think about.
Copyright © 2002 Grant McNamara, All Rights Reserved. This article may be freely distributed and published. If you wish to publish the article, out of courtesy, please email me and advise the url. Author Information: Grant McNamara web site: http://www.translateme.co.nz Email: grant.mcnamara@translateme.co.nz Grant McNamara is a consultant specializing multilingual software development and Internet support.