Localization

Design guidelines for localizing your app.

When designing an app for a global audience, it's essential to consider how localization affects user experience. The following guidelines will help you create a user-friendly interface that adapts seamlessly to different languages and cultures.

The App UI Kit was designed for a global audience. Using its components, patterns, colors, typography, and icons will help ensure effective communication across different languages and cultures.

As text length can change with translation, keep calls to action and labels short and concise to ensure your interface adapts well.

Comparing how text expansion works in Indonesian

  1. A For example, translating “Generate an image” from English to Indonesian increases the tab's length by about 40%, causing the text to overflow. In this case, using “Generate” might be a better choice.

Avoid using acronyms, abbreviations, slang, jargon, idioms, and jokes in your interface. These may not translate well into other languages, even if they're common in one culture.

Text to image field with an English idiom

  1. A For example, “It's raining cats and dogs” is an English idiom that describes heavy rain. This expression doesn't describe the actual weather, so it can be misunderstood or taken literally in other cultures, leading to confusion in translation.

Breaking a single clause into multiple lines can lead to grammatically incorrect translations. Instead, let the line wrap naturally or divide the clause so that each part is grammatically independent.

When adding links to text, only link the action or destination, keeping it as a single term or short phrase. Use the external link component for linking.

If your app uses images for context, consider cultural sensitivities and ensure they're suitable and easily understood by a global audience. Consider these risks when using images:

  • Flags: Different countries may recognize flags differently.
  • Maps: Boundaries can be interpreted differently across countries.
  • People: Pay attention to gestures, hands, and racial representations.
  • Symbols: Be mindful of national, political, religious, or spiritual symbols.
  • Cultural associations: Colors, numbers, names, and events can have varying meanings.

For example:

  1. A Mailboxes vary widely in design, color, size, and placement across different countries.

  2. B An image of an envelope to represent "direct mail" might be a more globally understood choice.

As text in images can't be translated, using such images in your interface can undermine your app's localization efforts.

This example compares how text can appear outside an image, allowing it to be translated:

  • Do position text outside of images and near the relevant thumbnail.
  • Use numeric digits (for example, 12345) instead of words for numbers.
  • Use the recommended i18n tooling when displaying numbers. The tooling automatically adds the correct digit group separator for large numbers, depending on the locale (for example, 3,500 in English).
  • Spell out single-digit numbers if they start a sentence. e.g. Seven.
  • Write number sequences or ranges consistently.

For more information and examples, see Numbers.

If your app requires users to spend credits to generate a design or perform an action, make sure to specify the number of credits that will be used for the action, and the total or remaining credits they have available. We recommend the format: “Use X of Y [App name] credits” to clearly communicate how many credits will be spent from the total available.

Example showing credit usage in an app

  1. A For example, "Use 5 of 50 credits" means 5 credits will be spent from a total of 50 available to generate an image.

For example ICU syntax, see Pluralization.

As a general rule, use rounded numbers. If rounding isn't possible, use the fewest decimals or spell it out as a fraction.

DoDon't
$29.97
$29.9784
Two-thirds
2/3

Use the % symbol instead of spelling out 'percent'.

DoDon't
50%
50 percent

If you need to reference a phone number:

  • Use country codes for clarity
  • Use spaces between sets of numbers
CountryCodeExample
United States+1+1 702 XXX XXXX
Australia+61+61 473 XXX XXX

Use 'to' between a range of numbers. If space is limited, use an en dash with no spaces on either side.

DoDon't
3 to 4 days
3 - 4 days
3–4 days
3—4 days

If your app displays measurements, we recommend using the metric system for a global audience. If you choose to use the imperial system, ensure it's applied consistently throughout and avoid mixing metric and imperial units.

  • Use numerals and the word 'degrees' for temperatures.
  • Specify Celsius or Fahrenheit the first time you mention a temperature.
  • Don't repeat the word 'degrees' if it's already implied or if you've included the degree symbol.
  • If space is limited, use the degree symbol and abbreviate the temperature scale.
DoDon't
30 degrees Celsius
30 degrees
30°C
30° degrees Celsius

When displaying prices, either specify the currency of the item's origin or ensure your audience sees a localized price. For your app's pricing, use the Link component to link to your website, where the price can be shown in the user's local currency format.

If you're just displaying a date with no other message content, you can just use <FormattedDate/> or intl.formatDate, so that users can see dates that reflect their localization settings.

Use the DateInput component so that users can see dates that reflect their localization settings.

In cases where a date is displayed rather than selected, there are 4 standard time formats you can use:

FormatDescriptionExample
shortA numerical format1/3/24
mediumIncludes the month's name with abbreviationMar 1, 2024
longIncludes the month's name without abbreviationMarch 1, 2024
fullIncludes the name for the month and day of the weekFriday, March 1, 2024

For more information and examples, see Dates.

Use the following format for times, letting your audience see times that reflect their locale.

There are 4 standard time formats you can use:

FormatDescriptionExample
shortIncludes hours and minutes10:40 AM
mediumIncludes hours, minutes, seconds10:40:29 AM
longIncludes hours, minutes, seconds, and time zone10:40:29 AM GMT +10
fullIncludes hours, minutes, seconds, and time zone10:40:29 AM GMT +10

To indicate a time range, use the word 'to' instead of a hyphen. Avoid using words like 'last' and 'next' when you write about time. For example, the phrase 'during the last month' could mean during the previous month or during the final month.

DoDon't
9 AM to 5 PM
9 AM-5 PM
previous month
last month

For more information and examples, see Time.

Use the Coordinated Universal Time (UTC) offset to ensure dates and times are correctly adjusted for the user's location.