blob: 36ce51837b9bcc8c0bff78a10dcfd0822c0db162 [file] [log] [blame]
crowdin_sync.py
==================
Introduction
------------
This script is used to synchronize LineageOS' translations with Crowdin's. Also, it can handle
automatic commiting to Gerrit and pushing/downloading to/from Crowdin.
Prerequisites
-------------
The Ruby variant of crowdin-cli >= 0.5.2 is required for this to work.
\curl -sSL https://get.rvm.io | bash -s stable --ruby
source /home/your_username/.rvm/scripts/rvm # Add this to your .bashrc file!
rvm all do gem install crowdin-cli
python-git is used for Git integration.
sudo apt-get install python-git
Copy <lineage_version>_extra_packages.xml to .repo/local_manifests of each <lineage_version> tree
to make sure you sync all the extra packages not included in the main manifest.
Executing
---------
Export the following environment variables to set the API keys and the base path.
Base path should contain all LineageOS trees in subfolders, named after LineageOS branches:
export CM_CROWDIN_API_KEY=your_api_key
export CM_AOSP_CROWDIN_API_KEY=your_aosp_api_key
export CM_CROWDIN_BASE_PATH=your_base_path
Example:
export CM_CROWDIN_API_KEY=1234567890
export CM_AOSP_CROWDIN_API_KEY=0987654321
export CM_CROWDIN_BASE_PATH=/mnt/android/lineageos
Execute:
./crowdin_sync.py --username your_gerrit_username --branch lineage_version [--upload-sources] [--upload-translations] [--download]
Bugs
----
- When committing fails, the reason of it cannot be determined. Often this is just when there
are no new translations, so the script will not exit when this happens.