This gulp plugin is usable if you are using e.g. angular-translate (https://angular-translate.github.io/) variables in your AngularJS application.
##My motivation for this plugin
Typically I'm using translate filter for static text localization in HTML code: {{'#_MsgNoAccountFound_#' | translate}}
.
All localization variables are usually placed in one (or more) configuration files, eg.:
{
"_cs_": "česky",
"_fr_": "français",
"_en_": "english",
"_Dashboard_": "Dashboard",
"_Events_": "Events",
"_Sessions_": "Sessions",
"_Session_": "Session",
"_Users_": "Users",
"_Account_": "Account",
"_MyProfile_": "My Profile"
}
After some time I have a lot of localization variables in my application HTMl code and I'm not sure if all used variables are placed in my configuration file(s). Therefore I created this gulp plugin.
Plugin requires one or more source files (typically HTML files) on input. Plugin works in these steps:
- Finds all used localization variables in source files via regex.
- Check if each used localization variable is defined and set in localization configuration JSON file.
- Produce new version of localization configuration JSON file containing all localization variables. Unused localization variables are not placed in new output file.
$ npm install gulp-translate-variables --save
##Usage
gulp-translate-variables({regex, localizationVariablesFile, outputFilename})
regex Regular expression for searching all localization variables in input files.
localizationVariablesFile Configuration file containing all localization variables.
outputFilename Output file name.
##Examples Typical usage with gulp pipes:
var gtv = require('gulp-translate-variables');
gulp.task('i18n-check', function () {
return gulp
// get all source files as an input for gulp-translate-variables plugin
.src(paths.templates)
// call gulp-translate-variables plugin
.pipe(gtv({
regex: /#_(.*?)_#/gi, // regex
configfile: 'src/app/config/i18n-translations-cs-CZ.json', // localizationVariablesFile
output: 'i18n-translations-cs-CZ.new.json' // outputFilename
}
))
// save output file to target directory
.pipe(gulp.dest('src/app/config'));
});
Run it.
$ gulp i18n-check
#Licence MIT
Copyright (c) 2019 Michal Morávek