y18n

The bare-bones internationalization library used by yargs.

Inspired by i18n.

# Examples

simple string translation:

var __ = require('y18n').__
console.log(__('my awesome string %s', 'foo'))

output:

`my awesome string foo`

using tagged template literals

var __ = require('y18n').__
var str = 'foo'
console.log(__`my awesome string ${str}`)

output:

`my awesome string foo`

pluralization support:

var __n = require('y18n').__n
console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'))

output:

`2 fishes foo`

# JSON Language Files

The JSON language files should be stored in a `./locales` folder. File names correspond to locales, e.g., `en.json`, `pirate.json`.

When strings are observed for the first time they will be added to the JSON file corresponding to the current locale.

# Methods

## require('y18n')(config)

Create an instance of y18n with the config provided, options include:

- `directory`: the locale directory, default `./locales`.
- `updateFiles`: should newly observed strings be updated in file, default `true`.
- `locale`: what locale should be used.
- `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`) be allowed if a file matching the locale does not exist (e.g. `en_US.json`), default `true`.

## y18n.__(str, arg, arg, arg)

Print a localized string, `s` will be replaced with `arg`s.

This function can also be used as a tag for a template literal. You can use it like this: `__&#96;hello ${'world'}&#96;`. This will be equivalent to ‘__('hello s’, 'world')`.

## y18n.__n(singularString, pluralString, count, arg, arg, arg)

Print a localized string with appropriate pluralization. If `d` is provided in the string, the `count` will replace this placeholder.

## y18n.setLocale(str)

Set the current locale being used.

## y18n.getLocale()

What locale is currently being used?

## y18n.updateLocale(obj)

Update the current locale with the key value pairs in `obj`.

# License

ISC