This GitHub Action auto-translates Android's strings.xml
and
fills in the missing translations in all other languages.
It also deletes any translations that is no longer defined in default strings.xml
.
To use this for a new language, say "es", first create "values-es/strings.xml" file with the following placeholder content
<resources>
</resources>
and save the following to .github/workflows/translate-android.yaml
in the repository.
---
name: Automatically Translate Android App
on: # yamllint disable-line rule:truthy
push:
branches: ["master", "main"]
paths:
- "**/strings.xml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# Run locally with "act -j translateAndroid"
translateAndroid:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Translate strings.xml to supported languages
uses: ashishb/android-auto-translate@master
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
committer: "ashishb's Translation Bot <ashishb+android-auto-translate@ashishb.net>"
title: "[Bot]Auto-generated translations for non-English languages"
body: "Auto-generated translations by [Android Auto Translate](https://github.com/ashishb/android-auto-translate) bot"
$ git clone https://github.com/ashishb/android-auto-translate
...
$ cd android-auto-translate
...
# Do note that this will modify strings.xml files in the specified
# Android dir, so, don't forget to back them up first
$ GITHUB_WORKSPACE=<path-to-android-base-dir> poetry run ./src/translations.py