langtag-utils

A collection of useful utilities for bcp47 and rfc4647

Usage no npm install needed!

<script type="module">
  import langtagUtils from 'https://cdn.skypack.dev/langtag-utils';
</script>

README

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