How to Translate a BlackBerry App

Translating your BlackBerry app can be a relatively simple task as long as you follow the necessary steps in order to make the process run efficiently and smoothly.

BlackBerry appeals to developers with a variety of development skill sets by providing a number of different application development options such as:

  • C/C++ — Cascades
  • HTML5 — WebWorks
  • Java — BlackBerry Java
  • ActionScript — Adobe AIR

Step 1: Decide on Languages

When translating your BlackBerry app, the first step is to decide on which languages you want to make your app available.

While BlackBerry World lets you distribute your app broadly to hundreds of countries, reaching users who speak a variety of languages, it might not be cost-effective to translate it into languages with little or no target market. Decide which language users would most be interested in a localized version of your app, and stick to those languages. Ultimately, it's up to you as the app developer to decide what locales you wish to target. You can always add more languages in the future as your app's userbase grows.

Step 2: App Descriptions

Once you decide, you can start by localizing/translating your app description and metadata in the BlackBerry World store listing. Customers are more likely to want to download your app if they can read what it's about in their native language. After all, what good is having your app's content translated if users have no idea what it's about or that it's even available in their native language?

Step 3: Structure your Content

After you've determined your target languages for localization, assess what you'll need to do to support them in your app. This should be done early in the design phase of your app, as you need to consider the vocabulary expansion, script requirements, character spacing and wrapping constraints, left-to-right and right-to-left support, and other potential factors for each language.

Best Practices for Designing with Localization

  • Consider using a utility class such as StringProvider to provide a placeholder for text that can be variable in length (for example, translated text that does not fit the space allotted for the English text).
  • For labels and other short text strings, text might expand up to 200% . For lengthy text (more than 70 characters), prepare for up to 40% expansion. Make sure that text can fit the allotted horizontal space or flow to the next line.



  • 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.
  • Avoid concatenating partial strings to form a sentence. When translated, the strings might not produce a logical sentence. For example, avoid using displayName + "is away." Create a new string for the sentence instead.
  • If you use variables in a string, use variables with meaningful names. For example, use "instance <application 1> of <server2>" instead of "instance %1 of %2." Meaningful names provide context for translators.
  • If a variable has multiple values, provide the translators with a list of the possible values. For example, translation accuracy increases if translators know that the values could be singular or plural and masculine or feminine.
  • 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.

Guidelines for right-to-left languages

  • 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.



  • In some languages such as Arabic and Hebrew, while text is displayed from right to left, 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).
  • When defining the width of components, try to use USE_ALL_WIDTH instead of USE_TEXT_WIDTH to allow components to align along the right side of the screen.
  • If you include graphics in your application, make sure that the graphics are localized. In Arabic, question mark icons are mirror images of question mark icons used in English.

Guidelines for numbers

  • 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 [123].
  • 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.

Guidelines for writing content

  • 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. Use "press the Escape key" instead of "press Escape."
  • 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.

Step 4: Extracting Content into an RRC (BlackBerry Resource) file

Strings files associate text in an app (the value) with another string (the key). A localizer uses the key to help him or her identify the text in the user interface and then translates that text.


This system is most useful for translating websites, software, and other applications. You can see the structure in the following example.

As you build your app, remember it's a good practice to store text strings in separate resource files and use unique identifiers to make use of the appropriate resource.

Step 5: Uploading to Ackuna

Once you have created your BlackBerry resource files, you are now ready to upload them to Ackuna.

If you haven't done so already, create a free profile at Once you create a profile, you can upload your project. From now on, it's as easy as A, B, C!

A: Language Options
Choose the source language of your project. This is limited to one language, usually English. Next, choose all the target languages you want your files to be translated into.
B: Project Text
Upload your generated BlackBerry resource file for translation.
C: Tell us more about your project
Provide any additional information about your project. The more information you can provide, the better it will be for the translators working on your project. Most of the lines of text in your app probably are short and won't provide many clues as to context. So be descriptive about your app in order to ensure the highest level of accuracy.

Project Preview

After you upload your strings.xml file, you will be shown the details of your project. If there are any mistakes or if you need to change anything, you can choose the ‘Edit project details' button at the bottom of the page.


Translation Method

Choose the method of translation you would like for the content of your app.

Other Options

Do you have a logo for your app already? Upload it for additional exposure on Ackuna. You can also change the number of votes per translation. The more votes required, the longer your project may take to complete, but you will receive a higher consensus that the translation is accurate.


Project deadlines will vary. Because no two projects are alike, it is impossible to accurately gauge how long a project will take to complete. The complexity, word count, language pairs, and number of available translators will all factor into the timeframe.

If you need your project completed faster, consider posting a call-for-help with a link to this project to your friends on Facebook, or if you're an app developer, your mailing list, fan page, or your BlackBerry World, iTunes Store or Google Play profile. If speed is a major factor, you can always choose the Professional Translation option, and receive your completed translation in 24-48 hours.

Who are the Crowd-Source Translators?

Ackuna has thousands of volunteer translators waiting to help translate your project. When you submit your project for free, choosing the crowdsourced translation option, we will immediately notify the translators for your chosen language pairs. You are also shown the number of translators that will be notified about your project.


Create Project

Once you submit your project, just sit back and let Ackuna do the rest. You can track the progress of your translation through your Ackuna account. Once it is completely finished, you can download the translated file. At this point it is ready to be uploaded to your app. No other formatting is required!

Diagram of how localization works

For more information, visit BlackBerry's developer forum: