Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
ember-cli-i18n
Advanced tools
Simple Internationalization support for ember-cli apps.
Note: This release requires Ember 1.10.
npm install ember-cli-i18n --save-dev
In your app's config/environment.js
you'll need to set
ENV.APP.defaultLocale
to a country code:
var ENV = {
APP: {
defaultLocale: 'en'
}
};
defaultLocale
is only the fallback. If you wanted to change the locale
of the application you should modify your application's locale
:
var set = Ember.set;
var application = container.lookup('application:main');
set(application, 'locale', 'fr');
You can can trigger this after authentication, or if the user modifies a
language setting in the app. Of course when this state is removed you
should clear locale
so that internationalization fallback to
defaultLocale
.
Generate a new locale file:
ember g locale en
The file will be added to app/locales
app
└── locales
└── en.js
Then export a single POJO:
export default {
home: {
title: 'Welcome'
}
};
You can add keys for interpolation
export default {
age: 'You are %@1 years old.',
name: '%@, %@'
};
The rules for interpolation follow the same from
Ember.String.fmt
Pluralization keys follow the format from
CLDR.
For example, for en
it expects only the keys one
and other
:
export default {
friend: {
one: 'only one friend, %@2',
other: '%@ friends, %@'
}
};
The first value passed will be considered the count
for determining
how to pluralize.
t('friend', 0, 'Brian');
// 0 friends, Brian
t('friend', 1, 'Brian');
// only one friend, Brian
t('friend', 10, 'Brian');
// 10 friends, Brian
Hyphenated languages will be split and the first half will be used to
determine the pluralization rules. So both en-us
and en-gb
will
follow the en
rules.
View the currently supported set of pluralization rules.
You can access the translations in your app with the t
helper:
{{t 'home.title'}}
Computed properties for the path are also supported:
{{t age}}
If the value has interpolation keys you can pass those values:
{{t colors colorOne colorTwo}}
The t
function can be used outside of templates as a utility function:
import Ember from 'ember';
export default Ember.Object.extend({
foo: function() {
var t = container.lookup('utils:t');
return t('foo.bar');
}
});
t
is automatically injected into Controllers, Components,
Routes, and Models:
export default DS.Model.extend({
name: function() {
return this.t('name', 'John', 'Doe');
}
});
Note that interpolation values can also be passed as an array if you prefer this style. this.t('name', ['John', 'Doe'])
By default locales are attempted to be looked as modules in your project. However, you may wish to override how this is done. You can do that by overriding the locale lookup handler. Let's assume you have all of your locales stored in a single POJO.
You'll first need to create a new file: my-app/services/i18n.js
import service from 'ember-cli-i18n/services/i18n';
service.getLocalizedPath = function(locale, path) {
return Locales[locale][path];
}
export default service;
The default service object that was imported has three functions that can be overridden and customized:
resolveLocale
container
, scope
getLocalizedPath
locale
, path
, container
, scope
applyPluralizationRules
result
, locale
, path
, container
, values
,
scope
result
is a string, will skip rules and return
result
. If result
is an Object
, will assume pluralization needs
to apply and formats result
with proper pluralization rules based upon
values[0]
fmt
result
, values
This function delegates to Ember.String.fmt
by default. You can override
We are very thankful for the many contributors
This library follows Semantic Versioning
Please do! We are always looking to improve this gem. Please see our Contribution Guidelines on how to properly submit issues and pull requests.
DockYard, Inc © 2014
FAQs
Simple Internationalization support for ember-cli apps.
We found that ember-cli-i18n demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.