anytv-i18n

2.2.1 • Public • Published

anytv-i18n

A module for app internationalization

Install

npm install anytv-i18n@latest --save

Introduction

Simple example:

'use strict';

const i18n = require('anytv-18n');

i18n.configure({
    languages_url: 'http://translations.myapp.com/:project/languages',
    translations_url: 'http://translations.myapp.com/:project/:lang.json',
    locale_dir: path.resolve('translations'),
    default: 'en',
    debug: true
});

i18n.use('freedom_dashboard')
    .load()
    .then(() => {

    	// function to call when everything is loaded
        i18n.trans('zh_TW', 'greetings', {
            name: 'Raven!'
        });

        i18n.trans('non_existent_key'); // empty string
    })
    .catch(() => {
        // function to call when there's an error
    });

Configuration options

  • languages_url url for getting all available languages in json. :project will be replaced by the project you're using. Exact JSON format:
{
	"data": {
		"languages": [
			"en",
			"zh",
			"zh_TW"
		]
	}
}
  • translation_url url for getting json translations. :project will be replaced by the project you're using. :lang will be replaced by the language you're using. Exact format:
{
	"greetings": "你好 :name",
	...
}
  • locale_dir directory where the translations will be cached. should be an absolute path with a trailing backslach. example: /home/user/my-app/translations/
  • debug set to true if you want to debug
  • logger replaces the default logger

    note: Only Winston-like loggers are accepted

Todo

  • [ ] Add test cases

Contributing

Install the tools needed:

npm install grunt -g
npm install --dev

To compile the ES6 source code to ES5:

grunt

To generate the docs:

esdoc -c ./esdoc.json

Running test

npm test

Code coverage

npm run coverage

Then open coverage/lcov-report/index.html.

License

MIT

Author

Freedom! Labs, any.TV Limited DBA Freedom!

Readme

Keywords

Package Sidebar

Install

npm i anytv-i18n

Weekly Downloads

1

Version

2.2.1

License

ISC

Unpacked Size

15.4 kB

Total Files

4

Last publish

Collaborators

  • freedom_sherwin
  • anytv_npmjs
  • cirdec