Morgan McCollough Bridge360


Software Design Considerations for Internationalization and Localization

More and more applications today are being used in more than one country and more than one language. For many companies that are looking to move their software products into foreign markets, internationalization (i18n) and localization (l10n) can turn into an ugly and expensive process. The trap that many fall into is thinking that modern operating systems and programming languages will do most of the work for you. Microsoft Windows® comes in multiple languages, and programming languages like Java and C# have built-in support for Unicode and locale-aware functions. The problem is that there are still plenty of ways to get into trouble and create an application that is difficult to internationalize and to translate. Making the necessary changes to the code after the fact is always more expensive than doing it right from the beginning. The good news is that with modern software development environments, i18n is not rocket science. Keeping a few simple rules in mind when designing software will go a long way toward ensuring that deploying software in multiple locales and markets is as painless as possible.

When designing for international software, there are three primary areas to keep in mind: data, locale, and user interface (UI). When thinking about each in the context of software design, the most important question to keep asking is, “What happens when this runs in a non-English environment?” A basic familiarity with the possible issues that can arise across languages and a few simple rules should enable any modern software architect to put together a system that can run across any language, anywhere. Continue reading


Machine Translation: The Good, the Bad, and the Ugly

by Chris Durand

Machine translation is the use of software to translate text from one language to another, usually without assistance from a human translator.  It is a fascinating field that is changing rapidly, but here’s my take on where things stand today.

The Good

Machine translation is cheap, and it is getting better every day.  I was encouraged by the success of IBM’s Jeopardy-playing system Watson in drubbing its human challengers. Watson’s ability to “understand” idioms and natural language will contribute greatly to the future of machine translation.

Translation projects vary in requirements for accuracy as shown in the following diagram.  For projects jobs where accuracy is less important, machine translation is a workable alternative.  An example of this would be a company support forum, with huge amounts of user-supplied content.  It is not cost-effective to pay a human translator to translate every post by a user into numerous languages.  However, a machine translation engine that has been tuned to translate support issues for a particular product won’t create perfect results, but may still be a valuable resource to users.  And creating value is what translation is all about.

Of course there are many translation jobs where accuracy is critical, such as legal documents.  And translations of literature, poetry, and the like will remain difficult for machine translation software for years since there is much more to this sort of translation than accuracy, such as style and other artistic considerations.

But with continuing advances in computing and linguistics, the line shown in the above diagram will move steadily to the right over time. Continue reading