Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Translations: Add guide on merging back in translations #1700

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
StanFromIreland wants to merge 2 commits into python:main
base: main
Choose a base branch
Loading
from StanFromIreland:translation/merge-mania
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions documentation/translations/translating.rst
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -361,5 +361,51 @@ If you would like to coordinate, open a pull request in the
at the top of this page, and ping ``@python/editorial-board``.


How do I merge translations back in after docs are moved?
---------------------------------------------------------

When docs are moved in the CPython repository, translated messages are not
moved automatically and will be lost.
They can be recovered by merging them into the new locations.
Note that this is not necessary for Transifex-based translations, as Transifex's
translation memory will automatically copy them over.

The :pypi:`pomerge` tool merges translations between PO files by matching
messages, regardless of file paths. To use it, first install the package:

.. code-block:: bash

pip install pomerge

Then, merge translations from a specific commit (replace :samp:`{COMMIT_HASH}`
with the commit hash from before the files were moved):

.. TODO: Provide Windows instructions.
Copy link
Member Author

@StanFromIreland StanFromIreland Nov 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would greatly appreciate if someone could do this bit, since I don't have a clue:-)

This comment was marked as spam.


.. tab:: Unix

.. code-block:: bash

# These commands are to be run in the root of the translation repo

# Check out a commit before the move
git checkout COMMIT_HASH -- .

# Copy translations to a temporary dir
cp -r . /tmp/old-po-files

# Return to the current version
git checkout HEAD -- .

# Merge translations from temporary dir back in
pomerge --from /tmp/old-po-files/**/*.po --to **/*.po --clear

# Clean up temporary dir
rm -rf /tmp/old-po-files

After running ``pomerge``, review the changes and commit the updated files.
You may also need to rewrap the lines (see :pypi:`powrap`).


.. _discourse: https://discuss.python.org/c/documentation/translations/
.. _tx: https://explore.transifex.com/python-doc/python-newest/
Loading

AltStyle によって変換されたページ (->オリジナル) /