bobisjan / ember-format

Internationalize ambitious web applications
http://bobisjan.com/ember-format
MIT License
13 stars 2 forks source link

Ember Format Build Status npm version

[WIP] Ember Format requires Ember 1.10.0 (in beta)

Ember Format allows developers to internationalize their ambitious applications.

The formatting capabilities rely on the set of FormatJS's core libraries and Intl's formatting objects:

These APIs are built on the following industry standards:

Installation

Install from the project's folder.

$ ember install:addon ember-format

Generate application's default locale with CLDR data (and any other).

$ ember generate locale en

Register default locale in the configuration file.

// config/environment.js
APP: {
  LOCALE: 'en'
}

Usage

Set Up a Locale

// locales/en.js
export default {
  locales: 'en',
  messages: {
    car: 'a car'
  },
  formats: { }
};

Route's model

// routes/index.js
import Ember from 'ember';

export default Ember.Route.extend({

  model: function() {
    return {
      createdAt: Date.now(),
      price: 1234,
      currency: 'USD',
      ago: Date.now() - (24 * 60 * 60 * 1000)
    };
  }

});

Template Helpers

{{! templates/index.js }}
{{format "number" 1234}}
{{format-date model.createdAt}}
{{format-message "car"}}
{{format-number model.price style="currency" currency=model.currency}}
{{format-relative model.ago}}

You can also specify formatting options using a single attribute options.

Change Application's Locale

A locale is a service injected by default into:

To change current locale, set the code property with one of the available locale's codes:

// controllers/application.js
changeLocaleToCzech: function() {
  var locale = this.get('locale');

  locale.set('code', 'cs');
}

Contribution

License

Ember Format is available under the MIT license. See the LICENSE file for more info.