Skip to content

Instantly share code, notes, and snippets.

@mckabi
Last active April 11, 2024 07:06
Show Gist options
  • Save mckabi/29196c368cdfd2dc196b0fafcd9ec76d to your computer and use it in GitHub Desktop.
Save mckabi/29196c368cdfd2dc196b0fafcd9ec76d to your computer and use it in GitHub Desktop.
Language names
/*
* Based cldr-44.1.0-json-modern
*
* - [Tags for Identifying Languages (BCP47)](https://www.ietf.org/rfc/bcp/bcp47.txt)
* - [List of ISO 639 language codes](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) (WikiPedia)
* - [Unicode CLDR Project](https://cldr.unicode.org/)
*/
/** @typedef {string} LocaleCode */
/** @type {Record<LocaleCode, { native: string, english: string }>} */
const languages = {
af: { native: 'Afrikaans', english: 'Afrikaans' },
am: { native: 'አማርኛ', english: 'Amharic' },
ar: { native: 'العربية', english: 'Arabic' },
as: { native: 'অসমীয়া', english: 'Assamese' },
az: { native: 'Azərbaycan', english: 'Azerbaijani' },
be: { native: 'Беларуская', english: 'Belarusian' },
bg: { native: 'Български', english: 'Bulgarian' },
bn: { native: 'বাংলা', english: 'Bangla' },
bs: { native: 'Bosanski', english: 'Bosnian' },
ca: { native: 'Català', english: 'Catalan' },
chr: { native: 'Ꮳꮃꭹ', english: 'Cherokee' },
cs: { native: 'Čeština', english: 'Czech' },
cy: { native: 'Cymraeg', english: 'Welsh' },
da: { native: 'Dansk', english: 'Danish' },
de: { native: 'Deutsch', english: 'German' },
dsb: { native: 'Dolnoserbšćina', english: 'Lower Sorbian' },
el: { native: 'Ελληνικά', english: 'Greek' },
en: { native: 'English', english: 'English' },
es: { native: 'Español', english: 'Spanish' },
et: { native: 'Eesti', english: 'Estonian' },
eu: { native: 'Euskara', english: 'Basque' },
fa: { native: 'فارسی', english: 'Persian' },
fi: { native: 'Suomi', english: 'Finnish' },
fil: { native: 'Filipino', english: 'Filipino' },
fr: { native: 'Français', english: 'French' },
ga: { native: 'Gaeilge', english: 'Irish' },
gd: { native: 'Gàidhlig', english: 'Scottish Gaelic' },
gl: { native: 'Galego', english: 'Galician' },
gu: { native: 'ગુજરાતી', english: 'Gujarati' },
ha: { native: 'Hausa', english: 'Hausa' },
he: { native: 'עברית', english: 'Hebrew' },
hi: { native: 'हिन्दी', english: 'Hindi' },
hr: { native: 'Hrvatski', english: 'Croatian' },
hsb: { native: 'Hornjoserbšćina', english: 'Upper Sorbian' },
hu: { native: 'Magyar', english: 'Hungarian' },
hy: { native: 'Հայերեն', english: 'Armenian' },
id: { native: 'Indonesia', english: 'Indonesian' }, // Bahasa Indonesia
ig: { native: 'Igbo', english: 'Igbo' },
is: { native: 'Íslenska', english: 'Icelandic' },
it: { native: 'Italiano', english: 'Italian' },
ja: { native: '日本語', english: 'Japanese' },
jv: { native: 'Jawa', english: 'Javanese' },
ka: { native: 'ქართული', english: 'Georgian' },
kk: { native: 'Қазақ Тілі', english: 'Kazakh' },
km: { native: 'ខ្មែរ', english: 'Khmer' },
kn: { native: 'ಕನ್ನಡ', english: 'Kannada' },
ko: { native: '한국어', english: 'Korean' },
kok: { native: 'कोंकणी', english: 'Konkani' },
ky: { native: 'Кыргызча', english: 'Kyrgyz' },
lo: { native: 'ລາວ', english: 'Lao' },
lt: { native: 'Lietuvių', english: 'Lithuanian' },
lv: { native: 'Latviešu', english: 'Latvian' },
mk: { native: 'Македонски', english: 'Macedonian' },
ml: { native: 'മലയാളം', english: 'Malayalam' },
mn: { native: 'Монгол', english: 'Mongolian' },
mr: { native: 'मराठी', english: 'Marathi' },
ms: { native: 'Melayu', english: 'Malay' },
my: { native: 'မြန်မာ', english: 'Burmese' },
nb: { native: 'Norsk Bokmål', english: 'Norwegian Bokmål' },
ne: { native: 'नेपाली', english: 'Nepali' },
nl: { native: 'Nederlands', english: 'Dutch' },
nn: { native: 'Norsk Nynorsk', english: 'Norwegian Nynorsk' },
no: { native: 'Norsk', english: 'Norwegian' },
or: { native: 'ଓଡ଼ିଆ', english: 'Odia' },
pa: { native: 'ਪੰਜਾਬੀ', english: 'Punjabi' },
pl: { native: 'Polski', english: 'Polish' },
ps: { native: 'پښتو', english: 'Pashto' },
pt: { native: 'Português', english: 'Portuguese' },
ro: { native: 'Română', english: 'Romanian' },
ru: { native: 'Русский', english: 'Russian' },
sd: { native: 'سنڌي', english: 'Sindhi' },
si: { native: 'සිංහල', english: 'Sinhala' },
sk: { native: 'Slovenčina', english: 'Slovak' },
sl: { native: 'Slovenščina', english: 'Slovenian' },
so: { native: 'Soomaali', english: 'Somali' },
sq: { native: 'Shqip', english: 'Albanian' },
sr: { native: 'Српски', english: 'Serbian' },
sv: { native: 'Svenska', english: 'Swedish' },
sw: { native: 'Kiswahili', english: 'Swahili' },
ta: { native: 'தமிழ்', english: 'Tamil' },
te: { native: 'తెలుగు', english: 'Telugu' },
th: { native: 'ไทย', english: 'Thai' },
tk: { native: 'Türkmen Dili', english: 'Turkmen' },
tr: { native: 'Türkçe', english: 'Turkish' },
uk: { native: 'Українська', english: 'Ukrainian' },
ur: { native: 'اردو', english: 'Urdu' },
uz: { native: 'O‘Zbek', english: 'Uzbek' },
vi: { native: 'Tiếng Việt', english: 'Vietnamese' },
yo: { native: 'Èdè Yorùbá', english: 'Yoruba' },
yue: { native: '粵語', english: 'Cantonese' },
'zh-Hans': { native: '简体中文', english: 'Simplified Chinese' },
'zh-Hant': { native: '繁體中文', english: 'Traditional Chinese' },
zu: { native: 'Isizulu', english: 'Zulu' },
// language name + territory name
'pt-BR': { native: 'Português (Brasil)', english: 'Brazilian Portuguese' },
};
/** @type {Record<LocaleCode, LocaleCode>} */
export const aliases = {
'zh-tw': 'zh-hant',
'zh-hk': 'zh-hant',
'zh-mo': 'zh-hant',
'zh-cn': 'zh-hans',
'zh-sg': 'zh-hans',
zh: 'zh-hans'
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment