@dizmo/i18n
v2.1.1
Published
i18n module
Downloads
4
Readme
@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