mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 19:56:53 +00:00
A pull request against main extracts the core and docs domains, fans out over the languages LibreTranslate supports, and opens one translation PR per language against the branch that introduced the strings. Only the entries a catalog leaves empty or fuzzy reach the translator. The job matrix and the translator read the same list through translatable(), so a code cannot enter the matrix and then be refused by the run it starts. The pipeline stays off until CI_ENABLE_AUTO_TRANSLATIONS is set, and pull requests from a fork are skipped because the app token cannot push to their head branch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
11 lines
855 B
Markdown
11 lines
855 B
Markdown
# GitHub i18n Helpers 🌐
|
|
|
|
This directory contains the shell helpers that [entry-pr-translate.yml](../../../.github/workflows/entry-pr-translate.yml) calls: resolving the languages LibreTranslate supports into the job matrix, merging the source strings of the `core` and `docs` domains into `locale/`, and machine-translating one language per runner.
|
|
|
|
| Helper | Purpose |
|
|
|---|---|
|
|
| [install_python.sh](install_python.sh) | Installs the package with the `dev` extra, which carries Sphinx for the `docs` extraction. |
|
|
| [languages.sh](languages.sh) | Writes the machine-translatable ISO 639-1 codes to `GITHUB_OUTPUT` as a JSON array. |
|
|
| [extract.sh](extract.sh) | Merges the source strings of both domains into every catalog under `locale/`. |
|
|
| [translate.sh](translate.sh) | Translates the empty and fuzzy entries of one language in both domains. |
|