Skip to main content

Internationalization

Basic Concept

Internationalization (i18n)

The practice of building a product which supports localization, globalization, and translation.

Localization (l10n)

Adapting your product to a particular locale (country/language)

Globalization

The process of becoming global product, which works everywhere and for everyone

Translation

An important part of localization, but only the tip of the iceberg

Supported Languages

The following languages are currently supported by Adjust:

  • English
  • Chinese (simplified)
  • French
  • Japanese
  • Korean
  • Portuguese
  • Russian
  • Spanish
  • Turkish
  • Vietnamese

Design Considerations

  • When designing an interface, consider that English text can become much longer, or shorter when translated to other languages.
  • Avoid making components that contain text a fixed-width. This prevents them from growing or shrinking to support translations of different lengths.
  • Wrapping text in components is preferred to truncating the text. You may be cutting off important information in another language.
  • Don't put text inside of a graphic, it can't be translated.

Localization of Dates

According to the context and availability of space, the format of dates is modified to fit the scenario the best way possible.

note

Dates are localized via the standardized Javascript construtor Intl.DateTimeFormat (we do have custom formats for some languages, which are italic in the table below).

BCP47LanguageDateDate CompactDatetimeDatetime Compact
en-USEnglish (US)Dec 20, 2021Dec 20Dec 20, 2021 04:23Dec 20 04:23
ja-JPJapanese2021/12/2012/202021/12/20 4:2312/20 4:23
zh-CNChinese (simplified)2021/12/2012/202021/12/20 04:2312/20 04:23
ko-KRKorean2021/12/2012/202021/12/20 오전 4:2312/20 오전 4:23
vi-VNVietnamese20/12/202120/1204:23, 20/12/202104:23, 20/12
ru-RURussian20.12.202120.1220.12.2021, 04:2320.12, 04:23
pt-BRPortuguese (Brazil)20/12/202120/1220/12/2021, 4:2320/12, 4:23
es-419Spanish (Latin Americas)20/12/202120/1220/12/21 4:2320/12, 4:23
tr-TRTurkish20.12.202120.1220.12.2021, 04:2320.12, 04:23
fr-FRFrench (France)20/12/202120/1220/12/2021 04:2320/12 04:23

Example

You can use useDateLocalization hook to format dates as below by passing date, locale and formatType:

Live Editor
Result
Loading...
Live Editor
Result
Loading...

Date

It's the most used format and can be applied as the basic standard.

  • Korean uses the same format as in the Japanese language for this type of date.
  • English shows the month abbreviation to help users from outside of USA or other English speaking countries to get a better understanding of the structure of the format.
  • We do not differentiate between English locales, such as Australia, Canada, Ireland, or Great Britain.

Compact Date

For even more reduced spaces such as when using a date dimension on a chart, there is a possibility of using the compact version which includes only a date and month.

This format also may be part of scenarios as the ranges, in which there are two different applications:

  • Range within the same year: e.g. Dec 20 - Dec 25, 2021
  • Range within two different years: e.g. Dec 20, 2021 - Jan 25, 2022

Datetime

In order to describe a specific timestamp and date this format will be used.

  • English language uses the 24 hour format (not AM/PM).
  • pt-BR and tr-TR include an extra comma separating the date and time.

Relative Time

Relative time should be used to convey urgency, and to communicate durations that don't need an exact date.

Use caseRelative time/date
Less than 1 minuteJust now
Less than 1 hour23 minutes ago
Less than 1 day11 hours ago
Less than 1 week3 days ago
After one weekRevert to exact time

Localization of Numbers

Numbers and currency are localized via the standardized Javascript construtor Intl.NumberFormat. This results in the following formatting for numbers:

BCP47LanguageNumberNumber abrev.(K)Number abrev.(M)Number abrev.(B)Number abrev.(T)Percentage
en-USEnglish (U.S.)10,123,456.363.02K6.93M4.28B8.37T67.57%
ja-JPJapanese10,123,456.363023.79693.03万42.84億8.37兆67.57%
zh-CNChinese (simplified)10,123,456.363023.79693.03万42.84亿8.37万亿67.57%
ko-KRKorean10,123,456.363023.79693.03만42.84억8.37조67.57%
vi-VNVietnamese10.123.456,363,02 N6,93 Tr4,28 T8,37 NT67,57%
ru-RURussian10 123 456,363,02 тыс.6,93 млн4,28 млрд8,37 трлн67,57 %
pt-BRPortuguese (Brazil)10.123.456,363,02 mil6,93 mi4,28 bi8,37 tri67,57%
es-419Spanish (Latin Americas)10,123,456.363.02 k6.93 M4284.03 M8.37 B67.57 %
tr-TRTurkish10.123.456,363,02 B6,93 Mn4,28 Mr8,37 Tn%67,57
fr-FRFrench (France)10 123 456,363,02 K6,93 Mn4,28 Md8,37 Bn67,57 %

Localization of Currency

Currencies are localized via the standardized Javascript construtor Intl.NumberFormat. This results in the following formatting for numbers in connection with a currency:

BCP47LanguageCurrency
en-USEnglish (U.S.)$6,930,271.79
en-GBEnglish (GB)£6,930,271.79
en-AUEnglish (AU)$6,930,271.79
en-IEEnglish (IE)€6,930,271.79
ja-JPJapanese¥6,930,272
zh-CNChinese (simplified)¥6,930,271.79
ko-KRKorean₩6,930,272
vi-VNVietnamese6.930.272 ₫
ru-RURussian6 930 271,79 ₽
pt-PTPortuguese (Portugal)6 930 271,79 €
pt-BRPortuguese (Brazil)R$ 6.930.271,79
es-ESSpanish (Spain)6.930.271,79 €
es-MXSpanish (Mexico)$6,930,271.79
tr-TRTurkish₺6.930.271,79
fr-FRFrench (France)6 930 271,79 €
fr-CAFrench (Canada)6 930 271,79 $ CA