npm package: @hotosm/iso-countries-languages
Description: ISO 639-1 languages and ISO 3166-1 countries translated in the languages required by Tasking Manager
Author: Humanitarian OpenStreetMap Team
Latest version: 1.1.2

# iso-countries-languages

[![npm version](https://badge.fury.io/js/%40hotosm%2Fiso-countries-languages.svg)](https://badge.fury.io/js/%40hotosm%2Fiso-countries-languages)

This library provides the full list of [ISO 639-1 languages](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) and the full list of [ISO 3166-1 countries](https://en.wikipedia.org/wiki/ISO_3166-1). The library supports 89 languages (the full list is available by querying the library API itself) and it is designed to be easy to import and use.

## Installation

Simply run the following code and look at the examples to see typical usages:

```
yarn add @hotosm/iso-countries-languages
```

## Customization

This library includes data for more than 150 languages. To make the build smaller, we have only 24 languages enabled, but you can easily build that package with more languages enabled. Follow those steps:

- Modify [supportedLangs.json](/src/supportedLangs.json)
- Run `yarn all`

To update the countries data from OpenStreetMap, execute `yarn update-countries`.

## API list

### getSupportedLangs

Returns the list of supported languages.

```
var isoCountriesLanguages = require('iso-countries-languages');

var supportedLangs = isoCountriesLanguages.getSupportedLangs();
console.log("Supported languages: ");
console.log(supportedLangs);
```

#### Output

```
Supported languages:
[ 'af',
  'am',
  'ar',
  'az',
  'ba',

  ...

  'udm',
  'uk',
  'ur',
  'uz',
  'vi',
  'xh',
  'yi',
  'zh' ]
```

### getCountries

Returns the ISO 3166-1 list of countries translated in the language passed as a parameter.

```
var isoCountriesLanguages = require('iso-countries-languages');

var countriesInFrench = isoCountriesLanguages.getCountries('fr');
console.log("Countries in french: ");
console.log(countriesInFrench);
```

#### Output

```
Countries in french:
{ AF: 'Afghanistan',
  AX: 'Les Îles D\'Åland',
  AL: 'L\'albanie',
  DZ: 'L\'algérie',
  AS: 'Samoa Américaines',
  AD: 'Andorre',

  ...

  WF: 'Wallis-et-Futuna',
  EH: 'Sahara Occidental',
  YE: 'Yémen',
  ZM: 'La zambie',
  ZW: 'Zimbabwe' }
```

### getCountry

Returns the translation for the country code passed as a parameter in the language passed as a parameter.

```
var isoCountriesLanguages = require('iso-countries-languages');

var italyInFrench = isoCountriesLanguages.getCountry('fr', 'IT');
console.log("Italy in french: ");
console.log(italyInFrench);
```

#### Output

```
Italy in french:
Italie
```

### getLanguages

Returns the ISO 639-1 list of languages translated in the language passed as a parameter

```
var isoCountriesLanguages = require('iso-countries-languages');

var languagesInItalian = isoCountriesLanguages.getLanguages('it');
console.log("Languages in italian: ");
console.log(languagesInItalian);
```

#### Output

```
Languages in italian:
{ ab: 'Di abcasia',
  aa: 'Lontano',
  af: 'Afrikaans',
  ak: 'Akan',
  sq: 'Albanese',
  am: 'Amarico',
  ar: 'Arabo',

  ...

  xh: 'Xhosa',
  yi: 'Yiddish',
  yo: 'Yoruba',
  za: 'Zhuang, Chuang',
  zu: 'Zulu' }

```

### getLanguage

Returns the translation for the language code passed as a parameter in the language passed as a parameter

```
var isoCountriesLanguages = require('iso-countries-languages');

var spanishInItalian = isoCountriesLanguages.getLanguage('it', 'es');
console.log("Spanish in italian: ");
console.log(spanishInItalian);
```

#### Output

```
Spanish in italian:
Spagnolo
```

#### License

MIT License

The country names included in this project came from [OpenStreetMap](https://osm.org/copyright). The data is made available under [ODbL](https://opendatacommons.org/licenses/odbl/).