a minimalistic translator library
given the example translations, en.js
:
module.exports = {
language: 'english',
hello: 'hello!',
colours: {
red: 'red',
green: 'green',
blue: 'blue',
},
count: '{count} items',
}
and pl.js
:
module.exports = {
language: 'polski',
hello: 'cześć!',
colours: {
red: 'czerwone',
green: 'zielone',
},
count: 'liczba wpisów: {count}',
}
you can initialise the translator like this:
const TinyTranslator = require('avris-tinytranslator');
const translator = new TinyTranslator({
en: require('../translations/en.js'),
pl: require('../translations/pl.js'),
}, 'en');
the last parameter specifies a default language – it will be selected at the initialisation and also used as a fallback if a translation is missing from another language.
translator.translate('hello'); // 'hello!'
translator.translate('colours.green'); // 'green'
translator.translate('colours.blue'); // 'blue'
translator.translate('count', {count: 5}); // '5 items'
you can manually select another language:
translator.switchLanguage('pl');
translator.translate('hello'); // 'cześć!'
translator.translate('colours.green'); // 'zielone'
translator.translate('colours.blue'); // 'blue' (fallback from english)
translator.translate('count', {count: 5}); // 'liczba wpisów: 5'
or detect it automatically:
translator.switchLanguage(translator.detectLanguage());
you can also make the translations reactive
by simply passing a ref('en')
object as the default language.
if you set a special translation key language
,
it will be used to provide a dictionary like this via translator.languages()
:
{
en: 'english',
pl: 'polski',
}
node tests.js # run tests
node homepage.js # regenerate homepage from readme