1.1.2 • Published 6 years ago

svjs-i18n v1.1.2

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

svjs-i18n

A simple ES6 module to support internationalisation of JavaScript UIs.

Usage example

const i18n = new I18n({locale: "de"})
i18n.load({
    de: {
        "myname": "Mein Name ist $2, $1 $2"
    },
    en: {
        "myname": "My name is $2, $1 $2"
    }
})
const translation = i18n.t("myname", "James", "Bond")
Test.assertEquals("Mein Name ist Bond, James Bond", translation)    

You can set the locale via configuration

const i18n = new I18n({locale: "de"})

In case the locale option is not given, the language attribute given for the html tag will be used:

<html lang="de">

If that lang attribute is also missing, it will try to use the locale specified by the browser.

Load language file

You can load the dictionary from external json files:

const i18n = new I18n("de")
i18n.load({
    de: "translations-de.json",
    en: "translations-en.json"
}).then(() => {
    Test.assertEquals("Haus", i18n.t("house"))
    Test.assertEquals("Hallo", i18n.t("hello"))
    i18n.locale = "en"
    Test.assertEquals("House", i18n.t("house"))
    Test.assertEquals("Hello", i18n.t("hello"))
})

Add multiple dictionaries

You can add multiple dictionaries. All dictionaries are added. Same keys will be overwritten.

i18n.load({
    de: "translations-de.json"
}.then(() => {
    i18n.load({
        de: {
            "house": "Haus"
        }
    })
    i18n.load({
        en: {
            "house": "House"
        }
    })
    i18n.load({
        en: {
            "house": "My House"
        }
    })
    Test.assertEquals("My House", i18n.t("house"))
}))
1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.5

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago