Within this repository, we define a DroneCI configuration to sync Transifex translations every night (or triggered manually) for different repositories. This is required because you need elevated Transifex permissions which are proveded by drone secrets only. If you want to get automated translation sync for your app as well please file a pull request to this repository and add ownclouders with write permissions to your repository.
Table of Contents
- Local Testing
- Push Translations for Web
- Trigger Syncing Manually
- Finding and Fixing Sync Issues
- Migrate Resources
- License
- Copyright
You can test the synchronisation of translations for a specific repo by cloning the repo into your checkout of this repo and running drone exec like this:
Normally the pull is done every 24h automatically. You can do the pull manually with
app=guests
grep $app .drone.star
repo(name = "guests", mode = "old"),If the mode is old, then
git clone git@github.com/owncloud/$app
cd $app
export TX_TOKEN=...
tx pull -a --skip --minimum-perc=75 -f
# Now we have many subdirectories with *.po files. The l10n script in owncloud-ci/transifex creates *.js and *.json from there.
txdockerrun() { docker run -ti -v $(pwd):/mnt -w /mnt --entrypoint=/bin/bash owncloudci/transifex:latest -c "set -x; $@"; }
txdockerrun "cd l10n; l10n '$app' write"
find . -name *.po -type f -delete
rmdir ?? ??_??
# review the changes
git diffgit clone https://github.com/owncloud/web.git
TX_TOKEN=... REPO_NAME=owncloud_universal REPO_URL=https://github.com/owncloud/web.git REPO_GIT=git@github.com:owncloud/web.git REPO_BRANCH=master REPO_PATH=web MODE=MAKE drone exec --local --build-event pushThe trick is to prepend the folder to which the repo was cloned to the REPO_PATH.
You can generate a Transifex token for the TX_TOKEN env var.
In case a manual “emergency” sync required, you only need to trigger drone via the CLI.
If you have not installed drone locally, follow drone installation documentation first. Then, from the command line, you need to apply your token which you can find in your drone account settings by pasting the Example CLI Usage command.
Finally paste the following command to initiate the manual sync:
drone cron exec owncloud/translation-sync nightlyNote that you need to be logged on in drone to execute the command.
Follow the step-by-step guide if sync issues occur.
Follow the step-by-step guide if the relocation of resources is required.
MIT
Copyright (c) 2022 ownCloud GmbH