Grunt plugin to upload and download translations to Crowdin
npm install grunt-crowdin-request~0.4.0If 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-crowdin-request --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js`
grunt.loadNpmTasks('grunt-crowdin-request');
command._There are currently two supported actions:
- upload
- download
Task targets, files and options may be specified according to the grunt Configuring tasks guide.
$3
#### api-key
Type:
String
Default: ''Your Crowdin API key. Remember to keep it secret!
#### project-identifier
Type:
String
Default: ''The name of your project at Crowdin. What you access at https://crowdin.com/project/
#### filename
Type:
String
Default: ''The filename to send to Crowdin. Can be anything you like to identify a file. This option can also use the current Git branch you might be on.
Use
#GIT_BRANCH# to insert the branch name.#### branch
Type:
String
Default: ''The name of your Crowdin branch. More info about Crowdin branches at https://support.crowdin.com/articles/versions-management/
$3
#### srcFile
Type:
String
Default: ''The location of the file to be uploaded, relative to
Gruntfile.js$3
#### targetLanguage
Type:
String
Default: 'all'Target language files to download. If not specified, 'all' will be used and all available languages will be downloaded.
#### outputDir
Type:
String
Default: ''The folder where translations should be downloaded to. This will extract the .zip from Crowdin and create subdirectories for each locale contained therein.
#### renameFileTo
Type:
String
Default: ''If provided will rename the download files from Crowdin to be renamed to something different than what they were uploaded as. The use case being you upload with a Git branch filename
But want to download to a single consistent filename.
Sample config
`javascript
var config = {
'crowdin-request': { options: {
'api-key': 'xyz123',
'project-identifier': 'test-project',
filename: '#GIT_BRANCH#.pot'
},
upload: {
srcFile: 'i18n/translations.pot'
},
download: {
outputDir: 'i18n',
renameFileTo: 'messages-#LOCALE#.po'
}
}
};
grunt.initConfig(config);
`Usage
`sh
grunt crowdin-request:upload
``sh
grunt crowdin-request:download
``