qipp-services-locale

2.1.1 • Public • Published

qipp-services-locale Build Status npm version

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 localize

Qipp modules

Licence

Released under the MIT license by qipp.

Readme

Keywords

Package Sidebar

Install

npm i qipp-services-locale

Weekly Downloads

1

Version

2.1.1

License

MIT

Last publish

Collaborators

  • qipp