Mobile app and embedded systems localization solutions

The challenge

Mobile apps and embedded systems - just like regular software - are localized through resource files. The first step before translation is internationalization, which involves "outsourcing" the translatable text into separate files and allowing the software to replace the source language strings with the translated strings. Internationalization also means the possibility to display different writing systems and the use of input method editors. This is needed for the proper handling of Chinese, Japanese, Korean, Arabic, Hebrew, and other important languages. Of course internationalization is easy if you only want to launch an app in some European languages, even Russian is not much of a problem, but when you go beyond the traditional language scope and start dealing with languages like Hindi or Thai with their own writing systems, you are likely to face more trouble.

Translation technology assumes that the app or the embedded system is properly internationalized and allows the translation of different file formats. What is specific about mobile apps? First, strings always have a string ID: this is what identifies where a certain string appears. For example, Join may be translated differently when you are joining a community or when you are joining two sentences together. Besides the string ID, comments may also support the work of translators and give them the missing context. Remember: the shorter the text, the more explanation the translator needs.

File formats

The formats for localization are different for the three main operating systems:
  • iOS uses the .strings file type,
  • Windows Phone uses RESX files, just like Windows .NET software,
  • Android uses XML which can be defined by the developer.

memoQ offers you ways to translate all three of these. When you are translating Android apps, you need to set up your own XML filter.

Embedded systems do not have a specific file format. In most cases, developers use a text-based or XML-based format, but it may also have the strings in Excel, often in multiple languages. memoQ's regex text filter allows you to process any kind of a text-based format, and extract string IDs, comments and translatable strings from it. memoQ also offers two highly configurable XML filters: one is for monolingual content, the other is for multilingual XML files. The same goes for Microsoft Excel and CSV files: there is a separate configurable parser for monolingual and multilingual Excel files.

Length restrictions and context

Text length restrictions are also important. You can indicate in the text, XML, or Microsoft Excel files the allowed length for individual strings, and import these as comments into memoQ. memoQ is then able to automatically check if your target text exceeds the allowed length in characters. It is also possible to set a standard maximum length for all strings such as eighty characters, and check against that. memoQ's quality assurance module will highlight the segments that are too long.

To give you more context during translation and review, memoQ will show a preview of your documents. In the case of multilingual files, you are able to see all the language versions at once in the preview. This helps you when there are similar languages to what you are translating: for example, the Danish localization can provide much help in the Swedish or Norwegian, but also French and Spanish can help with Italian.

Setting up a localization process

If the app or system is already localized, you can quickly get the original strings and the translations into memoQ. Structural alignment analyzes the string IDs and merges the different language texts under the corresponding string IDs into one database. You can instantly feed your existing translations into memoQ.

Apps and embedded systems are often updated. If you use agile development methods and continuously update your systems, you just need to reimport the resource files and memoQ will take over all existing translations from the previous file. If updates are so frequent that you want to manage the process automatically, or you are localizing not many apps or systems, you can track all the changes and just offer the new strings for translation if you use the content connectors.