Localization is the process of adapting software to meet the requirements of local markets and different languages. Internationalization is the process of designing an application so that it can be adapted to various languages and regions without engineering changes. Localized applications should reflect correct cultural and linguistic conventions that the target market uses. Localization and internationalization make it possible for you to create a localized version of your software.
BlackBerry devices are sold all over the world and BlackBerry device applications are translated into over 30 languages, including languages that are not based on a Latin alphabet. Some BlackBerry devices also feature a localized keyboard. Early in the design process, consider whether your application might require localization. If your application does not require localization now, consider designing your application so that it would be easy to localize it in the future. Be aware that even if your application might not be localized, some users might want to type text in other languages in your application.
Best practice: Designing applications for different languages and regions
Guidelines for layout
- Leave enough space in your UI for translated text. The height and the width of text might expand when translated from English to other languages. For labels and other short text strings, prepare for up to 200% expansion. For lengthy text (more than 70 characters), prepare for up to 40% expansion. Where possible, place labels above the associated field. Leave blank space at the end of each label.
- Try to avoid displaying truncated text. The meaning might be unclear to users if the most important text does not appear. First, try to reduce the size of the text. If you reduce the size but you cannot read the text easily, try wrapping the text onto two lines instead. If you cannot wrap the text, consider using an abbreviation. Otherwise, use an ellipsis (...) to indicate that the text is truncated and provide a tooltip.
- Consider the font size for languages that use diacritics. Languages that use diacritics, such as Thai, require more vertical space. The diacritics are smaller than characters and might not appear clearly if the font size is small. Thai has stackable diacritics that might increase the vertical spread of a string and exceed the pixel height of the font size.
- For languages that are displayed from right to left, make sure that the UI is a mirror image of the English UI. For example, in Hebrew, the label for a drop-down list is displayed to the right of the list and the drop-down arrow is displayed to the left of the list. Make sure that UI components align along the appropriate side of the screen based on the direction of the language. For example, in English, a leading component aligns along the left side of the screen. In Arabic, a leading component aligns along the right side of the screen.
- Provide options for the direction that text appears in. In some languages, such as Arabic and Hebrew, text is displayed from right to left but numbers and words in other languages are displayed from left to right. For example, users might type most words in Arabic (this text needs to appear from right to left) but they type passwords in English (this text needs to appear from left to right).
- Make arrangements for displaying the position of a contact's title, full name, and address on a per-language basis. These items display in a different order, depending on the language (for example, title, first name, last name, or last name, first name, title). In some countries, the zip/postal code can appear before the name of the city and contain letters as well as numbers.
- If users have the option to change display languages, display the name of the language in that language. For example, display "Italiano" instead of "Italian."
- Test translated UI to verify the layout of the UI.
- During testing, type a pangram in the target language. A pangram is a sentence that uses each character in the alphabet. Pangrams are useful because they include diacritics that can appear above, below, or beside a character.
Guidelines for color and graphics
- Be aware that colors, graphics, and symbols can have different meanings in different cultures. If you are designing an application for a specific market, carefully consider the cultural implications of your design choices.
- Avoid text and numbers in icons and images because they require localization.
- If you include graphics in your application, make sure that the graphics are localized. For example, in Arabic, question mark icons are mirror images of question mark icons used in English.
- Include tooltips for all icons. Even within one culture, some icons might not be recognized by everyone.
- Avoid using national flags to identify languages, user IDs, or countries. Use text instead.
Best practice: Coding for different languages and regions
- Store text strings in separate resource files and and use unique identifiers (string IDs) for each text string.
- Avoid concatenating partial strings to form a sentence. When translated, the strings might not produce a logical sentence. Create a new string for the sentence instead.
- Avoid using variables in place of nouns (for example, "The <X> is locked."). Instead, create a specific string for each noun (for example "The screen is locked." and "The keypad is locked."). Even if the sentence appears correctly in English, in some languages, if a noun is singular or plural and masculine or feminine, the rest of the string might need to change. Only use variables for strings that can only be known at runtime (for example, file names).
- Avoid making part of a sentence into a link. When translated, the words in the link might appear in a grammatically incorrect order. For example, use "For more information, click the following link: <link>" instead of "Click on <link> for more information."
- Avoid using a common string if the context of usage differs. Depending on the context, a word could require different translations. For example, the word "new" might require a different translation depending on the gender of the noun.
- Avoid hard-coding spaces, punctuation marks, and words. Include these items in translatable strings instead. This approach allows translators to make changes according to the rules for each language.
- Avoid hard-coding strings of any kind, including weekdays and weekends. Verify that the start of the week matches the convention for each locale.
Guidelines for numbers
- Make arrangements for singular and plural nouns on a per-language basis. Nouns in some languages can have one form for both singular and plural, one form for singular and another form for plural (for example, "1 day" and "2 days"), or multiple forms, depending on the number of items (for example, one item, two items, a few items, and many items).
- Avoid hard-coding number separators. For example, 1,234.56 appears in United States English but 1 234,56 appears in French.
- Avoid hard-coding the number of digits between separators. For example, 123,456,789.00 appears in the United States but 12,34,56,789.00 appears in India.
- Avoid hard-coding the display of negative numbers. For example, negative numbers can appear as -123, 123-, (123), or .
- Provide options for currencies. For example, currencies can appear as $12.34, 12,34€, or 12€34. In addition, some currency symbols require more space.
- Verify that numbers, measurements, dates, and time formats reflect the locale of your users.
Best practice: Writing for different languages and regions
- Include subjects where possible. For example, use "the list that appears when you type" instead of "the list that appears when typing."
- Include articles where possible. For example, use "press the Escape key" instead of "press Escape."
- Use relative pronouns where possible. For example, use "the email address that you use" instead of "the email address you use."
- Use terms consistently throughout the UI and try to use terms that are consistent with other applications on the BlackBerry® device. Using consistent terms improves the accuracy of the translations.
- Avoid using slang, idioms, jargon, colloquialisms, and metaphors in your UI . These terms can be difficult for translators to translate and for users to understand.
- Avoid references to ethnicity, religion, culture, and gender.
- For references to countries, use the political name of each country. For example, use "People's Republic of China" instead of "Mainland China."
- Verify that translated text uses local language conventions where possible.