Skip to content

Custom loader that allows to have modular angular-translate localizations

Notifications You must be signed in to change notification settings

juristr/angular-translate-loader-pluggable

Repository files navigation

angular-translate Pluggable Loader

Build Status semantic-release npm version Bower version

This library has been designed for Angular 1.5

Pluggable Loader is a custom loader for angular-translate. It aims to facilitate the modularization of the applications s.t. each module can contribute their own translations and possibly be independent in the kind of angular-translate loader it uses.

Installation

Available as npm package

$ npm install angular-translate-loader-pluggable --save

or as Bower package

$ bower install angular-translate-loader-pluggable --save

Docs & Demo

Plunkr demo: http://plnkr.co/edit/Smc89rX5UoCXYu6Qp2F0?p=preview

Configure your app to use the pluggable loader:

angular.module('demoapp', [
    'pascalprecht.translate',
    'angular-translate-loader-pluggable'
  ])
  .config(function translationConfig($translateProvider, translatePluggableLoaderProvider) {
    $translateProvider.useLoader('translatePluggableLoader');
  })

Then, in your angular modules where you want to contribute new translations, use the translatePluggableLoaderProvider instead of the $translateProvider.

angular.module('staticTranslationsModule', ['angular-translate-loader-pluggable'])
  .config(function(translatePluggableLoaderProvider) {
    translatePluggableLoaderProvider
      .translations('de', {
        "anotherMessage": "Anderes Message!"
      })
      .translations('en', {
        "anotherMessage": "Some Message!"
      });
  });

You can also use other loaders, such as the partial loader:

angular
  .module('partialModule', ['angular-translate-loader-pluggable'])
  .config(function(translatePluggableLoaderProvider, $translatePartialLoaderProvider){
    // this module uses the $translatePartialLoader
    translatePluggableLoaderProvider.useLoader('$translatePartialLoader', {
      urlTemplate: '{part}-locale-{lang}.json'
    });

    $translatePartialLoaderProvider.addPart('anothermodule');
  });

Note that I'm not registering the $translatePartialLoader on the $translateProvider but instead on the translatePluggableLoderProvider so that it can handle it.


Your loader doesn't work? Let me know about it!

Contribute

Of course! If you have improvements, suggestions, let me know about them and either file some issues to discuss something or even better, submit a PR. Please check out our contribution guidelines!

About

Custom loader that allows to have modular angular-translate localizations

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •