Internationalizing Your App

Unless your app is strictly local in scope, you should internationalize it, making it easy to adapt to various languages and regions. You can then localize it—translate and otherwise adapt it so that it works well in a particular locale.

You can internationalize your app even if it initially supports just one locale. For example, you might initially publish your app in English (locale code: "en"). Then, after a few weeks or months, you might add support for additional locales such as French (locale code: "fr") and Arabic (locale code: "ar").

Note: The word internationalization is often abbreviated to i18n, referring to the 18 letters between the letters i and n. Localization is sometimes abbreviated to l10n.

Overview

Here are the steps you need to follow when you internationalize and localize an app to be published in the Chrome Web Store:

  1. Decide which locales you want to support.
  2. Internationalize and localize the app's UI.
  3. Localize your app's name and description.
  4. Upload your app using the Chrome Developer Dashboard.
  5. Edit your listing, providing localized versions of the detailed description and screenshots.
  6. Specify which regions you want to support.

How you accomplish step 2 depends on whether you're writing an extension, packaged app, or hosted app. Extensions and packaged apps can use the extension system i18n support to provide the appropriate UI strings for each locale. Hosted apps don't have access to the extension i18n support for their main UIs, but they can use whatever other i18n techniques and libraries suit the app.

In step 3 you localize the name and description by editing the manifest file and providing strings for your chosen locales. Once you've uploaded your app (step 4), you can finish your app's listing (step 5).

If you provide strings for at least two locales in step 3, then you'll be able to provide locale-specific information in step 5. Otherwise, your listing will be the same in all locales.

Note: You can significantly increase your app's ranking in the locales that you support by localizing the name, description, and detailed description.

Back to top

Choosing locales to support

You can localize your app to any of the following locales.

Locale code Language (region)
ar Arabic
am Amharic
bg Bulgarian
bn Bengali
ca Catalan
cs Czech
da Danish
de German
el Greek
en English
en_GB English (Great Britain)
en_US English (USA)
es Spanish
es_419 Spanish (Latin America and Caribbean)
et Estonian
fa Persian
fi Finnish
fil Filipino
fr French
gu Gujarati
he Hebrew
hi Hindi
hr Croatian
hu Hungarian
id Indonesian
it Italian
ja Japanese
kn Kannada
ko Korean
lt Lithuanian
lv Latvian
ml Malayalam
mr Marathi
ms Malay
nl Dutch
no Norwegian
pl Polish
pt_BR Portuguese (Brazil)
pt_PT Portuguese (Portugal)
ro Romanian
ru Russian
sk Slovak
sl Slovenian
sr Serbian
sv Swedish
sw Swahili
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
vi Vietnamese
zh_CN Chinese (China)
zh_TW Chinese (Taiwan)

Back to top

Localizing your app listing

To localize your app's listing, you first localize the name and description. Then, after uploading your localized app, you can edit your app's listing to specify localized versions of your app's detailed description and screenshots.

Name and description

You localize the name and description by modifying manifest.json and providing a _locales directory in your app's ZIP file. Specifically, you need to:

  • Modify the "name" and "description" manifest fields
  • Add a "default_locale" field
  • Provide at least one _locales/locale/messages.json file, where locale is a locale code; each messages.json file contains the strings for one locale

Here's an example of how you might specify the name and description of an internationalized hosted app that has English as its default language and British English as its secondary language:

//in manifest.json:
  "name": "__MSG_appName__",
  "description": "__MSG_appDesc__",
  "default_locale": "en",

//in _locales/en/messages.json:
{
  "appName": {
    "message": "My App",
    "description": "The title of the application, displayed in the web store."
  },
  "appDesc": {
    "message": "This app does something awesome.", 
    "description":"The description of the application, displayed in the web store."
  }
}

//in _locales/en_GB/messages.json:
{
  "appName": {
    "message": "My Application"
  },
  "appDesc": {
    "message": "This application does something brilliant."
  }
}

If you add a locale later, you just need to add a _locales/locale/messages.json file for that new locale. For example, if you add support for French and Arabic, you'll need to add two files: _locales/fr/messages.json and _locales/ar/messages.json. Each of those files can be a copy of _locales/en_GB/messages.json, but with translated versions of the "message" values.

For more details, see the following examples and documentation.

Once you've completed this step, upload your app using the Developer Dashboard, as described in Publishing Your App.

Back to top

Detailed description

For each locale your app supports, edit your app's listing to provide a detailed description of your app.

First, get to your app's Edit page, which you can do by going to the dashboard and clicking the "Edit" link for the app. As the following figure shows, if you support multiple locales a pull-down list appears at the top of your app's Edit page. Each item in the list corresponds to one of the _locales/locale directories that you uploaded.

screenshot of the locale pull-down

Next, choose the locale that you want to edit. (Skip this if your app supports only one locale.)

Now edit the detailed description, providing text for the currently selected locale (or for the default locale, if you support just one).

screenshot of the Detailed Description section for an app

If you support multiple locales, repeat the previous two steps until you've provided a detailed description for each supported locale.

Back to top

Screenshots

As the screenshot guidelines say, you should provide screenshots for your app. You can tailor these screenshots for each locale.

To add a screenshot, click the Choose File button in the Screenshots section of the Edit page.

If your app supports multiple locales, then after you upload each screenshot, you can specify whether it's for all locales or just for the one you're currently editing.

screenshot of screenshots with localization options

To change the locale information for a screenshot, first use the pull-down list at the top of the page to choose the locale where you want the screenshot to appear. (If you don't see the screenshot, go to the locale that it's restricted to and click "Show this item in all locales".) Click the thumbnail for the screenshot, so that it's displayed at full size above the thumbnails. Now you can change the locale for the screenshot.

Back to top

Specifying where to publish your app

By default, your app is listed in all regions that can use the Chrome Web Store. If you don't want your app to be listed in a particular region, unselect that region from the following list in the Regions section of the Edit page.

  • Argentina
  • Australia
  • Austria
  • Belgium
  • Brazil
  • Canada
  • China
  • Czech Republic
  • Denmark
  • Finland
  • France
  • Germany
  • Hong Kong
  • India
  • Indonesia
  • Israel
  • Italy
  • Japan
  • Mexico
  • Netherlands
  • New Zealand
  • Norway
  • Philippines
  • Poland
  • Portugal
  • Russia
  • Singapore
  • Spain
  • Sweden
  • Switzerland
  • United Kingdom
  • United States

Note: Unselecting a region prevents your app from being listed in that region.

Back to top