qipp-services-locale v2.1.1
qipp-services-locale

General
This module provides four services as utilities: i18n, getLocale, getLocaleFromAcceptHeaders, localizeStr.
Install
npm i qipp-services-localeAngular 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 lintUnit testing with Karma
npm testRequirements
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.