simple-locale-i18n
v1.8.0
Published
Very simple locale handler
Downloads
20
Maintainers
Readme
Simple Locale Internationalization (I18n)
This is an extremely simple i18n module, only for those too lazy to code their own.
API
Instanciation
var locales = require('simple-locale-i18n')('en', './locales');
To instanciate a locales object, call require and the constructor function by passing
3 parameters to it:
|| default_locale | directory | callback |
|:-:|:-:|:-:|:-:|
|Required| false | false | false|
|Description| The default locale when none specified, example: en| The directory to read locales from. Locales will have the name of the files they are read from | A callback function to call when all locales are read |
Locale Files
The module will read the folder ./locales by default. This folder should be located in the same directory where the locales object is instanciated.
You can change the folder name by adding a 2nd parameter to the constructor function.
Format
By default, locale files are in JSON format, thus .json extension (this will be checked against when instanciated). And should be written like:
{
"some_key": "The translation",
"some_other_key": "Another translation"
}Translating
To translate simply call the i18n method from the instanciated object:
var locales = require('simple-locale-i18n')('en', './locales');
locales.i18n('trad.hello'); // 'Hello!'
locales.i18n('trad.hello', 'fr'); // 'Salut!'To simplify, you can also define a helper variable:
var locales = require('simple-locale-i18n')('en', './locales');
const i18n = locales.i18n;
i18n('trad.hello'); // 'Hello!'
i18n('trad.hello', 'fr'); // 'Salut!'Building
You can also build strings, mustache-style:
var string = 'Hello {{ name }}! This is a translation into {{ language }} using {{ package }}';
i18n.build(string, {
name: 'John',
language: 'English',
package: 'simple-locale'
});
// returns 'Hello John! This is a translation into English using simple-locale'Translate
This is a utility function that allows you to simply build strings only giving the locale. It is a
composition of i18n and build.
//en.trad.say_hello = 'Hello we are in {{ country }}!';
//fr.trad.say_hello = 'Salut, on est en {{ country }}!';
var string = i18n.translate('trad.say_hello', {
[locale]: 'en',
[placeholder]: 'Hi!',
values:{
en: {
country: 'England'
},
fr:{
country: 'France'
}
}
});
string === 'Hello we are in England' // true