python-docs-theme icon indicating copy to clipboard operation
python-docs-theme copied to clipboard

Let's localize this theme

Open rffontenelle opened this issue 1 year ago • 6 comments

While Python docs is available for translation, this theme is still used in English. I see strings marked for translation, but there is no localization infra (no message catalog template; no babel's extract, update, compile, etc. commands set; no translation platform) or workflow set.

Is this project accepting contributions for enabling the theme's localization?

rffontenelle avatar Jul 31 '24 22:07 rffontenelle

Is this project accepting contributions for enabling the theme's localization?

I think we should.

Do you have recommendations for what we ought to do?

A

AA-Turner avatar Jul 31 '24 22:07 AA-Turner

Basic steps are:

  • choose a workflow (receive translations and update source messages as a pre-release step during a string freeze, or automatically update source messages and receive translations anytime?)
  • set up a script that runs babel's extract, init, update and compile options (via pybabel or customized Python script that calls babel)
  • optionally set up a translation project in a web-based translation platform like Weblate or Transifex to gather contributions in a more translation-friendly environment (so the translator doesn't have to know how to handle git concepts or GitHub pull requests)

My 2 cents:

  • host translations in Hosted Weblate (free of charge for free/libre software)
  • have a CI workflow that updates POT file whenever there is a new commit; with webhook set, Weblate will make available new strings for every language
  • have a script for running the babel's commands; this script will be used by the CI workflow, and may be used manually by an maintainer (see Sphinx's babel_runner.py and pydata's noxfile.py).

By the way, PyPA uses Weblate for warehouse (PyPI) and for Python Packaging User Guide, and it is awesome.

rffontenelle avatar Jul 31 '24 23:07 rffontenelle

Any progress? We have the script but it not receiving much use at the moment. Webplate may take some time to set up but maybe PRs in the meantime? (I don't think its that many strings < 50?)

StanFromIreland avatar Feb 10 '25 20:02 StanFromIreland

My bad. I'll get back to this. Indeed there are not many strings, so it's an easy translation.

rffontenelle avatar Feb 10 '25 20:02 rffontenelle

No worries! Webplate/Transifex might just be overkill for this one. All translations have at least one translator that can submit PRs and I'd say this would under take an hour to translate.

StanFromIreland avatar Feb 10 '25 21:02 StanFromIreland

My opinion: let's use just PO files in the repository, yet without a platform. And move it to Weblate along the Python docs (in the same project, for better discoverability), when it will be set up (hopefully soon).

m-aciek avatar Feb 10 '25 21:02 m-aciek

When this is implemented, I am happy to write a section for the devguide on contributing here:-)

StanFromIreland avatar Jun 29 '25 10:06 StanFromIreland

For the record, Stan's #246 implements fixes to the localization script from #195.

rffontenelle avatar Aug 08 '25 17:08 rffontenelle

Related: https://github.com/python/devguide/issues/1649 by Stan

rffontenelle avatar Sep 03 '25 15:09 rffontenelle

FYI I didn't include your translated po from the PR, it's better it's its own pr.

StanFromIreland avatar Sep 03 '25 16:09 StanFromIreland

It's fine. I'll redo it and create a PR in minutes.

rffontenelle avatar Sep 03 '25 16:09 rffontenelle

We're setting python-docs-theme localization in Transifex. Normally one would use Transifex CLI tool to push and pull translations in a CI environment. Instead I'd like to use GitHub integration, which provides seamless integration: send translations to repository whenever they are contributed instead of needing to pull translations from Transifex manually or via CI, optionally set pull requests (or push directly) instead of committing in CI workflow, choose between instantaneous push or a interval before pushing contributions

But I need a repository owner to install GitHub apps and to allow integration (maybe @AA-Turner ?). See https://help.transifex.com/en/articles/6265125-github-installation-and-configuration

If not wanted, I can always follow a manual / CI workflow as done in python documentation repositories.

rffontenelle avatar Sep 06 '25 12:09 rffontenelle

When I set it up I planned to just open the PR manually, since it takes just under a minute for me. I wouldn’t mind the integration. (FYI it is not a paid feature)

StanFromIreland avatar Sep 06 '25 12:09 StanFromIreland

Happy to close this issue:-)

StanFromIreland avatar Sep 09 '25 13:09 StanFromIreland