qipp-services-locale
v2.1.1
Published
Locale service for Angular application.
Downloads
4
Readme
qipp-services-locale
General
This module provides four services as utilities: i18n, getLocale, getLocaleFromAcceptHeaders, localizeStr.
Install
npm i qipp-services-locale
Angular usage
i18n
The i18n() provider returns translations as string, function or as the provided key as value if no mapping is found. It is tied to the window.i18n object:
i18nProvider.defaults.i18n = window.i18n // in the config phase
i18n('desired', {}) // 'Wünsche ich mir'
getLocale
Use this provider to load a locale, and optionally to reset it. This method is a promise. You need to provide a default url in the configuration phase of your application:
getLocaleProvider.defaults.url = 'https://app.qipp.com/path/de_DE/i18n.js'
getLocale('de_DE').then(
// Locale loaded.
function () {
// Do something.
},
// Locale not loaded.
function () {
// Do something else.
})
getLocaleFromAcceptHeaders
Use this provider to get the locale of the current client through the request-headers helper from the API. The method is a promise that, if fullfilled, returns the detected locale, or either the first default one. You must at least provide the host in the config phase of your application:
getLocaleFromAcceptHeadersProvider.defaults.host = 'https://app.qipp.com'
getLocaleFromAcceptHeadersProvider.defaults.prefix = '/'
getLocaleFromAcceptHeadersProvider.defaults.locales: ['en_US', 'fr_FR']
getLocaleFromAcceptHeadersProvider().then(function (locale) {
// Do something with the detected locale.
})
localizeStr
This provider could be used to localize a given element in a given scope, with the possibility to provide an update function and a filter. The attributes of the element must be passed as an argument:
// Localize title directive example.
.directive('localizeTitle', [
'i18n', 'localizeStr',
function (i18n, localizeStr) {
return function (scope, elm, attrs) {
return localizeStr(scope, elm, attrs, function (args) {
attrs.$set('title', i18n(attrs.localizeTitle, args));
});
};
}
]);
Tools
Linting with StandardJS
Please refer to the JavaScript Standard Style for general rules.
npm run lint
Unit testing with Karma
npm test
Requirements
Angular
- angular 1.4.3
Angular localize
- angular-localize 2.2.1
Qipp modules
- qipp-services-utils 1.0.0
Licence
Released under the MIT license by qipp.