1.0.6 • Published 2 years ago

@secjs/intl v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Intl 🌏

Very simple Intl support for NodeJS Applications

GitHub followers GitHub stars

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:

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago