Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/formatjs/handlebars-intl
- Owner: formatjs
- License: other
- Created: 2013-12-17T21:56:02.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2022-03-25T21:02:25.000Z (almost 3 years ago)
- Last Synced: 2025-01-18T02:29:15.967Z (9 days ago)
- Topics: formatjs, handlebars, internationalization, javascript, web
- Language: JavaScript
- Homepage: http://formatjs.io/handlebars/
- Size: 881 KB
- Stars: 264
- Watchers: 24
- Forks: 28
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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