1.1.2 • Published 3 years ago
@nathangasc/i18n v1.1.2
i18n
i18n is a module to do translations. This module work front-end & back-end side.
How to use
Here an example of to use i18n module.
import {i18n} from "@nathangasc/i18n"
//We setup I18N
const i18n = new I18N({
"config":{
"debug": false,
"default": "Français"
},
"langs": {
"Français":{
"config":{
"dir":"ltr",
"abreviation":"fr",
"label":"Français"
},
"dictionary":{
"HELLO_WORLD":"Bonjour monde",
"test":"Ceci est un test"
}
}
}
});
//log HELLO_WOLRD of the current language
//i18n.keys : This variable contain each key defined in the default lang (here the default lang is Français)
console.log(i18n.get(i18n.keys.HELLO_WORLD))
//We dynamically add translations
i18n.createLang("Arabe", {
"abreviation":"ar",
"dir": "rtl",
"label": "Arabe"
});
i18n.set("Arabe", i18n.keys.HELLO_WORLD, "بونجور موند");
//We change the current language
i18n.currentLang = "Arabe";
//log HELLO_WOLRD of the current language
console.log(i18n.get(i18n.keys.HELLO_WORLD))
//We switch back to the previous lang
//i18n.langs contain each lang which are defined in the dictionnary
i18n.currentLang = i18n.currentLang = i18n.langs.Français;
//NOTE: Langs & keys which are added dynamically will not be in i18n.langs & i18n.keys
//We can also watch HTMLElement to update them on lang change. Here, we watch helloWorld div element which should have the HELLO_WORLD of the current
//as text element, and after 2s, we change the lang to see the effect.
const helloWorld = document.body.querySelector("#helloWorld") as HTMLElement;
i18n.watchLbl(helloWorld, i18n.keys.HELLO_WORLD);
setTimeout(()=>{
i18n.currentLang = "Arabe";
},2000)