1.1.2 • Published 3 years ago

@nathangasc/i18n v1.1.2

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

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)
1.1.1

3 years ago

1.1.0

3 years ago

1.1.2

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago