Skip to content

Commit a2399c0

Browse files
committed
Docs: allow translation of a phrase in availability directive
1 parent ae47888 commit a2399c0

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

Doc/tools/extensions/availability.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from __future__ import annotations
44

5+
from itertools import starmap
56
from typing import TYPE_CHECKING
67

78
from docutils import nodes
@@ -11,6 +12,8 @@
1112
from sphinx.util.docutils import SphinxDirective
1213

1314
if TYPE_CHECKING:
15+
from collections.abc import Callable
16+
1417
from sphinx.application import Sphinx
1518
from sphinx.util.typing import ExtensionMetadata
1619

@@ -49,6 +52,16 @@
4952
KNOWN_PLATFORMS = _PLATFORMS | _LIBC | _THREADING
5053

5154

55+
def _print_platform(
56+
platform: str, version: str | bool
57+
) -> str | Callable[[str], str]:
58+
if version is True:
59+
return platform
60+
if not version:
61+
return sphinx_gettext("not {platform}").format(platform=platform)
62+
return f"{platform} >= {version}"
63+
64+
5265
class Availability(SphinxDirective):
5366
has_content = True
5467
required_arguments = 1
@@ -68,14 +81,17 @@ def run(self) -> list[nodes.container]:
6881
refwarn=True,
6982
)
7083
sep = nodes.Text(": ")
71-
parsed, msgs = self.state.inline_text(self.arguments[0], self.lineno)
84+
platforms = self.parse_platforms()
85+
platforms_text = (
86+
f"{', '.join(starmap(_print_platform, platforms.items()))}."
87+
)
88+
parsed, msgs = self.state.inline_text(platforms_text, self.lineno)
7289
pnode = nodes.paragraph(title, "", refnode, sep, *parsed, *msgs)
7390
self.set_source_info(pnode)
7491
cnode = nodes.container("", pnode, classes=["availability"])
7592
self.set_source_info(cnode)
7693
if self.content:
7794
self.state.nested_parse(self.content, self.content_offset, cnode)
78-
self.parse_platforms()
7995

8096
return [cnode]
8197

Doc/tools/templates/dummy.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
In extensions/availability.py:
1111

1212
{% trans %}Availability{% endtrans %}
13+
{% trans %}not {platform}{% endtrans %}
1314

1415
In extensions/c_annotations.py:
1516

0 commit comments

Comments
 (0)