All Projects → talyssonoc → I18node

talyssonoc / I18node

I18n library for Node.js with support for plurals and genders

Programming Languages

javascript
184084 projects - #8 most used programming language

I18node

TL;DR: It's an i18n package for Node.js, with support to plurals and genders

Build Status Dependency manager Coverage Status

	$ npm install i18node

Usage:

	var I18Node = require('i18node');
	
	var options = {
		locales: ['en', 'pt'],
		defaultLocale: 'en',
		defaultGender: 'masc',
		path: './locales'
	};

	var i18n = new I18Node(options);

	i18n.i18n('person'); //person
	i18n.i18n('person', 2); //couple
	i18n.i18n('person', 3); //people
	i18n.i18n('person', { num: 2 }); //couple
	i18n.i18n('hello world', { num: 2, greeting: 'hi'}); //hi worlds
	i18n.i18n('hello world', { greeting: 'olá', locale: 'pt'}); //olá mundo
	i18n.i18n('nidorino', { num: 2 }); //nidorinos
	i18n.i18n('nidorino', { gender: 'masc' }); //nidorino
	i18n.i18n('nidorino', { num: 2, gender: 'fem' }); //nidorinas
	i18n.i18n('none', { gender: 'neutral', locale: 'pt' }); //nenhum

And let's say that, inside ./locales folder we have the files:

en.json:

	{
		"person": {
			"1": "person",
			"2": "couple",
			"n": "people"
		},
		"hello word": {
			"1": "{{greeting}} world",
			"n": "{{greeting}} worlds"
		},
		"nidorino": {
			"1" : {
				"masc": "nidorino",
				"fem": "nidorina"
			},
			"n" : {
				"masc": "nidorinos",
				"fem": "nidorinas"
			}
		},
		"none": "none"
	}

pt.json:

	{
		"person": {
			"1": "pessoa",
			"2": "casal",
			"n": "pessoas"
		},
		"hello word": {
			"1": "{{greeting}} mundo",
			"n": "{{greeting}} mundos"
		},
		"none": {
			"neutral": "nenhum",
			"fem": "nenhuma"
		}
	}

Options

  • locales: Array of locale names. Default: ['en'])
  • defaultLocale: Default: 'en'
  • defaultGender: Default: 'neutral'
  • path: Path for the locales folder. Default: './locals'

API

  • setLocale(locale): Set the default locale
  • getLocale(): Return the current default locale
  • setGender(gender): Set the default gender
  • getGender(): Return the current default gender
  • hasLocale(locale): Return if the passed locale is supported
  • i18n(term, data): Return the internationalized term, using the given data
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].