Giter Club home page Giter Club logo

model-un's Introduction

model-un

Build Status

A library that provides IETF language tags with English names, and official/common languages/language codes for countries and sovereign states.

Usage:

var mun = require('@mapbox/model-un');

// functions take either:
// a 2-3 letter (ISO 639-1 preferred, 639-2B - 2T fallback) language code or a language name
// or
// a 2 letter (ISO) country code or country name

// language code should conform to the IETF code, but may also be written with an underscore
// e.g. en-US or en_US in order to support postgres column names

mun.hasLanguage('en');
// true
mun.hasLanguage('English');
// true

mun.hasCountry('US');
// true
mun.hasCountry('United States');
// true

mun.getLanguage('ru');
// { type: 'language', subtag: 'ru', description: 'Russian', added: '2005-10-16', 'suppress-script': 'Cyrl', '639_1': 'ru', '639_2B': 'rus', name_en: [ 'Russian' ] }
mun.getLanguage('Russian');
// { type: 'language', subtag: 'ru', description: 'Russian', ...}

// supports IETF subtags
mun.getLanguage('en-US');
// [ 
//   { type: 'language', subtag: 'en', description: 'English', added: '2005-10-16',  'suppress-script': 'Latn', '639_1': 'en', '639_2B': 'eng', name_en: 'English' ] },
//   { type: 'region', subtag: 'US', description: 'United States', added: '2005-10-16' }
// ]

mun.getCountry('us');
// { iso: 'US', iso3: 'USA', country: 'United States', capital: 'Washington',  continent: 'NA', postal_code_format: '#####-####', postal_code_regex: '^\\d{5}(-\\d{4})?$', languages: [ 'en-US', 'es-US', 'haw', 'fr' ] }
mun.getCountry('!!');
// false

mun.getAllLanguagesLike('Chinese');
// [ 'Chinese', 'Achinese', 'Min Dong Chinese'...]
mun.getAllLanguagesLike('Dinosaurese');
// []

mun.getAllCountriesLike('French');
// [ 'French Guiana', 'French Polynesia'...]
mun.getAllCountriesLike('Dinotopia');
// []

mun.getOfficialLanguages('cz');
// [ 'cs', 'sk' ]

mun.getOfficialLanguages('cz', {verbose: true});
// [
//  { type: 'language', subtag: 'cs',  description: 'Czech',  added: '2005-10-16', 'suppress-script': 'Latn', '639_1': 'cs', '639_2B': 'cze', '639_2T': 'ces', name_en: [ 'Czech' ] },
//  { type: 'language', subtag: 'sk', description: 'Slovak', added: '2005-10-16', 'suppress-script': 'Latn', '639_1': 'sk', '639_2B': 'slo', '639_2T': 'slk', name_en: [ 'Slovak' ] } 
// ]


Test:

npm test

Update indices:

npm run updateAll

Data from:

IANA Language Subtag Registry

Geonames with modification (see ./data/countries.json)

model-un's People

Contributors

camilleanne avatar sbma44 avatar tmcw avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.