Skip to content

Sync with CPython 3.14 - #1231

Merged
mattwang44 merged 109 commits into
3.14from
cron/sync/3.14
Oct 15, 2026
Merged

mattwang44 merged 109 commits into
3.14from
cron/sync/3.14

Conversation

@pydoc-zh-tw

@pydoc-zh-tw pydoc-zh-tw Bot commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Sync with CPython 3.14

@github-actions

github-actions Bot commented Jun 6, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://python.github.io/python-docs-zh-tw/pr-preview/pr-1231/

Built to branch gh-pages at 2026-10-15 06:35 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

github-actions Bot and others added 22 commits September 21, 2026 00:23
CPython gh-156682 (3.14 backport GH-157441) moved constants, exceptions,
functions, stdtypes, threadsafety and time-complexity from Doc/library/
to Doc/builtins/ without content changes. The sync workflow only created
empty builtins/*.po and left the old library/*.po orphaned.

Merge the existing translations into builtins/*.po with translate-toolkit
pomerge (--mergecomments=no --mergefuzzy=no --mergeblanks=no), keep the
original translator header comments, and remove the orphaned library/*.po.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
For msgids newly introduced or turned fuzzy by this sync that need no or
almost no translation:

- msgids that are only inline markup (roles, literals, math, footnote
  refs): copy msgid to msgstr
- literal blocks (doctest, ::, code-block) without comments, and license
  texts: copy msgid to msgstr
- literal blocks with a few comments: copy the code and translate only
  the comments, reusing existing comment translations where available

Fuzzy flags on these entries are cleared. Edits are limited to the target
entries; the rest of each file is byte-for-byte unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fuzzy entries that need no real translation judgement:

- msgid changed only in reST markup, e.g. :func: -> :deco: for
  decorators, :const:`None` -> ``None``, fully qualified role targets,
  renamed parameters (*secs* -> *seconds*): port the same token change
  into the msgstr. Applied only when every msgid difference is a markup
  token or whitespace and each token occurs verbatim in the msgstr.
- pure deletions (e.g. dropped "soft deprecated", removed sentences):
  delete the corresponding part of the msgstr.
- small wording changes (e.g. eg. -> for example, category -> class,
  exhausted -> :term:`exhausted`, updated URLs, added "See :pep:`525`."):
  keep or minimally adjust the msgstr.
- msgmerge matched the wrong old entry for a short, formulaic msgid
  (headings, "a string or None", "This is an alias to ..."): retranslate.

Entries with substantive prose changes are left fuzzy for human review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolve every fuzzy entry introduced by this sync whose msgid had a
substantive change: update the existing translation to the new source
text (added or removed sentences, reworded clauses, new :term: and :ref:
links), or retranslate where msgmerge had matched an unrelated old entry.

reference/grammar.po only gained code lines (invalid_noteq), which are
inserted into the existing translation unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mattwang44
mattwang44 marked this pull request as ready for review October 15, 2026 06:25
Address every entry flagged by at least one of three independent
reviewers in the files this sync touches:

- mistranslations and omissions (library/intro, bisect, functools,
  itertools "if at all", weakref "remaining", wrong contributor name in
  whatsnew/3.11)
- broken markup: single instead of double backticks in http.cookiejar
- terminology: unify :term:`exhausted` as 耗盡 and translate its glossary
  entry; modal -> 強制回應; class -> 類別; documentation -> 說明文件;
  replace Mainland terms (設置, 鏈接, 實現, 交互模式, 鍊表, 運行, ...)
- punctuation: half-width brackets and quotes in Chinese text, stray
  spaces around full-width punctuation, unnecessary or missing escapes

Also adopt the better wording from the earlier attempt in #1239 where it
is more accurate or more natural (e.g. atexit "signal not handled by
Python", numbers, tuple "already in the tuple", tkinter Variable and
index docs), drop the stray trailing newline in tutorial/controlflow
that made msgfmt fail, and write :term: roles in glossary entries
touched by this sync as :term:`中文 <term>` as requested in #1239.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mattwang44
mattwang44 merged commit f41fc27 into 3.14 Oct 15, 2026
1 check passed
@mattwang44
mattwang44 deleted the cron/sync/3.14 branch October 15, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant