Skip to content

List of all iso 639-1, 639-2T, 639-2B, 639-3 codes with their translations in any language

License

Notifications You must be signed in to change notification settings

ihmpavel/all-iso-language-codes

Repository files navigation

List of ISO 639-1, 639-2T, 639-2B and 639-3 codes with translations in all available languages

Sometimes you need to get a fresh list of 639-1, 639-2T, 639-2B or 639-3 language codes and their translations. Until now there was not an easy way to get them.

All data are available in json format in data/[language]/639-1.json. More formats might be available in the future.

Usage

  1. JS functions (with TS type definitions included)
  2. Directly, using files located in data folder

JS functions

Function Arguments Return value Example usage
getEnglishName(code: string) language code string | null getEnglishName('cs') => Czech
getNativeName(code: string) language code string | null getNativeName('cs') => čeština
getName(code: string, language = 'en') from language, to language? string | null getName('cs', 'en') => Czech
isValid(code: string, availableIsoTypes?: IsoType[], moreInfo = false) language code, IsoType (below table), moreInfo boolean | { iso: IsoType | null; found: boolean; } isValid('cs') => true, isValid('cs', ['639-1'], true) => { iso: '639-1'; found: true; },
getIsoCodesFromNativeName(nativeName: string, normalizeString = false) language name, should normalize string (lowercase and remove diacritics) IsoType[] | null getIsoCodesFromNativeName('ČeŠtInA', true) => ['639-3', '639-2B', '639-2T', '639-1']
getAll639_1() - string[] (639-1 array) getAll639_1() => ['aa', 'ab', 'af'...]
getAll639_2B() - string[] (639-2B array) getAll639_2B() => ['aar', 'abk', 'ace'...]
getAll639_2T() - string[] (639-2T array) getAll639_2T() => ['aar', 'abk', 'ace'...]
getAll639_3() - string[] (639-3 array) getAll639_3() => ['aaa', 'aab', 'aac'...]

type IsoType = '639-1' | '639-2B' | '639-2T' | '639-3'

File format

If you have some ideas (csv, another JSON format...) let me know or create PR.

Adding more languages

Language matrix is generated by Node.js Intl API (version 22.2.0). If you would like to edit something, Create PR in Node.js Intl API. Wait until release and run yarn generate.

Tests

There are jest tests which tests basic functionality. Feel free to extend them or convert to vitest.

More info

Getting the list of all available languages is from official list

More packages from me

  • all-iso-language-codes - List of ISO 639-1, 639-2T, 639-2B and 639-3 codes with translations in all available languages
  • expo-video-player - Customizable Video Player controls for Expo
  • free-email-domains-list - Fresh list of all free email domain providers. Can be used to check if an email address belongs to a company. Updated weekly