
Security News
CISA Kills Off RSS Feeds for KEVs and Cyber Alerts
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
i18n-controller
Advanced tools
The @maeum/i18n-controller
is a package that helps developer to integreate node-polyglot. Developer can generate a i18n resource via json format file and then use as a singletone class in application(eg. fastify.js or express.js).
Why use @maeum/i18n-controller
?
npm install @maeum/i18n-controller --save
// `localeRoot` is resource location
// `defaultLanguage` is fallback language
await I18nContainer.bootstrap({ localeRoot: './resource', defaultLanguge: 'en' }, true);
if (somethingError) {
throw new Error(I18nContainer.it.t('en', 'common.error', { id: 'your pet id' }));
}
The @maeum/i18n-controller
implements i18n support using node-polyglot. You can use directories to create polyglot objects in multiple languages, and polyglot objects to manage and consume i18n messages.
flowchart LR
A01[<ul><li>resources</li><ul><li>en-gb<ul><li>common.json</li><li>pet.json</li></ul></li><li>en-us<ul><li>common.json</li><li>pet.json</li></ul></li><li>ko<ul><li>common.json</li><li>pet.json</li></ul></li></ul></ul>]
B01[<ul><li>Polyglot:en-gb</li><li>Polyglot:en-us</li><li>Polyglot:ko</li></ul>]
C01["Polyglot:en-gb.t('common.error')"]
C02["Polyglot:en-gb.t('pet.name.require')"]
A01-->B01
B01-->C01
B01-->C02
Each resource files, like common.json
, use jsonc-parser to read in content, so you can add comments to the resource file.
{
// korean common error message
// you can add comments in resource file
"error": "An error occurred, please try again later"
}
// synchronous bootstrap
I18nContainer.bootstrap({ localeRoot: './resources' }, false);
// asynchronous bootstrap
await I18nContainer.bootstrap({ localeRoot: './resources' }, true);
// custom polyglot function
// @see https://github.com/airbnb/polyglot.js#options-overview
await I18nContainer.bootstrap({ localeRoot: './resources', polyglot: { ...your custom option } }, true);
// translate function
I18nContainer.it.t('common.error', { id: 'petId' });
Detail option can check here.
name | type | required | description |
---|---|---|---|
localeRoot | string | required | Specify the location of the resource file |
defaultLanguage | string | Specify the default language. If no language is found when using t function (translate function), the default language translation function is used | |
polyglot.allowMissing | boolean | a boolean to control whether missing keys in a t call are allowed. If false, by default, a missing key is returned and a warning is issued | |
polyglot.interpolation | object | an object to change the substitution syntax for interpolation by setting the prefix and suffix fields | |
polyglot.onMissingKey | function | if allowMissing is true, and this option is a function, then it will be called instead of the default functionality. Arguments passed to it are key, options, and locale. The return of this function will be used as a translation fallback when polyglot.t('missing.key') is called (hint: return the key) | |
pluralRules | object | an object of pluralTypes and pluralTypeToLanguages to control pluralization logic |
This software is licensed under the MIT.
FAQs
maeum i18n controller
The npm package i18n-controller receives a total of 0 weekly downloads. As such, i18n-controller popularity was classified as not popular.
We found that i18n-controller demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.
Research
Security News
Socket uncovers an npm Trojan stealing crypto wallets and BullX credentials via obfuscated code and Telegram exfiltration.