A build task to translate JSON files to other languages using Google's Translation API. Pairs very well with angular-translate.
npm install grunt-google-translate> A build task to translate JSON files to other languages using Google's Translation API. Pairs very well with angular-translate.
Massive thanks to MartyIce for allowing me to use the grunt-google-translate namespace.
~0.4.5If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
``shell`
npm install grunt-google-translate --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js`
grunt.loadNpmTasks('grunt-google-translate');
to the data object passed into grunt.initConfig().`js
grunt.initConfig({
google_translate: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
`$3
#### options.googleApiKey
Type:
String
Default value: ', 'The API key used to access Google Translation services.
$3
#### Simple Example
In this example, I passed in a JSON file with english text. It will then create two files in the
`i18n/` folder called ru.json and zh-CN.json for Russian and Chinese respectively.Note: This plugin will try and deduce the suffix (file type), so you don't need to explicity specify it. If you need it to have a different suffix, then specify the
`suffix` as shown in the next example.`js
grunt.initConfig({
google_translate: {
default_options: {
options: {
googleApiKey: YOUR_API_KEY_HERE
},
files: [{
src: '<%= yeoman.client %>/i18n/en.json',
sourceLanguage: 'en',
targetLanguages: ['ru', 'zh-CN'],
dest: '<%= yeoman.client %>/i18n/'
}]
}
}
});
`#### Full Example
In this example, two files are being translated, one called
`locale-en.json` and another called `locale-fr.json`. They are in different folders, and will create translated files in the same `i18n/` folder.Notice how the prefix and suffix is specified, it means the translated files will be named like
`locale-de.json` instead of `de.json`.`js
grunt.initConfig({
google_translate: {
default_options: {
options: {
googleApiKey: YOUR_API_KEY_HERE
},
files: [{
src: '<%= yeoman.client %>/i18n/locale-en.json',
sourceLanguage: 'en',
targetLanguages: ['ru', 'zh-CN'],
dest: '<%= yeoman.client %>/i18n/',
prefix: 'locale-',
suffix: '.json'
}, {
src: '<%= yeoman.client %>/specialFolder/locale-fr.json',
sourceLanguage: 'fr',
targetLanguages: ['de', 'zh-CN'],
dest: '<%= yeoman.client %>/i18n/',
prefix: 'locale-',
suffix: '.json'
},]
}
}
});
``