Internationalize your HTML files with gulp!
gulp-html-i18n
supports two formats for definition fies: JavaScript and JSON
Given the following in a file named: lang/en-US/index.js
define({
heading: "Welcome!",
footer: "Copyright 2015"
};
gulp-html-i18n
will produce an object called index
. You can then use
${{ index.heading }}$
to get a result of "Welcome!".
Given the following in a file named: lang/en-US/index.json
{
"heading": "Welcome!",
"footer": "Copyright 2015"
}
gulp-html-i18n
will produce an object called index
. You can then use
${{ index.heading }}$
to get a result of "Welcome!".
To use either of the examples from above, replace the text in your HTML files
with a formatted tag: ${{ library.tag.name }}$
Initial:
<html>
<body>
<h1>${{ index.heading }}$</h1>
<div>
<!-- Website content -->
</div>
<div>${{ index.footer }}$</div>
<body>
</html>
Output:
<html>
<body>
<h1>Welcome!</h1>
<div>
<!-- Website content -->
</div>
<div>Copyright 2015</div>
<body>
</html>
The following task:
gulp.task('build:localize', function() {
var dest = './public';
var index = './index.html';
return gulp.src(index)
.pipe(i18n({
langDir: './lang',
trace: true
}))
.pipe(gulp.dest(dest));
});
will compile index.html
to public/index-{lang}.html
for each language your
define in ./lang
.
Option | Default | Type | Description |
---|---|---|---|
langDir (required) | undefined | String | Specifies the path to find definitions |
createLangDirs | false | bool | If true , instead of translating index.html into index-en.html , etc, will translate to en/index.html , etc. |
failOnMissing | false | bool | If true , any undefined tag found in an HTML file will throw an error. When false , missing tags are logged, but the process finishes. |
fallback | undefined | String | If given, will use the provided language as a fallback: For any other language, if a given tag's value is not provided, it will use the fallback language value. |
inline | undefined | String | If given, will use the provided language to create an output file of the same name as input. For example, passing inline: 'en-US' for index.html will result in index.html with English replacements. |
trace | false | bool | If true , will place comments in output HTML to show where the translated strings came from |