c-3po

Modern javascript i18n localization library based on es6 tagged templates and the good old GNU gettext
Key features
- Uses es6 template literals for string formatting (no need for sprintf).
- Contexts support
- Can precompile translations on a build step.
- Plurals support ngettext.
- Can be integrated in any build tool that works with babel.
- Has options for both efficient development and production setups.
- Has a builtin validation for translated strings format.
- Can use any default locale in sources (not only English).
- Handles React (jsx) translations.
Usage example
import { t, ngettext, msgid } from 'c-3po'
// formatted strings
const name = 'Mike';
const helloMike = t`Hello ${name}`;
// plurals (works for en locale out of the box)
const n = 5;
const msg = ngettext(msgid`${ n } task left`, `${ n } tasks left`, n)
Installation
npm install --save c-3po
npm install --save-dev babel-plugin-c-3po
c-3po babel plugin - https://github.com/c-3po-org/babel-plugin-c-3po
Usage from CDN
https://unpkg.com/c-3po/dist/c3po.min.jsThis project is designed to work in pair with babel-plugin-c-3poBut you can also play with it without transpile. Here is the doc about how to use c-3po without babel transpilation.