Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/formatjs/handlebars-intl

Handlebars helpers for internationalization.
https://github.com/formatjs/handlebars-intl

formatjs handlebars internationalization javascript web

Last synced: 5 days ago
JSON representation

Handlebars helpers for internationalization.

Awesome Lists containing this project

README

        

[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:**
****

### Features

- 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.

### Example

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