crowdup is a project for anyone who wants to easily update their app translations files from Crowdin that helps update translations via a simple command line interface.
This project is early in development and a work in progress. Please file issues!
Configure crowdup, then run crowdup update
and watch the magic happen!
crowdup matches translation files purely based on filename. For instance, ../archive/en/en-US.json
will be matched with ../i18n/translated/en-US.json
and so forth. This might not work best for everyone; feel free to send a pull request to satisfy your scenario.
Features:
- Gives users the ability to overwrite existing web app translations with those from Crowdin
- Users can build then download via the Crowdin API directly, or point crowdup at downloaded translations
- Users have the option to look over files to update and abort without modifying anything if something looks wrong
- crowdup stores user configurations, so updating translations in the future is super fast
- Check status of translations in Crowdin
Coming soon:
- Detect translation matches based on subfolders where translation filenames are identical
- Ability to map translation files from archive to specific translation file locations
- Ability to ignore files
- Detect if files need to be updated or not
- Better error detection and logging
crowdup requires NodeJS. Find and install the latest versions of NodeJS; if you use Mac OS X, consider installing homebrew to easily install what you need with the following command:
$ brew install node
Be sure to install all dependencies before installing crowdup.
$ sudo npm install -g crowdup
$ sudo npm uninstall -g crowdup
See crowdup help for a full list of commands.
$ crowdup --help
Run crowdup config
and add your app's translation directory, Crowdin API key, and Crowdin project identifier. For example:
$ crowdup config
crowdup: full path to app translations: /Users/daniel/Projects/webapp/app/i18n
crowdup: crowdin api key found in account at crowdin.com: 37cb230570eb0bd1bc00860ff42c1ba3
crowdup: crowdin project id found in account at crowdin.com: my_project
saved crowdup configuration to /Users/daniel/.crowdup
Now you can update translations on demand with:
$ crowdup update
Don't want to use the Crowdin API? No problem. Point crowdup at your Crowdin translation download (either the .ZIP or directory) and at your app translations directory:
$ crowdup update -c ~/Downloads/crowdin-translations.zip -a ~/Projects/webapp/app/i18n/
Easily check the status of your translations with:
$ crowdup status