Convert po files into i18next compatible json files
$ npm install --save-dev i18next-conv gulp-i18next-conv
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.
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.
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.
Type: object
, optional, default {}
Any remaining properties will be passed to the i18next-conv as options.
The default determineLocale, filename => filename.split(path.sep)[0]
, where path
is the Node.js path module.
See the LICENSE file for license rights and limitations (MIT).