Gulp plugin to convert json files to angular-translate js files
npm install gulp-json-angular-translate> Converts json files to angular-translate config javascript files.
> Gulp version of the grunt-json-angular-translate plugin
``shell`
npm install gulp-json-angular-translate --save-dev
Once installed, it's available under gulp-json-angular-translate:
`js`
var jsonAngularTranslate = require('gulp-json-angular-translate');
`js`
gulp.src('//locale/.json')
.pipe(jsonAngularTranslate({
moduleName: 'translations',
extractLanguage: /..(?=\.[^.]*$)/,
hasPreferredLanguage: true,
createNestedKeys: true
}))
.pipe(gulp.dest('.tmp/scripts'))
})
Default value: translationsThe module name to use in the
angular.module calls.$3
Type: RegExp|Function
Default value: /..(?=\.[^.]*$)/ (last two characters before the last dot)A regular expression or a function that returns the processed file's language according to its file path.
$3
Type: Boolean
Default value: trueWhether to set the language and preferred language in config file. Relevant only in angular-translate
1.*.$3
Type: Boolean
Default value: trueWhether to create a nested output from dot separated keys.
#### Source json
`
{
"My.First.Key": "..."
}
`
#### Outputs
`
{
'My': {
'First': {
'Key': '...'
}
}
}
`
Set this option to false if you use your source language string as the key.#### createNestedKeys: false, Outputs
`
{
'My.First.Key': '...'
}
`Usage Examples
$3
Convert all .json files in app/scripts/locale to angular-translate config files in .tmp/scripts/locale.`js
gulp.src('*.json', {cwd: 'app/scripts/locale'})
.pipe(jsonAngularTranslate())
.pipe(gulp.dest('.tmp/scripts/locale'));
`So
app/scripts/locale/messages_ru.js with contents:`js
{
"key1": "value1",
"key2.subKey1": "value2",
"key2.subKey2": "value3"
}
`Will be converted to
.tmp/scripts/locale/messages_ru.js with contents:`js
'use strict';try {
angular.module('translations');
} catch (e) {
angular.module('translations', ['pascalprecht.translate']);
}
angular.module('translations').config(['$translateProvider', function ($translateProvider) {
var translations = {
'key1': 'value1',
'key2': {
'subKey1': 'value2',
'subKey2': 'value3'
}
};
$translateProvider.translations('ru', translations);
$translateProvider.translations(translations);
$translateProvider.preferredLanguage('ru');
}]);
`$3
In this example, we convert all .json files in app/scripts/locale to angular-translate config files in .tmp/scripts/locale with custom moduleName. Thanks to the custom extractLanguage file's language code will be extracted from the first two characters in the file name, so filepath app/scripts/locale/he_messages.json will get language code he.`js
gulp.src('*.json', {cwd: 'app/scripts/locale'})
.pipe(jsonAngularTranslate({
moduleName: 'myAppTranslations',
extractLanguage: function (filepath) {
return filepath.split('/').reverse()[0].slice(2);
}
}))
.pipe(gulp.dest('.tmp/scripts/locale'));
})
`Contributing
Unit tests mandatory, run them with
npm test` (uses mocha).