Localization of mobile apps
In the context of the growing popularity of mobile apps, the translation or rather localization of these apps is also increasingly gaining importance. Across supports the localization of the apps for the Android, iOS (iPhone), and BlackBerry platforms.
Mobile apps are localized on the basis of the resource files that contain the strings to be localized, not on the basis of the compiled apps. The files with the strings to be localized are pre-processed during check-in to Across and are transformed to XML files with the help of crossTransform. Subsequently, the localization in crossDesk takes place via Tagged XML. After the translation, the localized files are automatically post-processed during check-out and transformed into the original format.
Supported Data Formats
Across supports the following app formats:
XML files that begin with strings
In the \res\values folder of the corresponding uncompiled app.
text-based strings files
Available in UTF-8- or UTF-16 encoding.
ANSI-based text files in rrc format
To prevent the standard templates from being damaged or functionally impaired by faulty customization, they are write-protected and cannot be customized. If you still want to edit the templates, you can first export it and then re-import it using the respective buttons. These re-imported templates are no longer write-protected and can be processed.
Information on localizing apps is available in the developer documentation of the respective manufacturers, for example, on the following websites:
Localization of BlackBerry apps in general: BlackBerry Localization
Document Settings Templates
The display of the converted XML files in crossDesk is controlled via the respective Tagged XML document settings templates.
- The following default templates are used:
- Android: "Android strings-xml" template
- Blackberry: "BlackBerry resources" template
- iOS (iPhone): "iPhone strings" template
When creating projects for the localization of mobile apps, the default template is already preselected and usually does not need to be selected explicitly.
When localizing mobile apps, it is especially important to make sure that the length of the localized strings does not exceed the length of the source-language strings. The icon in the toolbar of the Target Editor shows the character count of the current string compared to the character count of the corresponding source string, thereby assisting you in complying with the correct length.
Encoding of iPhone strings
The iPhone resources to be localized may be UTF-8 or UTF-16-encoded. Apple recommends storing the resources to be localized in UTF-16 encoding (see Apple Localization Documentation). If your resources to be localized are UTF-16-encoded, select the Tagged XML (iPhone strings) processing mode when selecting the files to be localized during project setup.
However, if your resources to be localized are UTF-8-encoded, be sure to use the Tagged XML (iPhone UTF-8 strings) processing mode when selecting the files to be localized during project setup.
Localization of Android Apps
- Please note the following information on the localization of Android apps with Across:
- By default, Across supports the embedding of HTML code in the form of the three tags that Androids uses to mark up text: <b> (bold), <i> (italics), and <u> (underlined).
- During check-in, all kinds of line breaks (e.g. \n) that are contained within the text to be translated are converted to Windows line breaks. During check-out, the Windows line breaks are converted back to \n.
- All placeholders (e.g. %s, %d, %1$s, or %2$d) are converted to the placeable (va for variable). During check-out the placeables are converted back to the respective placeholders.
- Masked quotation marks (\") and apostrophes (\') are converted to normal, unmasked characters during check-in and re-masked during check-out.
- During check-out, the characters <, >, and & are converted to the corresponding XML entities <<, >>, and &&.
- The checked-out, localized files must be embedded in a suitable folder structure within the uncompiled app. Information on this topic is available e.g. at Alternate Android resources.