Very simple Intl support for NodeJS Applications
The intention behind this repository is to always maintain a viable and simple internationalization package to use in any type of NodeJS Framework
.
To use the high potential from this package you need to install first this other packages from SecJS, it keeps as dev dependency because one day
@secjs/core
will install everything once.
npm install @secjs/contracts @secjs/exceptions @secjs/utils
npm install @secjs/intl
Format messages using json files inside resources/locales folder. Is extremely important to create the folder resources/locales in the project root, and inside you need to create the folders for each language, example: resources/locales/en-us.
resources/locales/en-us/messages.json
{
"greeting": "Hello!, my name is {{name}}!"
}
resources/locales/pt-br/messages.json
{
"greeting": "OlĆ”!, meu nome Ć© {{name}}!"
}
import { Sntl } from '@secjs/intl'
// First set the defaultLocale and call load,
// to get all files inside resources folder.
// Now you can call Sntl anywhere and use as you want.
await new Sntl.setDefaultLocale('en-us').load()
Sntl.formatMessage('messages.greeting', { name: 'JoĆ£o' })
// 'Hello!, my name is JoĆ£o!'
// Use forLocale to call for a specific locale in runtime
Sntl.forLocale('pt-br').formatMessage('messages.greeting', {
name: 'JoĆ£o',
}) // 'OlĆ”!, meu nome Ć© JoĆ£o!'
Sntl.forLocale('en-us').formatMessage('messages.greeting', {
name: 'JoĆ£o',
}) // 'Hello!, my name is JoĆ£o!'
// Use changeLocale to change the defaultLocale in runtime
Sntl.changeLocale('pt-br').formatMessage('messages.greeting', {
name: 'JoĆ£o',
})
// 'OlĆ”!, meu nome Ć© JoĆ£o!'
Sntl.forLocale('en-us').formatMessage('messages.greeting', {
name: 'JoĆ£o',
}) // 'Hello!, my name is JoĆ£o!'
// Use list to get all keys inside the json file
Sntl.list('stub', { name: 'JoĆ£o' }) // { test: 'Hello!, my name is JoĆ£o!' }
Made with š¤ by jlenon7 š