gulp-i18next-conv
v12.0.0
Published
Gulp plugin to convert gettext .po or .mo files to i18next compatible JSON
Downloads
721
Readme
gulp-i18next-conv
Convert po files into i18next compatible json files
Install
$ npm install --save-dev i18next-conv gulp-i18next-conv
Usage
If for example you have the following po files: locale/en/LC_MESSAGES/message.po
and locale/jp/LC_MESSAGES/messages.po
, then you can produce locale/en/messages.json
and locale/jp/messages.json
with the following task:
import gulp from 'gulp';
import i18next from 'gulp-i18next-conv';
gulp.task('locale-build', function() {
// Backend locales
return gulp.src('locale/*/LC_MESSAGES/*.po')
.pipe(i18next())
.pipe(jsonminify())
.pipe(rename(path => path.dirname = path.dirname.replace('/LC_MESSAGES', '')))
.pipe(gulp.dest('locale'));
});
Converting i18next json
to gettext formats, po
, pot
and mo
is supported too.
API
i18next({ determineLocale, gettextFormat, ...options })
determineLocale
Type: function(filename, contents)
optional, default: filename => filename.split(path.sep)[0]
Function that can be used to determine the locale of the file being translated. Gets the relative path of the file, and its contents. By default it is the name of the first directory specified by a glob. For example, in the example above locale/*/LC_MESSAGES/*.po
, the contents of the first *
will be used as the locale name.
gettextFormat
Type: string
, default: 'po'
When converting i18next json
files into gettext
format, you can use this option to decide whether to output mo
, pot
or po
. It accepts only one of those 3 values.
options
Type: object
, optional, default {}
Any remaining properties will be passed to the i18next-conv as options.
determineLocale
The default determineLocale, filename => filename.split(path.sep)[0]
, where path
is the Node.js path module.
License
See the LICENSE file for license rights and limitations (MIT).