Discuss a sustainable translation/i18n infrastructure for long-term maintainability #260
Replies: 6 comments 13 replies
-
|
Thanks for this, @sanchuanhehe. I made this a community discussion instead of an issue, because I believe we'll all need some time to talk and think about this one. I certainly agree that automation and additional CI tooling could help with the work of maintaining translations. I'm more concerned about adding toolchain complexity and what that means for our overall ability to maintain the Open Source Way project. I also must confess that I know very little about this area, so would want to ensure that other maintainers and community members could have an opportunity to review what you're proposing and weigh in. |
Beta Was this translation helpful? Give feedback.
-
|
I have a working proof-of-concept fork for the sustainable i18n/docs workflow discussed here:
What is included:
How to try it locally: uv sync
uv run --locked sphinx-build -b html . _build/html/en
uv run --locked sphinx-build -b html -D language=zh_CN . _build/html/zh_CNTo build PDF previews locally, install XeLaTeX/latexmk first, then run: uv run --locked sphinx-build -M latexpdf . _build/pdf/en
uv run --locked sphinx-build -M latexpdf . _build/pdf/zh_CN -D language=zh_CNTo refresh translation catalogs after English source changes: SOURCE_DATE_EPOCH=0 uv run --locked sphinx-build -b gettext . _build/gettext
uv run --locked sphinx-intl update -p _build/gettext -l zh_CN --locale-dir locales
uv run --locked python tools/i18n/normalize_po_files.py
uv run --locked python tools/i18n/catalog_status.pyTo run Markdownlint locally: npx --yes markdownlint-cli2@0.18.1What the fork pipeline currently shows:
The deployed preview is meant as a reviewable fork-based prototype before proposing any upstream PR changes. |
Beta Was this translation helpful? Give feedback.
-
|
This is really fascinating work, @sanchuanhehe. Thank again for putting it together. And thanks, too, for your patience while I took a few days to look through and comprehend what you're proposing here. As I said: very little here is within my area of expertise so I just needed a bit of extra time to sort it all out. As I see it, the scope of what you're proposing here is even greater than translations alone. You're potentially proposing a new production toolchain for the entire Open Source Way guidebook—albeit one that is "translation-aware" or "translation-first" in ways that our current tooling currently isn't. But what I see here is at its heart a sphynx-based system for producing a multi-lingual version guidebook from Markdown source (a real affirmation of our decision to switch to Markdown-by-default last year!). One valuable knock-on effect of what you're proposing here is the ability to produce PDF versions of the guidebook, something we once did with our now-deprecated toolchain, and something that I had not quite figured out how to replace with the current system. This addresses that in a (seemingly, to my naive eyes) straightforward and simple way. So I am inclined to endorse the approach and would propose doing so with the following adjustments to our current project and community organization:
What do you think of this, @sanchuanhehe? I am keen to hear what other editors and maintainers are also thinking of these changes/additions. |
Beta Was this translation helpful? Give feedback.
-
|
Thank you very much for raising this discussion. Whenever the infrastructure direction is settled, I'd be glad to contribute on the Japanese locale side—whether that means migrating existing translated content into |
Beta Was this translation helpful? Give feedback.
-
|
Hi, all. Sorry to take so long on this. Work has been busy. All in all, I believe I am in favor of this new arrangement (a new production repository and corresponding team), and I can work to implement it. Of course, @sanchuanhehe and @kkomazaw, I will be very glad to have you on board. I do want to address this, just to ensure I am getting it right:
I do see your point here about integration, @sanchuanhehe, and certainly appreciate it. At the moment, I believe that in order to keep the editorial and production workflows separate, I would prefer to keep their respective tooling within the confines of their respective repositories—at least until we have piloted this and believe it is workable. At that point, if we decide it increases efficiency, we can "shift left" with our production tooling and integrate some linting and other production-related automations into the editorial repository. How does this strike you? Does it create undue or unnecessary burdens for you and the soon-to-be production team? I do not mean to hamstring you right from the start, so please let me know what you think. |
Beta Was this translation helpful? Give feedback.
-
|
@semioticrobotic Following up on our earlier conversation — the production toolchain is now set up and running. Here is the current status: Production repository: https://github.com/theopensourceway/production
Deployed preview: https://theopensourceway.github.io/production/
Pull request to the editorial repo: #261
Current architecture:
What I would like to ask:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
The ongoing Japanese translation PR (#256), together with earlier work on the Chinese translation, highlights a maintenance question that may become more important as more locales arrive.
From my experience helping with the Chinese translation, I think the project may soon run into a few predictable challenges:
Would it make sense to discuss moving toward a docs toolchain that is more translation-aware? One possible direction could be:
I am not suggesting that we must do a full migration immediately. An incremental approach might be enough:
This issue is intentionally separate from #257, which is about the content and editorial direction of the guidebook itself. This one is about the translation/localization workflow and the long-term maintainability of the project.
If maintainers think this is worthwhile, I would be happy to help bootstrap and maintain the infrastructure work.
Beta Was this translation helpful? Give feedback.
All reactions