gulp-i18n-csv
v1.0.3
Published
Create internationalized files from a CSV translations file
Downloads
2
Maintainers
Readme
gulp-i18n-csv
Create internationalized files from a CSV translations file
Install
$ npm install --save-dev gulp-i18n-csv
Usage
var 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'));
});
API
gulpi18nCsv([ options ])
options
pretty
Type: boolean
Default: false
When true
, outputs human-readble JSON.
resource path (resPath)
Type: string
Default: locales/\__lng__/\__ns__.json
When specified, writes file to specified location.
Examples
_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'
...
Formatting
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)
Deep-key nesting
gulp-i18n-csv provides deep key nesting when the key is separated by periods.
Example:
| key | string | |------------------|--------| | foo.bar.blah.dog | hello |
This about should become
{
"foo": {
"bar": {
"blah": {
"dog": "hello"
}
}
}
}
Splitting
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.
Examples
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}
If resPath provided as well
{ 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.
License
MIT © Cynthia (Qingwei) Li