I18n
A lightweight translation module for Node.js and browser.

Table of Contents
Installation
npm i @foxify/i18n
Usage
const I18n = require("@foxify/i18n");
Configure
config is an static method
It gets an object containing the locales and an optional fallback locale, which would be "en" by default.
Locales support dot notation and parameters...
I18n.config({
fallback: "en",
locales: {
en: {
names: {
Ardalan: "Ardalan",
},
greetings: {
hello: "hello",
hi: "hi, {{name}}",
hi2: "hi, {{name=}}",
hi3: "hi, {{name=foo}}",
hi4: "hi, {{name=$names.Ardalan}}",
hi5: "hi, {{$names.Ardalan}}",
},
},
},
severity: "error",
strict: false,
});
Init
The I18n constructor accepts an optional locale parameter, which would be the fallback locale by default.
const i18n = new I18n();
Set the locale when creating new instance:
const i18n = new I18n("en");
Set the strict mode when creating new instance:
const i18n = new I18n(true);
Set the locale and the strict mode when creating new instance:
const i18n = new I18n("en", true);
Properties
console.log(i18n.locale);
console.log(i18n.direction);
translate
Translates the given string according the instance's locale and configured locales;
If it doesn't find any translation and it isn't in strict mode, it will try again with the fallback locale;
If it doesn't find any translation again, it will throw an error.
i18n.translate("greetings.hello");
i18n.t("greetings.hello");
i18n.translate("greetings.hello", true);
i18n.t("greetings.hello", true);
i18n.translate("greetings.hi", { name: "Ardalan!" });
i18n.t("greetings.hi", { name: "Ardalan!" });
i18n.translate("greetings.hi", { name: "$names.Ardalan" });
i18n.t("greetings.hi", { name: "$names.Ardalan" });
i18n.translate("greetings.hi", { name: "$names.Ardalan" }, true);
i18n.t("greetings.hi", { name: "$names.Ardalan" }, true);
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE file for details