Create internationalized files from a CSV translations file
$ npm install --save-dev gulp-i18n-csvvar gulp = require('gulp');
var gulpi18nCsv = require('gulp-i18n-csv');
gulp.task('default', function () {
return gulp.src('node_modules/gulp-i18n-csv/sample/wet.csv')
.pipe(gulpi18nCsv())
.pipe(gulp.dest('./output'));
});gulpi18nCsv([ options ])
Type: boolean
Default: false
When true, outputs human-readble JSON.
Type: string
Default: locales/\__lng__/\__ns__.json
When specified, writes file to specified location.
_lng_ - language name _ns_ - namespace (defaults to 'translation')
gulpi18nCsv({ resPath: 'locales/__lng__/__ns__.json' })'locales/en/translation.json'
'locales/fr/translation.json'
'locales/zh-Hans/translation.json'
...
Another one:
gulpi18nCsv({ resPath: 'locales/__ns__-__lng__.json' })'locales/translation-en.json'
'locales/translation-fr.json'
'locales/translation-zh-Hans.json'
...
If a superkey has subkeys after it , do not have the superkey as a key in the csv file at all.
(ie. if foo has subkey foo.bar, do not have foo as a key in the csv file)
gulp-i18n-csv provides deep key nesting when the key is separated by periods.
| key | string |
|---|---|
| foo.bar.blah.dog | hello |
This about should become
{
"foo": {
"bar": {
"blah": {
"dog": "hello"
}
}
}
}Allows for splitting top-level keys into separate files depending on the option specified.
Use this to split every top-level key into its own csv file:
gulpi18nCsv({ split: true })Replace with an array to split only keys in array from the main translation file:
gulpi18nCsv({ split: ['cal', 'lang', 'tab'] })Replace with string to only split one key away from the main translation file:
gulpi18nCsv({ split: 'tab' })If resPath is provided when splitting, the key being split will replace __ns__ in the file path.
Say you have the following .csv:
| key | string |
|---|---|
| lang | ru |
| tab.play | Tab Play |
| tab.blar | Tab Blar |
| help.one | Help One |
| help.three | Help Two |
| help.four | Help Three |
When the following is specified, will separate into 3 files: lang.json, tab.json, and help.json.
{split: true}When the following is specified, will separate into 3 files: translation.json, tab.json, and help.json.
{split: [tab, help]}When the following is specified, will separate into 2 files: lang.json and translation.json.
{split: lang}{ resPath: 'locales/__lng__/__ns__.json', split: true }Will separate into 3 files at paths locales/ru/lang.json, locales/ru/tab.json, locales/ru/help.json.
MIT © Cynthia (Qingwei) Li