Add scripts/check_translations.py and a lightweight Translations workflow that runs it (no Android SDK needed) so Weblate PRs get fast feedback. The script fails on stale keys (present in a translation but not the base) and on translating translatable="false" entries; missing keys are reported as coverage only. Downgrade lint's MissingTranslation to informational: partial community translations are expected and fall back to the English base at runtime. Stale/extra keys (ExtraTranslation) remain fatal in lintDebug. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
42 lines
1.1 KiB
YAML
42 lines
1.1 KiB
YAML
name: Translations
|
|
|
|
# Fast, SDK-free parity check for translation resources, so Weblate PRs (which
|
|
# only touch values-*/strings.xml) get quick feedback without the full Android
|
|
# build. The deeper checks still run in CI via lintDebug (ExtraTranslation).
|
|
on:
|
|
push:
|
|
branches:
|
|
- '**'
|
|
tags-ignore:
|
|
- '**'
|
|
paths:
|
|
- 'app/src/main/res/values*/strings.xml'
|
|
- 'app/src/main/res/xml/locales_config.xml'
|
|
- 'scripts/check_translations.py'
|
|
- '.gitea/workflows/translations.yaml'
|
|
|
|
concurrency:
|
|
group: translations-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: docker
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Ensure python3
|
|
run: |
|
|
if ! command -v python3 >/dev/null 2>&1; then
|
|
if command -v apt-get >/dev/null 2>&1; then
|
|
apt-get update && apt-get install -y python3
|
|
elif command -v apk >/dev/null 2>&1; then
|
|
apk add --no-cache python3
|
|
fi
|
|
fi
|
|
python3 --version
|
|
|
|
- name: Check translation parity
|
|
run: python3 scripts/check_translations.py
|