Локализация чисел
Введение в локализацию чисел, десятичные символы, символы группировки, системы нумерации.
Основы чисел
Число состоит из целой части и десятичной части, разделенных десятичным символом. Целая часть может также быть разделена символом группировки (иногда называемым тысячным символом), что делает длинные числа более удобными для чтения.
В Соединенных Штатах используется точка (.) для десятичного символа и запятая (,) для символа группировки.
Десятичные символы
Существует три различных десятичных символа:
Символы группировки
Существует шесть различных символов группировки:
,-1,000- Запятая. U+002C.-1.000- Точка. U+002E-1 000- Неразрывный пробел. U+00A0-1 000- Узкий неразрывный пробел. U+202F٬-1٬000- Арабский тысячный разделитель. U+066C’-1’000- Правая одинарная кавычка. U+2019
Шаблоны группировки
Наиболее распространённым шаблоном группировки является группировка каждые 3 цифры. Однако в некоторых регионах Индии используется уникальная система группировки по 2 цифры.
Например, число 1 миллиард выглядит следующим образом в обоих шаблонах группировки (с использованием запятой в качестве символа группировки):
- Группировка по 3 цифры:
1,000,000,000 - Группировка по 2 цифры:
1,00,00,00,000
Обратите внимание, что в группировке по 2 цифры для самой правой группы по-прежнему используются 3 цифры, но всё остальное группируется по 2 цифры.
Различные шаблоны форматирования
Ниже приведены различные комбинации шаблонов форматирования для различных поддерживаемых регионов:
| Формат числа | Шаблон группировки | Символ группировки | Десятичный символ | Используется в |
|---|---|---|---|---|
1,000,000.22 |
3 цифры | Запятая | Точка | 298 регионов |
1.000.000,22 |
3 цифры | Точка | Запятая | 151 регион |
1 000 000,22 |
3 цифры | Неразрывный пробел | Запятая | 129 регионов |
1 000 000,22 |
3 цифры | Узкий неразрывный пробел | Запятая | 44 региона |
1,000,000٫22 |
3 цифры | Арабский тысячный разделитель | Арабский десятичный разделитель | 43 региона |
10,00,000.22 |
2 цифры | Запятая | Точка | 34 региона |
1’000’000.22 |
3 цифры | Правая одинарная кавычка | Точка | 10 регионов |
1 000 000.22 |
3 цифры | Неразрывный пробел | Точка | 10 регионов |
1’000’000,22 |
3 цифры | Правая одинарная кавычка | Запятая | 2 региона |
Знаки минуса
Существует два различных символа для обозначения знака минуса. Дефис используется в большинстве регионов, но также используется более длинный символ — знак минуса:
- Дефис-минус (-): Пример -
-1Юникод U+002D - Знак минуса (−): Пример -
−1Юникод U+2212
Системы нумерации
Числа от 0 до 9 часто называют арабскими цифрами, латинскими цифрами или западными цифрами.
Примечание: Термин арабские цифры может быть запутанным, поскольку, хотя арабский мир изобрел эту систему чисел, они больше не используют её в этой форме.
Вот пример распространённых систем нумерации:
| Ключ | Название | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| latn | Западная | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| arab | Арабско-индийская | ٠ | ١ | ٢ | ٣ | ٤ | ٥ | ٦ | ٧ | ٨ | ٩ |
| arabext | Расширенная арабско-индийская | ۰ | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ | ۸ | ۹ |
| beng | Бенгальская | ০ | ১ | ২ | ৩ | ৪ | ৫ | ৬ | ৭ | ৮ | ৯ |
| deva | Деванагари | ० | १ | २ | ३ | ४ | ५ | ६ | ७ | ८ | ९ |
Все системы счисления
Полный список всех систем счисления и информация о том, какие из них полностью поддерживаются браузерами.
Ниже полный список систем счисления, поддерживаемый Международными компонентами для Юникода.
Это системы счисления, символы которых полностью поддерживаются «из коробки»:
| Ключ | Название | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| adlm | Адлам | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ahom | Ахом | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| arab | Арабские-Индици | ٠ | ١ | ٢ | ٣ | ٤ | ٥ | ٦ | ٧ | ٨ | ٩ |
| arabext | Расширенные арабские-Индици | ۰ | ۱ | ۲ | ۳ | ۴ | ۵ | ۶ | ۷ | ۸ | ۹ |
| bali | Бали | ᭐ | ᭑ | ᭒ | ᭓ | ᭔ | ᭕ | ᭖ | ᭗ | ᭘ | ᭙ |
| beng | Бенгальские | ০ | ১ | ২ | ৩ | ৪ | ৫ | ৬ | ৭ | ৮ | ৯ |
| brah | Брахми | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| cakm | Чакма | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| cham | Чам | ꩐ | ꩑ | ꩒ | ꩓ | ꩔ | ꩕ | ꩖ | ꩗ | ꩘ | ꩙ |
| deva | Деванагари | ० | १ | २ | ३ | ४ | ५ | ६ | ७ | ८ | ९ |
| fullwide | Полная ширина | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| gonm | Масарам Гонди | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| gujr | Гуджарати | ૦ | ૧ | ૨ | ૩ | ૪ | ૫ | ૬ | ૭ | ૮ | ૯ |
| guru | Гурмукхи | ੦ | ੧ | ੨ | ੩ | ੪ | ੫ | ੬ | ੭ | ੮ | ੯ |
| hanidec | Китайская десятичная | 〇 | 一 | 二 | 三 | 四 | 五 | 六 | 七 | 八 | 九 |
| hmnp | Ньякенг Пуачу Хмонг | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| java | Яванский | ꧐ | ꧑ | ꧒ | ꧓ | ꧔ | ꧕ | ꧖ | ꧗ | ꧘ | ꧙ |
| kali | Кая Ли | ꤀ | ꤁ | ꤂ | ꤃ | ꤄ | ꤅ | ꤆ | ꤇ | ꤈ | ꤉ |
| khmr | Кхмерские | ០ | ១ | ២ | ៣ | ៤ | ៥ | ៦ | ៧ | ៨ | ៩ |
| knda | Каннада | ೦ | ೧ | ೨ | ೩ | ೪ | ೫ | ೬ | ೭ | ೮ | ೯ |
| laoo | Лаосские | ໐ | ໑ | ໒ | ໓ | ໔ | ໕ | ໖ | ໗ | ໘ | ໙ |
| latn | Западные | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| lepc | Лепча | ᱀ | ᱁ | ᱂ | ᱃ | ᱄ | ᱅ | ᱆ | ᱇ | ᱈ | ᱉ |
| limb | Лимбу | ᥆ | ᥇ | ᥈ | ᥉ | ᥊ | ᥋ | ᥌ | ᥍ | ᥎ | ᥏ |
| mathbold | Математическая жирная | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mathdbl | Математическая двойная | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mathmono | Математическая моноширинная | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mathsanb | Математическая без засечек жирная | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mathsans | Математическая без засечек | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mlym | Малаялам | ൦ | ൧ | ൨ | ൩ | ൪ | ൫ | ൬ | ൭ | ൮ | ൯ |
| modi | Моди | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mong | Монгольские | ᠐ | ᠑ | ᠒ | ᠓ | ᠔ | ᠕ | ᠖ | ᠗ | ᠘ | ᠙ |
| mroo | Мро | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mtei | Мейтей Майек | ꯰ | ꯱ | ꯲ | ꯳ | ꯴ | ꯵ | ꯶ | ꯷ | ꯸ | ꯹ |
| mymr | Мьянманские | ၀ | ၁ | ၂ | ၃ | ၄ | ၅ | ၆ | ၇ | ၈ | ၉ |
| mymrshan | Мьянманские шан | ႐ | ႑ | ႒ | ႓ | ႔ | ႕ | ႖ | ႗ | ႘ | ႙ |
| mymrtlng | Мьянманские Тай Лаинг | ꧰ | ꧱ | ꧲ | ꧳ | ꧴ | ꧵ | ꧶ | ꧷ | ꧸ | ꧹ |
| nkoo | Н'ко | ߀ | ߁ | ߂ | ߃ | ߄ | ߅ | ߆ | ߇ | ߈ | ߉ |
| olck | Ол Чики | ᱐ | ᱑ | ᱒ | ᱓ | ᱔ | ᱕ | ᱖ | ᱗ | ᱘ | ᱙ |
| orya | Ория | ୦ | ୧ | ୨ | ୩ | ୪ | ୫ | ୬ | ୭ | ୮ | ୯ |
| osma | Османья | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| rohg | Ханифи рохинджа | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| saur | Саураштра | ꣐ | ꣑ | ꣒ | ꣓ | ꣔ | ꣕ | ꣖ | ꣗ | ꣘ | ꣙ |
| shrd | Шарада | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| sind | Худавади | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| sinh | Сингальские лит | ෦ | ෧ | ෨ | ෩ | ෪ | ෫ | ෬ | ෭ | ෮ | ෯ |
| sora | Сора сомпенг | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| sund | Сунданские | ᮰ | ᮱ | ᮲ | ᮳ | ᮴ | ᮵ | ᮶ | ᮷ | ᮸ | ᮹ |
| takr | Такри | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| talu | Новый тай луе | ᧐ | ᧑ | ᧒ | ᧓ | ᧔ | ᧕ | ᧖ | ᧗ | ᧘ | ᧙ |
| tamldec | Тамильские | ௦ | ௧ | ௨ | ௩ | ௪ | ௫ | ௬ | ௭ | ௮ | ௯ |
| telu | Телугу | ౦ | ౧ | ౨ | ౩ | ౪ | ౫ | ౬ | ౭ | ౮ | ౯ |
| thai | Тайские | ๐ | ๑ | ๒ | ๓ | ๔ | ๕ | ๖ | ๗ | ๘ | ๙ |
| tibt | Тибетские | ༠ | ༡ | ༢ | ༣ | ༤ | ༥ | ༦ | ༧ | ༨ | ༩ |
| tirh | Тирхута | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| vaii | Ваи | ꘠ | ꘡ | ꘢ | ꘣ | ꘤ | ꘥ | ꘦ | ꘧ | ꘨ | ꘩ |
| wara | Варанг Кшити | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| wcho | Ванчо | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Системы счисления, требующие пользовательских шрифтов
Следующие системы счисления редки, и для отображения символов вам потребуются специальные шрифты. Для каждой из этих систем чисел есть шрифт _Noto_.
Пример того, насколько эти системы редки: традиционный шрифт Гунджала Гонди был почти забыт, и очень мало людей все еще умеют его читать. Исследователи зафиксировали этот шрифт в 2014 году, и его поддержка появилась в 2018 году, хотя большинство народа гонди даже не знают о его существовании.
| Ключ | Название |
|---|---|
| bhks | Бхайксуки |
| diak | Дивес Акуру |
| gong | Гунджала Гонди |
| hmng | Пахау Хмонг |
| kawi | Кави |
| lana | Тай Тхам Хора |
| lanatham | Тай Тхам Тхам |
| nagm | Наг Мундари |
| newa | Невари |
| segment | Сегментированная |
| tnsa | Тангса |
Алгоритмические системы
Эти системы счисления не являются десятичными, а вычисляются по формуле. Наиболее узнаваемый пример — римские цифры.
Вот полный список. Эти системы, как правило, не используются в современных приложениях или браузерах.
| Ключ | Название |
|---|---|
| armn | Армянские |
| armnlow | Армянские строчные |
| cyrl | Кириллица |
| ethi | Эфиопские |
| geor | Грузинские |
| grek | Греческие |
| greklow | Греческие строчные |
| hanidays | Китайский календарь (дни месяца) |
| hans | Упрощенные китайские |
| hansfin | Упрощенные китайские финансовые |
| hant | Традиционные китайские |
| hantfin | Традиционные китайские финансовые |
| hebr | Еврейские |
| jpan | Японские |
| jpanfin | Японские финансовые |
| jpanyear | Японский календарь (Ганнен) |
| roman | Римские |
| romanlow | Римские строчные |
| taml | Традиционные тамильские |
Все локали
Последнее обновление 10 марта 2023 г.
Полный список локалей, поддерживаемых компонентами для Unicode. Для каждой локали указаны шаблон группировки, символ группировки, десятичный символ и система счисления.
Некоторые из этих свойств могут отличаться в разных средах выполнения javascript. Например, система счисления и шаблон группировки могут различаться между nodejs и chrome. Этот список был сгенерирован с использованием Node v18.
| Код | Название | Шаблон группировки | Символ группировки | Десятичный символ | Система счисления |
|---|---|---|---|---|---|
| af | Afrikaans | 3 digit | No-Break Space | Comma | latn |
| af-NA | Afrikaans (Namibia) | 3 digit | No-Break Space | Comma | latn |
| af-ZA | Afrikaans (South Africa) | 3 digit | No-Break Space | Comma | latn |
| agq | Aghem | 3 digit | No-Break Space | Comma | latn |
| agq-CM | Aghem (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| ak | Akan | 3 digit | Comma | Period | latn |
| ak-GH | Akan (Ghana) | 3 digit | Comma | Period | latn |
| am | Amharic | 3 digit | Comma | Period | latn |
| am-ET | Amharic (Ethiopia) | 3 digit | Comma | Period | latn |
| ar | Arabic | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-001 | Arabic (World) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-AE | Arabic (United Arab Emirates) | 3 digit | Comma | Period | latn |
| ar-BH | Arabic (Bahrain) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-DJ | Arabic (Djibouti) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-DZ | Arabic (Algeria) | 3 digit | Period | Comma | latn |
| ar-EG | Arabic (Egypt) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-EH | Arabic (Western Sahara) | 3 digit | Comma | Period | latn |
| ar-ER | Arabic (Eritrea) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-IL | Arabic (Israel) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-IQ | Arabic (Iraq) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-JO | Arabic (Jordan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-KM | Arabic (Comoros) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-KW | Arabic (Kuwait) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-LB | Arabic (Lebanon) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-LY | Arabic (Libya) | 3 digit | Period | Comma | latn |
| ar-MA | Arabic (Morocco) | 3 digit | Period | Comma | latn |
| ar-MR | Arabic (Mauritania) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-OM | Arabic (Oman) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-PS | Arabic (Palestinian Territories) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-QA | Arabic (Qatar) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-SA | Arabic (Saudi Arabia) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-SD | Arabic (Sudan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-SO | Arabic (Somalia) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-SS | Arabic (South Sudan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-SY | Arabic (Syria) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-TD | Arabic (Chad) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ar-TN | Arabic (Tunisia) | 3 digit | Period | Comma | latn |
| ar-YE | Arabic (Yemen) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| as | Assamese | 2 digit | Comma | Period | beng |
| as-IN | Assamese (India) | 2 digit | Comma | Period | beng |
| asa | Asu | 3 digit | Comma | Period | latn |
| asa-TZ | Asu (Tanzania) | 3 digit | Comma | Period | latn |
| ast | Asturian | 3 digit | Period | Comma | latn |
| ast-ES | Asturian (Spain) | 3 digit | Period | Comma | latn |
| az | Azerbaijani | 3 digit | Period | Comma | latn |
| az-Cyrl | Azerbaijani (Cyrillic) | 3 digit | Period | Comma | latn |
| az-Cyrl-AZ | Azerbaijani (Cyrillic, Azerbaijan) | 3 digit | Period | Comma | latn |
| az-Latn | Azerbaijani (Latin) | 3 digit | Period | Comma | latn |
| az-Latn-AZ | Azerbaijani (Latin, Azerbaijan) | 3 digit | Period | Comma | latn |
| bas | Basaa | 3 digit | No-Break Space | Comma | latn |
| bas-CM | Basaa (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| be | Belarusian | 3 digit | No-Break Space | Comma | latn |
| be-BY | Belarusian (Belarus) | 3 digit | No-Break Space | Comma | latn |
| bem | Bemba | 3 digit | Comma | Period | latn |
| bem-ZM | Bemba (Zambia) | 3 digit | Comma | Period | latn |
| bez | Bena | 3 digit | Comma | Period | latn |
| bez-TZ | Bena (Tanzania) | 3 digit | Comma | Period | latn |
| bg | Bulgarian | 3 digit | No-Break Space | Comma | latn |
| bg-BG | Bulgarian (Bulgaria) | 3 digit | No-Break Space | Comma | latn |
| bm | Bambara | 3 digit | Comma | Period | latn |
| bm-ML | Bambara (Mali) | 3 digit | Comma | Period | latn |
| bn | Bangla | 2 digit | Comma | Period | beng |
| bn-BD | Bangla (Bangladesh) | 2 digit | Comma | Period | beng |
| bn-IN | Bangla (India) | 2 digit | Comma | Period | beng |
| bo | Tibetan | 3 digit | Comma | Period | latn |
| bo-CN | Tibetan (China) | 3 digit | Comma | Period | latn |
| bo-IN | Tibetan (India) | 3 digit | Comma | Period | latn |
| br | Breton | 3 digit | No-Break Space | Comma | latn |
| br-FR | Breton (France) | 3 digit | No-Break Space | Comma | latn |
| brx | Bodo | 2 digit | Comma | Period | latn |
| brx-IN | Bodo (India) | 2 digit | Comma | Period | latn |
| bs | Bosnian | 3 digit | Period | Comma | latn |
| bs-Cyrl | Bosnian (Cyrillic) | 3 digit | Period | Comma | latn |
| bs-Cyrl-BA | Bosnian (Cyrillic, Bosnia & Herzegovina) | 3 digit | Period | Comma | latn |
| bs-Latn | Bosnian (Latin) | 3 digit | Period | Comma | latn |
| bs-Latn-BA | Bosnian (Latin, Bosnia & Herzegovina) | 3 digit | Period | Comma | latn |
| ca | Catalan | 3 digit | Period | Comma | latn |
| ca-AD | Catalan (Andorra) | 3 digit | Period | Comma | latn |
| ca-ES | Catalan (Spain) | 3 digit | Period | Comma | latn |
| ca-FR | Catalan (France) | 3 digit | Period | Comma | latn |
| ca-IT | Catalan (Italy) | 3 digit | Period | Comma | latn |
| ccp | Chakma | 2 digit | Comma | Period | cakm |
| ccp-BD | Chakma (Bangladesh) | 2 digit | Comma | Period | cakm |
| ccp-IN | Chakma (India) | 2 digit | Comma | Period | cakm |
| ce | Chechen | 3 digit | Comma | Period | latn |
| ce-RU | Chechen (Russia) | 3 digit | Comma | Period | latn |
| cgg | Chiga | 3 digit | Comma | Period | latn |
| cgg-UG | Chiga (Uganda) | 3 digit | Comma | Period | latn |
| chr | Cherokee | 3 digit | Comma | Period | latn |
| chr-US | Cherokee (United States) | 3 digit | Comma | Period | latn |
| ckb | Central Kurdish | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ckb-IQ | Central Kurdish (Iraq) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| ckb-IR | Central Kurdish (Iran) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arab |
| cs | Czech | 3 digit | No-Break Space | Comma | latn |
| cs-CZ | Czech (Czechia) | 3 digit | No-Break Space | Comma | latn |
| cy | Welsh | 3 digit | Comma | Period | latn |
| cy-GB | Welsh (United Kingdom) | 3 digit | Comma | Period | latn |
| da | Danish | 3 digit | Period | Comma | latn |
| da-DK | Danish (Denmark) | 3 digit | Period | Comma | latn |
| da-GL | Danish (Greenland) | 3 digit | Period | Comma | latn |
| dav | Taita | 3 digit | Comma | Period | latn |
| dav-KE | Taita (Kenya) | 3 digit | Comma | Period | latn |
| de | German | 3 digit | Period | Comma | latn |
| de-AT | German (Austria) | 3 digit | No-Break Space | Comma | latn |
| de-BE | German (Belgium) | 3 digit | Period | Comma | latn |
| de-CH | German (Switzerland) | 3 digit | Right Single Quotation Mark | Period | latn |
| de-DE | German (Germany) | 3 digit | Period | Comma | latn |
| de-IT | German (Italy) | 3 digit | Period | Comma | latn |
| de-LI | German (Liechtenstein) | 3 digit | Right Single Quotation Mark | Period | latn |
| de-LU | German (Luxembourg) | 3 digit | Period | Comma | latn |
| dje | Zarma | 3 digit | No-Break Space | Period | latn |
| dje-NE | Zarma (Niger) | 3 digit | No-Break Space | Period | latn |
| dsb | Lower Sorbian | 3 digit | Period | Comma | latn |
| dsb-DE | Lower Sorbian (Germany) | 3 digit | Period | Comma | latn |
| dua | Duala | 3 digit | No-Break Space | Comma | latn |
| dua-CM | Duala (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| dyo | Jola-Fonyi | 3 digit | No-Break Space | Comma | latn |
| dyo-SN | Jola-Fonyi (Senegal) | 3 digit | No-Break Space | Comma | latn |
| dz | Dzongkha | 2 digit | Comma | Period | tibt |
| dz-BT | Dzongkha (Bhutan) | 2 digit | Comma | Period | tibt |
| ebu | Embu | 3 digit | Comma | Period | latn |
| ebu-KE | Embu (Kenya) | 3 digit | Comma | Period | latn |
| ee | Ewe | 3 digit | Comma | Period | latn |
| ee-GH | Ewe (Ghana) | 3 digit | Comma | Period | latn |
| ee-TG | Ewe (Togo) | 3 digit | Comma | Period | latn |
| el | Greek | 3 digit | Period | Comma | latn |
| el-CY | Greek (Cyprus) | 3 digit | Period | Comma | latn |
| el-GR | Greek (Greece) | 3 digit | Period | Comma | latn |
| en | English | 3 digit | Comma | Period | latn |
| en-001 | English (World) | 3 digit | Comma | Period | latn |
| en-150 | English (Europe) | 3 digit | Comma | Period | latn |
| en-AG | English (Antigua & Barbuda) | 3 digit | Comma | Period | latn |
| en-AI | English (Anguilla) | 3 digit | Comma | Period | latn |
| en-AS | English (American Samoa) | 3 digit | Comma | Period | latn |
| en-AT | English (Austria) | 3 digit | Period | Comma | latn |
| en-AU | English (Australia) | 3 digit | Comma | Period | latn |
| en-BB | English (Barbados) | 3 digit | Comma | Period | latn |
| en-BE | English (Belgium) | 3 digit | Period | Comma | latn |
| en-BI | English (Burundi) | 3 digit | Comma | Period | latn |
| en-BM | English (Bermuda) | 3 digit | Comma | Period | latn |
| en-BS | English (Bahamas) | 3 digit | Comma | Period | latn |
| en-BW | English (Botswana) | 3 digit | Comma | Period | latn |
| en-BZ | English (Belize) | 3 digit | Comma | Period | latn |
| en-CA | English (Canada) | 3 digit | Comma | Period | latn |
| en-CC | English (Cocos [Keeling] Islands) | 3 digit | Comma | Period | latn |
| en-CH | English (Switzerland) | 3 digit | Right Single Quotation Mark | Period | latn |
| en-CK | English (Cook Islands) | 3 digit | Comma | Period | latn |
| en-CM | English (Cameroon) | 3 digit | Comma | Period | latn |
| en-CX | English (Christmas Island) | 3 digit | Comma | Period | latn |
| en-CY | English (Cyprus) | 3 digit | Comma | Period | latn |
| en-DE | English (Germany) | 3 digit | Period | Comma | latn |
| en-DG | English (Diego Garcia) | 3 digit | Comma | Period | latn |
| en-DK | English (Denmark) | 3 digit | Period | Comma | latn |
| en-DM | English (Dominica) | 3 digit | Comma | Period | latn |
| en-ER | English (Eritrea) | 3 digit | Comma | Period | latn |
| en-FI | English (Finland) | 3 digit | No-Break Space | Comma | latn |
| en-FJ | English (Fiji) | 3 digit | Comma | Period | latn |
| en-FK | English (Falkland Islands) | 3 digit | Comma | Period | latn |
| en-FM | English (Micronesia) | 3 digit | Comma | Period | latn |
| en-GB | English (United Kingdom) | 3 digit | Comma | Period | latn |
| en-GD | English (Grenada) | 3 digit | Comma | Period | latn |
| en-GG | English (Guernsey) | 3 digit | Comma | Period | latn |
| en-GH | English (Ghana) | 3 digit | Comma | Period | latn |
| en-GI | English (Gibraltar) | 3 digit | Comma | Period | latn |
| en-GM | English (Gambia) | 3 digit | Comma | Period | latn |
| en-GU | English (Guam) | 3 digit | Comma | Period | latn |
| en-GY | English (Guyana) | 3 digit | Comma | Period | latn |
| en-HK | English (Hong Kong SAR China) | 3 digit | Comma | Period | latn |
| en-IE | English (Ireland) | 3 digit | Comma | Period | latn |
| en-IL | English (Israel) | 3 digit | Comma | Period | latn |
| en-IM | English (Isle of Man) | 3 digit | Comma | Period | latn |
| en-IN | English (India) | 2 digit | Comma | Period | latn |
| en-IO | English (British Indian Ocean Territory) | 3 digit | Comma | Period | latn |
| en-JE | English (Jersey) | 3 digit | Comma | Period | latn |
| en-JM | English (Jamaica) | 3 digit | Comma | Period | latn |
| en-KE | English (Kenya) | 3 digit | Comma | Period | latn |
| en-KI | English (Kiribati) | 3 digit | Comma | Period | latn |
| en-KN | English (St. Kitts & Nevis) | 3 digit | Comma | Period | latn |
| en-KY | English (Cayman Islands) | 3 digit | Comma | Period | latn |
| en-LC | English (St. Lucia) | 3 digit | Comma | Period | latn |
| en-LR | English (Liberia) | 3 digit | Comma | Period | latn |
| en-LS | English (Lesotho) | 3 digit | Comma | Period | latn |
| en-MG | English (Madagascar) | 3 digit | Comma | Period | latn |
| en-MH | English (Marshall Islands) | 3 digit | Comma | Period | latn |
| en-MO | English (Macau SAR China) | 3 digit | Comma | Period | latn |
| en-MP | English (Northern Mariana Islands) | 3 digit | Comma | Period | latn |
| en-MS | English (Montserrat) | 3 digit | Comma | Period | latn |
| en-MT | English (Malta) | 3 digit | Comma | Period | latn |
| en-MU | English (Mauritius) | 3 digit | Comma | Period | latn |
| en-MW | English (Malawi) | 3 digit | Comma | Period | latn |
| en-MY | English (Malaysia) | 3 digit | Comma | Period | latn |
| en-NA | English (Namibia) | 3 digit | Comma | Period | latn |
| en-NF | English (Norfolk Island) | 3 digit | Comma | Period | latn |
| en-NG | English (Nigeria) | 3 digit | Comma | Period | latn |
| en-NL | English (Netherlands) | 3 digit | Period | Comma | latn |
| en-NR | English (Nauru) | 3 digit | Comma | Period | latn |
| en-NU | English (Niue) | 3 digit | Comma | Period | latn |
| en-NZ | English (New Zealand) | 3 digit | Comma | Period | latn |
| en-PG | English (Papua New Guinea) | 3 digit | Comma | Period | latn |
| en-PH | English (Philippines) | 3 digit | Comma | Period | latn |
| en-PK | English (Pakistan) | 3 digit | Comma | Period | latn |
| en-PN | English (Pitcairn Islands) | 3 digit | Comma | Period | latn |
| en-PR | English (Puerto Rico) | 3 digit | Comma | Period | latn |
| en-PW | English (Palau) | 3 digit | Comma | Period | latn |
| en-RW | English (Rwanda) | 3 digit | Comma | Period | latn |
| en-SB | English (Solomon Islands) | 3 digit | Comma | Period | latn |
| en-SC | English (Seychelles) | 3 digit | Comma | Period | latn |
| en-SD | English (Sudan) | 3 digit | Comma | Period | latn |
| en-SE | English (Sweden) | 3 digit | No-Break Space | Comma | latn |
| en-SG | English (Singapore) | 3 digit | Comma | Period | latn |
| en-SH | English (St. Helena) | 3 digit | Comma | Period | latn |
| en-SI | English (Slovenia) | 3 digit | Period | Comma | latn |
| en-SL | English (Sierra Leone) | 3 digit | Comma | Period | latn |
| en-SS | English (South Sudan) | 3 digit | Comma | Period | latn |
| en-SX | English (Sint Maarten) | 3 digit | Comma | Period | latn |
| en-SZ | English (Swaziland) | 3 digit | Comma | Period | latn |
| en-TC | English (Turks & Caicos Islands) | 3 digit | Comma | Period | latn |
| en-TK | English (Tokelau) | 3 digit | Comma | Period | latn |
| en-TO | English (Tonga) | 3 digit | Comma | Period | latn |
| en-TT | English (Trinidad & Tobago) | 3 digit | Comma | Period | latn |
| en-TV | English (Tuvalu) | 3 digit | Comma | Period | latn |
| en-TZ | English (Tanzania) | 3 digit | Comma | Period | latn |
| en-UG | English (Uganda) | 3 digit | Comma | Period | latn |
| en-UM | English (U.S. Outlying Islands) | 3 digit | Comma | Period | latn |
| en-US | English (United States) | 3 digit | Comma | Period | latn |
| en-VC | English (St. Vincent & Grenadines) | 3 digit | Comma | Period | latn |
| en-VG | English (British Virgin Islands) | 3 digit | Comma | Period | latn |
| en-VI | English (U.S. Virgin Islands) | 3 digit | Comma | Period | latn |
| en-VU | English (Vanuatu) | 3 digit | Comma | Period | latn |
| en-WS | English (Samoa) | 3 digit | Comma | Period | latn |
| en-ZA | English (South Africa) | 3 digit | No-Break Space | Comma | latn |
| en-ZM | English (Zambia) | 3 digit | Comma | Period | latn |
| en-ZW | English (Zimbabwe) | 3 digit | Comma | Period | latn |
| eo | Esperanto | 3 digit | No-Break Space | Comma | latn |
| es | Spanish | 3 digit | Period | Comma | latn |
| es-419 | Spanish (Latin America) | 3 digit | Comma | Period | latn |
| es-AR | Spanish (Argentina) | 3 digit | Period | Comma | latn |
| es-BO | Spanish (Bolivia) | 3 digit | Period | Comma | latn |
| es-BR | Spanish (Brazil) | 3 digit | Comma | Period | latn |
| es-BZ | Spanish (Belize) | 3 digit | Comma | Period | latn |
| es-CL | Spanish (Chile) | 3 digit | Period | Comma | latn |
| es-CO | Spanish (Colombia) | 3 digit | Period | Comma | latn |
| es-CR | Spanish (Costa Rica) | 3 digit | No-Break Space | Comma | latn |
| es-CU | Spanish (Cuba) | 3 digit | Comma | Period | latn |
| es-DO | Spanish (Dominican Republic) | 3 digit | Comma | Period | latn |
| es-EA | Spanish (Ceuta & Melilla) | 3 digit | Period | Comma | latn |
| es-EC | Spanish (Ecuador) | 3 digit | Period | Comma | latn |
| es-ES | Spanish (Spain) | 3 digit | Period | Comma | latn |
| es-GQ | Spanish (Equatorial Guinea) | 3 digit | Period | Comma | latn |
| es-GT | Spanish (Guatemala) | 3 digit | Comma | Period | latn |
| es-HN | Spanish (Honduras) | 3 digit | Comma | Period | latn |
| es-IC | Spanish (Canary Islands) | 3 digit | Period | Comma | latn |
| es-MX | Spanish (Mexico) | 3 digit | Comma | Period | latn |
| es-NI | Spanish (Nicaragua) | 3 digit | Comma | Period | latn |
| es-PA | Spanish (Panama) | 3 digit | Comma | Period | latn |
| es-PE | Spanish (Peru) | 3 digit | Comma | Period | latn |
| es-PH | Spanish (Philippines) | 3 digit | Period | Comma | latn |
| es-PR | Spanish (Puerto Rico) | 3 digit | Comma | Period | latn |
| es-PY | Spanish (Paraguay) | 3 digit | Period | Comma | latn |
| es-SV | Spanish (El Salvador) | 3 digit | Comma | Period | latn |
| es-US | Spanish (United States) | 3 digit | Comma | Period | latn |
| es-UY | Spanish (Uruguay) | 3 digit | Period | Comma | latn |
| es-VE | Spanish (Venezuela) | 3 digit | Period | Comma | latn |
| et | Estonian | 3 digit | No-Break Space | Comma | latn |
| et-EE | Estonian (Estonia) | 3 digit | No-Break Space | Comma | latn |
| eu | Basque | 3 digit | Period | Comma | latn |
| eu-ES | Basque (Spain) | 3 digit | Period | Comma | latn |
| ewo | Ewondo | 3 digit | No-Break Space | Comma | latn |
| ewo-CM | Ewondo (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| fa | Persian | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| fa-AF | Persian (Afghanistan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| fa-IR | Persian (Iran) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| ff | Fulah | 3 digit | No-Break Space | Comma | latn |
| ff-CM | Fulah (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| ff-GN | Fulah (Guinea) | 3 digit | No-Break Space | Comma | latn |
| ff-MR | Fulah (Mauritania) | 3 digit | No-Break Space | Comma | latn |
| ff-SN | Fulah (Senegal) | 3 digit | No-Break Space | Comma | latn |
| fi | Finnish | 3 digit | No-Break Space | Comma | latn |
| fi-FI | Finnish (Finland) | 3 digit | No-Break Space | Comma | latn |
| fil | Filipino | 3 digit | Comma | Period | latn |
| fil-PH | Filipino (Philippines) | 3 digit | Comma | Period | latn |
| fo | Faroese | 3 digit | Period | Comma | latn |
| fo-DK | Faroese (Denmark) | 3 digit | Period | Comma | latn |
| fo-FO | Faroese (Faroe Islands) | 3 digit | Period | Comma | latn |
| fr | French | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-BE | French (Belgium) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-BF | French (Burkina Faso) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-BI | French (Burundi) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-BJ | French (Benin) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-BL | French (St. Barthélemy) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-CA | French (Canada) | 3 digit | No-Break Space | Comma | latn |
| fr-CD | French (Congo - Kinshasa) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-CF | French (Central African Republic) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-CG | French (Congo - Brazzaville) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-CH | French (Switzerland) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-CI | French (Côte d’Ivoire) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-CM | French (Cameroon) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-DJ | French (Djibouti) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-DZ | French (Algeria) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-FR | French (France) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-GA | French (Gabon) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-GF | French (French Guiana) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-GN | French (Guinea) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-GP | French (Guadeloupe) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-GQ | French (Equatorial Guinea) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-HT | French (Haiti) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-KM | French (Comoros) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-LU | French (Luxembourg) | 3 digit | Period | Comma | latn |
| fr-MA | French (Morocco) | 3 digit | Period | Comma | latn |
| fr-MC | French (Monaco) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-MF | French (St. Martin) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-MG | French (Madagascar) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-ML | French (Mali) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-MQ | French (Martinique) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-MR | French (Mauritania) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-MU | French (Mauritius) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-NC | French (New Caledonia) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-NE | French (Niger) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-PF | French (French Polynesia) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-PM | French (St. Pierre & Miquelon) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-RE | French (Réunion) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-RW | French (Rwanda) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-SC | French (Seychelles) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-SN | French (Senegal) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-SY | French (Syria) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-TD | French (Chad) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-TG | French (Togo) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-TN | French (Tunisia) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-VU | French (Vanuatu) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-WF | French (Wallis & Futuna) | 3 digit | Narrow No-Break Space | Comma | latn |
| fr-YT | French (Mayotte) | 3 digit | Narrow No-Break Space | Comma | latn |
| fur | Friulian | 3 digit | Period | Comma | latn |
| fur-IT | Friulian (Italy) | 3 digit | Period | Comma | latn |
| fy | Western Frisian | 3 digit | Period | Comma | latn |
| fy-NL | Western Frisian (Netherlands) | 3 digit | Period | Comma | latn |
| ga | Irish | 3 digit | Comma | Period | latn |
| ga-IE | Irish (Ireland) | 3 digit | Comma | Period | latn |
| gd | Scottish Gaelic | 3 digit | Comma | Period | latn |
| gd-GB | Scottish Gaelic (United Kingdom) | 3 digit | Comma | Period | latn |
| gl | Galician | 3 digit | Period | Comma | latn |
| gl-ES | Galician (Spain) | 3 digit | Period | Comma | latn |
| gsw | Swiss German | 3 digit | Right Single Quotation Mark | Period | latn |
| gsw-CH | Swiss German (Switzerland) | 3 digit | Right Single Quotation Mark | Period | latn |
| gsw-FR | Swiss German (France) | 3 digit | Right Single Quotation Mark | Period | latn |
| gsw-LI | Swiss German (Liechtenstein) | 3 digit | Right Single Quotation Mark | Period | latn |
| gu | Gujarati | 2 digit | Comma | Period | latn |
| gu-IN | Gujarati (India) | 2 digit | Comma | Period | latn |
| guz | Gusii | 3 digit | Comma | Period | latn |
| guz-KE | Gusii (Kenya) | 3 digit | Comma | Period | latn |
| gv | Manx | 3 digit | Comma | Period | latn |
| gv-IM | Manx (Isle of Man) | 3 digit | Comma | Period | latn |
| ha | Hausa | 3 digit | Comma | Period | latn |
| ha-GH | Hausa (Ghana) | 3 digit | Comma | Period | latn |
| ha-NE | Hausa (Niger) | 3 digit | Comma | Period | latn |
| ha-NG | Hausa (Nigeria) | 3 digit | Comma | Period | latn |
| haw | Hawaiian | 3 digit | Comma | Period | latn |
| haw-US | Hawaiian (United States) | 3 digit | Comma | Period | latn |
| he | Hebrew | 3 digit | Comma | Period | latn |
| he-IL | Hebrew (Israel) | 3 digit | Comma | Period | latn |
| hi | Hindi | 2 digit | Comma | Period | latn |
| hi-IN | Hindi (India) | 2 digit | Comma | Period | latn |
| hr | Croatian | 3 digit | Period | Comma | latn |
| hr-BA | Croatian (Bosnia & Herzegovina) | 3 digit | Period | Comma | latn |
| hr-HR | Croatian (Croatia) | 3 digit | Period | Comma | latn |
| hsb | Upper Sorbian | 3 digit | Period | Comma | latn |
| hsb-DE | Upper Sorbian (Germany) | 3 digit | Period | Comma | latn |
| hu | Hungarian | 3 digit | No-Break Space | Comma | latn |
| hu-HU | Hungarian (Hungary) | 3 digit | No-Break Space | Comma | latn |
| hy | Armenian | 3 digit | No-Break Space | Comma | latn |
| hy-AM | Armenian (Armenia) | 3 digit | No-Break Space | Comma | latn |
| id | Indonesian | 3 digit | Period | Comma | latn |
| id-ID | Indonesian (Indonesia) | 3 digit | Period | Comma | latn |
| ig | Igbo | 3 digit | Comma | Period | latn |
| ig-NG | Igbo (Nigeria) | 3 digit | Comma | Period | latn |
| ii | Sichuan Yi | 3 digit | Comma | Period | latn |
| ii-CN | Sichuan Yi (China) | 3 digit | Comma | Period | latn |
| is | Icelandic | 3 digit | Period | Comma | latn |
| is-IS | Icelandic (Iceland) | 3 digit | Period | Comma | latn |
| it | Italian | 3 digit | Period | Comma | latn |
| it-CH | Italian (Switzerland) | 3 digit | Right Single Quotation Mark | Period | latn |
| it-IT | Italian (Italy) | 3 digit | Period | Comma | latn |
| it-SM | Italian (San Marino) | 3 digit | Period | Comma | latn |
| it-VA | Italian (Vatican City) | 3 digit | Period | Comma | latn |
| ja | Japanese | 3 digit | Comma | Period | latn |
| ja-JP | Japanese (Japan) | 3 digit | Comma | Period | latn |
| jgo | Ngomba | 3 digit | Period | Comma | latn |
| jgo-CM | Ngomba (Cameroon) | 3 digit | Period | Comma | latn |
| jmc | Machame | 3 digit | Comma | Period | latn |
| jmc-TZ | Machame (Tanzania) | 3 digit | Comma | Period | latn |
| ka | Georgian | 3 digit | No-Break Space | Comma | latn |
| ka-GE | Georgian (Georgia) | 3 digit | No-Break Space | Comma | latn |
| kab | Kabyle | 3 digit | No-Break Space | Comma | latn |
| kab-DZ | Kabyle (Algeria) | 3 digit | No-Break Space | Comma | latn |
| kam | Kamba | 3 digit | Comma | Period | latn |
| kam-KE | Kamba (Kenya) | 3 digit | Comma | Period | latn |
| kde | Makonde | 3 digit | Comma | Period | latn |
| kde-TZ | Makonde (Tanzania) | 3 digit | Comma | Period | latn |
| kea | Kabuverdianu | 3 digit | No-Break Space | Comma | latn |
| kea-CV | Kabuverdianu (Cape Verde) | 3 digit | No-Break Space | Comma | latn |
| khq | Koyra Chiini | 3 digit | No-Break Space | Period | latn |
| khq-ML | Koyra Chiini (Mali) | 3 digit | No-Break Space | Period | latn |
| ki | Kikuyu | 3 digit | Comma | Period | latn |
| ki-KE | Kikuyu (Kenya) | 3 digit | Comma | Period | latn |
| kk | Kazakh | 3 digit | No-Break Space | Comma | latn |
| kk-KZ | Kazakh (Kazakhstan) | 3 digit | No-Break Space | Comma | latn |
| kkj | Kako | 3 digit | Period | Comma | latn |
| kkj-CM | Kako (Cameroon) | 3 digit | Period | Comma | latn |
| kl | Kalaallisut | 3 digit | Period | Comma | latn |
| kl-GL | Kalaallisut (Greenland) | 3 digit | Period | Comma | latn |
| kln | Kalenjin | 3 digit | Comma | Period | latn |
| kln-KE | Kalenjin (Kenya) | 3 digit | Comma | Period | latn |
| km | Khmer | 3 digit | Period | Comma | latn |
| km-KH | Khmer (Cambodia) | 3 digit | Period | Comma | latn |
| kn | Kannada | 3 digit | Comma | Period | latn |
| kn-IN | Kannada (India) | 3 digit | Comma | Period | latn |
| ko | Korean | 3 digit | Comma | Period | latn |
| ko-KP | Korean (North Korea) | 3 digit | Comma | Period | latn |
| ko-KR | Korean (South Korea) | 3 digit | Comma | Period | latn |
| kok | Konkani | 3 digit | Comma | Period | latn |
| kok-IN | Konkani (India) | 3 digit | Comma | Period | latn |
| ks | Kashmiri | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| ks-IN | Kashmiri (India) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| ksb | Shambala | 3 digit | Comma | Period | latn |
| ksb-TZ | Shambala (Tanzania) | 3 digit | Comma | Period | latn |
| ksf | Bafia | 3 digit | No-Break Space | Comma | latn |
| ksf-CM | Bafia (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| ksh | Colognian | 3 digit | No-Break Space | Comma | latn |
| ksh-DE | Colognian (Germany) | 3 digit | No-Break Space | Comma | latn |
| kw | Cornish | 3 digit | Comma | Period | latn |
| kw-GB | Cornish (United Kingdom) | 3 digit | Comma | Period | latn |
| ky | Kyrgyz | 3 digit | No-Break Space | Comma | latn |
| ky-KG | Kyrgyz (Kyrgyzstan) | 3 digit | No-Break Space | Comma | latn |
| lag | Langi | 3 digit | Comma | Period | latn |
| lag-TZ | Langi (Tanzania) | 3 digit | Comma | Period | latn |
| lb | Luxembourgish | 3 digit | Period | Comma | latn |
| lb-LU | Luxembourgish (Luxembourg) | 3 digit | Period | Comma | latn |
| lg | Ganda | 3 digit | Comma | Period | latn |
| lg-UG | Ganda (Uganda) | 3 digit | Comma | Period | latn |
| lkt | Lakota | 3 digit | Comma | Period | latn |
| lkt-US | Lakota (United States) | 3 digit | Comma | Period | latn |
| ln | Lingala | 3 digit | Period | Comma | latn |
| ln-AO | Lingala (Angola) | 3 digit | Period | Comma | latn |
| ln-CD | Lingala (Congo - Kinshasa) | 3 digit | Period | Comma | latn |
| ln-CF | Lingala (Central African Republic) | 3 digit | Period | Comma | latn |
| ln-CG | Lingala (Congo - Brazzaville) | 3 digit | Period | Comma | latn |
| lo | Lao | 3 digit | Period | Comma | latn |
| lo-LA | Lao (Laos) | 3 digit | Period | Comma | latn |
| lrc | Northern Luri | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| lrc-IQ | Northern Luri (Iraq) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| lrc-IR | Northern Luri (Iran) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| lt | Lithuanian | 3 digit | No-Break Space | Comma | latn |
| lt-LT | Lithuanian (Lithuania) | 3 digit | No-Break Space | Comma | latn |
| lu | Luba-Katanga | 3 digit | Period | Comma | latn |
| lu-CD | Luba-Katanga (Congo - Kinshasa) | 3 digit | Period | Comma | latn |
| luo | Luo | 3 digit | Comma | Period | latn |
| luo-KE | Luo (Kenya) | 3 digit | Comma | Period | latn |
| luy | Luyia | 3 digit | Comma | Period | latn |
| luy-KE | Luyia (Kenya) | 3 digit | Comma | Period | latn |
| lv | Latvian | 3 digit | No-Break Space | Comma | latn |
| lv-LV | Latvian (Latvia) | 3 digit | No-Break Space | Comma | latn |
| mas | Masai | 3 digit | Comma | Period | latn |
| mas-KE | Masai (Kenya) | 3 digit | Comma | Period | latn |
| mas-TZ | Masai (Tanzania) | 3 digit | Comma | Period | latn |
| mer | Meru | 3 digit | Comma | Period | latn |
| mer-KE | Meru (Kenya) | 3 digit | Comma | Period | latn |
| mfe | Morisyen | 3 digit | No-Break Space | Period | latn |
| mfe-MU | Morisyen (Mauritius) | 3 digit | No-Break Space | Period | latn |
| mg | Malagasy | 3 digit | Comma | Period | latn |
| mg-MG | Malagasy (Madagascar) | 3 digit | Comma | Period | latn |
| mgh | Makhuwa-Meetto | 3 digit | Period | Comma | latn |
| mgh-MZ | Makhuwa-Meetto (Mozambique) | 3 digit | Period | Comma | latn |
| mgo | Metaʼ | 3 digit | Comma | Period | latn |
| mgo-CM | Metaʼ (Cameroon) | 3 digit | Comma | Period | latn |
| mk | Macedonian | 3 digit | Period | Comma | latn |
| mk-MK | Macedonian (Macedonia) | 3 digit | Period | Comma | latn |
| ml | Malayalam | 2 digit | Comma | Period | latn |
| ml-IN | Malayalam (India) | 2 digit | Comma | Period | latn |
| mn | Mongolian | 3 digit | Comma | Period | latn |
| mn-MN | Mongolian (Mongolia) | 3 digit | Comma | Period | latn |
| mr | Marathi | 2 digit | Comma | Period | deva |
| mr-IN | Marathi (India) | 2 digit | Comma | Period | deva |
| ms | Malay | 3 digit | Comma | Period | latn |
| ms-BN | Malay (Brunei) | 3 digit | Period | Comma | latn |
| ms-MY | Malay (Malaysia) | 3 digit | Comma | Period | latn |
| ms-SG | Malay (Singapore) | 3 digit | Comma | Period | latn |
| mt | Maltese | 3 digit | Comma | Period | latn |
| mt-MT | Maltese (Malta) | 3 digit | Comma | Period | latn |
| mua | Mundang | 3 digit | Period | Comma | latn |
| mua-CM | Mundang (Cameroon) | 3 digit | Period | Comma | latn |
| my | Burmese | 3 digit | Comma | Period | mymr |
| my-MM | Burmese (Myanmar [Burma]) | 3 digit | Comma | Period | mymr |
| mzn | Mazanderani | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| mzn-IR | Mazanderani (Iran) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| naq | Nama | 3 digit | Comma | Period | latn |
| naq-NA | Nama (Namibia) | 3 digit | Comma | Period | latn |
| nb | Norwegian Bokmål | 3 digit | No-Break Space | Comma | latn |
| nb-NO | Norwegian Bokmål (Norway) | 3 digit | No-Break Space | Comma | latn |
| nb-SJ | Norwegian Bokmål (Svalbard & Jan Mayen) | 3 digit | No-Break Space | Comma | latn |
| nd | North Ndebele | 3 digit | Comma | Period | latn |
| nd-ZW | North Ndebele (Zimbabwe) | 3 digit | Comma | Period | latn |
| nds | Low German | 3 digit | Comma | Period | latn |
| nds-DE | Low German (Germany) | 3 digit | Comma | Period | latn |
| nds-NL | Low German (Netherlands) | 3 digit | Comma | Period | latn |
| ne | Nepali | 2 digit | Comma | Period | deva |
| ne-IN | Nepali (India) | 2 digit | Comma | Period | deva |
| ne-NP | Nepali (Nepal) | 2 digit | Comma | Period | deva |
| nl | Dutch | 3 digit | Period | Comma | latn |
| nl-AW | Dutch (Aruba) | 3 digit | Period | Comma | latn |
| nl-BE | Dutch (Belgium) | 3 digit | Period | Comma | latn |
| nl-BQ | Dutch (Caribbean Netherlands) | 3 digit | Period | Comma | latn |
| nl-CW | Dutch (Curaçao) | 3 digit | Period | Comma | latn |
| nl-NL | Dutch (Netherlands) | 3 digit | Period | Comma | latn |
| nl-SR | Dutch (Suriname) | 3 digit | Period | Comma | latn |
| nl-SX | Dutch (Sint Maarten) | 3 digit | Period | Comma | latn |
| nmg | Kwasio | 3 digit | No-Break Space | Comma | latn |
| nmg-CM | Kwasio (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| nn | Norwegian Nynorsk | 3 digit | No-Break Space | Comma | latn |
| nn-NO | Norwegian Nynorsk (Norway) | 3 digit | No-Break Space | Comma | latn |
| nnh | Ngiemboon | 3 digit | Period | Comma | latn |
| nnh-CM | Ngiemboon (Cameroon) | 3 digit | Period | Comma | latn |
| nus | Nuer | 3 digit | Comma | Period | latn |
| nus-SS | Nuer (South Sudan) | 3 digit | Comma | Period | latn |
| nyn | Nyankole | 3 digit | Comma | Period | latn |
| nyn-UG | Nyankole (Uganda) | 3 digit | Comma | Period | latn |
| om | Oromo | 3 digit | Comma | Period | latn |
| om-ET | Oromo (Ethiopia) | 3 digit | Comma | Period | latn |
| om-KE | Oromo (Kenya) | 3 digit | Comma | Period | latn |
| or | Odia | 2 digit | Comma | Period | latn |
| or-IN | Odia (India) | 2 digit | Comma | Period | latn |
| os | Ossetic | 3 digit | No-Break Space | Comma | latn |
| os-GE | Ossetic (Georgia) | 3 digit | No-Break Space | Comma | latn |
| os-RU | Ossetic (Russia) | 3 digit | No-Break Space | Comma | latn |
| pa | Punjabi | 2 digit | Comma | Period | latn |
| pa-Arab | Punjabi (Arabic) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| pa-Arab-PK | Punjabi (Arabic, Pakistan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| pa-Guru | Punjabi (Gurmukhi) | 2 digit | Comma | Period | latn |
| pa-Guru-IN | Punjabi (Gurmukhi, India) | 2 digit | Comma | Period | latn |
| pl | Polish | 3 digit | No-Break Space | Comma | latn |
| pl-PL | Polish (Poland) | 3 digit | No-Break Space | Comma | latn |
| ps | Pashto | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| ps-AF | Pashto (Afghanistan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| pt | Portuguese | 3 digit | Period | Comma | latn |
| pt-AO | Portuguese (Angola) | 3 digit | No-Break Space | Comma | latn |
| pt-BR | Portuguese (Brazil) | 3 digit | Period | Comma | latn |
| pt-CH | Portuguese (Switzerland) | 3 digit | No-Break Space | Comma | latn |
| pt-CV | Portuguese (Cape Verde) | 3 digit | No-Break Space | Comma | latn |
| pt-GQ | Portuguese (Equatorial Guinea) | 3 digit | No-Break Space | Comma | latn |
| pt-GW | Portuguese (Guinea-Bissau) | 3 digit | No-Break Space | Comma | latn |
| pt-LU | Portuguese (Luxembourg) | 3 digit | No-Break Space | Comma | latn |
| pt-MO | Portuguese (Macau SAR China) | 3 digit | No-Break Space | Comma | latn |
| pt-MZ | Portuguese (Mozambique) | 3 digit | No-Break Space | Comma | latn |
| pt-PT | Portuguese (Portugal) | 3 digit | No-Break Space | Comma | latn |
| pt-ST | Portuguese (São Tomé & Príncipe) | 3 digit | No-Break Space | Comma | latn |
| pt-TL | Portuguese (Timor-Leste) | 3 digit | No-Break Space | Comma | latn |
| qu | Quechua | 3 digit | Comma | Period | latn |
| qu-BO | Quechua (Bolivia) | 3 digit | Period | Comma | latn |
| qu-EC | Quechua (Ecuador) | 3 digit | Comma | Period | latn |
| qu-PE | Quechua (Peru) | 3 digit | Comma | Period | latn |
| rm | Romansh | 3 digit | Right Single Quotation Mark | Period | latn |
| rm-CH | Romansh (Switzerland) | 3 digit | Right Single Quotation Mark | Period | latn |
| rn | Rundi | 3 digit | Period | Comma | latn |
| rn-BI | Rundi (Burundi) | 3 digit | Period | Comma | latn |
| ro | Romanian | 3 digit | Period | Comma | latn |
| ro-MD | Romanian (Moldova) | 3 digit | Period | Comma | latn |
| ro-RO | Romanian (Romania) | 3 digit | Period | Comma | latn |
| rof | Rombo | 3 digit | Comma | Period | latn |
| rof-TZ | Rombo (Tanzania) | 3 digit | Comma | Period | latn |
| ru | Russian | 3 digit | No-Break Space | Comma | latn |
| ru-BY | Russian (Belarus) | 3 digit | No-Break Space | Comma | latn |
| ru-KG | Russian (Kyrgyzstan) | 3 digit | No-Break Space | Comma | latn |
| ru-KZ | Russian (Kazakhstan) | 3 digit | No-Break Space | Comma | latn |
| ru-MD | Russian (Moldova) | 3 digit | No-Break Space | Comma | latn |
| ru-RU | Russian (Russia) | 3 digit | No-Break Space | Comma | latn |
| ru-UA | Russian (Ukraine) | 3 digit | No-Break Space | Comma | latn |
| rw | Kinyarwanda | 3 digit | Period | Comma | latn |
| rw-RW | Kinyarwanda (Rwanda) | 3 digit | Period | Comma | latn |
| rwk | Rwa | 3 digit | Comma | Period | latn |
| rwk-TZ | Rwa (Tanzania) | 3 digit | Comma | Period | latn |
| sah | Sakha | 3 digit | No-Break Space | Comma | latn |
| sah-RU | Sakha (Russia) | 3 digit | No-Break Space | Comma | latn |
| saq | Samburu | 3 digit | Comma | Period | latn |
| saq-KE | Samburu (Kenya) | 3 digit | Comma | Period | latn |
| sbp | Sangu | 3 digit | Comma | Period | latn |
| sbp-TZ | Sangu (Tanzania) | 3 digit | Comma | Period | latn |
| se | Northern Sami | 3 digit | No-Break Space | Comma | latn |
| se-FI | Northern Sami (Finland) | 3 digit | No-Break Space | Comma | latn |
| se-NO | Northern Sami (Norway) | 3 digit | No-Break Space | Comma | latn |
| se-SE | Northern Sami (Sweden) | 3 digit | No-Break Space | Comma | latn |
| seh | Sena | 3 digit | Period | Comma | latn |
| seh-MZ | Sena (Mozambique) | 3 digit | Period | Comma | latn |
| ses | Koyraboro Senni | 3 digit | No-Break Space | Period | latn |
| ses-ML | Koyraboro Senni (Mali) | 3 digit | No-Break Space | Period | latn |
| sg | Sango | 3 digit | Period | Comma | latn |
| sg-CF | Sango (Central African Republic) | 3 digit | Period | Comma | latn |
| shi | Tachelhit | 3 digit | No-Break Space | Comma | latn |
| shi-Latn | Tachelhit (Latin) | 3 digit | No-Break Space | Comma | latn |
| shi-Latn-MA | Tachelhit (Latin, Morocco) | 3 digit | No-Break Space | Comma | latn |
| shi-Tfng | Tachelhit (Tifinagh) | 3 digit | No-Break Space | Comma | latn |
| shi-Tfng-MA | Tachelhit (Tifinagh, Morocco) | 3 digit | No-Break Space | Comma | latn |
| si | Sinhala | 3 digit | Comma | Period | latn |
| si-LK | Sinhala (Sri Lanka) | 3 digit | Comma | Period | latn |
| sk | Slovak | 3 digit | No-Break Space | Comma | latn |
| sk-SK | Slovak (Slovakia) | 3 digit | No-Break Space | Comma | latn |
| sl | Slovenian | 3 digit | Period | Comma | latn |
| sl-SI | Slovenian (Slovenia) | 3 digit | Period | Comma | latn |
| smn | Inari Sami | 3 digit | No-Break Space | Comma | latn |
| smn-FI | Inari Sami (Finland) | 3 digit | No-Break Space | Comma | latn |
| sn | Shona | 3 digit | Comma | Period | latn |
| sn-ZW | Shona (Zimbabwe) | 3 digit | Comma | Period | latn |
| so | Somali | 3 digit | Comma | Period | latn |
| so-DJ | Somali (Djibouti) | 3 digit | Comma | Period | latn |
| so-ET | Somali (Ethiopia) | 3 digit | Comma | Period | latn |
| so-KE | Somali (Kenya) | 3 digit | Comma | Period | latn |
| so-SO | Somali (Somalia) | 3 digit | Comma | Period | latn |
| sq | Albanian | 3 digit | No-Break Space | Comma | latn |
| sq-AL | Albanian (Albania) | 3 digit | No-Break Space | Comma | latn |
| sq-MK | Albanian (Macedonia) | 3 digit | No-Break Space | Comma | latn |
| sq-XK | Albanian (Kosovo) | 3 digit | No-Break Space | Comma | latn |
| sr | Serbian | 3 digit | Period | Comma | latn |
| sr-Cyrl | Serbian (Cyrillic) | 3 digit | Period | Comma | latn |
| sr-Cyrl-BA | Serbian (Cyrillic, Bosnia & Herzegovina) | 3 digit | Period | Comma | latn |
| sr-Cyrl-ME | Serbian (Cyrillic, Montenegro) | 3 digit | Period | Comma | latn |
| sr-Cyrl-RS | Serbian (Cyrillic, Serbia) | 3 digit | Period | Comma | latn |
| sr-Cyrl-XK | Serbian (Cyrillic, Kosovo) | 3 digit | Period | Comma | latn |
| sr-Latn | Serbian (Latin) | 3 digit | Period | Comma | latn |
| sr-Latn-BA | Serbian (Latin, Bosnia & Herzegovina) | 3 digit | Period | Comma | latn |
| sr-Latn-ME | Serbian (Latin, Montenegro) | 3 digit | Period | Comma | latn |
| sr-Latn-RS | Serbian (Latin, Serbia) | 3 digit | Period | Comma | latn |
| sr-Latn-XK | Serbian (Latin, Kosovo) | 3 digit | Period | Comma | latn |
| sv | Swedish | 3 digit | No-Break Space | Comma | latn |
| sv-AX | Swedish (Åland Islands) | 3 digit | No-Break Space | Comma | latn |
| sv-FI | Swedish (Finland) | 3 digit | No-Break Space | Comma | latn |
| sv-SE | Swedish (Sweden) | 3 digit | No-Break Space | Comma | latn |
| sw | Swahili | 3 digit | Comma | Period | latn |
| sw-CD | Swahili (Congo - Kinshasa) | 3 digit | Period | Comma | latn |
| sw-KE | Swahili (Kenya) | 3 digit | Comma | Period | latn |
| sw-TZ | Swahili (Tanzania) | 3 digit | Comma | Period | latn |
| sw-UG | Swahili (Uganda) | 3 digit | Comma | Period | latn |
| ta | Tamil | 2 digit | Comma | Period | latn |
| ta-IN | Tamil (India) | 2 digit | Comma | Period | latn |
| ta-LK | Tamil (Sri Lanka) | 2 digit | Comma | Period | latn |
| ta-MY | Tamil (Malaysia) | 3 digit | Comma | Period | latn |
| ta-SG | Tamil (Singapore) | 3 digit | Comma | Period | latn |
| te | Telugu | 2 digit | Comma | Period | latn |
| te-IN | Telugu (India) | 2 digit | Comma | Period | latn |
| teo | Teso | 3 digit | Comma | Period | latn |
| teo-KE | Teso (Kenya) | 3 digit | Comma | Period | latn |
| teo-UG | Teso (Uganda) | 3 digit | Comma | Period | latn |
| tg | Tajik | 3 digit | No-Break Space | Comma | latn |
| tg-TJ | Tajik (Tajikistan) | 3 digit | No-Break Space | Comma | latn |
| th | Thai | 3 digit | Comma | Period | latn |
| th-TH | Thai (Thailand) | 3 digit | Comma | Period | latn |
| ti | Tigrinya | 3 digit | Comma | Period | latn |
| ti-ER | Tigrinya (Eritrea) | 3 digit | Comma | Period | latn |
| ti-ET | Tigrinya (Ethiopia) | 3 digit | Comma | Period | latn |
| to | Tongan | 3 digit | Comma | Period | latn |
| to-TO | Tongan (Tonga) | 3 digit | Comma | Period | latn |
| tr | Turkish | 3 digit | Period | Comma | latn |
| tr-CY | Turkish (Cyprus) | 3 digit | Period | Comma | latn |
| tr-TR | Turkish (Turkey) | 3 digit | Period | Comma | latn |
| tt | Tatar | 3 digit | No-Break Space | Comma | latn |
| tt-RU | Tatar (Russia) | 3 digit | No-Break Space | Comma | latn |
| twq | Tasawaq | 3 digit | No-Break Space | Period | latn |
| twq-NE | Tasawaq (Niger) | 3 digit | No-Break Space | Period | latn |
| tzm | Central Atlas Tamazight | 3 digit | No-Break Space | Comma | latn |
| tzm-MA | Central Atlas Tamazight (Morocco) | 3 digit | No-Break Space | Comma | latn |
| ug | Uyghur | 3 digit | Comma | Period | latn |
| ug-CN | Uyghur (China) | 3 digit | Comma | Period | latn |
| uk | Ukrainian | 3 digit | No-Break Space | Comma | latn |
| uk-UA | Ukrainian (Ukraine) | 3 digit | No-Break Space | Comma | latn |
| ur | Urdu | 3 digit | Comma | Period | latn |
| ur-IN | Urdu (India) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| ur-PK | Urdu (Pakistan) | 3 digit | Comma | Period | latn |
| uz | Uzbek | 3 digit | No-Break Space | Comma | latn |
| uz-Arab | Uzbek (Arabic) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| uz-Arab-AF | Uzbek (Arabic, Afghanistan) | 3 digit | Arabic Thousands Separator | Arabic Decimal Separator | arabext |
| uz-Cyrl | Uzbek (Cyrillic) | 3 digit | No-Break Space | Comma | latn |
| uz-Cyrl-UZ | Uzbek (Cyrillic, Uzbekistan) | 3 digit | No-Break Space | Comma | latn |
| uz-Latn | Uzbek (Latin) | 3 digit | No-Break Space | Comma | latn |
| uz-Latn-UZ | Uzbek (Latin, Uzbekistan) | 3 digit | No-Break Space | Comma | latn |
| vai | Vai | 3 digit | Comma | Period | latn |
| vai-Latn | Vai (Latin) | 3 digit | Comma | Period | latn |
| vai-Latn-LR | Vai (Latin, Liberia) | 3 digit | Comma | Period | latn |
| vai-Vaii | Vai (Vai) | 3 digit | Comma | Period | latn |
| vai-Vaii-LR | Vai (Vai, Liberia) | 3 digit | Comma | Period | latn |
| vi | Vietnamese | 3 digit | Period | Comma | latn |
| vi-VN | Vietnamese (Vietnam) | 3 digit | Period | Comma | latn |
| vun | Vunjo | 3 digit | Comma | Period | latn |
| vun-TZ | Vunjo (Tanzania) | 3 digit | Comma | Period | latn |
| wae | Walser | 3 digit | Right Single Quotation Mark | Comma | latn |
| wae-CH | Walser (Switzerland) | 3 digit | Right Single Quotation Mark | Comma | latn |
| wo | Wolof | 3 digit | Period | Comma | latn |
| wo-SN | Wolof (Senegal) | 3 digit | Period | Comma | latn |
| xog | Soga | 3 digit | Comma | Period | latn |
| xog-UG | Soga (Uganda) | 3 digit | Comma | Period | latn |
| yav | Yangben | 3 digit | No-Break Space | Comma | latn |
| yav-CM | Yangben (Cameroon) | 3 digit | No-Break Space | Comma | latn |
| yi | Yiddish | 3 digit | Comma | Period | latn |
| yi-001 | Yiddish (World) | 3 digit | Comma | Period | latn |
| yo | Yoruba | 3 digit | Comma | Period | latn |
| yo-BJ | Yoruba (Benin) | 3 digit | Comma | Period | latn |
| yo-NG | Yoruba (Nigeria) | 3 digit | Comma | Period | latn |
| yue | Cantonese | 3 digit | Comma | Period | latn |
| yue-Hans | Cantonese (Simplified) | 3 digit | Comma | Period | latn |
| yue-Hans-CN | Cantonese (Simplified, China) | 3 digit | Comma | Period | latn |
| yue-Hant | Cantonese (Traditional) | 3 digit | Comma | Period | latn |
| yue-Hant-HK | Cantonese (Traditional, Hong Kong SAR China) | 3 digit | Comma | Period | latn |
| zgh | Standard Moroccan Tamazight | 3 digit | No-Break Space | Comma | latn |
| zgh-MA | Standard Moroccan Tamazight (Morocco) | 3 digit | No-Break Space | Comma | latn |
| zh | Chinese | 3 digit | Comma | Period | latn |
| zh-Hans | Chinese (Simplified) | 3 digit | Comma | Period | latn |
| zh-Hans-CN | Chinese (Simplified, China) | 3 digit | Comma | Period | latn |
| zh-Hans-HK | Chinese (Simplified, Hong Kong SAR China) | 3 digit | Comma | Period | latn |
| zh-Hans-MO | Chinese (Simplified, Macau SAR China) | 3 digit | Comma | Period | latn |
| zh-Hans-SG | Chinese (Simplified, Singapore) | 3 digit | Comma | Period | latn |
| zh-Hant | Chinese (Traditional) | 3 digit | Comma | Period | latn |
| zh-Hant-HK | Chinese (Traditional, Hong Kong SAR China) | 3 digit | Comma | Period | latn |
| zh-Hant-MO | Chinese (Traditional, Macau SAR China) | 3 digit | Comma | Period | latn |
| zh-Hant-TW | Chinese (Traditional, Taiwan) | 3 digit | Comma | Period | latn |
| zu | Zulu | 3 digit | Comma | Period | latn |
| zu-ZA | Zulu (South Africa) | 3 digit | Comma | Period | latn |
Руководство по форматированию
Наиболее распространённые примеры использования API Intl.NumberFormat для форматирования чисел в любом языке.
См.: Полная документация по API Intl.NumberFormat
Метод format() форматирует число в локализованную строку.
new Intl.NumberFormat('en-US').format(1234.56);
// Вывод:
"1,234.56"
Метод formatToParts() возвращает массив, где каждая часть числа разделена на элементы. Это полезно для определения свойств локали, что может быть полезно при парсинге чисел. См. руководство по парсингу.
new Intl.NumberFormat('en-US').formatToParts(1234.56);
// Вывод:
[{"type":"integer","value":"1"},{"type":"group","value":","},{"type":"integer","value":"234"},{"type":"decimal","value":"."},{"type":"fraction","value":"56"}]
Изменение системы нумерации
Вы можете изменить систему нумерации в своей локали, добавив -u-nu-{code}.
Один из распространённых примеров — китайская локаль zh, которая использует систему нумерации latn по умолчанию:
new Intl.NumberFormat('zh').format(1234.56);
// Вывод:
"1,234.56"
Но система нумерации hanidec также очень распространена в этой локали и будет выглядеть следующим образом:
new Intl.NumberFormat('zh-u-nu-hanidec').format(1234.56);
// Вывод:
"一,二三四.五六"
Другой способ изменить систему нумерации — указать параметр numberingSystem.
new Intl.NumberFormat('zh', {numberingSystem: 'hanidec'}).format(1234.56);
// Вывод:
"一,二三四.五六"
Количество десятичных знаков
По умолчанию десятичные знаки округляются до 3 знаков:
new Intl.NumberFormat('en-US').format(0.5555555);
// Вывод:
"0.556"
Чтобы переопределить количество десятичных знаков, используйте параметр minimumFractionDigits:
new Intl.NumberFormat('en-US', {maximumFractionDigits: 5}).format(0.5555555);
// Вывод:
"0.55556"
Форматирование валют
Чтобы отформатировать число как валюту, необходимо задать параметры style и currency:
new Intl.NumberFormat('en-US', {style: 'currency', currency: 'USD'}).format(12.99);
// Вывод:
"$12.99"
Форматирование процентов
Для форматирования числа как процента число должно быть между 0 и 1, а параметр style должен быть установлен на percent:
new Intl.NumberFormat('en-US', {style: 'percent'}).format(0.75);
// Вывод:
"75%"
Руководство по парсингу
Руководство по парсингу чисел в любой локали с использованием API Intl.NumberFormat без использования библиотек.
В качестве примера локали я использую
ar-DZ-u-nu-arab(арабская локаль с арабской системой нумерации). Этот формат чисел не имеет ничего общего с американским английским.
Следующее число мы будем разбирать:
const localizedString = '-١٫٢٣٤ٮ٥٦'; // результат будет -1234.56
Замена символов группировки и десятичного разделителя
Сначала нам нужно определить символы группировки и десятичного разделителя для локали, отформатировав тестовое число:
const parts = new Intl.NumberFormat('ar-DZ-u-nu-arab').formatToParts(1111.11);
const groupSymbol = parts.find(d => d.type === 'group').value; // ٫
const decimalSymbol = parts.find(d => d.type === 'decimal').value; // ٮ
Теперь, когда мы знаем символы, используемые локалью, мы можем удалить символы группировки и заменить десятичный символ на точку.
localizedString.replace(new RegExp(groupSymbol, 'g'), '').replace(decimalSymbol, '.');
Замена цифр
Теперь нам нужно определить цифры, используемые в локали:
const numerals = new Intl.NumberFormat('ar-DZ-u-nu-arab', { useGrouping: false }).format(9876543210).split('').reverse().join('');
Теперь создаем регулярное выражение с цифрами:
const numeralRegex = new RegExp(`[${numerals}]`, 'g');
Теперь мы можем заменить цифры на стандартные цифры от 0 до 9:
.replace(numeralRegex, (group) => numerals.indexOf(group).toString());
Финальные шаги
Нам нужно разрешить использование любого символа минуса:
.replace(/[−-]\s?/, '-');
Наконец, преобразуем строку в число:
Number(...);
Собираем всё вместе
Вот как может выглядеть переиспользуемый класс:
export class NumberParser {
constructor(private readonly locale) {
const parts = Intl.NumberFormat(locale).formatToParts(1111.11);
this.groupSymbol = parts.find(part => part.type === 'group').value;
this.decimalSymbol = parts.find(part => part.type === 'decimal').value;
this.numerals = new Intl.NumberFormat(locale, { useGrouping: false }).format(9876543210).split('').reverse().join('');
this.numeralRegex = new RegExp(`[${this.numerals}]`, 'g');
}
parse(localizedNumber) {
if (!localizedNumber) return null;
return Number(
localizedNumber
.replace(new RegExp(this.groupSymbol, 'g'), '')
.replace(this.decimalSymbol, '.')
.replace(/[−-]\s?/, '-')
.replace(this.numeralRegex, group => this.numerals.indexOf(group).toString())
);
}
}
Числовые вводы в любой локали
Если вам нужно разрешить ввод чисел в любой локали, используйте <input type="text"/>, так как локализованное число может содержать символы, которые не разрешены в <input type="number"/>.
Затем, когда пользователь изменяет число, необходимо преобразовать локализованную строку обратно в число JavaScript, чтобы оно было отправлено на сервер в правильном формате.
Пример с React
Вот пример компонента ввода чисел в React:
export default function NumberInput({locale, initialValue}) {
const [localeValue, setLocaleValue] = useState(new Intl.NumberFormat(locale).format(initialValue));
const [numberValue, setNumberValue] = useState(initialValue);
const parser = new NumberParser(locale);
const handleChange = (e) => {
setLocaleValue(e.target.value);
setNumberValue(parser.parse(e.target.value));
};
return (
<div>
<input type="text" value={localeValue} onChange={handleChange}/>
<div>Значение числа: {numberValue}</div>
</div>
);
}
localeValue (строка) — это то, что мы используем для поля ввода. А numberValue (число) — это то, что мы используем как системное значение (значение, которое мы получаем и отправляем на сервер).
Локализация числового ввода в Angular
Я опубликовал пакет NPM для Angular под названием ngx-decimal: https://www.npmjs.com/package/ngx-decimal
Он всё сделает за вас. Пример использования:
<input type="text" ngxDecimal [(ngModel)]="numberValue">
--
Это перевод статьи: https://randombits.dev/articles/number-localization/intro