Skip to content

Commit bb64898

Browse files
committed
Sync with upstream on branch 3.14
1 parent c4ede94 commit bb64898

98 files changed

Lines changed: 2114 additions & 821 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/sync-with-cpython.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
# this workflow can't drift from update_python_version.py the way
4646
# it did before (missing --no-location --no-wrap on one side).
4747
- name: Sync msgids (fetch, build gettext, merge, validate)
48-
run: python scripts/po_sync.py sync-only "$CPYTHON_TAG"
48+
run: python scripts/po_sync.py sync-only "$CPYTHON_TAG" --create-new
4949

5050
- name: Ensure translation label exists
5151
env:
Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
1-
# SOME DESCRIPTIVE TITLE.
1+
# Persian translations for Python package.
22
# Copyright (C) 2001 Python Software Foundation
33
# This file is distributed under the same license as the Python package.
4-
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5-
#
6-
# Translators:
7-
# Alireza Shabani (Revisto) <theRevisto@gmail.com>, 2025
8-
# Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026
4+
# Automatically generated, 2026.
95
#
106
msgid ""
117
msgstr ""
128
"Project-Id-Version: Python 3.14\n"
139
"Report-Msgid-Bugs-To: \n"
14-
"POT-Creation-Date: 2026-09-16 12:56+0000\n"
15-
"PO-Revision-Date: 2026-09-15 12:13+0330\n"
16-
"Last-Translator: Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026\n"
17-
"Language-Team: Persian (https://github.com/python/python-docs-fa/fa/)\n"
10+
"POT-Creation-Date: 2026-09-19 20:08+0330\n"
11+
"PO-Revision-Date: 2026-09-19 20:08+0330\n"
12+
"Last-Translator: Automatically generated\n"
13+
"Language-Team: none\n"
1814
"Language: fa\n"
1915
"MIME-Version: 1.0\n"
2016
"Content-Type: text/plain; charset=UTF-8\n"
2117
"Content-Transfer-Encoding: 8bit\n"
22-
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
23-
"X-Generator: Poedit 3.6\n"
2418

2519
msgid "Built-in Constants"
2620
msgstr "ثابت‌های توکار"
Lines changed: 6 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,20 @@
1-
# SOME DESCRIPTIVE TITLE.
1+
# Persian translations for Python package.
22
# Copyright (C) 2001 Python Software Foundation
33
# This file is distributed under the same license as the Python package.
4-
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5-
#
6-
# Translators:
7-
# Alireza Shabani (Revisto) <theRevisto@gmail.com>, 2025
8-
# Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026
4+
# Automatically generated, 2026.
95
#
106
msgid ""
117
msgstr ""
128
"Project-Id-Version: Python 3.14\n"
139
"Report-Msgid-Bugs-To: \n"
14-
"POT-Creation-Date: 2026-09-16 12:56+0000\n"
15-
"PO-Revision-Date: 2026-09-14 12:07+0330\n"
16-
"Last-Translator: Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026\n"
17-
"Language-Team: Persian (https://github.com/python/python-docs-fa/fa/)\n"
10+
"POT-Creation-Date: 2026-09-19 20:08+0330\n"
11+
"PO-Revision-Date: 2026-09-19 20:08+0330\n"
12+
"Last-Translator: Automatically generated\n"
13+
"Language-Team: none\n"
1814
"Language: fa\n"
1915
"MIME-Version: 1.0\n"
2016
"Content-Type: text/plain; charset=UTF-8\n"
2117
"Content-Transfer-Encoding: 8bit\n"
22-
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
23-
"X-Generator: Poedit 3.6\n"
2418

2519
msgid "Built-in Exceptions"
2620
msgstr "استثناهای توکار"
@@ -700,142 +694,3 @@ msgstr "ماژول"
700694

701695
msgid "errno"
702696
msgstr "errno"
703-
704-
#~ msgid ""
705-
#~ "BaseException\n"
706-
#~ " ├── BaseExceptionGroup\n"
707-
#~ " ├── GeneratorExit\n"
708-
#~ " ├── KeyboardInterrupt\n"
709-
#~ " ├── SystemExit\n"
710-
#~ " └── Exception\n"
711-
#~ " ├── ArithmeticError\n"
712-
#~ " │ ├── FloatingPointError\n"
713-
#~ " │ ├── OverflowError\n"
714-
#~ " │ └── ZeroDivisionError\n"
715-
#~ " ├── AssertionError\n"
716-
#~ " ├── AttributeError\n"
717-
#~ " ├── BufferError\n"
718-
#~ " ├── EOFError\n"
719-
#~ " ├── ExceptionGroup [BaseExceptionGroup]\n"
720-
#~ " ├── ImportError\n"
721-
#~ " │ └── ModuleNotFoundError\n"
722-
#~ " ├── LookupError\n"
723-
#~ " │ ├── IndexError\n"
724-
#~ " │ └── KeyError\n"
725-
#~ " ├── MemoryError\n"
726-
#~ " ├── NameError\n"
727-
#~ " │ └── UnboundLocalError\n"
728-
#~ " ├── OSError\n"
729-
#~ " │ ├── BlockingIOError\n"
730-
#~ " │ ├── ChildProcessError\n"
731-
#~ " │ ├── ConnectionError\n"
732-
#~ " │ │ ├── BrokenPipeError\n"
733-
#~ " │ │ ├── ConnectionAbortedError\n"
734-
#~ " │ │ ├── ConnectionRefusedError\n"
735-
#~ " │ │ └── ConnectionResetError\n"
736-
#~ " │ ├── FileExistsError\n"
737-
#~ " │ ├── FileNotFoundError\n"
738-
#~ " │ ├── InterruptedError\n"
739-
#~ " │ ├── IsADirectoryError\n"
740-
#~ " │ ├── NotADirectoryError\n"
741-
#~ " │ ├── PermissionError\n"
742-
#~ " │ ├── ProcessLookupError\n"
743-
#~ " │ └── TimeoutError\n"
744-
#~ " ├── ReferenceError\n"
745-
#~ " ├── RuntimeError\n"
746-
#~ " │ ├── NotImplementedError\n"
747-
#~ " │ ├── PythonFinalizationError\n"
748-
#~ " │ └── RecursionError\n"
749-
#~ " ├── StopAsyncIteration\n"
750-
#~ " ├── StopIteration\n"
751-
#~ " ├── SyntaxError\n"
752-
#~ " │ └── IndentationError\n"
753-
#~ " │ └── TabError\n"
754-
#~ " ├── SystemError\n"
755-
#~ " ├── TypeError\n"
756-
#~ " ├── ValueError\n"
757-
#~ " │ └── UnicodeError\n"
758-
#~ " │ ├── UnicodeDecodeError\n"
759-
#~ " │ ├── UnicodeEncodeError\n"
760-
#~ " │ └── UnicodeTranslateError\n"
761-
#~ " └── Warning\n"
762-
#~ " ├── BytesWarning\n"
763-
#~ " ├── DeprecationWarning\n"
764-
#~ " ├── EncodingWarning\n"
765-
#~ " ├── FutureWarning\n"
766-
#~ " ├── ImportWarning\n"
767-
#~ " ├── PendingDeprecationWarning\n"
768-
#~ " ├── ResourceWarning\n"
769-
#~ " ├── RuntimeWarning\n"
770-
#~ " ├── SyntaxWarning\n"
771-
#~ " ├── UnicodeWarning\n"
772-
#~ " └── UserWarning\n"
773-
#~ msgstr ""
774-
#~ "BaseException\n"
775-
#~ " ├── BaseExceptionGroup\n"
776-
#~ " ├── GeneratorExit\n"
777-
#~ " ├── KeyboardInterrupt\n"
778-
#~ " ├── SystemExit\n"
779-
#~ " └── Exception\n"
780-
#~ " ├── ArithmeticError\n"
781-
#~ " │ ├── FloatingPointError\n"
782-
#~ " │ ├── OverflowError\n"
783-
#~ " │ └── ZeroDivisionError\n"
784-
#~ " ├── AssertionError\n"
785-
#~ " ├── AttributeError\n"
786-
#~ " ├── BufferError\n"
787-
#~ " ├── EOFError\n"
788-
#~ " ├── ExceptionGroup [BaseExceptionGroup]\n"
789-
#~ " ├── ImportError\n"
790-
#~ " │ └── ModuleNotFoundError\n"
791-
#~ " ├── LookupError\n"
792-
#~ " │ ├── IndexError\n"
793-
#~ " │ └── KeyError\n"
794-
#~ " ├── MemoryError\n"
795-
#~ " ├── NameError\n"
796-
#~ " │ └── UnboundLocalError\n"
797-
#~ " ├── OSError\n"
798-
#~ " │ ├── BlockingIOError\n"
799-
#~ " │ ├── ChildProcessError\n"
800-
#~ " │ ├── ConnectionError\n"
801-
#~ " │ │ ├── BrokenPipeError\n"
802-
#~ " │ │ ├── ConnectionAbortedError\n"
803-
#~ " │ │ ├── ConnectionRefusedError\n"
804-
#~ " │ │ └── ConnectionResetError\n"
805-
#~ " │ ├── FileExistsError\n"
806-
#~ " │ ├── FileNotFoundError\n"
807-
#~ " │ ├── InterruptedError\n"
808-
#~ " │ ├── IsADirectoryError\n"
809-
#~ " │ ├── NotADirectoryError\n"
810-
#~ " │ ├── PermissionError\n"
811-
#~ " │ ├── ProcessLookupError\n"
812-
#~ " │ └── TimeoutError\n"
813-
#~ " ├── ReferenceError\n"
814-
#~ " ├── RuntimeError\n"
815-
#~ " │ ├── NotImplementedError\n"
816-
#~ " │ ├── PythonFinalizationError\n"
817-
#~ " │ └── RecursionError\n"
818-
#~ " ├── StopAsyncIteration\n"
819-
#~ " ├── StopIteration\n"
820-
#~ " ├── SyntaxError\n"
821-
#~ " │ └── IndentationError\n"
822-
#~ " │ └── TabError\n"
823-
#~ " ├── SystemError\n"
824-
#~ " ├── TypeError\n"
825-
#~ " ├── ValueError\n"
826-
#~ " │ └── UnicodeError\n"
827-
#~ " │ ├── UnicodeDecodeError\n"
828-
#~ " │ ├── UnicodeEncodeError\n"
829-
#~ " │ └── UnicodeTranslateError\n"
830-
#~ " └── Warning\n"
831-
#~ " ├── BytesWarning\n"
832-
#~ " ├── DeprecationWarning\n"
833-
#~ " ├── EncodingWarning\n"
834-
#~ " ├── FutureWarning\n"
835-
#~ " ├── ImportWarning\n"
836-
#~ " ├── PendingDeprecationWarning\n"
837-
#~ " ├── ResourceWarning\n"
838-
#~ " ├── RuntimeWarning\n"
839-
#~ " ├── SyntaxWarning\n"
840-
#~ " ├── UnicodeWarning\n"
841-
#~ " └── UserWarning\n"
Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,20 @@
1-
# SOME DESCRIPTIVE TITLE.
1+
# Persian translations for Python package.
22
# Copyright (C) 2001 Python Software Foundation
33
# This file is distributed under the same license as the Python package.
4-
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5-
#
6-
# Translators:
7-
# AmirHossein SAMIMI, 2025
8-
# taha haghgoo, 2025
9-
# sadra nobari, 2025
10-
# Ramiz karimian, 2025
11-
# Alireza Shabani (Revisto) <theRevisto@gmail.com>, 2025
12-
# khosro azimi, 2025
13-
# Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026
4+
# Automatically generated, 2026.
145
#
156
msgid ""
167
msgstr ""
178
"Project-Id-Version: Python 3.14\n"
189
"Report-Msgid-Bugs-To: \n"
19-
"POT-Creation-Date: 2026-09-16 12:56+0000\n"
20-
"PO-Revision-Date: 2026-09-12 18:02+0330\n"
21-
"Last-Translator: Sepehr Rasouli <sepehrrasouli06@gmail.com>, 2026\n"
22-
"Language-Team: Persian (https://github.com/python/python-docs-fa/)\n"
10+
"POT-Creation-Date: 2026-09-19 20:08+0330\n"
11+
"PO-Revision-Date: 2026-09-19 20:08+0330\n"
12+
"Last-Translator: Automatically generated\n"
13+
"Language-Team: none\n"
2314
"Language: fa\n"
2415
"MIME-Version: 1.0\n"
2516
"Content-Type: text/plain; charset=UTF-8\n"
2617
"Content-Transfer-Encoding: 8bit\n"
27-
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
28-
"X-Generator: Poedit 3.6\n"
2918

3019
msgid "Built-in Functions"
3120
msgstr "توابع توکار"
@@ -331,8 +320,8 @@ msgstr ""
331320
" return False\n"
332321
" return True"
333322

334-
msgid "When awaited, return the next item from the given :term:`asynchronous iterator`, or *default* if given and the iterator is exhausted."
335-
msgstr "هنگام اِنتظار (await)، عنصر بعدی را از :term:`asynchronous iterator` داده شده برمی‌گرداند، یا اگر آرگومان *default* ارائه شده و پیمایش‌گر به پایان رسیده باشد، مقدار *default* را برمی‌گرداند."
323+
msgid "When awaited, return the next item from the given :term:`asynchronous iterator`, or *default* if given and the iterator is :term:`exhausted`."
324+
msgstr ""
336325

337326
msgid "This is the async variant of the :func:`next` builtin, and behaves similarly."
338327
msgstr "این، نسخه ناهمگامِ تابع توکار :func:`next` است و به طور مشابه عمل می‌کند."
@@ -992,8 +981,8 @@ msgstr "رفتار ``locals()`` در comprehensionها مطابق :pep:`709` ب
992981
msgid "As part of :pep:`667`, the semantics of mutating the mapping objects returned from this function are now defined. The behavior in :term:`optimized scopes <optimized scope>` is now as described above. Aside from being defined, the behaviour in other scopes remains unchanged from previous versions."
993982
msgstr "به‌عنوان بخشی از :pep:`667`، اکنون معناشناسی تغییر دادن اشیای نگاشتی که این تابع برمی‌گرداند، تعریف شده است. رفتار این تابع در :term:`محدوده‌های بهینه‌شده <optimized scope>` اکنون همان‌گونه است که در بالا توضیح داده شد. به‌جز تعریف رسمی این رفتار، عملکرد آن در سایر محدوده‌ها نسبت به نسخه‌های پیشین تغییری نکرده است."
994983

995-
msgid "Return an iterator that applies *function* to every item of *iterable*, yielding the results. If additional *iterables* arguments are passed, *function* must take that many arguments and is applied to the items from all iterables in parallel. With multiple iterables, the iterator stops when the shortest iterable is exhausted. If *strict* is ``True`` and one of the iterables is exhausted before the others, a :exc:`ValueError` is raised. For cases where the function inputs are already arranged into argument tuples, see :func:`itertools.starmap`."
996-
msgstr "پیمایش‌گری را برمی‌گرداند که *function* را روی هر عنصر *iterable* اعمال کرده و نتایج را تولید می‌کند. اگر آرگومان‌های *iterables* اضافی ارائه شوند، *function* باید به همان تعداد آرگومان بپذیرد و به‌طور همزمان روی عناصر همه‌ی پیمایش‌پذیرها اعمال شود. در صورت وجود چند پیمایش‌پذیر، پیمایش‌گر زمانی متوقف می‌شود که کوتاه‌ترین پیمایش‌پذیر به پایان برسد. اگر *strict* برابر ``True`` باشد و یکی از پیمایش‌پذیرها زودتر از بقیه به پایان برسد، استثنای :exc:`ValueError` پرتاب می‌شود. در مواردی که ورودی‌های تابع از پیش به‌صورت تاپل‌های آرگومان مرتب شده‌اند، به :func:`itertools.starmap` مراجعه کنید."
984+
msgid "Return an iterator that applies *function* to every item of *iterable*, yielding the results. If additional *iterables* arguments are passed, *function* must take that many arguments and is applied to the items from all iterables in parallel. With multiple iterables, the iterator stops when the shortest iterable is :term:`exhausted`. If *strict* is ``True`` and one of the iterables is exhausted before the others, a :exc:`ValueError` is raised. For cases where the function inputs are already arranged into argument tuples, see :func:`itertools.starmap`."
985+
msgstr ""
997986

998987
msgid "Added the *strict* parameter."
999988
msgstr "پارامتر *strict* اضافه شد."
@@ -1028,8 +1017,8 @@ msgstr "اگر یک آرگومان جایگاهی ارائه شود، باید
10281017
msgid "If multiple items are minimal, the function returns the first one encountered. This is consistent with other sort-stability preserving tools such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, iterable, key=keyfunc)``."
10291018
msgstr "اگر چندین عنصر دارای کمترین مقدار باشند، تابع نخستین موردی را که با آن برخورد کند برمی‌گرداند. این رفتار با سایر ابزارهایی که پایداری مرتب‌سازی را حفظ می‌کنند، مانند ``sorted(iterable, key=keyfunc)[0]`` و ``heapq.nsmallest(1, iterable, key=keyfunc)``، سازگار است."
10301019

1031-
msgid "Retrieve the next item from the :term:`iterator` by calling its :meth:`~iterator.__next__` method. If *default* is given, it is returned if the iterator is exhausted, otherwise :exc:`StopIteration` is raised."
1032-
msgstr "با فراخوانی متد :meth:`~iterator.__next__`، عنصر بعدی را از :term:`پیمایش‌گر <iterator>` دریافت می‌کند. اگر *default* مشخص شده باشد، در صورت پایان یافتن پیمایش‌گر همان مقدار برگردانده می‌شود؛ در غیر این صورت، استثنای :exc:`StopIteration` پرتاب می‌شود."
1020+
msgid "Retrieve the next item from the :term:`iterator` by calling its :meth:`~iterator.__next__` method. If *default* is given, it is returned if the iterator is :term:`exhausted`, otherwise :exc:`StopIteration` is raised."
1021+
msgstr ""
10331022

10341023
msgid "This is the ultimate base class of all other classes. It has methods that are common to all instances of Python classes. When the constructor is called, it returns a new featureless object. The constructor does not accept any arguments."
10351024
msgstr "این، کلاس پایه‌ی نهایی همه‌ی کلاس‌های دیگر است. این کلاس متدهایی را در اختیار دارد که میان تمام نمونه‌های کلاس‌های پایتون مشترک هستند. هنگام فراخوانی سازنده‌ی آن، یک شیء جدید و بدون ویژگی ایجاد می‌شود. این سازنده هیچ آرگومانی را نمی‌پذیرد."
@@ -1696,8 +1685,8 @@ msgstr ":func:`zip` تنبل است؛ عناصر تا زمانی که روی پ
16961685
msgid "One thing to consider is that the iterables passed to :func:`zip` could have different lengths; sometimes by design, and sometimes because of a bug in the code that prepared these iterables. Python offers three different approaches to dealing with this issue:"
16971686
msgstr "یکی از نکاتی که باید در نظر داشت این است که پیمایش‌پذیرهای ارسال‌شده به :func:`zip` ممکن است طول‌های متفاوتی داشته باشند؛ گاهی این موضوع عمدی است و گاهی به دلیل وجود یک باگ در کدی است که این پیمایش‌پذیرها را آماده کرده است. پایتون سه روش مختلف برای برخورد با این مسئله ارائه می‌دهد:"
16981687

1699-
msgid "By default, :func:`zip` stops when the shortest iterable is exhausted. It will ignore the remaining items in the longer iterables, cutting off the result to the length of the shortest iterable::"
1700-
msgstr "به‌طور پیش‌فرض، :func:`zip` زمانی متوقف می‌شود که کوتاه‌ترین پیمایش‌پذیر به پایان برسد. در این حالت، عناصر باقی‌مانده در پیمایش‌پذیرهای بلندتر نادیده گرفته می‌شوند و طول نتیجه برابر با طول کوتاه‌ترین پیمایش‌پذیر خواهد بود::"
1688+
msgid "By default, :func:`zip` stops when the shortest iterable is :term:`exhausted`. It will ignore the remaining items in the longer iterables, cutting off the result to the length of the shortest iterable::"
1689+
msgstr ""
17011690

17021691
msgid ""
17031692
">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n"
@@ -1716,8 +1705,8 @@ msgstr ""
17161705
">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n"
17171706
"[('a', 1), ('b', 2), ('c', 3)]"
17181707

1719-
msgid "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable is exhausted before the others:"
1720-
msgstr "برخلاف رفتار پیش‌فرض، اگر یکی از پیمایش‌پذیرها پیش از بقیه به پایان برسد، استثنای :exc:`ValueError` پرتاب می‌کند:"
1708+
msgid "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable is :term:`exhausted` before the others:"
1709+
msgstr ""
17211710

17221711
msgid "Without the ``strict=True`` argument, any bug that results in iterables of different lengths will be silenced, possibly manifesting as a hard-to-find bug in another part of the program."
17231712
msgstr "بدون آرگومان ``strict=True``، هر اشکالی که باعث شود پیمایش‌پذیرها طول‌های متفاوتی داشته باشند، بی‌صدا نادیده گرفته می‌شود و ممکن است در بخش دیگری از برنامه به‌صورت یک باگ دشوار برای یافتن ظاهر شود."

0 commit comments

Comments
 (0)