gulp-i18n-csv v1.0.3
gulp-i18n-csv
Create internationalized files from a CSV translations file
Install
$ npm install --save-dev gulp-i18n-csvUsage
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