Internationalization is the process of enabling a program to be localized into other languages and providing the same functionality as expected for all cultures. Therefore, the application must be able to display the content correctly, the layout should be responsive as well as all actions and features of the source language. This must be working correctly in any other target language. Here are the Internationalization Best Practices for a Global App:
The internationalization implementation must occur in the early phases of the product development life cycle. The rules must be applied, tested, and finalized before the localization phase can begin. Therefore, delaying Internationalization until the end of the development phase is a bad practice. In addition, it will cost a lot of effort to re-design, solve database changes, and localization issues. So in conclusion, this will impose functionality challenges and requires new rounds of functional testing which will be a very expensive and unexpected extra cost.
Common Internationalization best practice for any program
Design and Layout
- Icons and bitmaps should be meaningful and not occur offensive in target cultures.
- Icons should not have text.
- Designing the Menus and the Dialog Boxes keep text expansion in mind.
- Choose Shortcuts (a combination of keys) based on International Keyboards.
Developing and coding
As a concept, the program should be developed using one source code regardless of the number of target audiences. We should not create source code variations based on the target language. After that, this bad practice will lead to a big mess and we will lose versioning control over the application.
- No embedded/hard-coded strings. Extracting all strings and separate them from the source code is a must.
- Do not use a combination of strings as a technical condition for certain actions, because these strings once translated, will fail in the target languages. You may use a placeholder but not a translatable string.
- Coding the input data fields in a way that supports different cultural formats like date, time, and currency.
- Culture-specific features must have the option to enable or disable them.
- Designing the Database queries and search with a multilingual approach in mind.
- Follow an accurate character encoding strategy to support target languages.
- Analyze carefully any third-party component to make sure it provides the necessary features for localization.
- Date / time / currency format / Keyboard usage including shortcuts.
- Dialog box resizing.
- Input fields in target languages.
- Search queries.
- Right-to-left direction for languages like Arabic and Hebrew.
- Output fields should be able to display the characters of the target language.
- Program Expected actions/results must be tested to make sure they are identical to the ones from the source language.
To clarify, Internationalization is a must for any global product. Therefore, applying it in parallel with the development phase will save a lot of effort and cost. Furthermore, it will make the product ready for localization regardless of what the target language will be.
Feel free to leave a comment or to Contact Me for an open discussion!