Skip to content

gh-126609: Allow translating the availability directive #129549

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

Merged
merged 2 commits into from
Feb 2, 2025

Conversation

AA-Turner
Copy link
Member

@AA-Turner AA-Turner commented Feb 1, 2025

@m-aciek
Copy link
Contributor

m-aciek commented Feb 1, 2025

I hope I'm not missing anything, but that's what I get:

When I build gettext with % make -e SPHINXOPTS="--write-all" gettext on the branch, I get a full reference statement in the pot file:

#: ../../library/webbrowser.rst:54
msgid ":ref:`Availability <availability>`: not WASI, not Android."
msgstr ""

Then after inserting the translation in po file and building docs:

msgid ":ref:`Availability <availability>`: not WASI, not Android."
msgstr ":ref:`Dostępność <availability>`: nie WASI, nie Android."

It's not being loaded when building html with % make -e SPHINXOPTS="-D language='pl'" html:

Zrzut ekranu 2025-02-1 o 20 09 07

When I add manually to that the Availability word translation, I get the warning in logs and the same effect as on main branch:

Zrzut ekranu 2025-02-1 o 20 11 55

@AA-Turner
Copy link
Member Author

You should definitely not get the :ref: line on this branch as it constructs nodes directly. Could you try make clean or deleting your build folder to clear any caches?

A

@AA-Turner AA-Turner added docs Documentation in the Doc dir skip news needs backport to 3.12 only security fixes needs backport to 3.13 bugs and security fixes labels Feb 2, 2025
@AA-Turner AA-Turner marked this pull request as ready for review February 2, 2025 12:59
@AA-Turner AA-Turner requested a review from hugovk as a code owner February 2, 2025 12:59
@AA-Turner
Copy link
Member Author

I'm minded to merge this as it fixes a definite oversight in the original PR, and doesn't prevent us merging the revert commit if need be.

A

@m-aciek
Copy link
Contributor

m-aciek commented Feb 2, 2025

Indeed, I've checked wrong file. There's Availability still generated in the POT. Though in html build I still receive broken rendering.

Zrzut ekranu 2025-02-2 o 12 49 02

@AA-Turner
Copy link
Member Author

Though in html build I still receive broken rendering.

Do you still get the [i18n.inconsistent_references] warning?

@m-aciek
Copy link
Contributor

m-aciek commented Feb 2, 2025

Do you still get the [i18n.inconsistent_references] warning?

Yes, I do.

@AA-Turner
Copy link
Member Author

@m-aciek what are your reproduction steps?

@m-aciek
Copy link
Contributor

m-aciek commented Feb 2, 2025

CPython repository checked out on this branch, symlink at Doc/locales/pl: LC_MESSAGES to a repository with language translations.

% ls -la locales/pl/LC_MESSAGES 
lrwxr-xr-x  1 …  staff  26 Oct 30  2022 locales/pl/LC_MESSAGES -> ../../../../python-docs-pl

Language repository (pl) checked out at 3.13 with a patch applied:

Index: library/webbrowser.po
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/library/webbrowser.po b/library/webbrowser.po
--- a/library/webbrowser.po	(revision 632304c02750bb5b42a49e0f7230981f0285dcb9)
+++ b/library/webbrowser.po	(date 1738506193244)
@@ -88,7 +88,7 @@
 msgstr ""
 
 msgid "Availability"
-msgstr "Availability"
+msgstr "Dostępność"
 
 msgid "The following exception is defined:"
 msgstr ""

Than in CPython repo, Doc directory I run:

% make clean
% make -e SPHINXOPTS="-D language='pl' --write-all" html

In the build output I see bunch of warnings from license.rst and one from webbrowser.rst.

…/projects/cpython/Doc/library/webbrowser.rst:54: WARNING: inconsistent term references in translated message. original: ['Availability'], translated: [] [i18n.inconsistent_references]

And in Doc/build/html/library/webbrowser.html, only "Dostępność" instead of the rendering, as on the screenshot in the previous message.

@AA-Turner
Copy link
Member Author

For reference, from a clean check-out of my branch I ran:

PS> cd Doc
PS> python -m sphinx build -M gettext . build -aET
PS> rmdir -Recurse build/gettext/.doctrees
PS> mkdir locales/en_GB/LC_MESSAGES
PS> mv build/gettext/* locales/en_GB/LC_MESSAGES
PS> cd locales
PS> Get-ChildItem -Recurse -Include *.pot | Rename-Item -NewName { $_.Name.replace(".pot",".po") }

Then renaming all instances of

msgid "Availability"
msgstr ""

to

msgid "Availability"
msgstr "AVAILABILITY"

and then

python -m sphinx build -M html . build -aETW --define language=en_GB

With this I get no errors, and the directive renders & links correctly:

image

@AA-Turner
Copy link
Member Author

Index: library/webbrowser.po
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/library/webbrowser.po b/library/webbrowser.po
--- a/library/webbrowser.po	(revision 632304c02750bb5b42a49e0f7230981f0285dcb9)
+++ b/library/webbrowser.po	(date 1738506193244)
@@ -88,7 +88,7 @@
 msgstr ""
 
 msgid "Availability"
-msgstr "Availability"
+msgstr "Dostępność"
 
 msgid "The following exception is defined:"
 msgstr ""

Is there any difference if all instances are replaced instead of just this one?

Than in CPython repo, Doc directory I run:

% make clean
% make -e SPHINXOPTS="-D language='pl' --write-all" html

Please could you try with SPHINXOPTS="-D language='pl' --fresh-env --write-all"?

@m-aciek
Copy link
Contributor

m-aciek commented Feb 2, 2025

Is there any difference if all instances are replaced instead of just this one?

I don't think so, just tried with a minimal change.

Please could you try with SPHINXOPTS="-D language='pl' --fresh-env --write-all"?

No difference in the output.

Trying with changing Dostępność to AVAILABILITY, it may match the reference case-insensitively?

@m-aciek
Copy link
Contributor

m-aciek commented Feb 2, 2025

Hm, no, that's strange. AVAILABILITY breaks too 🤔 . I've updated all my dependencies recently.

Zrzut ekranu 2025-02-2 o 15 51 02

@AA-Turner
Copy link
Member Author

AA-Turner commented Feb 2, 2025

@m-aciek I think I've identified the problem -- you need to add a msgid/msgstr pair to sphinx.po. Without it, I get the errors you observe.

I didn't observe the errors as I was rebuilding with gettext from this branch each time, whereas the python-docs-pl clone used the 3.13 branch rather than this branch.

Cloning python-docs-pl and then adding the below to sphinx.po, I get

msgid "Availability"
msgstr "PL-AVAILABILITY"

image

image

@m-aciek
Copy link
Contributor

m-aciek commented Feb 2, 2025

Thank you for reproducing this. Confirming it works indeed, and the reference link works as intended.

@AA-Turner AA-Turner enabled auto-merge (squash) February 2, 2025 16:06
@AA-Turner AA-Turner merged commit 0612a89 into python:main Feb 2, 2025
24 checks passed
@miss-islington-app
Copy link

Thanks @AA-Turner for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12, 3.13.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Feb 2, 2025
…thonGH-129549)

(cherry picked from commit 0612a89)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
@bedevere-app
Copy link

bedevere-app bot commented Feb 2, 2025

GH-129584 is a backport of this pull request to the 3.13 branch.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Feb 2, 2025
…thonGH-129549)

(cherry picked from commit 0612a89)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
@bedevere-app bedevere-app bot removed the needs backport to 3.13 bugs and security fixes label Feb 2, 2025
@bedevere-app
Copy link

bedevere-app bot commented Feb 2, 2025

GH-129585 is a backport of this pull request to the 3.12 branch.

@bedevere-app bedevere-app bot removed the needs backport to 3.12 only security fixes label Feb 2, 2025
AA-Turner added a commit that referenced this pull request Feb 2, 2025
…H-129549) (#129585)

gh-126609: Allow translating the ``availability`` directive (GH-129549)
(cherry picked from commit 0612a89)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
AA-Turner added a commit that referenced this pull request Feb 3, 2025
…H-129549) (#129584)

gh-126609: Allow translating the ``availability`` directive (GH-129549)
(cherry picked from commit 0612a89)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
srinivasreddy pushed a commit to srinivasreddy/cpython that referenced this pull request Feb 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir skip news
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants