CIS Languages, Codes, and Currencies: A Reference for Website Localization
In this article: how to correctly label languages in the switcher, ISO codes, abbreviations, nuances of native names, and special characters that are easily confused with Russian letters.
When setting up hreflang for Kazakhstan, the first instinct is to enter KZ. This is the country code according to ISO 3166-1. The language code is from a different standard, ISO 639-1, and for Kazakh, it is kk. For Armenian — hy, for Georgian — ka, for Tajik — tg. None of them match the country code.
Confusion arises because the codes are similar: KZ and kk, AM and hy, GE and ka. This is the main trap when setting up hreflang, language switchers, and passing locale to payment systems.
How to Write Languages in the Switcher Menu
“Kazakh” or “Kazakh” in the menu looks as strange as if “Russian” was written instead of “Русский” in an English interface.
Editorial websites almost always use full native names. tengrinews.kz — “Қазақша / Русский / English”, khovar.tj — “Тоҷикӣ / Русский / English”, armenpress.am — “Հայերեն” next to a globe icon. Short codes (2–3 characters) are justified only where space is limited: control panels, mobile menus, compact SaaS interfaces.
Native Names and Abbreviations
Language
In Menu
Short
ISO 639-1
Country Code
Russian
Russian
Rus
ru
RU
Kazakh
Қазақша
Қаз
kk
KZ
Kyrgyz
Кыргызча
Кыр / Кырг
ky
KG
Armenian
Հայերեն
ՀԱՅ
hy
AM
Tajik
Tajik
TJK
tg
TJ
Uzbek
Uzbek
Uzb
uz
UZ
Azerbaijani
Azerbaijani
Aze
az
AZ
Georgian
Georgian
Geo
ka
GE
For each language separately
Kazakh. A developer without Kazakh will type K instead of Қ in the code — simply because there is no Қ on a Russian keyboard. "Kazaksha" appears in the switch instead of "Қазақша". It looks like a typo, but technically it's a different string: site search will break, sorting will go wrong. The abbreviation "KZ" is incorrect for the same reason, the correct one is "ҚЗ".
"Қазақша" means "in Kazakh" — a colloquial, familiar form. On official websites, "Қазақ тілі" (Kazakh language) is sometimes written, but "Қазақша" is shorter in the menu. Compare: "Kazak" (Cossack, person) and "Қазақ" (Kazakh people) — the second word simply cannot be written with Russian letters.
Kyrgyz. There is no single standard here, even on official websites. kabar.kg writes "Кыр", other government resources — "Кырг". Both options are correct. Practical advice: choose one and stick to it throughout the interface. "Кырг" is slightly more unambiguous if you have several abbreviations starting with "К" in your menu (Kazakh, Kyrgyz, Russian).
Both "Кыргызча" and "Кыргыз тили" are correct: the first is more colloquial ("to speak Kyrgyz"), the second is more official ("Kyrgyz language"). For a switch, "Кыргызча" is more common.
Armenian. This is the only language on the list where the choice of native name depends on where the audience lives — because Armenian exists in two variants with different orthographies (Wikipedia):
Հայերեն — Eastern Armenian. The official language of Armenia, with reformed Soviet orthography. Spoken in Armenia, Russia, Georgia, Iran.
Հայերէն — Western Armenian. Classical orthography, preserved in the diaspora after 1915. Lebanon, France, USA, Argentina.
The difference is in one letter: "ե" for Eastern and "է" for Western. But the vocabulary also differs: "airplane" in Eastern is "ինքնաթիռ", in Western it's "օդանաւ". For a website for Armenia — Հայերեն. For the Armenian diaspora — Հայերէն. Both have the same ISO code — hy, but ISO 639-3 separates them: hye (Eastern) and hyw (Western). The abbreviation "ՀԱՅ" — from Armenian "Հայ" (Armenian): "ՀԱ" without the third letter is not readable as a word.
Tajik. The problem is the same as with Kazakh, but immediately visible: Ҷ is in the name of the language itself. If the developer types “TCH” instead of “TҶ” — there will be an error right in the switcher. Ҷ is not “CH”: the sound is closer to the English “j” in jump, something between “dzh” and a soft “zh”. The Ministry of Foreign Affairs of Tajikistan on mfa.tj writes exactly “Ҷ”. The word “Тоҷикӣ” also contains Ӣ (long “i”), which is also not on the Russian keyboard layout.
Georgian. Developers often try to shorten “ქართული” to “Geo” or “GE” — simply because they don't know how to work with non-Latin fonts in the interface or are afraid of rendering problems. Georgians instantly recognize this: “GE” is perceived as a foreign technical code, not as a native word. Mkhedruli is a 1600-year-old script, created in isolation. “გამარჯობა” means “hello”. Write “ქართული” in full, even in compact interfaces.
A locale is a "language + country" combination. It defines the format of numbers and dates, the currency symbol, and the sorting order. The locale uses the language code, not the country code: kk_KZ, not kz_KZ. hy_AM, not am_AM. The same logic as with ISO 639-1.
Country
Country Code
Locale
Currency
Symbol
Currency Code
Russia
RU
ru_RU
Ruble
₽
RUB
Kazakhstan
KZ
kk_KZ
Tenge
₸
KZT
Kyrgyzstan
KG
ky_KG
Som
с
KGS
Armenia
AM
hy_AM
Dram
֏
AMD
Tajikistan
TJ
tg_TJ
Somoni
SM
TJS
Uzbekistan
UZ
uz_UZ
Uzbek Sum
so'm
UZS
Azerbaijan
AZ
az_AZ
Manat
₼
AZN
Georgia
GE
ka_GE
Lari
₾
GEL
Currency codes are a separate standard, ISO 4217. A few nuances:
Uzbek so'm is the official abbreviation, written in lowercase with an apostrophe. In interfaces, "sum" or "UZS" are often used – both options are accepted.
Kazakhstan and Russia share the phone code +7. If the country is automatically determined by the phone number in the registration form, this will break: +7 701 can be both Moscow and Almaty. Request the country in a separate field or determine it by IP.
Georgia has two official languages: Georgian and Abkhazian. For a commercial website, this is almost never necessary, but if the project is state-owned or oriented towards Abkhazia, take it into account.
If you connect Google Font only with a Cyrillic range, Armenian and Georgian text will not be displayed in the desired font – the browser will substitute a system fallback, and the page will look inconsistent. Armenian Unicode block is U+0530–U+058F, Georgian is U+10A0–U+10FF. Noto Sans from Google covers both – connect it as a fallback font for these languages.
Most CIS languages use Cyrillic, but three countries switched to Latin script after the collapse of the USSR: Uzbekistan in 1993, Azerbaijan in 1991. Cyrillic is still found there in old documents and among the older generation, but new content is in Latin script. Kazakhstan began the transition in 2017, with the new orthography approved in 2023. This is already the third alphabet change in a hundred years: Arabic script, then Janalif (Soviet Latin script in the 1930s), then Cyrillic, now Latin script again.
Uzbek does not need a separate font – it uses standard Latin script plus an apostrophe in O'zbekcha. Most Latin fonts cover this. Just check the symbol ʻ (U+02BB) – it is not everywhere.
Armenian and Georgian are completely independent systems, unrelated to Cyrillic, Latin, or each other. The Armenian alphabet was created in 405 by the monk Mesrop Mashtots for the translation of the Bible. Georgian Mkhedruli is roughly the same age.
Letters not on the Russian keyboard
Kazakh and Tajik contain letters that are easily confused with Russian ones on screen, but technically they are different Unicode symbols. A site search will not find the word, sorting will be off, and native speakers will notice immediately.
Kazakh has 42 letters — 33 standard plus 9 special: Ә, Ғ, Қ, Ң, Ө, Ұ, Ү, Һ, І. Tajik has its own 6 additional: Ғ, Ҳ, Қ, Ҷ, Ӣ, Ӯ.
Қ and К differ upon close inspection (Қ has a tail at the bottom) — but Қ is simply not on the Russian keyboard. A person types “Kazaksha” instead of “Қазақша” not because they are inattentive, but because the necessary key is unavailable. Or they copy from a source where such a substitution has already been made and do not notice.
Practically important letters are in language names and abbreviations: Қ in “Қазақша” and “ҚЗ”, Ҷ and Ӣ in “Тоҷикӣ” and “ТҶ”, І in Kazakh words. If you insert text from an external source — check it. Insert a suspicious symbol on unicode.org and you will immediately see what that character is.
Frequently Asked Questions
Which language should be set as default for Kazakhstan — Russian or Kazakh?
For most commercial websites, Russian is safer as a default, especially if the audience is over 35 or it's B2B. According to the 2021 census, about 80% of the population speaks Kazakh, and about 70% speaks Russian, and these largely overlap. For a youth or government audience — Kazakh.
Is a separate website version needed for Western Armenian?
Only if you specifically work with the Armenian diaspora in Lebanon, France, or the USA. For a project focused on Armenia, Eastern Armenian (hye) is sufficient. The general code hy is technically accepted for both variants.
How to set hreflang for Armenian?
hreflang="hy" — for Eastern Armenian (Armenia). For the Western Armenian diaspora, theoretically hyw, but this is a non-standard tag, and not all crawlers process it. It's simpler to have one version on hy, oriented towards Armenia.
What to do with Kazakh now - Cyrillic or Latin?
Cyrillic. Official document management and most websites are still in Cyrillic. The new Latin orthography was approved in 2023, but there is no mass transition yet. The situation is monitored by gov.kz.
Why don't the country code and language code match - for example, Armenia AM, but Armenian hy?
These are two independent standards. ISO 3166-1 codes political entities (countries), ISO 639-1 codes linguistic ones (languages). Armenian received the code hy from the Latinized "Hayastan" - the self-name of Armenia. Georgian - ka from "Kartuli". In some cases, the codes coincide (ru/RU, uz/UZ), in others they do not (hy/AM, ka/GE, kk/KZ). Coincidence is an accident, not a rule.
Connect Kazakh, Armenian, or Georgian to your website?
Multify translates your website into the needed languages and automatically configures locales, currencies, and language switcher — without changes to the website code.