gulp-i18n-compile

1.0.1 • Public • Published

build status

Install

npm install grunt-i18n-compile --save-dev

The DRY translation format

The format is adopted from the grunt-i18n-compile task.

Example

input:

{
  "hello": {
    "world": {
      "en": "Hello world!",
      "de": "Hallo Welt!"
    }
  }
}

output:

{
  "en": {
    "hello": {
      "world": "Hello world!"
    }
  },
  "de": {
    "hello": {
      "world": "Hallo Welt!"
    }
  }
}

Advantages

The advantages of this format are:

  • The files can be separated without having to create one additional file for each locale. This is especially useful for projects with a lot of keys and many supported languages.
  • All translations of the same message key are kept in the same file. This allows you to be more DRY in your message files. This way the effort for changing or adding a translation key is reduced.

The source files for this plugin must be JSON formatted. If you wish to use YAML, you can pipe the files through gulp-yaml before applying this compiler.

Usage

API

i18nCompile(output, [options])

output

Type: string

The name of the output file.

options

Type: [object]

An optional configuration with the following properties.

options.localePlaceholder

Type: [string|regex]

If this placeholder is defined, it will be used to generate one JSON file per locale. The output argument should contain this placeholder.

options.pretty

Type: [number]

If provided, the output JSON is prettified with the given indentation.

Examples

With JSON input:

var gulp = require("gulp");
var i18nCompile = require("gulp-i18n-compile");
 
gulp.task("i18n", function() {
  gulp.src("src/i18n/**/*.json")
    .pipe(i18nCompile("translations.json"))
    .pipe(gulp.dest("dist/i18n"));
});

With YAML input and pretty output:

var gulp = require("gulp");
var yaml = require("gulp-yaml");
var i18nCompile = require("gulp-i18n-compile");
 
gulp.task("i18n", function() {
  gulp.src("src/i18n/**/*.json")
    .pipe(yaml())
    .pipe(i18nCompile("translations.json", {pretty: 2}))
    .pipe(gulp.dest("dist/i18n"));
});

Compile to one JSON file per locale:

var gulp = require("gulp");
var i18nCompile = require("gulp-i18n-compile");
 
gulp.task("i18n", function() {
  gulp.src("src/i18n/**/*.json")
    .pipe(i18nCompile("[locale].json", {localePlaceholder: "[locale]"}))
    .pipe(gulp.dest("dist/i18n"));
});

Package Sidebar

Install

npm i gulp-i18n-compile

Weekly Downloads

5

Version

1.0.1

License

MIT

Last publish

Collaborators

  • svi3c