Localizing for software, websites and global apps

Localizing your product is a great way to rapidly expand your business. A 2007 paper by the Localization Industry Standards Association (LISA), for instance, reported that $25 dollars was returned for every $1 invested in localization.

More than 78% of internet users are beyond the United States, in international markets, and in the past decade, the use of Arabic online has increased by over 2500%, Chinese by 12% and Spanish by 7%.

When businesses expand globally, they should invest in full localization of their websites and software. Localization includes translations and other conversion, and takes into account local practices and culture, providing a product that is comfortable for use in the target country. Your localization efforts should mature over time (see sidebar).


Localizing software

The first step in running a multilingual software business is to localize the software. Localizing software includes defining what can be localized, developing localization strategies based on expected sales, creating a product schedule for the localization process, using professional native translators to do the translations, closely managing the translation process and finally testing the translations.

Phase 1 (Preparation): Create a project schedule, develop glossaries, separate text and prepare resource files. The key to software localization is separating the application text from the program code, making software localization possible and easy.

Phase 2 (Translation): Translate software strings, online help and documentation. Once the software has a resource file, holding all text for translation, documentation is vital to help the translators understand what they’re translating. Explain to the translators what the application does, who uses it and how they use it. This way, the translators will be able to adapt the application’s text to naturally fit the new languages.

Phase 3 (Programming): Resize dialog boxes; adapt tips, menu options and buttons; compile help files, and localize multimedia files and embedded graphics containing text.

Phase 4 (Testing): Test the localized software including functions and user interface.

Figure 1 shows a brief overview of the linguistic processes that take place in a typical software localization project.


Localizing websites

Just like software, websites are built using various methods — some with plain HTML, others with PHP or ASP, and others using a content management system like WordPress or Drupal. No matter how your site is built, some principles are consistent across the board. To successfully run a multilingual website, you need to be able to create translations and maintain them when the site contents change; automate the site structure so that translators don’t need to edit links and navigation; and let users choose their language easily. In general, you should understand trade laws and regulations, as well as the economic and political policy of the country or region.

Most major payment processing applications feature multilingual-ready checkout functions. When you send clients to pay for your product, make sure to display the checkout page in the correct language. Displaying the checkout pages in a default language without allowing users to change it is a sure way to lose sales. If you’re sending clients elsewhere to check out, make sure to include the language in the checkout link. If clients are purchasing from within your application, the program needs to detect the user’s language and create the checkout link with the correct language argument. Clients also need to receive an e-mail with a purchase confirmation and instructions for downloading or activating the program they purchased. This e-mail must be sent in the client’s language, so you need to record the language in which the client is using the program.

Every product needs pre-sales and post-sales support. Providing multilingual support gives you a competitive advantage and improves the customer experience. You can get support contacts via e-mail or through contact forms. Contact forms would make it easier for you to route different messages to different supporters based on language.

Localizing mobile applications

According to Google, two-thirds of all purchases and half of transactions will occur on mobile devices by 2015. The company also divulged that 1.9 billion people globally were active on the internet by the end of 2010, while five billion people were mobile subscribers. Direct Marketing News’ January 2011 edition quoted the internet giant as predicting that five billion people will be active on the web by 2020, while ten billion people will be mobile subscribers.

Developing countries, such as Brazil, Russia, India and China, now account for more than half of mobile growth worldwide. Pakistan, Indonesia, the Ukraine, Nigeria, Vietnam and Bangladesh complete the list of the world’s top ten emerging mobile growth markets. Most end-users in these emerging markets speak little or no English and will only buy a product or service if it is available in their native language. With so many using mobile devices to access the web, companies will need to translate their mobile applications to reach these global audiences. There are a variety of tools to translate content, including machine translation (MT).

In 1999, Advanced Telecommunications Research Institute International, based in Japan’s Kansai Science City, introduced a solution that would translate words spoken into a mobile device and send these as a voice message to another user’s mobile phone. In 2004, the first commercially-available MT software was introduced for handheld devices that translated text, e-mail and instant messages.

In November 2005, another Japanese company, NEC Corporation, announced the development of a translation system that could be loaded in mobile phones. This mobile translation system could recognize 50,000 Japanese words and 30,000 English words, and could be used for simple translations when traveling.

MT performs substitution of words in one natural language for words in another, but that alone usually cannot produce a good translation of a text, because recognition of whole phrases in the target language is needed. Various techniques exist that lead to better translations, including handling differences in linguistic typology, translation of idioms and colloquialisms.

The number of translation applications available for various mobile platforms has continuously increased since 2007. However, in order to best localize mobile content, you must make sure it is linguistically correct and culturally relevant. Everyone knows that just taking content written in one language and running it through a translation solution such as Google Translate provides you with translated words, but they often don’t make sense. Google Translate generates a statistical machine translation by looking for patterns in millions of documents to decide on the best translation. However, since Google Translate is generated by MT, not all translations will be perfect and accuracy varies across languages.

The best method for translating applications, as with nearly any localization endeavor, is a combination of human translators with a computer solution to manage the translation process. Managing translations for mobile applications is a big challenge for most people, so using a translation management software solution is helpful. Follow these steps for efficient translation of your mobile application:

First, you need to complete a localization audit to determine potential pitfalls in the translation process, such as embedded text and images, character set support, date and time format, numerical formats, page layout, country-specific functions, multi-byte enabling, bi-directional languages, operating systems, improper code and more to prepare your mobile app for globalization.

All iPhone applications are built using Unicode texts, encoded as UTF-16. The iPhone simulator supports this format and will allow you to preview your translated application. Since iPhones are multilingual by design, once your application is available in multiple languages, the phone already knows what to do. It will display the graphical user interface (GUI) text in the right language, according to the phone’s language setting. Next, get your resources ready for translation:

Make resources localizable in Xcode. Xcode is the development language of the iPhone and it needs to know that your project includes multilingual resource files. Move the resource file into a new localization directory, and then drag the resource into the Xcode project. Xcode will now recognize the resource as localized in that language. Repeat for all your other resource files that you need to localize.

Localize your interface builder files. First, extract strings from your Interface Builder resource files by running ibtool, included with the standard iPhone developer kit install. Ibtool will create object-string value pairings that you can go through to remove any unnecessary strings which don’t require translation.

Handle duplicate strings. The resource file may contain duplicate strings, such as some of the titles for buttons in different states. Some duplicate strings need to be translated just once but other duplicate strings have different translations. The same button title, in different states, should clearly have the same translation. However, strings can in some places be a noun and in other places a verb. You can remove redundant duplicate strings (which should have the same translation) from the resource file or leave them there and instruct the translator to handle as duplicate strings.

Collect the embedded text into resource files. Normally, iPhone applications contain two kinds of text — the application’s interface, managed by the Interface Builder, and embedded strings that appear inline in the code itself. The strings in the interface are already arranged in a resource file and you need to make sure that the code itself only uses strings that are read from a resource file. Go through all your code and determine which strings are user facing and should be localized. Don’t localize strings the user will never see, such as keys in an NSDictionary — unless, of course, you display those keys.

Now you should have two resource files — the Interface Builder resource file created by ibtool and the embedded strings resource file created by genstrings. You can send both files to a translator who will translate them into the appropriate languages.

There are translation management tools available that will localize iPhone resource files, allowing for the translation of iPhone applications without spending time on technical tasks. These tools will read your resource files, extract the text that needs to be translated and produce translated resource files. Upload the resource files in UTF-16 or UTF-8 encoding. These tools will extract pairs of labels and strings, and comments if there are any. Then, translators will translate just the strings.

Professional translators who have ample experience in localizing iPhone applications will translate the strings. You should be able to communicate directly with them to make sure the translation is not only accurate, but also adapted to the culture and customs of other countries. You will need to create an iPhone translation project, upload your resource files, choose which languages to translate into and of course pay for the translation. Once all this is completed, you’ll be able to download the localized resource files and import back to your application.

Open up the translated file in Interface Builder and go through everything. Often the lengths of different strings will have changed significantly. Translation from English to German and French is often 50% longer than the original text. You may need to adjust the layout slightly to make sure that everything is visible. Your iPhone application should now run multilingually! But there’s one more step: testing your translated application in an iPhone device. To test it with an actual phone, you’ll need to change the device’s language. You can follow Apple’s tutorial for switching iPhone languages.