UNPKG

3.68 kBMarkdownView Raw
1# ember-intl
2
3[![npm Version][npm-badge]][npm]
4![Ember Version][ember-version]
5[![Build Status][travis-badge]][travis]
6[![npm](https://img.shields.io/npm/dm/ember-intl.svg)](https://www.npmjs.com/package/ember-intl)
7[![Ember Observer Score](http://emberobserver.com/badges/ember-intl.svg)](http://emberobserver.com/addons/ember-intl)
8
9## Notable Features
10
11* 💵 Locale-aware numbers. Formatting of currencies, decimals, and percentages
12* 📅 Locale-aware dates and times formatting
13* 🕑 Locale-aware display of relative time. i.e, `"in 1 day"`, `"2 years ago"`, etc.
14* 💬 ICU Message Syntax. Pluralization and formatted segments (numbers, datetime, etc.)
15* 🌐 Support for 150+ languages
16* 🕵🏻 Translation linting (detects missing translations & translation argument mismatches)
17* 📜 Built largely on standards. [ICU message syntax][ICU] & [Native Intl API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl)
18* ⚡ Extensive Ember Service API and template helpers for formatting and translating
19* 🎉 [Advanced addon support](https://ember-intl.github.io/ember-intl/docs/advanced/addon-support) to provide translations to the host app
20
21## Documentation
22
23[5.x](https://ember-intl.github.io/ember-intl/versions/master/docs/quickstart)
24
25[4.x (legacy)](https://ember-intl.github.io/ember-intl/versions/v4.4.0/docs/quickstart)
26
27## Migrating from 4.x to 5.x
28### Notable Changes
29
30* Polyfills have been removed entirely and with it the need to bundle the pluralization rules as they now come from the native `Intl.PluralRules` API
31* Translations are now placed in a fixed location when bundled, no longer need to traverse the private API `requirejs._eak_seen` to hydrate the service with translations
32* `Intl.MessageFormat` [parser](https://formatjs.io/docs/intl-messageformat-parser) and [compiler](https://formatjs.io/docs/intl-messageformat) which changes how we escape text - making it more ICU-compliant
33
34### Breaking Changes
35
36* Node 8 support dropped
37* `Intl.RelativeTime` polyfill has been replaced with the native API which behaves entirely different than the previous older spec implementation (read about in the [Migration Document](https://ember-intl.github.io/ember-intl/docs/guide/migration-4-0-to-5-0))
38* Translations are now escaped differently (read about in the [Migration Document](https://ember-intl.github.io/ember-intl/docs/guide/migration-4-0-to-5-0))
39* Removes `shortNumber` formatting in favor of now supported native implementation using the `"notation"` property i.e.,
40```js
41this.intl.formatNumber(1000, {
42 notation: "compact" ,
43 compactDisplay: "short"
44}); // -> 1k
45```
46
47When you're ready to upgrade, head over to the [Migration Document](https://ember-intl.github.io/ember-intl/docs/guide/migration-4-0-to-5-0) to read more in detail about what changed.
48
49All of this will result in smaller bundles, faster build times, and less work done on app boot.
50
51## Migrating from ember-i18n
52
53There's an [ember-i18n-to-intl-migrator tool](https://github.com/DockYard/ember-i18n-to-intl-migrator) that is used to convert your translations files and application code to ember-intl.
54
55If you have any questions or issues, please open in [ember-i18n-to-intl-migrator/issues](https://github.com/DockYard/ember-i18n-to-intl-migrator/issues)
56
57[npm]: https://www.npmjs.org/package/ember-intl
58[npm-badge]: https://img.shields.io/npm/v/ember-intl.svg?style=flat-square
59[travis]: https://travis-ci.com/ember-intl/ember-intl
60[travis-badge]: https://travis-ci.com/ember-intl/ember-intl.svg?branch=master
61[ember-version]: https://img.shields.io/badge/Ember-2.12%2B-brightgreen.svg
62[ICU]: https://formatjs.io/guides/message-syntax/