grunt-angular-translate

Extract all the translation keys for angular-translate project

grunt-angular-translate

** This project was moved into angular-translate organization **

Extract all the translation keys for angular-translate project

##Status

Install this grunt plugin next to your project. Require gruntJS.

Use npm install grunt-angular-translate

Then add this line to your project's Gruntfile.js file:

grunt.loadNpmTasks('grunt-angular-translate');

grunt-angular-translate provide to your grunt environment a task called i18nextract which need a configuration to rocks (Please read the documentation).

This extraction is made to work with the angular-translate project created by Pascal Precht

{{'TRANSLATION' | translate}} `{{'TRANSLATION' | translate:XXXXXX}}``

<a href="#" translate>TRANSLATION</a>

<span translate="TRANSLATION_KEY" angular-plural-extract="['TEXT FOR ONE','# TEXT FOR OTHER']" translate-values="{NB: X}" translate-interpolation="messageformat"></span>

$filter("translate")("TRANSLATION")

$translate('TRANSLATION') $translate.instant('TRANSLATION') $translate(['TRANSLATION', 'TRANSLATION_1'])

Simple configuration for i18nextract task

i18nextract: {
  default_options: {
    src: [ 'src/**/*.js', 'src/**/*.html' ],
    lang:     ['fr_FR'],
    dest:     'tmp'
  }
}

More examples in Gruntfile.js

Options src and jsonSrc may be specified according to the grunt Configuring tasks guide.

Type: Array Default: undefined

Example: [ 'src/**/*.js' ]

Define a file list to parse for extract translation.

Type: Boolean Default: false

Example: true

If set to true, it will replace all final empty translations by null value.

Type: Boolean Default: false

Example: true

If set to true, it will organize output JSON like the following.

{
  "MODULE": {
    "CATEGORY": {
      "TITLE": "My Title",
      "TITLE1": null
    }
  }
}

Type: Object Default: { startDelimiter: '{{', endDelimiter: '}}' }

Example: { startDelimiter: '[[', endDelimiter: ']]' }

Define interpolation symbol use for your angular application. The angulars docs about ($interpolateProvider)[http://docs.angularjs.org/api/ng.$interpolateProvider] explain how you can configure the interpolation markup.

Type: Array Default: undefined

Example: [ 'config/*.json' ]

Define a JSON file list to parse for extract translation.

Type: Array Default: undefined

Example: [ 'label', 'name' ]

Define the keys to find corresponding values through JSON object.

Type: String Default: undefined

Example: "en_US"

Define the default language. For default language, by default the key will be set as value.

Type: Array<String> Default: []

Example: customRegex: [ 'tt-default="\'((?:\\\\.|[^\'\\\\])*)\'\\|translate"' ],

Will extract MY.CUSTOM.REGEX from the following HTML: <article tt-default="'MY.CUSTOM.REGEX'|translate">.

Enjoy your custom regex guys!

Type: Array Default: undefined

Example: ['fr_FR', 'en_US']

Define language to be extract (fr__FR, en__US, xxx). xxx will be the output filename wrapped by prefix and suffix option.

Type: String Default: ""

Example: "project_"

Set prefix to output filenames (cf [angular-translate#static-files][https://github.com/PascalPrecht/angular-translate/wiki/Asynchronous-loading#using-extension-static-files-loader]).

Type: String Default: ""

Example: ".json"

Set suffix to output filenames (cf [angular-translate#static-files][https://github.com/PascalPrecht/angular-translate/wiki/Asynchronous-loading#using-extension-static-files-loader]).

Type: String Default: ""

Example: "src/assets/i18n"

Relative path to output folder.

Type: Boolean Default: false

If safeMode is set to true the deleted translations will stay in the output lang file.

Type: Boolean or Object Default: false

If stringifyOptions is set to true the output will be sort (case insensitive). If stringifyOptions is an object, you can easily check json-stable-stringify README.

You will find the tests files into test directory.

To run test use grunt test

to improve ... :-D

(Anyone yet)

(Nothing yet)

Copyright (c) 2013 Benjamin Longearet Licensed under the MIT license.