i21n

1.2.0 • Public • Published

i21n

Build Status NPM module Join the chat at https://discord.gg/PBAR2Bz Follow on Twitter

Tiny string internationalization and interpolation library.

Features:

  • Named-variable interpolation
  • Flexible configuration format
  • Set default and fallback locale
  • Load additional locale data at any time
  • Works in Node.js and browser
  • Small, no external dependencies

Install

npm install i21n

Usage

const i21n = require('i21n')
 
const i21n = new i21n({
  /* Basic */
  'hello.world': 'Hello world',
  /* With variables */
  'hello.fullname': 'Hello {name}, your full name is {name} {surname}',
  /* Nested */
  'hello.world.and': {
    'goodbye': {
      'name': 'Hello world, goodbye {name}'
    }
  }
})
 
// "Hello world"
i21n.t('hello.world')
 
// "Hello Ram, your full name is Ram Bo"
i21n.t('hello.fullname', {
  name: 'Ram',
  surname: 'Bo'
})
 
// "Hello world, goodbye Ram"
i21n.t('hello.world.and.goodbye.name', {
  name: 'Ram'
})

Different language translation versions (i.e. locales):

const i21n = new i21n({
  'good': {
    'day': {
      'en-gb': 'Good day {name}',
      'de': 'Guten tag {name}'
    }
  },
  'my': {
    'name.is': {
      'en-gb': 'My name is {name}',
      'zh-TW': '我叫{name}'
    }
  }    
}, {
  /** Locale to use when not explicitly specified or when specified locale version not found */
  defaultLocale: 'en-gb'
})
 
// Default locale
// "Good day Ram"
i21n.t('good.day', {
  name: 'Ram'
})
 
// Override with a specific locale
// "Guten tag Ram"
i21n.t('good.day', {
  name: 'Ram'
}, {
  locale: 'de'
})
 
// Override with a specific locale for which there is no string - it uses the default locale instead!
// "My name is Ram"
i21n.t('my.name.is', {
  name: 'Ram',
  locale: 'de'
})
 
// Load additional locale data
i21n.loadLocale('zh-CN', {
  'good': {
    'day': '你好{name}',
  },
})
// "你好Ram"
i21n.t('good.day', {
  name: 'Ram'
}, {
  locale: 'zh-CN'
})

License

MIT - see LICENSE.md

Package Sidebar

Install

npm i i21n

Weekly Downloads

13

Version

1.2.0

License

MIT

Unpacked Size

8.6 kB

Total Files

7

Last publish

Collaborators

  • hiddentao