langtag-utils

A collection of useful utilities for bcp47 and rfc4647


Keywords
bcp47, rfc4647, langtag, subtag, language, lng, lang, typescript, bcp-47
License
MIT
Install
npm install langtag-utils@2.0.2

Documentation

langtag-utils

Build Status

A collection of useful utilities for bcp47 and rfc4647

lookup(tags, ranges, defaultValue = 'en')

Find the most appropriate language tag that matches a language priority list.

navigatorLanguages()

Retrieves the language information saved in window.navigator backwards compatible.

parse(tag)

Parses the language tag and returns an object with all available information.

Installation

npm install --save langtag-utils

How to use

import { lookup, navigatorLanguages, parse } from 'langtag-utils';

const whiteList = ['de', 'en'];
const fallbackLng = 'de';
const detectedLng = lookup(whiteList, navigatorLanguages(), fallbackLng);

...

console.log(parse('en-Latn-GB-boont-r-extended-sequence-x-private'));
/*
{
  langtag: {
    language: {
      language: 'en',
      extlang: [],
    },
    script: 'Latn',
    region: 'GB',
    variant: ['boont'],
    extension: [
      {
        singleton: 'r',
        extension: ['extended', 'sequence'],
      },
    ],
    privateuse: ['private'],
  },
  privateuse: [],
  grandfathered: {
    irregular: null,
    regular: null,
  }
}
*/

...

License

MIT