1.6.2 • Published 8 years ago

angular-translate-loader v1.6.2

Weekly downloads
352
License
Apache-2.0
Repository
github
Last release
8 years ago

NPM version Travis build status AppVeyor build status Code Climate Maintainability Code Climate Coverage Dependency Status Development Dependency Status Greenkeeper badge

angular-translate-loader

angular-translate loader for webpack

This loader helps to reduce writing the boilerplate code for angular-translate.

Installation

npm install angular --save && npm install angular-translate-loader --save-dev

or

yarn add angular && yarn add angular-translate-loader --dev

Usage

Instead of writing boilerplate code something like this:

var angular = require("angular");
var translations = angular.module('translations', ['pascalprecht.translate']);

translations.config(function($translateProvider) {
    $translateProvider.translations('en_US', {
        foo: 'bar',
        bar: {
            baz: 'qux'
        }
    });
});

You can do that in single line:

./index.js

var translations = require('!json!angular-translate?module=translations!./index.json');

console.log(translations); // Object { foo: "bar", bar: { baz: "qux" } }

and the loader will do all work for you:

var angular = require("angular");
var translations = {
    foo: "bar",
    bar: {
        baz: "qux"
    }
};
var module;
try {
    module = angular.module("translations");
} catch(err) {
    module = angular.module("translations", ["pascalprecht.translate"]);
}
module.config(["$translateProvider", function($translateProvider) {
    $translateProvider.translations("en_US", translations);
}]);
module.exports = translations;

Also it detects locales in the requested file (please see localeInterpolate option):

./de_DE.json

{
  "foo": "Bar",
  "bar": {
    "baz": "Qux"
  }
}

./index.js

var translations = require('!json!angular-translate?module=translations!./index.json');

console.log(translations); // Object { foo: "Bar", bar: { baz: "Qux" } }
var angular = require("angular");
var translations = {
    foo: "Bar",
    bar: {
        baz: "Qux"
    }
};
var module;
try {
    module = angular.module("translations");
} catch(err) {
    module = angular.module("translations", ["pascalprecht.translate"]);
}
module.config(["$translateProvider", function($translateProvider) {
    $translateProvider.translations("de_DE", translations);
}]);
module.exports = translations;

Also if you want to require all translations at once you can do that as well:

./index.js

var angular = require('angular');

function requireAll(requireContext) {
    return requireContext.keys().map(requireContext);
}

requireAll(require.context('./locales', true, /\.json$/));

angular.module('app', ['translations']);

If you want to add some global options you can do that easily:

./webpack.config.js

module.exports = {
    module: {
        rules: [{
            type: 'javascript/auto',
            test: /\.json$/,
            loader: 'angular-translate-loader',
            options: {
                module: 'translations',
                namespaces: ['app', '[dir]'],
                sep: '.',
                defaultLocale: 'de_DE'
            }
        }]
    }
};

Options

NameTypeDefault ValueDescription
moduleString or String[]'translations'Sets name of angular module. Supports interpolations and also [dir].
namespacesString or String[]''Adds namespaces to each translations key. Supports interpolations and also [dir].
sepString'/'Separator for namespaces and module.
localeInterpolateRegExp or RegExp[] or String or String[][/_[a-z]{2}_[A-Z]{2}\./, /_[a-z]{2}\./, /[/\\][a-z]{2}_[A-Z]{2}[/\\]/, /[/\\][a-z]{2}[/\\]/]Uses to detect locale in resourcePath.
defaultLocaleString'en_US'Uses defaultLocale if localeInterpolate fails to detect it.
requireAngularBooleantrueIndicates whether to add var angular = require("angular") to generated code or not. Defaults to true.
1.6.2

8 years ago

1.6.1

8 years ago

1.6.0

8 years ago

1.5.0

9 years ago

1.4.0

9 years ago

1.3.0

9 years ago

1.2.4

9 years ago

1.2.3

10 years ago

1.2.2

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago