@secjs/intl
v1.0.6
Published
> Very simple Intl support for NodeJS Applications
Downloads
8
Readme
Intl 🌏
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
.
Installation
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
Usage
Sntl
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!' }
License
Made with 🖤 by jlenon7 :wave: