/android-auto-translate

Auto translate strings.xml on Android

Primary LanguagePythonApache License 2.0Apache-2.0

android-auto-translate

Lint YAML Lint Markdown Lint Dockerfiles Lint Python Code

Test Python Code

Build Docker image

This GitHub Action auto-translates Android's strings.xml and fills in the missing translations in all other languages.

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"

How to run this locally

$ 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> ./src/translations.py