1.0.1 • Published 2 months ago

locale-lists-lib v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

locale-lists-lib

Lists & utility functions for Continents, Countries, Currencies, Timezones, Languages, and Language Tags.

While many packages offer the ISO lists found in this package, my goal was to create a single package that encompasses all these lists with a consistent data structure and utility functions. This eliminates the need to install multiple packages and concern over data inconsistency.

Designed for modern web development, this package provides the most current and complete ISO and other international standard lists to developers aiming at international audiences.

Features:

  • All lists are updated to the latest version.
  • Supports CommonJS, ESM.
  • Written in TypeScript, so you can use auto complete in your IDE. In addition, you can import types for your own validation.
  • Each list that has a relationship has been cross validated for accuracy.

What's included in this library

!NOTE The language tags in this library has the full combination of countries + languages, plus unique language variations if available. i.e zh_CN, zh_TW, zh_HK. If there is a language tag detail that is not listed here, please contact me to update it.

Installation

npm install locale-lists-lib

Usage

How To Import

Named imports only, just import the functions you need, see below for available functions.

// ESM Modules
import { getAllCountries } from "locale-lists-lib";
// Common JS
const { getAllCountries } = require("locale-lists-lib");

Functions

// Continents
import { getAllContinents, getContinents, getContinentsByCountry, getContinent } from "locale-lists-lib";

// Countries
import { getAllCountries, getCountries, getCountry } from "locale-lists-lib";

// Currencies
import { getAllCurrencies, getCurrencies, getCurrenciesByCountry, getCurrency } from "locale-lists-lib";

// Timezones
import { getAllTimezones, getTimezones, getTimezonesByCountry, getTimezone } from "locale-lists-lib";

// Languages
import { getAllLanguages, getLanguages, getLanguagesByCountry, getLanguage } from "locale-lists-lib";

// Language Tags
import { getAllLanguageTags, getLanguageTags, getLanguageTagsByLanguage, getLanguageTagsByCountry, getLanguageTag } from "locale-lists-lib";

Types

Import the types you need for your own data validation

import type { 
  TContinentCode, 
  TCountryCode, 
  TCurrencyCode, 
  TTimezoneCode, 
  TLanguageCode, 
  TLanguageTagCode, 
  TContinentKeys, 
  TCountryKeys, 
  TCurrencyKeys, 
  TTimezoneKeys, 
  TLanguageKeys, 
  TLanguageTagKeys, 
  IContinent, 
  ICountry, 
  ICountryFlag,
  ICurrency, 
  ITimezone, 
  ILanguage, 
  ILanguageTag, 
} from "locale-lists-lib";

Return Data Structure Examples

Multiple records will return array of objects

// Continent
{
  code: "AN", // ts: TContinentCode
  name: "Antarctica",
  countries: ["AQ", "BV", "GS", "HM", "TF"], // ts: TCountryCode[]
} // ts: IContinent
// Country
{
  code: "DK", // ts: TCountryCode
  name: "Denmark",
  native: "Danmark",
  capital: "Copenhagen",
  continents: ["EU"], // ts: TContinentCode[]
  callingCodes: [45],
  currencies: ["DKK"], // ts: TCurrencyCode[]
  languages: ["da"], // ts: TLanguageCode[]
  timezones: ["Europe/Berlin"], // ts: TTimezoneCode[]
  emoji: "🇩🇰",
  flag: {
    png: "https://flagcdn.com/w320/dk.png",
    svg: "https://flagcdn.com/dk.svg",
  }, // ts: ICountryFlag
} // ts: ICountry
// Currency
{
  code: "CAD", // ts: TCurrencyCode
  number: "124",
  name: "Canadian dollar",
  symbol: "$",
  countries: ["CA"], // ts: TCountryCode[]
} // ts: ICurrency
// Timezone
{
  code: "America/Los_Angeles", // ts: TTimezoneCode
  name: "(GMT-08:00) Los Angeles, San Diego, San Jose, San Francisco, Seattle",
  label: "America/Los_Angeles (GMT-08:00)",
  countries: ["US"],
  utcOffset: -480,
  utcOffsetStr: "-08:00",
  dstOffset: -420,
  dstOffsetStr: "-07:00",
  withCountries: true,
} // ts: ITimezone
// Language
{
  code: "fr", // ts: TLanguageCode
  name: "French",
  native: "Français",
  rtl: false,
  countries: ["BE", "BF", "BI", "BJ", "BL", "CA", "CD", "CF", "CG", "CH", "CI", "CM", "DJ", "FR", "GA", "GF", "GG", "GN", "GP", "GQ", "HT", "JE", "KM", "LB", "LU", "MC", "MF", "MG", "ML", "MQ", "NC", "NE", "PF", "PM", "RE", "RW", "SC", "SN", "TD", "TF", "TG", "VU", "WF", "YT"], // ts: TCountryCode[]
} // ts: ILanguage
// Language Tag
{
  code: "en_US", // ts: TLanguageTagCode
  name: "English (US)",
  native: "English (US)",
  language: "en", // ts: TLanguageCode
  country: "US", // ts: TCountryCode
  rtl: false,
} // ts: ILanguageTag

API Reference

getAllContinents([keys])

Parameters

NameRequiredTypeTS
keysOptionalArrayTContinentKeys[]

Return

NameTypeTS
ContinentsArrayIContinent[]

Examples

const allContinents = getAllContinents();

// console.log(allContinents);
[
  {
    code: "AF",
    name: "Africa",
    countries: ["AO", "BF", "BI", "BJ", "BW", "CD", "CF", "CG", "CI", "CM", "CV", "DJ", "DZ", "EG", "EH", "ER", "ET", "GA", "GH", "GM", "GN", "GQ", "GW", "KE", "KM", "LR", "LS", "LY", "MA", "MG", "ML", "MR", "MU", "MW", "MZ", "NA", "NE", "NG", "RE", "RW", "SC", "SD", "SH", "SL", "SN", "SO", "SS", "ST", "SZ", "TD", "TG", "TN", "TZ", "UG", "YT", "ZA", "ZM", "ZW"],
  },
  {
    code: "AN",
    name: "Antarctica",
    countries: ["AQ", "BV", "GS", "HM", "TF"],
  },
  ...
]
const allContinents = getAllContinents(["name"]);

// console.log(allContinents)
[
  {
    code: "AF",
    name: "Africa",
  },
  {
    code: "AN",
    name: "Antarctica",
  },
  ...
]

getContinents([continentCodes], [keys])

Parameters

NameRequiredTypeTS
continentCodesRequiredArrayTContinentCode[]
keysOptionalArrayTContinentKeys[]

Return

NameTypeTS
ContinentsArrayIContinent[]

Examples

const selectedContinents = getContinents(["AN", "SA"]);

// console.log(selectedContinents);
[
  {
    code: "AN",
    name: "Antarctica",
    countries: ["AQ", "BV", "GS", "HM", "TF"],
  },
  {
    code: "SA",
    name: "South America",
    countries: ["AR", "BO", "BR", "CL", "CO", "EC", "FK", "GF", "GY", "PE", "PY", "SR", "UY", "VE"],
  },
];
const selectedContinents = getContinents(["AN", "SA"], ["name"]);

// console.log(selectedContinents);
[
  {
    code: "AN",
    name: "Antarctica",
  },
  {
    code: "SA",
    name: "South America",
  },
];

getContinentsByCountry(countryCode, [keys])

Parameters

NameRequiredTypeTS
countryCodeRequiredStringTCountryCode
keysOptionalArrayTContinentKeys[]

Return

NameTypeTS
ContinentsArrayIContinent[]

Examples

const continentsInRU = getContinentsByCountry("RU");

// console.log(continentsInRU);
[
  {
    code: "AS",
    name: "Asia",
    countries: ["AE", "AF", "AM", "AZ", "BD", "BH", "BN", "BT", "CC", "CN", "CX", "EG", "GE", "HK", "ID", "IL", "IN", "IO", "IQ", "IR", "JO", "JP", "KG", "KH", "KP", "KR", "KW", "KZ", "LA", "LB", "LK", "MM", "MN", "MO", "MV", "MY", "NP", "OM", "PH", "PK", "PS", "QA", "RU", "SA", "SG", "SY", "TH", "TJ", "TM", "TR", "TW", "UZ", "VN", "YE"],
  },
  {
    code: "EU",
    name: "Europe",
    countries: ["AD", "AL", "AT", "AX", "AZ", "BA", "BE", "BG", "BY", "CH", "CY", "CZ", "DE", "DK", "EE", "ES", "FI", "FO", "FR", "GB", "GE", "GG", "GI", "GR", "HR", "HU", "IE", "IM", "IS", "IT", "JE", "KZ", "LI", "LT", "LU", "LV", "MC", "MD", "ME", "MK", "MT", "NL", "NO", "PL", "PT", "RO", "RS", "RU", "SE", "SI", "SJ", "SK", "SM", "TR", "UA", "VA", "XK"],
  },
];
const continentsInRU = getContinentsByCountry("RU", ["name"]);

// console.log(continentsInRU);
[
  {
    code: "AS",
    name: "Asia",
  },
  {
    code: "EU",
    name: "Europe",
  },
];

getContinent(continentCode, [keys])

Parameters

NameRequiredTypeTS
continentCodeRequiredStringTContinentCode
keysOptionalArrayTContinentKeys[]

Return

NameTypeTS
ContinentObjectIContinent

Examples

const continentOC = getContinent("OC");

// console.log(continentOC);
{
  code: "OC",
  name: "Oceania",
    countries: ["AS", "AU", "CK", "FJ", "FM", "GU", "KI", "MH", "MP", "NC", "NF", "NR", "NU", "NZ", "PF", "PG", "PN", "PW", "SB", "TK", "TL", "TO", "TV", "UM", "VU", "WF", "WS"],
}
const continentOC = getContinent("OC", ["name"]);

// console.log(continentOC);
{
  code: "OC",
  name: "Oceania",
}

getAllCountries([keys])

Parameters

NameRequiredTypeTS
keysOptionalArrayTCountryKeys[]

Return

NameTypeTS
CountriesArrayICountry[]

Examples

const allCountries = getAllCountries();

// console.log(allCountries);
[
  {
    code: "AD",
    name: "Andorra",
    native: "Andorra",
    capital: "Andorra la Vella",
    continents: ["EU"],
    callingCodes: [376],
    currencies: ["EUR"],
    languages: ["ca"],
    timezones: ["Europe/Andorra"],
    emoji: "🇦🇩",
    flag: {
      png: "https://flagcdn.com/w320/ad.png",
      svg: "https://flagcdn.com/ad.svg",
    },
  },
  {
    code: "AE",
    name: "United Arab Emirates",
    native: "دولة الإمارات العربية المتحدة",
    capital: "Abu Dhabi",
    continents: ["AS"],
    callingCodes: [971],
    currencies: ["AED"],
    languages: ["ar"],
    timezones: ["Asia/Dubai"],
    emoji: "🇦🇪",
    flag: {
      png: "https://flagcdn.com/w320/ae.png",
      svg: "https://flagcdn.com/ae.svg",
    },
  },
  ...
]
const allCountries = getAllCountries(["name", "emoji"]);

// console.log(allCountries)
[
  {
    code: "AD",
    name: "Andorra",
    emoji: "🇦🇩",
  },
  {
    code: "AE",
    name: "United Arab Emirates",
    emoji: "🇦🇪",
  },
  ...
]

getCountries([countryCodes], [keys])

Parameters

NameRequiredTypeTS
countryCodesRequiredArrayTCountryCode[]
keysOptionalArrayTCountryKeys[]

Return

NameTypeTS
CountriesArrayICountry[]

Examples

const selectedCountries = getCountries(["DE", "GB"]);

// console.log(selectedCountries);
[
  {
    code: "DE",
    name: "Germany",
    native: "Deutschland",
    capital: "Berlin",
    continents: ["EU"],
    callingCodes: [49],
    currencies: ["EUR"],
    languages: ["de"],
    timezones: ["Europe/Berlin", "Europe/Zurich"],
    emoji: "🇩🇪",
    flag: {
      png: "https://flagcdn.com/w320/de.png",
      svg: "https://flagcdn.com/de.svg",
    },
  },
  {
    code: "GB",
    name: "United Kingdom",
    native: "United Kingdom",
    capital: "London",
    continents: ["EU"],
    callingCodes: [44],
    currencies: ["GBP"],
    languages: ["en"],
    timezones: ["Europe/London"],
    emoji: "🇬🇧",
    flag: {
      png: "https://flagcdn.com/w320/gb.png",
      svg: "https://flagcdn.com/gb.svg",
    },
  },
];
const selectedCountries = getCountries(["DE", "GB"], ["name", "emoji"]);

// console.log(selectedCountries);
[
  {
    code: "DE",
    name: "Germany",
    emoji: "🇩🇪",
  },
  {
    code: "GB",
    name: "United Kingdom",
    emoji: "🇬🇧",
  },
];

getCountry(countryCode, [keys])

Parameters

NameRequiredTypeTS
countryCodeRequiredStringTCountryCode
keysOptionalArrayTCountryKeys[]

Return

NameTypeTS
CountryObjectICountry

Examples

const countryKR = getCountry("KR");

// console.log(countryKR);
{
  code: "KR",
  name: "South Korea",
  native: "대한민국",
  capital: "Seoul",
  continents: ["AS"],
  callingCodes: [82],
  currencies: ["KRW"],
  languages: ["ko"],
  timezones: ["Asia/Seoul"],
  emoji: "🇰🇷",
  flag: {
    png: "https://flagcdn.com/w320/kr.png",
    svg: "https://flagcdn.com/kr.svg",
  },
}
const countryKR = getCountry("KR", ["name", "emoji"]);

// console.log(countryKR);
{
  code: "KR",
  name: "South Korea",
  emoji: "🇰🇷".
}

getAllCurrencies([keys])

Parameters

NameRequiredTypeTS
keysOptionalArrayTCurrencyKeys[]

Return

NameTypeTS
CurrenciesArrayICurrency[]

Examples

const allCurrencies = getAllCurrencies();

// console.log(allCurrencies);
[
  {
    code: "AED",
    number: "784",
    name: "United Arab Emirates dirham",
    symbol: "د.إ",
    countries: ["AE"],
  },
  {
    code: "AFN",
    number: "971",
    name: "Afghan afghani",
    symbol: "؋",
    countries: ["AF"],
  },
  ...
]
const allCurrencies = getAllCurrencies(["name", "symbol"]);

// console.log(allCurrencies)
[
  {
    code: "AED",
    name: "United Arab Emirates dirham",
    symbol: "د.إ",
  },
  {
    code: "AFN",
    name: "Afghan afghani",
    symbol: "؋",
  },
  ...
]

getCurrencies([currencyCodes], [keys])

Parameters

NameRequiredTypeTS
currencyCodesRequiredArrayTCurrencyCode[]
keysOptionalArrayTCurrencyKeys[]

Return

NameTypeTS
CurrenciesArrayICurrency[]

Examples

const selectedCurrencies = getCurrencies(["AUD", "BRL"]);

// console.log(selectedCurrencies);
[
  {
    code: "AUD",
    number: "036",
    name: "Australian dollar",
    symbol: "$",
    countries: ["AU", "CC", "HM", "KI", "NR", "NF", "TV"],
  },
  {
    code: "BRL",
    number: "986",
    name: "Brazilian real",
    symbol: "R$",
    countries: ["BR"],
  },
];
const selectedCurrencies = getCurrencies(["AUD", "BRL"], ["name", "symbol"]);

// console.log(selectedCurrencies);
[
  {
    code: "AUD",
    name: "Australian dollar",
    symbol: "$",
  },
  {
    code: "BRL",
    name: "Brazilian real",
    symbol: "R$",
  },
];

getCurrenciesByCountry(countryCode, [keys])

Parameters

NameRequiredTypeTS
countryCodeRequiredStringTCountryCode
keysOptionalArrayTCurrencyKeys[]

Return

NameTypeTS
CurrenciesArrayICurrency[]

Examples

const currenciesInFR = getCurrenciesByCountry("FR");

// console.log(currenciesInFR);
[
  {
    code: "EUR",
    number: "978",
    name: "Euro",
    symbol: "€",
    countries: ["AX", "AD", "AT", "BE", "HR", "CY", "EE", "FI", "FR", "GF", "TF", "DE", "GR", "GP", "IE", "IT", "XK", "LV", "LT", "LU", "MT", "MQ", "YT", "MC", "ME", "NL", "PT", "RE", "BL", "MF", "PM", "SM", "SK", "SI", "ES", "VA"],
  },
];
const currenciesInFR = getCurrenciesByCountry("FR", ["name", "symbol"]);

// console.log(currenciesInFR);
[
  {
    code: "EUR",
    name: "Euro",
    symbol: "€",
  },
];

getCurrency(currencyCode, [keys])

Parameters

NameRequiredTypeTS
currencyCodeRequiredStringTCurrencyCode
keysOptionalArrayTCurrencyKeys[]

Return

NameTypeTS
CurrencyObjectICurrency

Examples

const currencyJPY = getCurrency("JPY");

// console.log(currencyJPY);
{
  code: "JPY",
  number: "392",
  name: "Japanese yen",
  symbol: "¥",
  countries: ["JP"],
}
const currencyJPY = getCurrency("JPY", ["name", "symbol"]);

// console.log(currencyJPY);
{
  code: "JPY",
  name: "Japanese yen",
  symbol: "¥",
}

getAllTimezones([keys])

Parameters

NameRequiredTypeTS
keysOptionalArrayTTimezoneKeys[]

Return

NameTypeTS
TimezonesArrayITimezone[]

Examples

const allTimezones = getAllTimezones();

// console.log(allTimezones);
[
  {
    code: "Africa/Abidjan",
    name: "(GMT+00:00) Abidjan, Abobo, Bouaké, Daloa, San-Pédro",
    label: "Africa/Abidjan (GMT+00:00)",
    countries: ["CI", "BF", "GH", "GM", "GN", "IS", "ML", "MR", "SH", "SL", "SN", "TG"],
    utcOffset: 0,
    utcOffsetStr: "+00:00",
    dstOffset: 0,
    dstOffsetStr: "+00:00",
    withCountries: true,
  },
  {
    code: "Africa/Algiers",
    name: "(GMT+01:00) Algiers, Boumerdas, Oran, Tébessa, Constantine",
    label: "Africa/Algiers (GMT+01:00)",
    countries: ["DZ"],
    utcOffset: 60,
    utcOffsetStr: "+01:00",
    dstOffset: 60,
    dstOffsetStr: "+01:00",
    withCountries: true,
  },
  ...
]
const allTimezones = getAllTimezones(["name", "label"]);

// console.log(allTimezones)
[
  {
    code: "Africa/Abidjan",
    name: "(GMT+00:00) Abidjan, Abobo, Bouaké, Daloa, San-Pédro",
    label: "Africa/Abidjan (GMT+00:00)",
  },
  {
    code: "Africa/Algiers",
    name: "(GMT+01:00) Algiers, Boumerdas, Oran, Tébessa, Constantine",
    label: "Africa/Algiers (GMT+01:00)",
  },
  ...
]

getTimezones([timezoneCodes], [keys])

Parameters

NameRequiredTypeTS
timezoneCodesRequiredArrayTTimezoneCode[]
keysOptionalArrayTTimezoneKeys[]

Return

NameTypeTS
TimezonesArrayITimezone[]

Examples

const selectedTimezones = getTimezones(["America/Cancun", "Asia/Dubai"]);

// console.log(selectedTimezones);
[
  {
    code: "America/Cancun",
    name: "(GMT-05:00) Cancún, Chetumal, Playa del Carmen, Cozumel, Felipe Carrillo Puerto",
    label: "America/Cancun (GMT-05:00)",
    countries: ["MX"],
    utcOffset: -300,
    utcOffsetStr: "-05:00",
    dstOffset: -300,
    dstOffsetStr: "-05:00",
    withCountries: true,
  },
  {
    code: "Asia/Dubai",
    name: "(GMT+04:00) Dubai, Sharjah, Abu Dhabi, Ajman City, Ras Al Khaimah City",
    label: "Asia/Dubai (GMT+04:00)",
    countries: ["AE", "OM", "RE", "SC", "TF"],
    utcOffset: 240,
    utcOffsetStr: "+04:00",
    dstOffset: 240,
    dstOffsetStr: "+04:00",
    withCountries: true,
  },
];
const selectedTimezones = getTimezones(["America/Cancun", "Asia/Dubai"], ["name", "label"]);

// console.log(selectedTimezones);
[
  {
    code: "America/Cancun",
    name: "(GMT-05:00) Cancún, Chetumal, Playa del Carmen, Cozumel, Felipe Carrillo Puerto",
    label: "America/Cancun (GMT-05:00)",
  },
  {
    code: "Asia/Dubai",
    name: "(GMT+04:00) Dubai, Sharjah, Abu Dhabi, Ajman City, Ras Al Khaimah City",
    label: "Asia/Dubai (GMT+04:00)",
  },
];

getTimezonesByCountry(countryCode, [keys])

Parameters

NameRequiredTypeTS
countryCodeRequiredStringTCountryCode
keysOptionalArrayTTimezoneKeys[]

Return

NameTypeTS
TimezonesArrayITimezone[]

Examples

const timezonesInTW = getTimezonesByCountry("TW");

// console.log(timezonesInTW);
[
  {
    code: "Asia/Taipei",
    name: "(GMT+08:00) Taipei, Kaohsiung, Taichung, Tainan, Banqiao",
    label: "Asia/Taipei (GMT+08:00)",
    countries: ["TW"],
    utcOffset: 480,
    utcOffsetStr: "+08:00",
    dstOffset: 480,
    dstOffsetStr: "+08:00",
    withCountries: true,
  },
];
const timezonesInTW = getTimezonesByCountry("TW", ["name", "label"]);

// console.log(timezonesInTW);
[
  {
    code: "Asia/Taipei",
    name: "(GMT+08:00) Taipei, Kaohsiung, Taichung, Tainan, Banqiao",
    label: "Asia/Taipei (GMT+08:00)",
  },
];

getTimezone(timezoneCode, [keys])

Parameters

NameRequiredTypeTS
timezoneCodeRequiredStringTTimezoneCode
keysOptionalArrayTTimezoneKeys[]

Return

NameTypeTS
TimezoneObjectITimezone

Examples

const timezoneAtlanticBermuda = getTimezone("Atlantic/Bermuda");

// console.log(timezoneAtlanticBermuda);
{
  code: "Atlantic/Bermuda",
  name: "(GMT-04:00) Hamilton",
  label: "Atlantic/Bermuda (GMT-04:00)",
  countries: ["BM"],
  utcOffset: -240,
  utcOffsetStr: "-04:00",
  dstOffset: -180,
  dstOffsetStr: "-03:00",
  withCountries: true,
}
const timezoneAtlanticBermuda = getTimezone("Atlantic/Bermuda", ["name", "label"]);

// console.log(timezoneAtlanticBermuda);
{
  code: "Atlantic/Bermuda",
  name: "(GMT-04:00) Hamilton",
  label: "Atlantic/Bermuda (GMT-04:00)",
}

getAllLanguages([keys])

Parameters

NameRequiredTypeTS
keysOptionalArrayTLanguageKeys[]

Return

NameTypeTS
LanguagesArrayILanguage[]

Examples

const allLanguages = getAllLanguages();

// console.log(allLanguages);
[
  {
    code: "aa",
    name: "Afar",
    native: "Afar",
    rtl: false,
    countries: [],
  },
  {
    code: "ab",
    name: "Abkhazian",
    native: "Аҧсуа",
    rtl: false,
    countries: [],
  },
  ...
]
const allLanguages = getAllLanguages(["name", "native"]);

// console.log(allLanguages)
[
  {
    code: "aa",
    name: "Afar",
    native: "Afar",
  },
  {
    code: "ab",
    name: "Abkhazian",
    native: "Аҧсуа",
  },
  ...
]

getLanguages([languageCodes], [keys])

Parameters

NameRequiredTypeTS
languageCodesRequiredArrayTLanguageCode[]
keysOptionalArrayTLanguageKeys[]

Return

NameTypeTS
LanguagesArrayILanguage[]

Examples

const selectedLanguages = getLanguages(["es", "th"]);

// console.log(selectedLanguages);
[
  {
    code: "es",
    name: "Spanish",
    native: "Español",
    rtl: false,
    countries: ["AR", "BO", "BZ", "CL", "CO", "CR", "CU", "DO", "EC", "EH", "ES", "GQ", "GT", "GU", "HN", "MX", "NI", "PA", "PE", "PR", "PY", "SV", "UY", "VE"],
  },
  {
    code: "th",
    name: "Thai",
    native: "ไทย / Phasa Thai",
    rtl: false,
    countries: ["TH"],
  },
];
const selectedLanguages = getLanguages(["es", "th"], ["name", "native"]);

// console.log(selectedLanguages);
[
  {
    code: "es",
    name: "Spanish",
    native: "Español",
  },
  {
    code: "th",
    name: "Thai",
    native: "ไทย / Phasa Thai",
  },
];

getLanguagesByCountry(countryCode, [keys])

Parameters

NameRequiredTypeTS
countryCodeRequiredStringTCountryCode
keysOptionalArrayTLanguageKeys[]

Return

NameTypeTS
LanguagesArrayILanguage[]

Examples

const languagesInSE = getLanguagesByCountry("SE");

// console.log(languagesInSE);
[
  {
    code: "sv",
    name: "Swedish",
    native: "Svenska",
    rtl: false,
    countries: ["AX", "FI", "SE"],
  },
];
const languagesInSE = getLanguagesByCountry("SE", ["name", "native"]);

// console.log(languagesInSE);
[
  {
    code: "sv",
    name: "Swedish",
    native: "Svenska",
  },
];

getLanguage(languageCode, [keys])

Parameters

NameRequiredTypeTS
languageCodeRequiredStringTLanguageCode
keysOptionalArrayTLanguageKeys[]

Return

NameTypeTS
LanguageObjectILanguage

Examples

const languageRO = getLanguage("ro");

// console.log(languageRO);
{
  code: "ro",
  name: "Romanian",
  native: "Română",
  rtl: false,
  countries: ["MD", "RO"],
}
const languageRO = getLanguage("ro", ["name", "native"]);

// console.log(languageRO);
{
  code: "ro",
  name: "Romanian",
  native: "Română",
}

getAllLanguageTags([keys])

Parameters

NameRequiredTypeTS
keysOptionalArrayTLanguageTagKeys[]

Return

NameTypeTS
LanguageTagsArrayILanguageTag[]

Examples

const allLanguageTags = getAllLanguageTags();

// console.log(allLanguageTags);
[
  {
    code: "af_NA",
    name: "Afrikaans",
    native: "Afrikaans",
    language: "af",
    country: "NA",
    rtl: false,
  },
  {
    code: "af_ZA",
    name: "Afrikaans",
    native: "Afrikaans",
    language: "af",
    country: "ZA",
    rtl: false,
  },
  ...
]
const allLanguageTags = getAllLanguageTags(["name", "native"]);

// console.log(allLanguageTags)
[
  {
    code: "af_NA",
    name: "Afrikaans",
    native: "Afrikaans",
  },
  {
    code: "af_ZA",
    name: "Afrikaans",
    native: "Afrikaans",
  },
  ...
]

getLanguageTags([languageTagCodes], [keys])

Parameters

NameRequiredTypeTS
languageTagCodesRequiredArrayTLanguageTagCode[]
keysOptionalArrayTLanguageTagKeys[]

Return

NameTypeTS
LanguageTagsArrayILanguageTag[]

Examples

const selectedLanguageTags = getLanguageTags(["en_US", "zh_TW"]);

// console.log(selectedLanguageTags);
[
  {
    code: "en_US",
    name: "English (US)",
    native: "English (US)",
    language: "en",
    country: "US",
    rtl: false,
  },
  {
    code: "zh_TW",
    name: "Traditional Chinese (Taiwan)",
    native: "中文(台灣)",
    language: "zh",
    country: "TW",
    rtl: false,
  },
];
const selectedLanguageTags = getLanguageTags(["en_US", "zh_TW"], ["name", "native"]);

// console.log(selectedLanguageTags);
[
  {
    code: "en_US",
    name: "English (US)",
    native: "English (US)",
  },
  {
    code: "zh_TW",
    name: "Traditional Chinese (Taiwan)",
    native: "中文(台灣)",
  },
];

getLanguageTagsByLanguage(languageCode, [keys])

Parameters

NameRequiredTypeTS
languageCodeRequiredStringTLanguageCode
keysOptionalArrayTLanguageTagKeys[]

Return

NameTypeTS
LanguageTagsArrayILanguageTag[]

Examples

const languageTagsInES = getLanguageTagsByLanguage("es");

// console.log(languageTagsInES);
[
  {
    code: "es_AR",
    name: "Spanish",
    native: "Español",
    language: "es",
    country: "AR",
    rtl: false,
  },
  {
    code: "es_BO",
    name: "Spanish",
    native: "Español",
    language: "es",
    country: "BO",
    rtl: false,
  },
  ...
];
const languageTagsInES = getLanguageTagsByLanguage("es", ["name", "native"]);

// console.log(languageTagsInES);
[
  {
    code: "es_AR",
    name: "Spanish",
    native: "Español",
  },
  {
    code: "es_BO",
    name: "Spanish",
    native: "Español",
  },
  ...
];

getLanguageTagsByCountry(countryCode, [keys])

Parameters

NameRequiredTypeTS
countryCodeRequiredStringTCountryCode
keysOptionalArrayTLanguageTagKeys[]

Return

NameTypeTS
LanguageTagsArrayILanguageTag[]

Examples

const languageTagsInUS = getLanguageTagsByCountry("US");

// console.log(languageTagsInUS);
[
  {
    code: "en_US",
    name: "English (US)",
    native: "English (US)",
    language: "en",
    country: "US",
    rtl: false,
  },
];
const languageTagsInUS = getLanguageTagsByCountry("SE", ["name", "native"]);

// console.log(languageTagsInUS);
[
  {
    code: "en_US",
    name: "English (US)",
    native: "English (US)",
  },
];

getLanguageTag(languageTagCode, [keys])

Parameters

NameRequiredTypeTS
languageTagCodeRequiredStringTLanguageTagCode
keysOptionalArrayTLanguageKeys[]

Return

NameTypeTS
LanguageTagObjectILanguageTag

Examples

const languageTagth_TH = getLanguage("th_TH");

// console.log(languageTagth_TH);
{
  code: "th_TH",
  name: "Thai",
  native: "ไทย / Phasa Thai",
  language: "th",
  country: "TH",
  rtl: false,
}
const languageTagth_TH = getLanguage("th_TH", ["name", "native"]);

// console.log(languageTagth_TH);
{
  code: "th_TH",
  name: "Thai",
  native: "ไทย / Phasa Thai",
}

formatLanguageTagCode(languageTagCode)

Parameters

NameRequiredTypeLength
languageTagCodeRequiredString5 chars

Return

NameTypeTS
languageTagCodeStringTLanguageTagCode

Examples

const formattedLanguageTagCode = formatLanguageTagCode("TH-tH");

// console.log(formattedLanguageTagCode);
th_TH;

Contact

Feel free to contact me for any questions or issues at hi@andyyu.dev.

Licensing

The code in this project is licensed under MIT license.