1.0.0 • Published 2 years ago
com.matheusdiasdesouzads.js.message-locator v1.0.0
message-locator-js
Localization for message assets.
Usage
Example asset located at res/lang/en/_.json
:
{
"messageId": "Some message",
"parameterized": "Here: $x",
"contextualMale": "Male message",
"contextualFemale": "Female message",
"contextualOther": "Other message",
"qtyEmpty": "Empty ($number)",
"qtyOne": "One ($number)",
"qtyMultiple": "Multiple ($number)"
}
Example TypeScript:
import MessageLocator from 'com.matheusdiasdesouzads.js.message-locator';
const locator = new MessageLocator({
supportedLanguages: ['en', 'pt-BR'],
defaultLanguage: 'en',
fallbacks: {
'jp': ['en'],
},
assets: {
source: 'res/lang',
baseFileNames: ['_'], // _.json
cleanUnused: true,
},
});
// loadLanguage() accepts argument language;
// if unspecified, loads default language.
if (!(await locator.loadLanguage())) {
// failed to load
}
console.log(locator.locate('_.messageId'));
console.log(locator.locate('_.parameterized', {x: 'foo'}));
console.log(locator.locate('_.contextual', 'female'));
// Clone: (assets.cleanUnused = false)
const anotherLocator = MessageLocator.from(locator);
1.0.0
2 years ago