@noreajs/i18n

Library of tools necessary for the internationalization of an application, based on polyglot from airbnb.

Usage no npm install needed!

<script type="module">
  import noreajsI18n from 'https://cdn.skypack.dev/@noreajs/i18n';
</script>

README

i18n

Library of tools necessary for the internationalization of an application, based on polyglot from airbnb.

Installation

npm install @noreajs/i18n --save

The package already contains it's types definitions files for typescript developers.

Usage

Translations files

The default translation file is i18n. If the folder doesn't exit, it will be created automatically by the package.

Synchronous initialize i18n

import I18n from "../i18n/I18n";

const i18n = new I18n({
    locales: ["en-US", "en-FR"],
    fallback: "en-fr",
    languagesFolder: "i18n" // i18n is the default value and it is optional.
});

// set the locale
i18n.setLocale("en-US");

i18n.t("users.index.empty");

Asynchronous initialization

import I18n from "../i18n/I18n";

const i18n = new I18n({
    locales: ["en-US", "en-FR"],
    fallback: "en-fr",
    syncLoading: false
});

// load translations (asynchronous method)
i18n.loadTranslations((data) => {
    i18n.setLocale("en-fr");
    console.log("t:", i18n.t("users.index.empty"));
});

I18n parameters

To initialize a the i18n package, you need to fill some parameters.

Property Type Default Note
locales Array Locale supported
fallback string first locales value Fallback locale
languagesFolder string i18n Folder where translations files are stored. This folder is automatically created when not exists
lazyLoading boolean false Resolve translation key while translate
caseSensitive boolean false users.index.empty and users.index.EMPTY will be treated the same way
syncLoading boolean true Load translations during initialization
polyglotOptions polyglot options Only interpolation, allowMissing and onMissingKey is allowed

I18n methods

Method Description
setLocale Change the current locale
getLocale Get the current locale
getTranslations Get the available translations loaded from files
loadTransactions Asynchronous method to load translations when syncLoading is false
t Translate a given key