mdbook-i18n-helpers
mdbook-i18n-helpers copied to clipboard
Add scripts for using and updating translations
The instructions for our translation pipeline in TRANSLATIONS.md don't match the actual steps in publish.yml.
The difference is mostly because of how the GitHub Actions allows us to set environment variables using a different syntax.
I would like to unify the two via small scripts. The scripts could be shell scripts (though that probably doesn't work well on Windows?) or they could be Rust "scripts" (more setup time).
I'm imagining something like
build-translationwhich takes axxlocale and outputs a book inbook/xx.update-translationwhich runs bothmdbook-xgettextandmsgmergefor you.
A serve-translation would probably also be nice to have.
Instead of several scripts, a single script with subcommands could also be nice. That could probably live nicely in the i18n-helpers project since it would be tightly coupled to the other binaries there.
The GitHub action in #48 could call into this script and so we avoid putting too much logic into the action (GitHub actions are nice in the context of GitHub, but they're hard to run by hand on your local machine).
@mgeisler I would be interested in taking this up. I would do it as a Rust script and I can start with build-translation. Just to be sure that I'm understanding this correctly we would have:
- build-translation
- runs
mdbook-build - runs
msginit -i book/xgettext/messages.pot -l xx -o po/xx.po - make the change to
.github/labeler.ymllike so:
- runs
+"translation/xx":
+ - changed-files:
+ - any-glob-to-any-file: po/xx.po
Hi @jonodeno, thanks for looking at this and sorry for the late reply!
At the moment, we use build.sh in Comprehensive Rust to render a single language. So this script shows the kind of functionality I'm looking for as a baseline.
The full script should then do this for every language.
See also #84 by @sakex, which was an early attempt at doing this.