Handlebars helpers for internationalization.
npm install handlebars-intl[Handlebars Intl][]
===================
This library provides [Handlebars][] helpers for internationalization. The helpers provide a declarative way to format dates, numbers, and string messages with pluralization support.
[![npm Version][npm-badge]][npm]
[![Build Status][travis-badge]][travis]
[![Dependency Status][david-badge]][david]
[![Sauce Test Status][sauce-badge]][sauce]
This package used to be named handlebars-helper-intl.
Overview
--------
Handlebars Intl is part of [FormatJS][], the docs can be found on the webiste:
- Display numbers with separators.
- Display dates and times correctly.
- Display dates relative to "now".
- Pluralize labels in strings.
- Support for 200+ languages.
- Runs in the browser and Node.js.
- Built on standards.
There are many examples [on the website][Handlebars Intl], but here's a comprehensive one:
``handlebars`
{{formatMessage (intlGet "messages.post.meta")
num=post.comments.length
ago=(formatRelative post.date)}}
`js
var context = {
post: {
date : 1422046290531,
comments: [/.../]
}
};
var intlData = {
locales : ['en-US'],
messages: {
post: {
meta: 'Posted {ago}, {num, plural, one{# comment} other{# comments}}'
}
}
};
var template = Handlebars.compile(/ Template source above /);
var html = template(context, {
data: {intl: intlData}
});
`
This example would render: "Posted 3 days ago, 1,000 comments" to the html variable. The post.meta` message is written in the industry standard [ICU Message syntax][], which you can also learn about on the [FormatJS website][FormatJS].
Contribute
----------
Let's make Handlebars Intl and FormatJS better! If you're interested in helping, all contributions are welcome and appreciated. Handlebars Intl is just one of many packages that make up the [FormatJS suite of packages][FormatJS GitHub], and you can contribute to any/all of them, including the [Format JS website][FormatJS] itself.
Check out the [Contributing document][CONTRIBUTING] for the details. Thanks!
License
-------
This software is free to use under the Yahoo! Inc. BSD license.
See the [LICENSE file][LICENSE] for license text and copyright information.
[Handlebars Intl]: http://formatjs.io/handlebars/
[Handlebars]: http://handlebarsjs.com/
[npm]: https://www.npmjs.org/package/handlebars-intl
[npm-badge]: https://img.shields.io/npm/v/handlebars-intl.svg?style=flat-square
[travis]: https://travis-ci.org/yahoo/handlebars-intl
[travis-badge]: http://img.shields.io/travis/yahoo/handlebars-intl.svg?style=flat-square
[david]: https://david-dm.org/yahoo/handlebars-intl
[david-badge]: https://img.shields.io/david/yahoo/handlebars-intl.svg?style=flat-square
[sauce]: https://saucelabs.com/u/handlebars-intl
[sauce-badge]: https://saucelabs.com/browser-matrix/handlebars-intl.svg
[FormatJS]: http://formatjs.io/
[FormatJS GitHub]: http://formatjs.io/github/
[ICU Message syntax]: http://formatjs.io/guide/#messageformat-syntax
[CONTRIBUTING]: https://github.com/yahoo/handlebars-intl/blob/master/CONTRIBUTING.md
[LICENSE]: https://github.com/yahoo/handlebars-intl/blob/master/LICENSE