04/08/2025

what3words addresses exist in over 60 languages, enabling people around the world to use what3words in their native tongue. Some languages, however, can be written in more than one writing script. For example, Chinese has both Simplified and Traditional character sets that are generally used depending on where the individual learned to read and write, while Serbian speakers can choose between the Cyrillic and Latin scripts – both are taught at school, and it is more down to personal choice as to which one is used in which context. To ensure that speakers of these languages have the most user-friendly experience, what3words offers ‘locales’.

What is a what3words ‘locale’?

A locale, in the context of what3words, refers to when a what3words language is available in more than one script. The addresses assigned to each 3 metre square remain the same across the two locales, but the script they’re written in is different.

For example, the Serbian word for “strawberries” is written as “јагоде” in the Cyrillic script and “jagode” in the Latin script. They are pronounced identically and are, to all intents and purposes, the same word . Typing “///јагоде.јагоде.јагоде” or “///jagode.jagode.jagode” into the what3words search bar will bring up the same 3 metre square in southern Brazil.

Current what3words languages that offer locales are:

  • Chinese (Simplified and Traditional characters) – both scripts are in regular use, depending on the region
  • Mongolian (Cyrillic and Latin script) – only the Cyrillic script is official in Mongolia, but many Mongolian speakers type using the Latin script, which is why what3words offers this
  • Kazakh (Cyrillic and Latin script) – the Cyrillic script is currently prevalent in Kazakhstan, but there are government-level plans to switch the language’s official writing script to Latin, which is why what3words offers this
  • Serbian (Latin and Cyrillic script) – Historically and to the present day, both scripts are in regular use
  • Bosnian (Latin and Cyrillic script) – for the same reasons as Serbian
  • Montenegrin (Latin and Cyrillic script) – for the same reasons as Serbian

Within Unicode, Latin and Cyrillic scripts are entirely separate: even though some letters look identical to each other (e.g. the initial letter of ‘jagode’/’јагоде’), they have different Unicode code points (Latin script: U+006A, Cyrillic script: U+0458).

In Chinese, however, the Simplified and Traditional character sets do overlap. In short, when the sometimes complicated traditional characters were simplified by the Chinese government in the 1950s (to improve literacy), some did not change. These unchanged characters – including ‘ 人’ (‘ren’, meaning ‘person’) – are shared by both writing scripts and there is only one Unicode code point: U+4EBA.

This means that some words in the what3words Simplified Chinese wordlist are identical to their counterpart in the Traditional Chinese wordlist – both to the naked eye and according to their Unicode code points, e.g. ‘鼓舞’ (gǔwǔ, meaning ‘to inspire’).

Locales vs secondary words

It’s easy to confuse locales with another concept in what3words: secondary words. However, they are not the same. A locale is an alternative writing script for the same set of words . In contrast, secondary words are alternate forms of a word within the same script . Secondary words are usually there to account for different methods of typing letters that may not be easily accessible on all keyboards.

For example, a German keyboard has a separate key for the letter “ö”, which is common in that language (found in words such as “hören” – to listen). If a German speaker is using a British computer, for example, they may not have such easy access to the “ö”, and may decide to write this as “oe” instead – “hoeren”. The extra “e” represents the pronunciation difference between “o” and “ö”. In this case, “hoeren” is accepted by what3words as interchangeable with “hören”. As a secondary word, it is never displayed in a what3words address, but is allowed as an alternative input.

So, while locales let you switch the alphabet or character set (e.g. Cyrillic vs Latin), secondary words allow an alternative way to input a word, in the same writing script. Locales ensure a user can read the address in a familiar script, whereas secondary words ensure a user can successfully enter an address in the way that they prefer.

Why do locales matter?
Locales provide what3words users with familiarity and comfort, enabling them to see and share what3words addresses in a script that feels natural to them. This is important for both user experience and inclusivity. Ideally, nobody has to struggle with an unfamiliar alphabet when using a what3words address – they can simply switch to the locale that suits them.

Supported locales (as of July 2025)

Most what3words languages – English, French or Korean, for example – use a single writing system. However, a handful of what3words languages do have locale variants. Below is the complete list of supported locale codes and their language, and script, current as of July 2025.

  • zh_si – Chinese (Simplified characters)
  • zh_tr – Chinese (Traditional characters)
  • kk_cy – Kazakh (Cyrillic script)
  • kk_la – Kazakh (Latin script)
  • mn_cy – Mongolian (Cyrillic script)
  • mn_la – Mongolian (Latin script)
  • oo_cy – Bosnian / Croatian / Montenegrin / Serbian (combined) (Cyrillic script)
  • oo_la – Bosnian / Croatian / Montenegrin / Serbian (combined) (Latin script)

Each code above represents a locale. For example, if a developer requests a what3words address with the locale zh_tr , they’ll get the Chinese address in Traditional characters, whereas zh_si would yield Simplified characters. As mentioned before, both correspond to the same 3 metre square.

The list also reveals an unrelated what3words language fact: because Bosnian, Croatian, Montenegrin and Serbian are extremely similar languages, we have created a single wordlist with the language code “oo” that covers all four. While users can select the four languages individually within our language menu, the what3words addresses in each one are identical.

This is made slightly more complicated by the fact that while Bosnian, Montenegrin and Serbian can all be written in Cyrillic or Latin scripts, Croatian is only realistically ever written in the Latin script.

(Note: This locales list is up-to-date as of July 2025. Always check the latest what3words documentation for new additions, as more languages or scripts could be added in future.)

The “is_default_display_locale” flag – what does it mean?
You might come across the term “is_default_display_locale” in our documentation. This marks which script is the default for a language. Every language that has multiple locales will have one designated as the default. For languages with only one locale, that is the default by definition. For developers, this is important when you’re not explicitly specifying a locale in an API request. If you request an address in a certain language without specifying the locale, the what3words API will return it in the default script for that language. For instance, Chinese defaults to Simplified (zh_si) unless you ask for Traditional. Mongolian and Kazakh default to Cyrillic ( mn_cy, kk_cy ) unless you request the Latin version. In the Bosnian/Croatian/Montenegrin/Serbian group ( oo code), the default display locale is the Latin script ( oo_la ). If you want to show the Cyrillic version, you’d need to specify that locale in your request.

Japanese: a special case

One special case is the what3words Japanese language version. Japanese is commonly written in a mixture of three different writing scripts: kanji (adapted Chinese characters that are used to represent core vocabulary and concepts with specific meanings), hiragana (a phonetic syllabary used for native words and grammatical particles), and katakana (used to transcribe foreign words). Because these three scripts in tandem can create a multitude of homophones (which what3words avoids where possible), our Japanese language team made the decision to only use the hiragana script in our wordlist. Because hiragana is phonetic, any word can be written using this script.

Due to hiragana’s unique construction, it could be difficult to see Latin script full stops within a what3words address – leading to confusion over word boundaries. For this reason, we use the ideographic full stop (U+3002) between the words of Japanese addresses; this is the same width as hiragana characters and makes it much clearer to see where one word ends and the next begins. It is also easier to access on many Japanese keyboards!

Japanese is the only language where the delimiter shown in what3words products is anything other than the Latin script full stop (although other delimiters are supported for input). For further discussion of this last point, please see Understanding the what3words RegEx: A human-friendly guide .

Summary
Locales in what3words allow multiple writing systems for the same what3words address. This makes the system flexible and user-friendly across different regions and preferences. The key things to remember are:

  • A locale is not a different address or translation – it’s the same address represented in another script. The location doesn’t change when you switch locales
  • Only certain languages offer locales. For those that do, you can specify the locale in the API, or via your app settings
  • If you don’t specify a locale, the address will come back in the default script for that language
  • Locales are different from secondary words; locales change the script, whereas secondary words are alternative ways to input a word within one script
  • The what3words API and SDKs handle locales for you – as a developer you just need to request the one you want (see the API docs for details and the latest locale list)

By understanding locales, developers can ensure they present what3words addresses in the most user-friendly way. Whether your users read 汉字, кириллица, اللغة العربية, or the Latin alphabet, what3words can display addresses in a form that feels natural to them. This ultimately helps more people comfortably use what3words addresses in their everyday lives, no matter what language they use.

Language Name ISO code what3words API language code what3words Locale code Script Default Display Locale Locale notes
Afrikaans af af Latin TRUE
Amharic am am Ethiopic TRUE
Arabic ar ar Arabic TRUE
Bahasa Indonesia id id Latin TRUE
Bahasa Malaysia ms ms Latin TRUE
Bengali bn bn Bengali TRUE
Bosnian bs oo oo_cy Cyrillic FALSE
Bosnian bs oo oo_la Latin TRUE
Bulgarian bg bg Cyrillic TRUE
Catalan ca ca Latin TRUE
Chinese zh zh zh_si Han (Simplified) TRUE
Some zh_si words are identical to their zh_tr equivalent – this is because the Simplified and Traditional characters for these words are the same.
Chinese zh zh zh_tr Han (Traditional) FALSE
Some zh_si words are identical to their zh_tr equivalent – this is because the Simplified and Traditional characters for these words are the same.
Croatian hr oo oo_cy Cyrillic FALSE
Croatian hr oo oo_la Latin TRUE
Czech cs cs Latin TRUE
Danish da da Latin TRUE
Dutch nl nl Latin TRUE
English en en Latin TRUE
Estonian et et Latin TRUE
Finnish fi fi Latin TRUE
French fr fr Latin TRUE
German de de Latin TRUE
Greek el el Greek TRUE
Gujarati gu gu Gujarati TRUE
Hebrew he he Hebrew TRUE
Hindi hi hi Devanagari TRUE
Hungarian hu hu Latin TRUE
isiXhosa xh xh Latin TRUE
isiZulu zu zu Latin TRUE
Italian it it Latin TRUE
Japanese ja ja Hiragana TRUE
Kannada kn kn Kannada TRUE
Kazakh kk kk kk_cy Cyrillic TRUE
Kazakh kk kk kk_la Latin FALSE
Khmer km km Khmer TRUE
Korean ko ko Hangul TRUE
Lao lo lo Lao TRUE
Malayalam ml ml Malayalam TRUE
Marathi mr mr Devanagari TRUE
Mongolian mn mn mn_cy Cyrillic TRUE
Mongolian mn mn mn_la Latin FALSE
Montenegrin me oo oo_cy Cyrillic FALSE
Montenegrin me oo oo_la Latin TRUE
Nepali ne ne Devanagari TRUE
Norwegian no no Latin TRUE
Odia or or Oriya (Odia) TRUE
Persian fa fa Arabic TRUE
Polish pl pl Latin TRUE
Portuguese pt pt Latin TRUE
Punjabi pa pa Gurmukhi TRUE
Romanian ro ro Latin TRUE
Russian ru ru Cyrillic TRUE
Serbian sr oo oo_cy Cyrillic FALSE
Serbian sr oo oo_la Latin TRUE
Sinhala si si Sinhala TRUE
Slovak sk sk Latin TRUE
Slovene sl sl Latin TRUE
Spanish es es Latin TRUE
Swahili sw sw Latin TRUE
Swedish sv sv Latin TRUE
Tamil ta ta Tamil TRUE
Telugu te te Telugu TRUE
Thai th th Thai TRUE
Turkish tr tr Latin TRUE
Ukrainian uk uk Cyrillic TRUE
Urdu ur ur Arabic TRUE
Vietnamese vi vi Latin TRUE
Welsh cy cy Latin TRUE