@dizmo/i18n

    2.1.1 • Public • Published

    NPM version Build Status Coverage Status

    @dizmo/i18n

    A module, which provides the i18n function to get the translator function, which can be used to translate key words from JSON files. For each language one wants to support, there should be a JSON file, which is then fetched from a URL – based on the (current) language. By default the URL and language are set to work within the context of a dizmo.

    The default location to fetch JSON files from is:

    url: (language) => {
        return `assets/locales/translation.${language}.json`;
    }

    while the default language is the current language of the viewer:

    language: () => {
        return viewer.getAttribute('settings/language');
    }

    The translator function takes a key string (plus an optional separator) and returns a translated value by performing a deep lookup from within the JSON file (for the current language). The separator can be a string or a regular expression (with a default of /\/|\./, i.e. a forward slash or a period).

    Usage

    Install

    npm install @dizmo/i18n --save

    Require

    const i18n = require('@dizmo/i18n');

    Examples

    i18n((error, translate) => {
        if (error) {
            return console.error(error);
        }
        const value_a = translate('my/example/key/a');
        const value_b = translate('my.example.key.b');
        const value_c = translate('my:example:key:c', /:/);
        const value_d = translate('my|example|key|d', '|');
    });
    try {
        const translate = await i18n();
        const value = translate('my/example/key/a');
    } catch (error) {
        console.error(error);
    }
    i18n((error, translate) => {
        if (error) {
            return console.error(error);
        }
        const value = translate('my/example/key/a');
    }, {
        url: (language) => {
            return `https://domain.tld/translation.${language}.json`,
        },
        language: () => {
            return 'en';
        }
    });
    try {
        const translate = await i18n(null, {
            url: (language) => {
                return `https://domain.tld/translation.${language}.json`,
            },
            language: () => {
                return 'en';
            }
        });
        const value = translate('my/example/key/a');
    } catch (error) {
        console.error(error);
    }

    Development

    Clean

    npm run clean

    Build

    npm run build

    without linting and cleaning:

    npm run -- build --no-lint --no-clean

    with UMD bundling (incl. minimization):

    npm run -- build --prepack

    with UMD bundling (excl. minimization):

    npm run -- build --prepack --no-minify

    Lint

    npm run lint

    with auto-fixing:

    npm run -- lint --fix

    Test

    npm run test

    without linting, cleaning and (re-)building:

    npm run -- test --no-lint --no-clean --no-build

    Cover

    npm run cover

    without linting, cleaning and (re-)building:

    npm run -- cover --no-lint --no-clean --no-build

    Documentation

    npm run docs

    Publication

    npm publish

    initially (if public):

    npm publish --access=public

    Copyright

    © dizmo AG, Switzerland

    Install

    npm i @dizmo/i18n

    DownloadsWeekly Downloads

    16

    Version

    2.1.1

    License

    ISC

    Unpacked Size

    53.2 kB

    Total Files

    9

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar