Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

iso-639-1-dir

chladog39MIT3.0.5TypeScript support: included

ESM of ISO-639-1 language codes, english names, native names and writing directions. TS-friendly.

i18n, iso, iso-639, iso-639-1, lang, code, language, language code, locale, locale code, language dir, language direction, writing direction, ltr, ttb, rtl, direction, typescript, typed, esm, module

readme

ISO-639-1-dir

NPM Version Download Count

Simple interface for ISO-639-1 language their 2-letter codes, english names, native names and writing directions. Typescript friendly.

Installation

npm install iso-639-1-dir
yarn add iso-639-1-dir

Usage

ES Module

import ISO6391 from 'iso-639-1-dir';

const codes = ISO6391.getAllCodes();

CommonJs

const ISO6391 = require('iso-639-1-dir');

const codes = ISO6391.getAllCodes();

Interfaces & Types

Codes list: ISO-639-1


type LanguageCode = "aa" | "ab" | "ae" | "af" | "ak" | "am" | "an" | "ar" | "as" | "av" | "ay" | "az" | "ba" | "be" | "bg" | "bi" | "bm" | "bn" | "bo" | "br" | "bs" | "ca" | "ce" | "ch" | "co" | "cr" | "cs" | ... 155 more ... | "zu"

type LanguageName = "Afar" | "Abkhaz" | "Avestan" | "Afrikaans" | "Akan" | "Amharic" | "Aragonese" | "Arabic" | "Assamese" | "Avaric" | "Aymara" | "Azerbaijani" | "Bashkir" | "Belarusian" | "Bulgarian" | ... 167 more ... | "Zulu"

type LanguageNativeName = "Afaraf" | "аҧсуа бызшәа" | "avesta" | "Afrikaans" | "Akan" | "አማርኛ" | "aragonés" | "اَلْعَرَبِيَّةُ" | "অসমীয়া" | "авар мацӀ" | "aymar aru" | "azərbaycan dili" | "башҡорт теле" | ... 168 more ... | "isiZulu"

/**
 * ltr - left to right
 * rtl - right to left
 * ttb - top to bottom
 */
type LanguageDir = 'ltr' | 'rtl' | 'ttb';

interface Language {
  name: LanguageName;
  nativeName: LanguageNativeName;
  dir: LanguageDir;
  code: LanguageCode;
}

Methods

  /**
   * Get the array of the language objects by the given codes.
   * Invalid codes will be filtered out.
   */
  getLanguages(codes: LanguageCode[]): Language[]

  /**
   * Get the language object by the given code
   */
  getLanguage(code: LanguageCode): Language | undefined

  /**
   * Get language english name by the code
   */
  getName(code: LanguageCode): LanguageName | undefined

  /**
   * Get language writing direction by the code
   */
  getDir(code: LanguageCode): LanguageDir | undefined

  /**
   * Get all languages english names
   */
  getAllNames(): LanguageName[]

  /**
   * Get language native name by the code
   */
  getNativeName(code: LanguageCode): LanguageNativeName | undefined

  /**
   * Get all languages native names
   */
  getAllNativeNames(): LanguageNativeName[]

  /**
   * Get code of a language by english name or native name
   */
  getCode(name: string): LanguageCode | undefined

  /**
   * Get all languages codes
   */
  getAllCodes(): LanguageCode[]

  /**
  * Validate if language exists by the code
  */
  validate(code: string): code is LanguageCode

changelog

iso-639-1 Changelog

v3.0.4

  • getLanguages(codes?: LanguageCode[]) method now returns all languages if no codes parameter passed to it.
  • new getLanguagesObj(codes?: LanguageCode[]) method that returns an object in format {[key: LanguageCode]: Language}. This is convenient method should you prefer object to array of languages.

v2.1.15

  • Change parameters type "LanguageCode" to "string"

    v2.1.14

  • Bump async from 2.6.0 to 2.6.4 #53
  • Add a type to list the langage codes in the TS definition file #55

v2.1.13

  • update Arabic native name #50

v2.1.12

  • remove 'bh' #51
  • fj native name changed to "vosa Vakaviti" #51
  • dv native name changed to "ދިވެހި" #51
  • lo native name changed to "ພາສາລາວ" #51
  • ms native name changed to "Bahasa Melayu" #51
  • lu native name changed to "Kiluba" #51
  • na native name changed to "Dorerin Naoero" #51
  • tk native name changed to "Türkmençe" #51

v2.1.11

  • Slovenian native name "slovenski jezik" -> "slovenščina" #49

v2.1.10

  • Polish native name "język polski" -> "Polski" #48

v2.1.9

  • Change hu native name "Magyar" -> "magyar" #40

v2.1.8

  • Change hr native name "hrvatski jezik" -> "Hrvatski"
  • Change sl English name "Slovene" -> "Slovenian"

v2.1.0

  • Correctly handle prototype property names passed as codes #20