Gulp plugin to compile Pug templates with internationalization support based on JS/JSON/YAML files.
Inspired by grunt-pug-i18n.
It adds high level support for Pug template internationalization based on JSON/YAML/JS files.
$ npm install gulp-i18n-pug --save-dev
{
"hello": {
"world": "Hola Mundo"
}
}
body
h1 #{$i18n.hello.world}!
p Using locale #{$localeName}
var pugI18n = require('gulp-i18n-pug');
gulp.task('pugI18n', function () {
var options = {
i18n: {
dest: 'dist',
locales: 'test/locales/*.*'
},
pretty: true
};
return gulp.src('myPugTemplates/directory/*.pug')
.pipe(pugI18n(options))
.pipe(gulp.dest(options.i18n.dest));
});
var pugI18n = require('gulp-i18n-pug');
gulp.task('pugI18n', function () {
var options = {
i18n: {
locales: 'test/locales/*',
namespace: '$t',
localeExtension: true
},
client: false,
pretty: true
};
return gulp.src('myPugTemplates/directory/*.pug')
.pipe(pugI18n(options))
.pipe(gulp.dest(options.i18n.dest));
});
var pugI18n = require('gulp-i18n-pug');
gulp.task('pugI18n', function () {
var options = {
i18n: {
dest: '.tmp'
},
data: {
$i18n: {
message: 'Hello world!',
nested: {
msg: 'and hello to you'
}
}
},
pretty: true
};
return gulp.src('myPugTemplates/directory/*.pug')
.pipe(pugI18n(options))
.pipe(gulp.dest(options.i18n.dest));
});
Only i18n
specific options are listed below.
Type: string|array
Path to localization files. Please check the examples in tests. Glob patterns can be used.
JSON
, YAML
and JS
formats are supported for the translation templates.
Type: string
Default: $i18n
Namespace to expose translation keys in Pug template
Type: boolean
Default: false
Generate the HTML output files with the extension prefix with the current language. By default it will create different folders for each language.
Setting this option into true
, the generated HTML files will look like this:
html/
├── view.en-en.html
└── view.es-es.html
... instead of:
html/
├── en-EN/
│ └── view.html
└── es-ES/
└── view.html
Type: Boolean
Default value: false
Show the status.
Read the full changelog.
MIT © Felix Zapata.