|The Mac Localization Process (Xcode / iOS)|
|Written by LocalVersion|
The following diagram shows the basic steps involved in a standard Mac localization project. It may seem complicated, but do not worry. We will take care of everything!
This quick overview assumes that the product has been properly internationalized during development according to Apple’s standards. For more information about the Xcode internationalization process in Mac OS X and iOS, please visit: http://developer.apple.com/internationalization/
1. Setup the localization environment (AppleGlot) — Review leveraged text
AppleGlot is Apple’s free tool to facilitate the localization process.
• First, we populate AppleGlot with the entire application bundle, or just the en.lproj folder. Since the release of Snow Leopard, only uncompiled/editable versions of the application NIBS/XIBS should be used for this purpose. For the same reason that Interface Builder cannot open compiled NIBS, AppleGlot will not be able to extract text from a compiled app.
• AppleGlot compares the previous version of the software with the new version and identifies all the changes.
• It automatically leverages items that have stayed the same to the “new localized application” folder.
• It systematically checks all items and makes sure that absolutely all strings (even the hidden ones) have been extracted for translation.
• It extracts new text for translation and puts it in an XML (.WG — Work Glossary) file.
• The previously translated text (.AD — Application Database) is reviewed by the linguistic team to see if any changes are necessary for the newer version (due to changes in context or other reasons).
• At this point, the text has been separated from code and graphics.
2. Translate new/modified text (CAT tools)
The next step is translation. Various tools and approaches can be used in order to conform to/benefit from the following:
• Consistent translations and terminology — Trados or other CAT solutions and editors (context must often be verified by running the software or later during the QA process).
• Spell check tools.
• Standard word processing tools.
• Standard glossaries, such as Apple’s (or Microsoft’s).
• Working with content only shields translators from complex files (and vice versa!).
• Once translation is complete, AppleGlot reintegrates the text.
3. Review/Adjust the localized software’s GUI to:
• Make sure that all language content has been translated.
• Make sure that windows, dialogs, and other GUI elements appear correctly formatted. (Examples of errors: String is too long or inappropriate in context.)
• Edit GUI’s nib files with Interface Builder.
4. Test the localized software — Fix problems found during testing
Once all nib files have been edited, runtime tests are performed to see how the GUI pieces are actually rendered:
• All text has been translated (if English strings are displayed, for example, these may be coming from hard-coded text, or third-party components, or the operating system).
• Special characters (accents, double-byte chars, and so on) display/print correctly.
• Punctuation follows target language (not necessarily English) rules.
• Localized text is wrapped, hyphenated, and sorted according to target language rules.
• Dialog boxes, error messages, buttons, drop-downs, and fields display correctly without truncations and have been resized properly.
• Menu items and dialog box titles have consistent translations.
• Concatenated strings display correctly and read like a proper sentence (rather than a run-on or truncation or nonsense sentence).
• Strings with variables display correctly in the localized application.
• Shortcuts are consistent with target market operating system standards.
• Translations make sense in context.
• The tab order of the options in the localized dialog boxes matches their order in English.
• Dialog boxes display correct regional settings (such as decimal separators, date and time formats, and so on).
This QA phase may take several passes: test/fix, test/fix.
The project is now complete and submitted to the end client for final build/approval.