Skip to content

Commit dd8925c

Browse files
author
GitHub Action's update-translation job
committed
Update translation from Transifex
1 parent 58b0432 commit dd8925c

5 files changed

Lines changed: 164 additions & 9 deletions

File tree

‎c-api/module.po‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ msgid ""
1111
msgstr ""
1212
"Project-Id-Version: Python 3.15\n"
1313
"Report-Msgid-Bugs-To: \n"
14-
"POT-Creation-Date: 2026-06-21 15:47+0000\n"
14+
"POT-Creation-Date: 2026-07-01 16:21+0000\n"
1515
"PO-Revision-Date: 2025-09-16 00:00+0000\n"
1616
"Last-Translator: Bhuvansh Kataria, 2026\n"
1717
"Language-Team: Panjabi (Punjabi) (https://app.transifex.com/python-doc/"
@@ -503,6 +503,10 @@ msgid ""
503503
"c:func:`PyModule_GetState`) is ``NULL``."
504504
msgstr ""
505505

506+
msgid ""
507+
"Use :c:member:`PyModuleDef.m_traverse` instead to support previous versions."
508+
msgstr ""
509+
506510
msgid ""
507511
":c:member:`Slot ID <PySlot.sl_id>` for a clear function to call during GC "
508512
"clearing of the module object."

‎c-api/threads.po‎

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ msgid ""
1111
msgstr ""
1212
"Project-Id-Version: Python 3.15\n"
1313
"Report-Msgid-Bugs-To: \n"
14-
"POT-Creation-Date: 2026-06-21 15:47+0000\n"
14+
"POT-Creation-Date: 2026-07-01 16:21+0000\n"
1515
"PO-Revision-Date: 2026-02-25 14:46+0000\n"
1616
"Last-Translator: Bhuvansh Kataria, 2026\n"
1717
"Language-Team: Panjabi (Punjabi) (https://app.transifex.com/python-doc/"
@@ -281,6 +281,80 @@ msgstr ""
281281
msgid ":pep:`788`"
282282
msgstr ""
283283

284+
msgid "Reusing a thread state across repeated calls"
285+
msgstr ""
286+
287+
msgid ""
288+
"Creating and destroying a :c:type:`PyThreadState` is not free, and is more "
289+
"expensive on a :term:`free-threaded build`. A foreign thread that calls "
290+
"into the interpreter many times -- for example, a worker thread in a native "
291+
"thread pool -- should avoid creating a fresh thread state on every entry and "
292+
"destroying it on every exit. Instead, set up one thread state when the "
293+
"thread starts (or lazily on its first call into Python), attach and detach "
294+
"it around each call, and tear it down once when the thread exits."
295+
msgstr ""
296+
297+
msgid ""
298+
"Manage the thread state explicitly with :c:func:`PyThreadState_New`, "
299+
"attaching and detaching it with :c:func:`PyEval_RestoreThread` and :c:func:"
300+
"`PyEval_SaveThread`. This happens in three distinct phases, at different "
301+
"points in the thread's life."
302+
msgstr ""
303+
304+
msgid ""
305+
"When the thread starts, create one thread state for it. ``interp`` is the "
306+
"target interpreter, captured by the code that created this thread while it "
307+
"held an attached thread state (for example via :c:func:"
308+
"`PyInterpreterState_Get`)::"
309+
msgstr ""
310+
311+
msgid "PyThreadState *tstate = PyThreadState_New(interp);"
312+
msgstr ""
313+
314+
msgid ""
315+
"Then, on each call into Python -- which may happen many times over the "
316+
"thread's life -- attach the thread state, make the Python C API calls that "
317+
"require it, and detach again so the thread does not hold the GIL while off "
318+
"doing non-Python work::"
319+
msgstr ""
320+
321+
msgid ""
322+
"PyEval_RestoreThread(tstate);\n"
323+
"result = CallSomeFunction(); /* your Python C API calls go here */\n"
324+
"PyEval_SaveThread();"
325+
msgstr ""
326+
327+
msgid ""
328+
"When the thread is finished calling into Python, destroy the thread state "
329+
"once::"
330+
msgstr ""
331+
332+
msgid ""
333+
"PyEval_RestoreThread(tstate);\n"
334+
"PyThreadState_Clear(tstate);\n"
335+
"PyThreadState_DeleteCurrent();"
336+
msgstr ""
337+
338+
msgid ""
339+
"The general-purpose entry points for calling in from a foreign thread -- :c:"
340+
"func:`PyThreadState_Ensure` and the older :c:func:`PyGILState_Ensure` -- do "
341+
"*not* guarantee a persistent thread state: their thread-state lifetime is "
342+
"deliberately implementation-defined, so a matched acquire/release pair may "
343+
"create and destroy a thread state each time. Use :c:func:"
344+
"`PyThreadState_New`, as shown here, whenever you specifically want to reuse "
345+
"one thread state across calls."
346+
msgstr ""
347+
348+
msgid ""
349+
"The code that created the foreign thread must arrange for the shutdown "
350+
"sequence to run before the thread exits, and before :c:func:`Py_FinalizeEx` "
351+
"is called. If interpreter finalization begins first, the shutdown :c:func:"
352+
"`PyEval_RestoreThread` call will hang the thread rather than return (see :"
353+
"ref:`cautions-regarding-runtime-finalization`). If the thread exits without "
354+
"running the shutdown sequence, the thread state is leaked for the remainder "
355+
"of the process."
356+
msgstr ""
357+
284358
msgid "Attaching/detaching thread states"
285359
msgstr ""
286360

‎faq/design.po‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: Python 3.15\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2026-06-21 15:47+0000\n"
11+
"POT-Creation-Date: 2026-07-01 16:21+0000\n"
1212
"PO-Revision-Date: 2025-09-16 00:00+0000\n"
1313
"Language-Team: Panjabi (Punjabi) (https://app.transifex.com/python-doc/"
1414
"teams/5390/pa/)\n"
@@ -349,8 +349,10 @@ msgid ""
349349
"In general, structured switch statements execute one block of code when an "
350350
"expression has a particular value or set of values. Since Python 3.10 one "
351351
"can easily match literal values, or constants within a namespace, with a "
352-
"``match ... case`` statement. An older alternative is a sequence of ``if... "
353-
"elif... elif... else``."
352+
"``match ... case`` statement. See :ref:`the specification <match>` and :ref:"
353+
"`the tutorial <tut-match>` for more information about :keyword:`match` "
354+
"statements. An older alternative is a sequence of ``if... elif... elif... "
355+
"else``."
354356
msgstr ""
355357

356358
msgid ""

‎library/dialog.po‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: Python 3.15\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2026-06-21 15:47+0000\n"
11+
"POT-Creation-Date: 2026-07-01 16:21+0000\n"
1212
"PO-Revision-Date: 2025-09-16 00:01+0000\n"
1313
"Language-Team: Panjabi (Punjabi) (https://app.transifex.com/python-doc/"
1414
"teams/5390/pa/)\n"
@@ -149,13 +149,15 @@ msgid ""
149149
"The below functions when called create a modal, native look-and-feel dialog, "
150150
"wait for the user's selection, and return it. The exact return value depends "
151151
"on the function (see below); when the dialog is cancelled it is an empty "
152-
"string, an empty tuple, an empty list or ``None``."
152+
"string, an empty tuple or ``None``. The precise type of this empty value may "
153+
"vary between platforms and Tk versions, so test the result for truth rather "
154+
"than comparing it with a specific value."
153155
msgstr ""
154156

155157
msgid ""
156158
"Create an :class:`Open` dialog. :func:`askopenfile` returns the opened file "
157159
"object, or ``None`` if the dialog is cancelled. :func:`askopenfiles` returns "
158-
"a list of the opened file objects, or an empty list if cancelled. The files "
160+
"a list of the opened file objects, or an empty tuple if cancelled. The files "
159161
"are opened in mode *mode* (read-only ``'r'`` by default)."
160162
msgstr ""
161163

‎whatsnew/changelog.po‎

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ msgid ""
1111
msgstr ""
1212
"Project-Id-Version: Python 3.15\n"
1313
"Report-Msgid-Bugs-To: \n"
14-
"POT-Creation-Date: 2026-06-29 16:50+0000\n"
14+
"POT-Creation-Date: 2026-07-01 16:21+0000\n"
1515
"PO-Revision-Date: 2025-09-16 00:02+0000\n"
1616
"Last-Translator: Bhuvansh Kataria, 2026\n"
1717
"Language-Team: Panjabi (Punjabi) (https://app.transifex.com/python-doc/"
@@ -44,6 +44,14 @@ msgstr ""
4444
msgid "Tests"
4545
msgstr ""
4646

47+
msgid ""
48+
":gh:`151626`: Fix several tests in ``test.test_inspect``, ``test."
49+
"test_import``, ``test.test_importlib``, ``test.test_py_compile`` and ``test."
50+
"test_compileall`` that failed when the test suite was run with :envvar:"
51+
"`PYTHONPYCACHEPREFIX` set. These tests now neutralize the pycache prefix "
52+
"where they assume the default ``__pycache__`` bytecode layout."
53+
msgstr ""
54+
4755
msgid ""
4856
":gh:`151096`: Fix ``test_embed`` failing when CPython is configured with a "
4957
"split exec prefix (``--exec-prefix`` differing from ``--prefix``)."
@@ -52,6 +60,11 @@ msgstr ""
5260
msgid "Security"
5361
msgstr ""
5462

63+
msgid ""
64+
":gh:`151987`: The :meth:`tarfile.TarFile.extract` method now applies the "
65+
"given filter when it extracts a link target from the archive as a fallback."
66+
msgstr ""
67+
5568
msgid ""
5669
":gh:`151981`: In :mod:`tarfile`, seeking a stream now stops when end of the "
5770
"stream is reached."
@@ -82,11 +95,27 @@ msgstr ""
8295
msgid "Library"
8396
msgstr ""
8497

98+
msgid ""
99+
":gh:`152502`: Detect the :mod:`curses` mouse interface (:func:`~curses."
100+
"getmouse`, the ``BUTTON*`` constants, and others) with a configure "
101+
"capability probe or library macros instead of gating it on ncurses-specific "
102+
"macros. It is now also available with other curses implementations that "
103+
"provide it, such as NetBSD curses and PDCurses (the latter underpins "
104+
"``windows-curses``)."
105+
msgstr ""
106+
85107
msgid ""
86108
":gh:`151842`: Fix a crash in :func:`!_interpreters.capture_exception` when :"
87109
"exc:`MemoryError` happens. Patch by Amrutha Modela."
88110
msgstr ""
89111

112+
msgid ""
113+
":gh:`50966`: Fix unbounded recursion in :mod:`turtle` when a mouse event "
114+
"handler that moves the turtle is reentered while the screen is being "
115+
"redrawn, for example with ``screen.ondrag(turtle.goto)``. This could "
116+
"previously crash the interpreter."
117+
msgstr ""
118+
90119
msgid ""
91120
":gh:`110357`: Importing :mod:`hashlib` no longer logs an error to stderr "
92121
"when a normally guaranteed hash algorithm is unavailable in the current "
@@ -147,6 +176,12 @@ msgid ""
147176
"to the original widget."
148177
msgstr ""
149178

179+
msgid ""
180+
":gh:`152248`: Make the C and pure-Python :mod:`zoneinfo` parsers validate "
181+
"POSIX TZ abbreviations consistently, rejecting unquoted abbreviations with "
182+
"non-letter characters and empty quoted abbreviations. Patch by tonghuaroot."
183+
msgstr ""
184+
150185
msgid ""
151186
":gh:`80937`: Fix a memory leak in :mod:`tkinter` when a Tcl command created "
152187
"with ``createcommand`` was not explicitly removed before the interpreter was "
@@ -194,6 +229,13 @@ msgid ""
194229
"under limited memory conditions."
195230
msgstr ""
196231

232+
msgid ""
233+
":gh:`152157`: The C implementations of :meth:`~datetime.datetime."
234+
"fromisoformat` and :meth:`~datetime.time.fromisoformat` now reject a decimal "
235+
"separator that is not followed by any fractional digit before a timezone "
236+
"designator."
237+
msgstr ""
238+
197239
msgid ""
198240
":gh:`151763`: Fix crash in :func:`!_interpqueues.create` whe :exc:"
199241
"`MemoryError` happens on queue creation."
@@ -284,6 +326,17 @@ msgstr ""
284326
msgid "IDLE"
285327
msgstr "IDLE"
286328

329+
msgid ""
330+
":gh:`152728`: Move functions run.fix_scaling, editor.fixwordbreaks (as "
331+
"fix_word_breaks) and pyshell.fix_x11_paste to idlelib.util."
332+
msgstr ""
333+
334+
msgid ""
335+
":gh:`66331`: Set the ``WM_CLASS`` window property of IDLE's windows to "
336+
"``Idle`` on X11, so that window managers group and label them correctly "
337+
"instead of using the default ``Toplevel``."
338+
msgstr ""
339+
287340
msgid ""
288341
":gh:`85320`: IDLE now reads and writes its configuration files and the "
289342
"breakpoints file using UTF-8 instead of the locale encoding. This keeps non-"
@@ -294,6 +347,16 @@ msgstr ""
294347
msgid "Core and Builtins"
295348
msgstr ""
296349

350+
msgid ""
351+
":gh:`152635`: Fix a crash caused when running out of memory creating a :mod:"
352+
"`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly raised."
353+
msgstr ""
354+
355+
msgid ""
356+
":gh:`152492`: :type:`collections.OrderedDict` ``update`` method can now "
357+
"accept :type:`frozendict` as an argument."
358+
msgstr ""
359+
297360
msgid ""
298361
":gh:`152375`: Fix undefined behaviour when a :mod:`sys.monitoring` callback "
299362
"raised an exception while the program was following a branch or loop."
@@ -310,6 +373,11 @@ msgid ""
310373
"the end of its construction from iterable. Patch by Donghee Na."
311374
msgstr ""
312375

376+
msgid ""
377+
":gh:`152228`: Fix an assertion failure when python is built in a debug mode "
378+
"that happened in :meth:`str.replace` under a limited memory situation."
379+
msgstr ""
380+
313381
msgid ""
314382
":gh:`151722`: :meth:`!frozendict.fromkeys` now only tracks the :class:"
315383
"`frozendict` in the garbage collector once the dictionary is fully "
@@ -359,6 +427,11 @@ msgid ""
359427
"writable memory when ``libpython`` replaced on disk."
360428
msgstr ""
361429

430+
msgid ""
431+
":gh:`149689`: Fix missing error propagation in parser action helpers when "
432+
"memory allocation fails. Patch by Thomas Kowalski."
433+
msgstr ""
434+
362435
msgid ":gh:`148825`: Fix build error if specialization is disabled."
363436
msgstr ""
364437

0 commit comments

Comments
 (0)