From 4b5a78c9e33f0800c377011f8fe5f8455d206964 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 2 Oct 2026 05:12:37 +0000 Subject: [PATCH 01/15] chore: update translation status, PO headers, team credits, and contributor chart --- README.md | 4 ++-- STATUS.md | 14 +++++++------- TEAM.md | 1 + builtins/threadsafety.po | 1 + c-api/slice.po | 1 + library/ctypes.po | 1 + library/turtle.po | 1 + reports/contributor_stats_latest.png | Bin 49093 -> 50040 bytes using/configure.po | 1 + 9 files changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index cf508401a..a8f00e70a 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,6 @@ ### مشارکت‌های کاربران -![نمودار مشارکت‌های کاربران؛ sepehr-rs 38277، Revisto 3984، danialbehzadi 677، invincible627 358، khosro_o 63، ParhamF 41، Ariyan_Bolandi 37، nikovinix7878 13، thaghgoo 12، Ramiz_222 10](reports/contributor_stats_latest.png) -(به‌روزرسانی: 2026-09-24) +![نمودار مشارکت‌های کاربران؛ sepehr-rs 38277، Revisto 3984، danialbehzadi 677، invincible627 358، khosro_o 63، ParhamF 41، Ariyan_Bolandi 37، mahdyaralipor 24، nikovinix7878 13، thaghgoo 12](reports/contributor_stats_latest.png) +(به‌روزرسانی: 2026-10-02) diff --git a/STATUS.md b/STATUS.md index 785d933c2..a12694bc2 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,6 +1,6 @@ ### وضعیت ترجمه فایل‌ها -(به‌روزرسانی: 2026-10-01) +(به‌روزرسانی: 2026-10-02) | فایل | ترجمه‌شده | مبهم | تعداد ترجمه‌شده | تعداد ترجمه‌نشده | |:-----|:-----------:|:-----------:|:-----------:|:-----------:| @@ -11,6 +11,7 @@ | builtins/functions.po | 100.0% | 0.0% | 522 | 0 | | builtins/index.po | 100.0% | 0.0% | 5 | 0 | | builtins/stdtypes.po | 100.0% | 0.0% | 1583 | 0 | +| builtins/threadsafety.po | 100.0% | 0.0% | 118 | 0 | | builtins/time-complexity.po | 100.0% | 0.0% | 120 | 0 | | c-api/abstract.po | 100.0% | 0.0% | 3 | 0 | | c-api/allocation.po | 100.0% | 0.0% | 40 | 0 | @@ -72,6 +73,7 @@ | c-api/reflection.po | 100.0% | 0.0% | 17 | 0 | | c-api/sequence.po | 100.0% | 0.0% | 32 | 0 | | c-api/set.po | 100.0% | 0.0% | 35 | 0 | +| c-api/slice.po | 100.0% | 0.0% | 26 | 0 | | c-api/stable.po | 100.0% | 0.0% | 45 | 0 | | c-api/structures.po | 100.0% | 0.0% | 206 | 0 | | c-api/subinterpreters.po | 100.0% | 0.0% | 87 | 0 | @@ -224,6 +226,7 @@ | library/crypt.po | 100.0% | 0.0% | 4 | 0 | | library/crypto.po | 100.0% | 0.0% | 3 | 0 | | library/csv.po | 100.0% | 0.0% | 133 | 0 | +| library/ctypes.po | 100.0% | 0.0% | 678 | 0 | | library/curses.ascii.po | 100.0% | 0.0% | 69 | 0 | | library/curses.panel.po | 100.0% | 0.0% | 25 | 0 | | library/curses.po | 100.0% | 0.0% | 510 | 0 | @@ -431,6 +434,7 @@ | library/traceback.po | 100.0% | 0.0% | 118 | 0 | | library/tracemalloc.po | 100.0% | 0.0% | 156 | 0 | | library/tty.po | 100.0% | 0.0% | 17 | 0 | +| library/turtle.po | 100.0% | 0.0% | 586 | 0 | | library/types.po | 100.0% | 0.0% | 105 | 0 | | library/typing.po | 100.0% | 0.0% | 833 | 0 | | library/unicodedata.po | 100.0% | 0.0% | 43 | 0 | @@ -503,6 +507,7 @@ | tutorial/whatnow.po | 100.0% | 0.0% | 18 | 0 | | using/android.po | 100.0% | 0.0% | 27 | 0 | | using/cmdline.po | 100.0% | 0.0% | 270 | 0 | +| using/configure.po | 100.0% | 0.0% | 468 | 0 | | using/editors.po | 100.0% | 0.0% | 6 | 0 | | using/index.po | 100.0% | 0.0% | 2 | 0 | | using/ios.po | 100.0% | 0.0% | 91 | 0 | @@ -534,14 +539,9 @@ | whatsnew/3.9.po | 100.0% | 0.0% | 380 | 0 | | whatsnew/changelog.po | 100.0% | 0.0% | 1 | 0 | | whatsnew/index.po | 100.0% | 0.0% | 3 | 0 | -| library/ctypes.po | 99.9% | 0.0% | 677 | 1 | | library/asyncio-eventloop.po | 99.8% | 0.0% | 426 | 1 | -| using/configure.po | 99.6% | 0.0% | 466 | 2 | | library/ssl.po | 99.3% | 0.0% | 546 | 4 | | library/asyncio-stream.po | 99.1% | 0.0% | 105 | 1 | -| builtins/threadsafety.po | 96.6% | 3.4% | 114 | 0 | -| library/turtle.po | 95.9% | 3.8% | 562 | 2 | -| c-api/slice.po | 92.3% | 3.8% | 24 | 1 | | sphinx.po | 13.3% | 0.0% | 129 | 841 | -| **مجموع** | **98.8%** | **0.0%** | **70410** | **853** | +| **مجموع** | **98.8%** | **0.0%** | **70443** | **847** | diff --git a/TEAM.md b/TEAM.md index f2ebdd144..2440127d1 100644 --- a/TEAM.md +++ b/TEAM.md @@ -16,3 +16,4 @@ | pangominn | translator | 2 | | mdflx | reviewer | 1 | | ashykng | translator | 1 | +| mahdyaralipor | translator | 24 | diff --git a/builtins/threadsafety.po b/builtins/threadsafety.po index 6a2fa77e7..aa5c97df0 100644 --- a/builtins/threadsafety.po +++ b/builtins/threadsafety.po @@ -5,6 +5,7 @@ # # Translators: # Sepehr Rasouli , 2026 +# mahdyaralipor , 2026 # msgid "" msgstr "" diff --git a/c-api/slice.po b/c-api/slice.po index a863a6175..98112397a 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -6,6 +6,7 @@ # Translators: # Revisto , 2025 # Sepehr Rasouli , 2026 +# mahdyaralipor , 2026 # msgid "" msgstr "" diff --git a/library/ctypes.po b/library/ctypes.po index 7b4760eef..dadddfce4 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -8,6 +8,7 @@ # Alireza Shabani (Revisto) , 2025 # Rafael Fontenelle , 2025 # Sepehr Rasouli , 2026 +# mahdyaralipor , 2026 # msgid "" msgstr "" diff --git a/library/turtle.po b/library/turtle.po index c6096efdf..8b9f51bab 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -8,6 +8,7 @@ # Danial Behzadi , 2025 # Rafael Fontenelle , 2025 # Sepehr Rasouli , 2026 +# mahdyaralipor , 2026 # msgid "" msgstr "" diff --git a/reports/contributor_stats_latest.png b/reports/contributor_stats_latest.png index 51b0606b067b48e69da604e330be61092b045fad..4a97cef7371b07b02b2c1e83476ba0492b1e39a2 100644 GIT binary patch literal 50040 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 literal 49093 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, 2025 # Sepehr Rasouli , 2026 +# mahdyaralipor , 2026 # msgid "" msgstr "" From 5264c4b859cb49eef75d7f6f8a782486ed637b01 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 4 Oct 2026 05:29:06 +0000 Subject: [PATCH 02/15] chore: sync msgids with CPython 3.14 --- c-api/exceptions.po | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 75ec79b99..ea3594fe2 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-04 05:27+0000\n" "PO-Revision-Date: 2026-09-15 13:22+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -540,6 +540,9 @@ msgstr "نقطه‌ای را نشان‌گذاری می‌کند که در آن msgid "The function then checks if the stack limit is reached. If this is the case, a :exc:`RecursionError` is set and a nonzero value is returned. Otherwise, zero is returned." msgstr "سپس تابع بررسی می‌کند که آیا به حد پشته رسیده است یا خیر. اگر چنین باشد، یک :exc:`RecursionError` تنظیم می‌شود و مقدار غیرصفر بازگردانده می‌شود. در غیر این صورت، صفر بازگردانده می‌شود." +msgid "The check is based on the remaining C stack space of the current thread, not on a count of calls, so it is unaffected by :c:func:`Py_SetRecursionLimit` and :func:`sys.setrecursionlimit`." +msgstr "" + msgid "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` to be concatenated to the :exc:`RecursionError` message caused by the recursion depth limit." msgstr "*where* باید یک رشته‌ی کدگذاری‌شده با UTF-8 مانند ``\" in instance check\"`` باشد تا به پیام :exc:`RecursionError` که ناشی از محدودیت عمق بازگشت است، الحاق شود." @@ -549,6 +552,9 @@ msgstr "تابع :c:func:`PyUnstable_ThreadState_SetStackProtection`." msgid "This function is now also available in the :ref:`limited API `." msgstr "این تابع اکنون در :ref:`API محدود ` نیز در دسترس است." +msgid "The check is based on the remaining C stack space. Previously, a separate counter of C-level calls was used." +msgstr "" + msgid "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each *successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "یک :c:func:`Py_EnterRecursiveCall` را پایان می‌دهد. باید یک‌بار برای هر فراخوانی *موفق* :c:func:`Py_EnterRecursiveCall` فراخوانی شود." From b192f6b139fafa25b06823f242443a4e2adc8ab0 Mon Sep 17 00:00:00 2001 From: invincible627 Date: Sun, 4 Oct 2026 09:39:24 +0330 Subject: [PATCH 03/15] Partial translation of sphinx.po (#84) --- sphinx.po | 1321 ++++++++++++++++++++++++++++------------------------- 1 file changed, 706 insertions(+), 615 deletions(-) diff --git a/sphinx.po b/sphinx.po index 3203471ba..cacc2834a 100644 --- a/sphinx.po +++ b/sphinx.po @@ -15,7 +15,7 @@ msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-09-19 20:08+0330\n" -"PO-Revision-Date: 2026-09-21 15:41+0330\n" +"PO-Revision-Date: 2026-09-29 18:57+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" "Language: fa\n" @@ -23,7 +23,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.6\n" +"X-Generator: Poedit 3.9\n" msgid "Stable" msgstr "پایدار" @@ -144,7 +144,7 @@ msgid "Stable ABI" msgstr "ABI پایدار" msgid "(as an opaque struct)" -msgstr "(به‌عنوان یک ساختار مبهم)" +msgstr "(به‌عنوان یک ساختار کدر)" msgid "(including all members)" msgstr "شامل تمام اعضا" @@ -168,13 +168,13 @@ msgid "Return value: Always NULL." msgstr "مقدار بازگشتی: همیشه NULL." msgid "Return value: New reference." -msgstr "مقدار بازگشتی: مرجع جدید." +msgstr "مقدار بازگشتی: ارجاع جدید." msgid "Return value: Borrowed reference." -msgstr "مقدار بازگشتی: مرجع امانتی." +msgstr "مقدار بازگشتی: ارجاع امانتی." msgid "CPython implementation detail:" -msgstr "جزئیات پیاده‌سازی در CPython:" +msgstr "جزئیات پیاده‌سازی در سی‌پایتون:" msgid "Deprecated since version %s, will be removed in version %s" msgstr "منسوخ شده از نسخه‌ی %s, در نسخه‌ی %s حذف خواهد شد" @@ -261,10 +261,10 @@ msgid "For C/C++ programmers" msgstr "برای برنامه‌نویسان C/C++" msgid "Python's C API" -msgstr "رابط برنامه‌نویسی C پایتون" +msgstr "API C پایتون" msgid "C API reference" -msgstr "مرجع رابط برنامه‌نویسی C" +msgstr "مرجع API C" msgid "FAQs" msgstr "سوالات متداول" @@ -285,7 +285,7 @@ msgid "Python developer's guide" msgstr "راهنمای توسعه‌دهندگان پایتون" msgid "Information on contributing to Python" -msgstr "" +msgstr "اطلاعاتی درباره‌ی مشارکت در پایتون" msgid "Python Packaging User Guide" msgstr "راهنمای کاربر بسته‌بندی پایتون" @@ -297,13 +297,13 @@ msgid "Audio/visual talks" msgstr "گفتارهای صوتی/تصویری" msgid "Podcasts, talks, and video presentations from the community" -msgstr "" +msgstr "پادکست‌ها، گفتارها و ارائه‌های تصویری از سوی کامیونیتی" msgid "Python Enhancement Proposals" -msgstr "" +msgstr "پیشنهادهای بهبود پایتون" msgid "Index of proposed improvements to Python" -msgstr "" +msgstr "اندیس بهبودهای پیشنهادی پایتون" msgid "Static Typing with Python" msgstr "تایپ‌گذاری ایستا (Static Typing) در پایتون" @@ -393,165 +393,165 @@ msgstr "نسخه‌ی پایدار فعلی" #, python-format msgid "The %s extension is required by needs_extensions settings, but it is not loaded." -msgstr "" +msgstr "افزونه‌ی %s توسط تنظیمات needs_extensions لازم است، اما بارگذاری نشده است." #, python-format msgid "This project needs the extension %s at least in version %s and therefore cannot be built with the loaded version (%s)." -msgstr "" +msgstr "این پروژه به افزونه‌ی %s حداقل در نسخه‌ی %s نیاز دارد و بنابراین نمی‌تواند با نسخه‌ی بارگذاری‌شده‌ی (%s) ساخته شود." #, python-format msgid "Cannot find source directory (%s)" -msgstr "" +msgstr "نمی‌توان پوشه‌ی مبدأ (%s) را پیدا کرد." #, python-format msgid "Output directory (%s) is not a directory" -msgstr "" +msgstr "پوشه‌ی خروجی (%s) یک پوشه نیست" msgid "Source directory and destination directory cannot be identical" -msgstr "" +msgstr "پوشه‌ی مبدأ و پوشه‌ی مقصد نمی‌توانند یکسان باشند" #, python-format msgid "Running Sphinx v%s" -msgstr "" +msgstr "در حال اجرای Sphinx v%s" #, python-format msgid "This project needs at least Sphinx v%s and therefore cannot be built with this version." -msgstr "" +msgstr "این پروژه حداقل به Sphinx v%s نیاز دارد و بنابراین نمی‌تواند با این نسخه ساخته شود." msgid "making output directory" -msgstr "" +msgstr "در حال ایجاد پوشه‌ی خروجی" #, python-format msgid "while setting up extension %s:" -msgstr "" +msgstr "هنگام راه‌اندازی افزونه‌ی %s:" msgid "'setup' as currently defined in conf.py isn't a Python callable. Please modify its definition to make it a callable function. This is needed for conf.py to behave as a Sphinx extension." -msgstr "" +msgstr "'setup' آن‌گونه که اکنون در conf.py تعریف شده، یک فراخوانی‌پذیر پایتون نیست. لطفاً تعریف آن را طوری تغییر دهید که یک تابع فراخوانی‌پذیر شود. این کار لازم است تا conf.py بتواند به‌عنوان یک افزونه‌ی Sphinx رفتار کند." #, python-format msgid "loading translations [%s]... " -msgstr "" +msgstr "در حال بارگذاری ترجمه‌های [%s]... " msgid "done" -msgstr "" +msgstr "انجام شد" msgid "not available for built-in messages" -msgstr "" +msgstr "برای پیام‌های توکار در دسترس نیست" msgid "loading pickled environment" -msgstr "" +msgstr "در حال بارگذاری محیط پیکل‌شده" #, python-format msgid "failed: %s" -msgstr "" +msgstr "شکست: %s" msgid "No builder selected, using default: html" -msgstr "" +msgstr "سازنده‌ای انتخاب نشده است، استفاده از پیش‌فرض: html" msgid "build finished with problems." -msgstr "" +msgstr "ساخت با مشکلات به پایان رسید." msgid "build succeeded." -msgstr "" +msgstr "ساخت با موفقیت انجام شد." msgid "build finished with problems, 1 warning (with warnings treated as errors)." -msgstr "" +msgstr "ساخت با مشکلات به پایان رسید، ۱ هشدار (با در نظر گرفتن هشدارها به‌عنوان خطا)." msgid "build finished with problems, 1 warning." -msgstr "" +msgstr "ساخت با مشکلات به پایان رسید، ۱ هشدار." msgid "build succeeded, 1 warning." -msgstr "" +msgstr "ساخت با موفقیت انجام شد، ۱ هشدار." #, python-format msgid "build finished with problems, %s warnings (with warnings treated as errors)." -msgstr "" +msgstr "ساخت با مشکلات به پایان رسید، %s هشدار (با در نظر گرفتن هشدارها به‌عنوان خطا)." #, python-format msgid "build finished with problems, %s warnings." -msgstr "" +msgstr "ساخت با مشکلات به پایان رسید، %s هشدار." #, python-format msgid "build succeeded, %s warnings." -msgstr "" +msgstr "ساخت با موفقیت انجام شد، %s هشدار." #, python-format msgid "node class %r is already registered, its visitors will be overridden" -msgstr "" +msgstr "کلاس گره‌ی %r از قبل ثبت شده است؛ بازدیدکنندگان آن بازنویسی خواهند شد" #, python-format msgid "directive %r is already registered and will not be overridden" -msgstr "" +msgstr "دایرکتیو %r از قبل ثبت شده است و بازنویسی نخواهد شد" #, python-format msgid "role %r is already registered and will not be overridden" -msgstr "" +msgstr "نقش %r از قبل ثبت شده است و بازنویسی نخواهد شد" #, python-format msgid "the %s extension does not declare if it is safe for parallel reading, assuming it isn't - please ask the extension author to check and make it explicit" -msgstr "" +msgstr "افزونه‌ی %s اعلام نمی‌کند که آیا برای خواندن موازی ایمن است یا نه؛ فرض بر این است که ایمن نیست — لطفاً از نویسنده‌ی افزونه بخواهید آن را بررسی و صریح کند" #, python-format msgid "the %s extension is not safe for parallel reading" -msgstr "" +msgstr "افزونه‌ی %s برای خواندن موازی ایمن نیست" #, python-format msgid "the %s extension does not declare if it is safe for parallel writing, assuming it isn't - please ask the extension author to check and make it explicit" -msgstr "" +msgstr "افزونه‌ی %s اعلام نمی‌کند که آیا برای نوشتن موازی ایمن است یا نه؛ فرض بر این است که ایمن نیست — لطفاً از نویسنده‌ی افزونه بخواهید آن را بررسی و صریحاً اعلام کند" #, python-format msgid "the %s extension is not safe for parallel writing" -msgstr "" +msgstr "افزونه‌ی %s برای نوشتن موازی ایمن نیست" #, python-format msgid "doing serial %s" -msgstr "" +msgstr "در حال انجام سریال %s" #, python-format msgid "config directory doesn't contain a conf.py file (%s)" -msgstr "" +msgstr "پوشه‌ی پیکربندی (%s) شامل یک فایل conf.py نمی‌شود" msgid "Invalid configuration value found: 'language = None'. Update your configuration to a valid language code. Falling back to 'en' (English)." -msgstr "" +msgstr "مقدار پیکربندی نامعتبر یافت شد: 'language = None'. پیکربندی خود را به یک کد زبان معتبر به‌روزرسانی کنید. بازگشت به 'en' (English)." #, python-format msgid "'%s' must be '0' or '1', got '%s'" -msgstr "" +msgstr "'%s' باید '0' یا '1' باشد، '%s' دریافت شد" #, python-format msgid "cannot override dictionary config setting %r, ignoring (use %r to set individual elements)" -msgstr "" +msgstr "نمی‌توان تنظیم پیکربندی دیکشنری %r را بازنویسی کرد، نادیده گرفته می‌شود (برای تنظیم عناصر مجزا از %r استفاده کنید)" #, python-format msgid "invalid number %r for config value %r, ignoring" -msgstr "" +msgstr "عدد نامعتبر %r برای مقدار پیکربندی %r، نادیده گرفته می‌شود" #, python-format msgid "cannot override config setting %r with unsupported type, ignoring" -msgstr "" +msgstr "نمی‌توان تنظیم پیکربندی %r را با نوع پشتیبانی‌نشده بازنویسی کرد، نادیده گرفته می‌شود" #, python-format msgid "unknown config value %r in override, ignoring" -msgstr "" +msgstr "مقدار پیکربندی ناشناخته %r در بازنویسی، نادیده گرفته می‌شود" #, python-format msgid "No such config value: %r" -msgstr "" +msgstr "چنین مقدار پیکربندی وجود ندارد: %r" #, python-format msgid "Config value %r already present" -msgstr "" +msgstr "مقدار پیکربندی %r از قبل موجود است" #, python-format msgid "cannot cache unpickleable configuration value: %r (because it contains a function, class, or module object)" -msgstr "" +msgstr "نمی‌توان مقدار پیکربندی پیکل‌ناپذیر را نهان کرد: %r (چون شامل یک تابع، کلاس یا شیء ماژول است)" #, python-format msgid "There is a syntax error in your configuration file: %s\n" -msgstr "" +msgstr "یک خطای سینتکس در پرونده‌ی پیکربندی شما وجود دارد: %s\n" msgid "The configuration file (or one of the modules it imports) called sys.exit()" -msgstr "" +msgstr "پرونده‌ی پیکربندی (یا یکی از ماژول‌هایی که ایمپورت می‌کند) sys.exit() را فراخوانی کرد" #, python-format msgid "" @@ -559,18 +559,21 @@ msgid "" "\n" "%s" msgstr "" +"یک خطای برنامه‌ای در پرونده‌ی پیکربندی شما وجود دارد:\n" +"\n" +"%s" #, python-format msgid "Failed to convert %r to a frozenset" -msgstr "" +msgstr "تبدیل %r به frozenset ناموفق بود" #, python-format msgid "Converting `source_suffix = %r` to `source_suffix = %r`." -msgstr "" +msgstr "در حال تبدیل `source_suffix = %r` به `source_suffix = %r`." #, python-format msgid "The config value `source_suffix' expects a dictionary, a string, or a list of strings. Got `%r' instead (type %s)." -msgstr "" +msgstr "مقدار پیکربندی `source_suffix' انتظار می‌رود یک دیکشنری، یک رشته، یا لیستی از رشته‌ها باشد. به‌جای آن `%r' دریافت شد (نوع %s)." #, python-format msgid "Section %s" @@ -578,369 +581,371 @@ msgstr "بخش %s" #, python-format msgid "Fig. %s" -msgstr "" +msgstr "شکل %s" #, python-format msgid "Table %s" -msgstr "" +msgstr "جدول %s" #, python-format msgid "Listing %s" -msgstr "" +msgstr "فهرست %s" #, python-brace-format msgid "The config value `{name}` has to be a one of {candidates}, but `{current}` is given." -msgstr "" +msgstr "مقدار پیکربندی `{name}` باید یکی از {candidates} باشد، اما `{current}` داده شده است." #, python-brace-format msgid "The config value `{name}' has type `{current.__name__}'; expected {permitted}." -msgstr "" +msgstr "مقدار پیکربندی `{name}' از نوع `{current.__name__}' است؛ {permitted} انتظار می‌رفت." #, python-brace-format msgid "The config value `{name}' has type `{current.__name__}', defaults to `{default.__name__}'." -msgstr "" +msgstr "مقدار پیکربندی `{name}' از نوع `{current.__name__}' است، به‌طور پیش‌فرض `{default.__name__}' است." #, python-format msgid "primary_domain %r not found, ignored." -msgstr "" +msgstr "primary_domain %r یافت نشد، نادیده گرفته شد." msgid "Sphinx now uses \"index\" as the master document by default. To keep pre-2.0 behaviour, set \"master_doc = 'contents'\"." -msgstr "" +msgstr "Sphinx اکنون به‌طور پیش‌فرض از \"index\" به‌عنوان سند اصلی استفاده می‌کند. برای حفظ رفتار پیش از ۲.۰، \"master_doc = 'contents'\" را تنظیم کنید." #, python-format msgid "Pygments lexer name %r is not known" -msgstr "" +msgstr "نام لکسر Pygments %r ناشناخته است" #, python-format msgid "Lexing literal_block %r as \"%s\" resulted in an error at token: %r. Retrying in relaxed mode." -msgstr "" +msgstr "لکسر کردن literal_block %r به‌عنوان \"%s\" منجر به خطا در توکن: %r شد. تلاش مجدد در حالت آسوده." #, python-format msgid "Theme configuration sections other than [theme] and [options] are not supported (tried to get a value from %r)." -msgstr "" +msgstr "بخش‌های پیکربندی تم غیر از [theme] و [options] پشتیبانی نمی‌شوند (تلاش شد مقداری از %r دریافت شود)." #, python-format msgid "setting %s.%s occurs in none of the searched theme configs" -msgstr "" +msgstr "تنظیم %s.%s در هیچ‌کدام از پیکربندی‌های تم جست‌وجوشده وجود ندارد" #, python-format msgid "unsupported theme option %r given" -msgstr "" +msgstr "گزینه‌ی تم پشتیبانی‌نشده %r داده شد" #, python-format msgid "file %r on theme path is not a valid zipfile or contains no theme" -msgstr "" +msgstr "پرونده‌ی %r در مسیر تم یک zipfile معتبر نیست یا شامل تم نیست" #, python-format msgid "no theme named %r found (missing theme.toml?)" -msgstr "" +msgstr "هیچ تمی با نام %r یافت نشد (theme.toml گم شده است؟)" #, python-format msgid "The %r theme has circular inheritance" -msgstr "" +msgstr "تم %r ارث‌بری حلقه‌ای دارد" #, python-format msgid "The %r theme inherits from %r, which is not a loaded theme. Loaded themes are: %s" -msgstr "" +msgstr "تم %r از %r ارث می‌برد، که یک تم بارگذاری‌شده نیست. تم‌های بارگذاری‌شده عبارت‌اند از: %s" #, python-format msgid "The %r theme has too many ancestors" -msgstr "" +msgstr "تم %r نیاکان زیادی دارد" #, python-format msgid "no theme configuration file found in %r" -msgstr "" +msgstr "هیچ پرونده‌ی پیکربندی تمی در %r پیدا نشد" #, python-format msgid "theme %r doesn't have the \"theme\" table" -msgstr "" +msgstr "تم %r جدول \"theme\" را ندارد" #, python-format msgid "The %r theme \"[theme]\" table is not a table" -msgstr "" +msgstr "جدول \"[theme]\" تم %r یک جدول نیست" #, python-format msgid "The %r theme must define the \"theme.inherit\" setting" -msgstr "" +msgstr "تم %r باید تنظیم \"theme.inherit\" را تعریف کند" #, python-format msgid "The %r theme \"[options]\" table is not a table" -msgstr "" +msgstr "جدول \"[options]\" تم %r یک جدول نیست" #, python-format msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\"" -msgstr "" +msgstr "تنظیم \"theme.pygments_style\" باید یک جدول باشد. راهنما: \"%s\"" #, python-format msgid "Event %r already present" -msgstr "" +msgstr "رویداد %r از قبل موجود است" #, python-format msgid "Unknown event name: %s" -msgstr "" +msgstr "نام رویداد ناشناخته: %s" #, python-format msgid "Handler %r for event %r threw an exception" -msgstr "" +msgstr "هندلر %r برای رویداد %r یک استثنا پرتاب کرد" #, python-format msgid "" "multiple files found for the document \"%s\": %s\n" "Use %r for the build." msgstr "" +"چندین پرونده برای سند \"%s\" یافت شد: %s\n" +"برای ساخت از %r استفاده کنید." #, python-format msgid "Ignored unreadable document %r." -msgstr "" +msgstr "سند ناخوانای %r نادیده گرفته شد." #, python-format msgid "Builder class %s has no \"name\" attribute" -msgstr "" +msgstr "کلاس سازنده‌ی %s ویژگی \"name\" را ندارد" #, python-format msgid "Builder %r already exists (in module %s)" -msgstr "" +msgstr "سازنده‌ی %r از قبل وجود دارد (در ماژول %s)" #, python-format msgid "Builder name %s not registered or available through entry point" -msgstr "" +msgstr "نام سازنده‌ی %s ثبت نشده است یا از طریق نقطه‌ی ورود در دسترس نیست" #, python-format msgid "Builder name %s not registered" -msgstr "" +msgstr "نام سازنده‌ی %s ثبت نشده است" #, python-format msgid "domain %s already registered" -msgstr "" +msgstr "دامنه‌ی %s از قبل ثبت شده است" #, python-format msgid "domain %s not yet registered" -msgstr "" +msgstr "دامنه‌ی %s هنوز ثبت نشده است" #, python-format msgid "The %r directive is already registered to domain %s" -msgstr "" +msgstr "دایرکتیو %r از قبل در دامنه‌ی %s ثبت شده است" #, python-format msgid "The %r role is already registered to domain %s" -msgstr "" +msgstr "نقش %r از قبل در دامنه‌ی %s ثبت شده است" #, python-format msgid "The %r index is already registered to domain %s" -msgstr "" +msgstr "اندیس %r از قبل در دامنه‌ی %s ثبت شده است" #, python-format msgid "The %r object_type is already registered" -msgstr "" +msgstr "نوع شیء %r از قبل ثبت شده است" #, python-format msgid "The %r crossref_type is already registered" -msgstr "" +msgstr "نوع ارجاع متقابل %r از قبل ثبت شده است" #, python-format msgid "source_suffix %r is already registered" -msgstr "" +msgstr "source_suffix %r از قبل ثبت شده است" #, python-format msgid "source_parser for %r is already registered" -msgstr "" +msgstr "source_parser برای %r از قبل ثبت شده است" #, python-format msgid "Source parser for %s not registered" -msgstr "" +msgstr "تجزیه‌گر مبدأ برای %s ثبت نشده است" #, python-format msgid "Translator for %r already exists" -msgstr "" +msgstr "مترجم برای %r از قبل وجود دارد" #, python-format msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r" -msgstr "" +msgstr "آرگومان‌های کلیدواژه‌ای برای add_node() باید یک تاپل تابعی (visit, depart) باشند: %r=%r" #, python-format msgid "enumerable_node %r already registered" -msgstr "" +msgstr "enumerable_node %r از قبل ثبت شده است" #, python-format msgid "math renderer %s is already registered" -msgstr "" +msgstr "رندرکننده‌ی ریاضی %s از قبل ثبت شده است" #, python-format msgid "the extension %r was already merged with Sphinx since version %s; this extension is ignored." -msgstr "" +msgstr "افزونه‌ی %r از نسخه‌ی %s از قبل با Sphinx ادغام شده است؛ این افزونه نادیده گرفته می‌شود." msgid "Original exception:\n" -msgstr "" +msgstr "استثنای اصلی:\n" #, python-format msgid "Could not import extension %s" -msgstr "" +msgstr "نمی‌توان افزونه‌ی %s را ایمپورت کرد" #, python-format msgid "extension %r has no setup() function; is it really a Sphinx extension module?" -msgstr "" +msgstr "افزونه‌ی %r تابع setup() ندارد؛ آیا واقعاً یک ماژول افزونه‌ی Sphinx است؟" #, python-format msgid "The %s extension used by this project needs at least Sphinx v%s; it therefore cannot be built with this version." -msgstr "" +msgstr "افزونه‌ی %s که این پروژه استفاده می‌کند حداقل به Sphinx v%s نیاز دارد؛ بنابراین نمی‌تواند با این نسخه ساخته شود." #, python-format msgid "extension %r returned an unsupported object from its setup() function; it should return None or a metadata dictionary" -msgstr "" +msgstr "افزونه‌ی %r یک شیء پشتیبانی‌نشده از تابع setup() خود برگرداند؛ باید None یا یک دیکشنری فراداده برگرداند" #, python-format msgid "`None` is not a valid filetype for %r." -msgstr "" +msgstr "`None` یک نوع پرونده‌ی معتبر برای %r نیست." #, python-format msgid "Common Vulnerabilities and Exposures; CVE %s" -msgstr "" +msgstr "آسیب‌پذیری‌ها و مواجهه‌های رایج؛ CVE %s" #, python-format msgid "invalid CVE number %s" -msgstr "" +msgstr "شماره‌ی CVE نامعتبر %s" #, python-format msgid "Common Weakness Enumeration; CWE %s" -msgstr "" +msgstr "شمارش ضعف‌های رایج؛ CWE %s" #, python-format msgid "invalid CWE number %s" -msgstr "" +msgstr "شماره‌ی CWE نامعتبر %s" #, python-format msgid "Python Enhancement Proposals; PEP %s" -msgstr "" +msgstr "پیشنهادهای بهبود پایتون؛ PEP %s" #, python-format msgid "invalid PEP number %s" -msgstr "" +msgstr "شماره‌ی PEP نامعتبر %s" #, python-format msgid "invalid RFC number %s" -msgstr "" +msgstr "شماره‌ی RFC نامعتبر %s" msgid "[source]" msgstr "[source]" msgid "highlighting module code... " -msgstr "" +msgstr "در حال برجسته‌سازی کد ماژول... " msgid "[docs]" -msgstr "" +msgstr "[docs]" msgid "Module code" -msgstr "" +msgstr "کد ماژول" #, python-format msgid "

Source code for %s

" -msgstr "" +msgstr "

کد منبع برای %s

" msgid "Overview: module code" -msgstr "" +msgstr "نمای کلی: کد ماژول" msgid "

All modules for which code is available

" -msgstr "" +msgstr "

همه‌ی ماژول‌هایی که کد برای آن‌ها در دسترس است

" #, python-format msgid "hardcoded link %r could be replaced by an extlink (try using %r instead)" -msgstr "" +msgstr "پیوند سخت‌کد‌شده‌ی %r می‌تواند با یک extlink جایگزین شود (به‌جای آن از %r استفاده کنید)" #, python-format msgid "section \"%s\" gets labeled as \"%s\"" -msgstr "" +msgstr "بخش \"%s\" به‌عنوان \"%s\" برچسب می‌خورد" #, python-format msgid "duplicate label %s, other instance in %s" -msgstr "" +msgstr "برچسب تکراری %s، نمونه‌ی دیگر در %s" msgid "Link to this equation" -msgstr "" +msgstr "پیوند به این معادله" msgid "====================== slowest reading durations =======================" -msgstr "" +msgstr "====================== کندترین مدت‌های خواندن =======================" #, python-format msgid "missing '+' or '-' in '%s' option." -msgstr "" +msgstr "علامت '+' یا '-' در گزینه‌ی '%s' گم شده است." #, python-format msgid "'%s' is not a valid option." -msgstr "" +msgstr "'%s' یک گزینه‌ی معتبر نیست." #, python-format msgid "'%s' is not a valid pyversion option" -msgstr "" +msgstr "'%s' یک گزینه‌ی معتبر pyversion نیست" msgid "invalid TestCode type" -msgstr "" +msgstr "نوع TestCode نامعتبر" #, python-format msgid "Testing of doctests in the sources finished, look at the results in %(outdir)s/output.txt." -msgstr "" +msgstr "آزمون doctestها در منابع به پایان رسید، نتایج را در %(outdir)s/output.txt ببینید." #, python-format msgid "no code/output in %s block at %s:%s" -msgstr "" +msgstr "هیچ کد/خروجی‌ای در بلوک %s در %s:%s وجود ندارد" #, python-format msgid "ignoring invalid doctest code: %r" -msgstr "" +msgstr "نادیده گرفتن کد doctest نامعتبر: %r" #, python-format msgid "LaTeX command %r cannot be run (needed for math display), check the imgmath_latex setting" -msgstr "" +msgstr "دستور LaTeX %r نمی‌تواند اجرا شود (لازم برای نمایش ریاضی)، تنظیم imgmath_latex را بررسی کنید" #, python-format msgid "%s command %r cannot be run (needed for math display), check the imgmath_%s setting" -msgstr "" +msgstr "دستور %s %r نمی‌تواند اجرا شود (لازم برای نمایش ریاضی)، تنظیم imgmath_%s را بررسی کنید" #, python-format msgid "display latex %r: %s" -msgstr "" +msgstr "نمایش latex %r: %s" #, python-format msgid "inline latex %r: %s" -msgstr "" +msgstr "latex درون‌خطی %r: %s" #, python-format msgid "invalid regex %r in %s" -msgstr "" +msgstr "regex نامعتبر %r در %s" #, python-format msgid "module %s could not be imported: %s" -msgstr "" +msgstr "ماژول %s نمی‌تواند ایمپورت شود: %s" #, python-format msgid "the following modules are documented but were not specified in coverage_modules: %s" -msgstr "" +msgstr "ماژول‌های زیر مستند شده‌اند اما در coverage_modules مشخص نشده‌اند: %s" msgid "the following modules are specified in coverage_modules but were not documented" -msgstr "" +msgstr "ماژول‌های زیر در coverage_modules مشخص شده‌اند اما مستند نشده‌اند" #, python-format, python-brace-format msgid "Testing of coverage in the sources finished, look at the results in %(outdir)s{sep}python.txt." -msgstr "" +msgstr "آزمون پوشش در منابع به پایان رسید، نتایج را در %(outdir)s{sep}python.txt ببینید." #, python-format msgid "invalid regex %r in coverage_c_regexes" -msgstr "" +msgstr "regex نامعتبر %r در coverage_c_regexes" #, python-format msgid "undocumented c api: %s [%s] in file %s" -msgstr "" +msgstr "c api مستند‌نشده: %s [%s] در پرونده‌ی %s" #, python-format msgid "undocumented python function: %s :: %s" -msgstr "" +msgstr "تابع پایتون مستند‌نشده: %s :: %s" #, python-format msgid "undocumented python class: %s :: %s" -msgstr "" +msgstr "کلاس پایتون مستند‌نشده: %s :: %s" #, python-format msgid "undocumented python method: %s :: %s :: %s" -msgstr "" +msgstr "متد پایتون مستند‌نشده: %s :: %s :: %s" #, python-format msgid "" @@ -948,6 +953,9 @@ msgid "" "\n" "Traceback: %s" msgstr "" +"نمی‌توان دستور تبدیل تصویر %r را اجرا کرد. 'sphinx.ext.imgconverter' به‌طور پیش‌فرض به ImageMagick نیاز دارد. مطمئن شوید نصب شده است، یا گزینه‌ی 'image_converter' را روی یک دستور تبدیل سفارشی تنظیم کنید.\n" +"\n" +"ردگیری: %s" #, python-format msgid "" @@ -957,28 +965,33 @@ msgid "" "[stdout]\n" "%r" msgstr "" +"دستور convert با خطا خارج شد:\n" +"[stderr]\n" +"%r\n" +"[stdout]\n" +"%r" #, python-format msgid "convert command %r cannot be run, check the image_converter setting" -msgstr "" +msgstr "دستور convert %r نمی‌تواند اجرا شود، تنظیم image_converter را بررسی کنید" msgid "Graphviz directive cannot have both content and a filename argument" -msgstr "" +msgstr "دایرکتیو Graphviz نمی‌تواند هم محتوا و هم آرگومان نام پرونده داشته باشد" #, python-format msgid "External Graphviz file %r not found or reading it failed" -msgstr "" +msgstr "پرونده‌ی Graphviz خارجی %r یافت نشد یا خواندنش ناموفق بود" msgid "Ignoring \"graphviz\" directive without content." -msgstr "" +msgstr "نادیده گرفتن دایرکتیو \"graphviz\" بدون محتوا." #, python-format msgid "graphviz_dot executable path must be set! %r" -msgstr "" +msgstr "مسیر فایل اجرایی graphviz_dot باید تنظیم شود! %r" #, python-format msgid "dot command %r cannot be run (needed for graphviz output), check the graphviz_dot setting" -msgstr "" +msgstr "دستور dot %r نمی‌تواند اجرا شود (لازم برای خروجی graphviz)، تنظیم graphviz_dot را بررسی کنید" #, python-format msgid "" @@ -988,6 +1001,11 @@ msgid "" "[stdout]\n" "%r" msgstr "" +"دستور dot با خطا خارج شد:\n" +"[stderr]\n" +"%r\n" +"[stdout]\n" +"%r" #, python-format msgid "" @@ -997,817 +1015,827 @@ msgid "" "[stdout]\n" "%r" msgstr "" +"دستور dot پرونده‌ی خروجی تولید نکرد:\n" +"[stderr]\n" +"%r\n" +"[stdout]\n" +"%r" #, python-format msgid "graphviz_output_format must be either 'png' or 'svg', but is %r" -msgstr "" +msgstr "graphviz_output_format باید یا 'png' یا 'svg' باشد، اما %r است" #, python-format msgid "dot code %r: %s" -msgstr "" +msgstr "کد dot %r: %s" #, python-format msgid "[graph: %s]" -msgstr "" +msgstr "[graph: %s]" msgid "[graph]" -msgstr "" +msgstr "[graph]" msgid "Todo" -msgstr "" +msgstr "کارهای انجام‌نشده" #, python-format msgid "TODO entry found: %s" -msgstr "" +msgstr "ورودی TODO یافت شد: %s" msgid "<>" -msgstr "" +msgstr "<<ورودی اصلی>>" #, python-format msgid "(The <> is located in %s, line %d.)" -msgstr "" +msgstr "(<<ورودی اصلی>> در %s، سطر %d قرار دارد.)" msgid "original entry" -msgstr "" +msgstr "ورودی اصلی" msgid "non-whitespace stripped by dedent" -msgstr "" +msgstr "فاصله‌های غیر‌سفید توسط dedent حذف شد" #, python-format msgid "Invalid caption: %s" -msgstr "" +msgstr "عنوان نامعتبر: %s" #, python-format msgid "line number spec is out of range(1-%d): %r" -msgstr "" +msgstr "مشخصه‌ی شماره سطر خارج از محدوده‌ی (1-%d) است: %r" #, python-format msgid "Cannot use both \"%s\" and \"%s\" options" -msgstr "" +msgstr "نمی‌توان هم از گزینه‌ی \"%s\" و هم از گزینه‌ی \"%s\" استفاده کرد" #, python-format msgid "Include file '%s' not found or reading it failed" -msgstr "" +msgstr "پرونده‌ی ضمیمه‌ی '%s' یافت نشد یا خواندنش ناموفق بود" #, python-format msgid "Encoding %r used for reading included file '%s' seems to be wrong, try giving an :encoding: option" -msgstr "" +msgstr "کدگذاری %r استفاده‌شده برای خواندن پرونده‌ی ضمیمه‌ی '%s' نادرست به نظر می‌رسد، سعی کنید یک گزینه‌ی :encoding: بدهید" #, python-format msgid "Object named %r not found in include file %r" -msgstr "" +msgstr "شیء نام‌دار %r در پرونده‌ی ضمیمه‌ی %r یافت نشد" msgid "Cannot use \"lineno-match\" with a disjoint set of \"lines\"" -msgstr "" +msgstr "نمی‌توان از \"lineno-match\" با مجموعه‌ی ناپیوسته‌ای از \"lines\" استفاده کرد" #, python-format msgid "Line spec %r: no lines pulled from include file %r" -msgstr "" +msgstr "مشخصه‌ی سطر %r: هیچ سطری از پرونده‌ی ضمیمه‌ی %r استخراج نشد" msgid "\":file:\" option for csv-table directive now recognizes an absolute path as a relative path from source directory. Please update your document." -msgstr "" +msgstr "گزینه‌ی \":file:\" برای دایرکتیو csv-table اکنون یک مسیر مطلق را به‌عنوان مسیر نسبی از پوشه‌ی مبدأ می‌شناسد. لطفاً سند خود را به‌روزرسانی کنید." #, python-format msgid "toctree glob pattern %r didn't match any documents" -msgstr "" +msgstr "الگوی glob توک‌تری %r با هیچ سندی مطابقت نداشت" #, python-format msgid "toctree contains reference to excluded document %r" -msgstr "" +msgstr "توک‌تری حاوی ارجاع به سند حذف‌شده %r است" #, python-format msgid "toctree contains reference to nonexisting document %r" -msgstr "" +msgstr "توک‌تری حاوی ارجاع به سند ناموجود %r است" #, python-format msgid "duplicated entry found in toctree: %s" -msgstr "" +msgstr "ورودی تکراری در توک‌تری یافت شد: %s" msgid "Section author: " -msgstr "" +msgstr "نویسنده‌ی بخش: " msgid "Module author: " -msgstr "" +msgstr "نویسنده‌ی ماژول: " msgid "Code author: " -msgstr "" +msgstr "نویسنده‌ی کد: " msgid "Author: " -msgstr "" +msgstr "نویسنده: " msgid ".. acks content is not a list" -msgstr "" +msgstr ".. محتوای acks یک فهرست نیست" msgid ".. hlist content is not a list" -msgstr "" +msgstr ".. محتوای hlist یک فهرست نیست" #, python-format msgid "The overview file is in %(outdir)s." -msgstr "" +msgstr "پرونده‌ی نمای کلی در %(outdir)s است." #, python-format msgid "no changes in version %s." -msgstr "هیچ تغیری در نسخه‌ی %s نبوده" +msgstr "هیچ تغییری در نسخه‌ی %s نبوده." msgid "writing summary file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی خلاصه..." msgid "Builtins" -msgstr "" +msgstr "توکارها" msgid "Module level" -msgstr "" +msgstr "سطح ماژول" msgid "copying source files..." -msgstr "" +msgstr "در حال کپی پرونده‌های مبدأ..." #, python-format msgid "could not read %r for changelog creation" -msgstr "" +msgstr "نمی‌توان %r را برای ایجاد تغییرنامه خواند" #, python-format msgid "The manual pages are in %(outdir)s." -msgstr "" +msgstr "صفحات راهنما در %(outdir)s هستند." msgid "no \"man_pages\" config value found; no manual pages will be written" -msgstr "" +msgstr "هیچ مقدار پیکربندی \"man_pages\" یافت نشد؛ هیچ صفحه‌ی راهنمایی نوشته نخواهد شد" msgid "writing" -msgstr "" +msgstr "در حال نوشتن" #, python-format msgid "\"man_pages\" config value references unknown document %s" -msgstr "" +msgstr "مقدار پیکربندی \"man_pages\" به سند ناشناخته‌ی %s ارجاع می‌دهد" #, python-format msgid "a suitable image for %s builder not found: %s (%s)" -msgstr "" +msgstr "تصویر مناسبی برای سازنده‌ی %s یافت نشد: %s (%s)" #, python-format msgid "a suitable image for %s builder not found: %s" -msgstr "" +msgstr "تصویر مناسبی برای سازنده‌ی %s یافت نشد: %s" msgid "building [mo]: " -msgstr "" +msgstr "در حال ساخت [mo]: " msgid "writing output... " -msgstr "" +msgstr "در حال نوشتن خروجی... " #, python-format msgid "all of %d po files" -msgstr "" +msgstr "همه‌ی %d پرونده‌ی po" #, python-format msgid "targets for %d po files that are specified" -msgstr "" +msgstr "هدف‌ها برای %d پرونده‌ی po که مشخص شده‌اند" #, python-format msgid "targets for %d po files that are out of date" -msgstr "" +msgstr "هدف‌ها برای %d پرونده‌ی po که قدیمی هستند" msgid "all source files" -msgstr "" +msgstr "همه‌ی پرونده‌های مبدأ" #, python-format msgid "file %r given on command line does not exist, " -msgstr "" +msgstr "پرونده‌ی %r داده‌شده در خط فرمان وجود ندارد، " #, python-format msgid "file %r given on command line is not under the source directory, ignoring" -msgstr "" +msgstr "پرونده‌ی %r داده‌شده در خط فرمان زیر پوشه‌ی مبدأ نیست، نادیده گرفته می‌شود" #, python-format msgid "file %r given on command line is not a valid document, ignoring" -msgstr "" +msgstr "پرونده‌ی %r داده‌شده در خط فرمان یک سند معتبر نیست، نادیده گرفته می‌شود" #, python-format msgid "%d source files given on command line" -msgstr "" +msgstr "%d پرونده‌ی مبدأ داده‌شده در خط فرمان" #, python-format msgid "targets for %d source files that are out of date" -msgstr "" +msgstr "هدف‌ها برای %d پرونده‌ی مبدأ که قدیمی هستند" #, python-format msgid "building [%s]: " -msgstr "" +msgstr "در حال ساخت [%s]: " msgid "looking for now-outdated files... " -msgstr "" +msgstr "در حال جست‌وجوی پرونده‌های تازه قدیمی‌شده... " #, python-format msgid "%d found" -msgstr "" +msgstr "%d یافت شد" msgid "none found" -msgstr "" +msgstr "هیچ‌کدام یافت نشد" msgid "pickling environment" -msgstr "" +msgstr "در حال پیکل کردن محیط" msgid "checking consistency" -msgstr "" +msgstr "در حال بررسی سازگاری" msgid "no targets are out of date." -msgstr "" +msgstr "هیچ هدفی قدیمی نیست." msgid "updating environment: " -msgstr "" +msgstr "در حال به‌روزرسانی محیط: " #, python-format msgid "%s added, %s changed, %s removed" -msgstr "" +msgstr "%s اضافه شد، %s تغییر کرد، %s حذف شد" #, python-format msgid "Sphinx is unable to load the master document (%s) because it matches a built-in exclude pattern %r. Please move your master document to a different location." -msgstr "" +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند چون با الگوی حذف توکار %r مطابقت دارد. لطفاً سند اصلی خود را به مکان دیگری منتقل کنید." #, python-format msgid "Sphinx is unable to load the master document (%s) because it matches an exclude pattern specified in conf.py, %r. Please remove this pattern from conf.py." -msgstr "" +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند چون با الگوی حذف مشخص‌شده در conf.py، %r مطابقت دارد. لطفاً این الگو را از conf.py حذف کنید." #, python-format msgid "Sphinx is unable to load the master document (%s) because it is not included in the custom include_patterns = %r. Ensure that a pattern in include_patterns matches the master document." -msgstr "" +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند چون در include_patterns سفارشی = %r گنجانده نشده است. مطمئن شوید که یک الگو در include_patterns با سند اصلی مطابقت دارد." #, python-format msgid "Sphinx is unable to load the master document (%s). The master document must be within the source directory or a subdirectory of it." -msgstr "" +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند. سند اصلی باید در پوشه‌ی مبدأ یا زیرپوشه‌ای از آن باشد." msgid "reading sources... " -msgstr "" +msgstr "در حال خواندن منابع... " #, python-format msgid "docnames to write: %s" -msgstr "" +msgstr "نام اسناد برای نوشتن: %s" msgid "no docnames to write!" -msgstr "" +msgstr "هیچ نام سندی برای نوشتن نیست!" msgid "preparing documents" -msgstr "" +msgstr "در حال آماده‌سازی اسناد" msgid "copying assets" -msgstr "" +msgstr "در حال کپی دارایی‌ها" #, python-format msgid "undecodable source characters, replacing with \"?\": %r" -msgstr "" +msgstr "نویسه‌های مبدأ کدگشایی‌ناپذیر، جایگزینی با \"?\": %r" #, python-format msgid "The ePub file is in %(outdir)s." -msgstr "" +msgstr "پرونده‌ی ePub در %(outdir)s است." msgid "writing nav.xhtml file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی nav.xhtml..." msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_language\" (یا \"language\") برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_uid\" should be XML NAME for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_uid\" برای EPUB3 باید XML NAME باشد" msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_title\" (یا \"html_title\") برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_author\" should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_author\" برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_contributor\" should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_contributor\" برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_description\" should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_description\" برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_publisher\" should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_publisher\" برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_copyright\" (یا \"copyright\") برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_identifier\" should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"epub_identifier\" برای EPUB3 نباید خالی باشد" msgid "conf value \"version\" should not be empty for EPUB3" -msgstr "" +msgstr "مقدار پیکربندی \"version\" برای EPUB3 نباید خالی باشد" #, python-format msgid "invalid css_file: %r, ignored" -msgstr "" +msgstr "css_file نامعتبر: %r، نادیده گرفته شد" #, python-format msgid "The XML files are in %(outdir)s." -msgstr "" +msgstr "پرونده‌های XML در %(outdir)s هستند." #, python-format msgid "error writing file %s: %s" -msgstr "" +msgstr "خطا در نوشتن پرونده‌ی %s: %s" #, python-format msgid "The pseudo-XML files are in %(outdir)s." -msgstr "" +msgstr "پرونده‌های شبه-XML در %(outdir)s هستند." #, python-format msgid "The Texinfo files are in %(outdir)s." -msgstr "" +msgstr "پرونده‌های Texinfo در %(outdir)s هستند." msgid "" "\n" "Run 'make' in that directory to run these through makeinfo\n" "(use 'make info' here to do that automatically)." msgstr "" +"\n" +"در آن پوشه 'make' را اجرا کنید تا این‌ها از طریق makeinfo پردازش شوند\n" +"(از 'make info' در اینجا استفاده کنید تا این کار به‌طور خودکار انجام شود)." msgid "no \"texinfo_documents\" config value found; no documents will be written" -msgstr "" +msgstr "هیچ مقدار پیکربندی \"texinfo_documents\" یافت نشد؛ هیچ سندی نوشته نخواهد شد" #, python-format msgid "\"texinfo_documents\" config value references unknown document %s" -msgstr "" +msgstr "مقدار پیکربندی \"texinfo_documents\" به سند ناشناخته‌ی %s ارجاع می‌دهد" #, python-format msgid "processing %s" -msgstr "" +msgstr "در حال پردازش %s" msgid "resolving references..." -msgstr "" +msgstr "در حال حل ارجاعات..." msgid " (in " -msgstr "" +msgstr " (در " msgid "copying images... " -msgstr "" +msgstr "در حال کپی تصاویر... " #, python-format msgid "cannot copy image file %r: %s" -msgstr "" +msgstr "نمی‌توان پرونده‌ی تصویر %r را کپی کرد: %s" msgid "copying Texinfo support files" -msgstr "" +msgstr "در حال کپی پرونده‌های پشتیبانی Texinfo" #, python-format msgid "error writing file Makefile: %s" -msgstr "" +msgstr "خطا در نوشتن پرونده‌ی Makefile: %s" #, python-format msgid "duplicated ToC entry found: %s" -msgstr "" +msgstr "ورودی تکراری در فهرست مطالب یافت شد: %s" #, python-format msgid "cannot read image file %r: copying it instead" -msgstr "" +msgstr "نمی‌توان پرونده‌ی تصویر %r را خواند: به‌جای آن کپی می‌شود" #, python-format msgid "cannot write image file %r: %s" -msgstr "" +msgstr "نمی‌توان پرونده‌ی تصویر %r را نوشت: %s" msgid "Pillow not found - copying image files" -msgstr "" +msgstr "Pillow یافت نشد - در حال کپی پرونده‌های تصویر" msgid "writing mimetype file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی mimetype..." msgid "writing META-INF/container.xml file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی META-INF/container.xml..." msgid "writing content.opf file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی content.opf..." #, python-format msgid "unknown mimetype for %s, ignoring" -msgstr "" +msgstr "mimetype ناشناخته برای %s، نادیده گرفته می‌شود" msgid "node has an invalid level" -msgstr "" +msgstr "گره سطح نامعتبری دارد" msgid "writing toc.ncx file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی toc.ncx..." #, python-format msgid "writing %s file..." -msgstr "" +msgstr "در حال نوشتن پرونده‌ی %s..." msgid "The dummy builder generates no files." -msgstr "" +msgstr "سازنده‌ی ساختگی هیچ پرونده‌ای تولید نمی‌کند." #, python-format msgid "The message catalogs are in %(outdir)s." -msgstr "" +msgstr "کاتالوگ‌های پیام در %(outdir)s هستند." #, python-format msgid "targets for %d template files" -msgstr "" +msgstr "هدف‌ها برای %d پرونده‌ی قالب" msgid "reading templates... " -msgstr "" +msgstr "در حال خواندن قالب‌ها... " msgid "writing message catalogs... " -msgstr "" +msgstr "در حال نوشتن کاتالوگ‌های پیام... " #, python-format msgid "The HTML page is in %(outdir)s." -msgstr "" +msgstr "صفحه‌ی HTML در %(outdir)s است." msgid "assembling single document" -msgstr "" +msgstr "در حال سرهم‌بندی سند واحد" msgid "writing additional files" -msgstr "" +msgstr "در حال نوشتن پرونده‌های اضافی" #, python-format msgid "Look for any errors in the above output or in %(outdir)s/output.txt" -msgstr "" +msgstr "هر خطایی را در خروجی بالا یا در %(outdir)s/output.txt جست‌وجو کنید" #, python-format msgid "broken link: %s (%s)" -msgstr "" +msgstr "پیوند شکسته: %s (%s)" #, python-format msgid "Anchor '%s' not found" -msgstr "" +msgstr "لنگر '%s' یافت نشد" #, python-format msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s" -msgstr "" +msgstr "کامپایل regex در linkcheck_allowed_redirects ناموفق بود: %r %s" #, python-format msgid "The text files are in %(outdir)s." -msgstr "" +msgstr "پرونده‌های متنی در %(outdir)s هستند." #, python-brace-format msgid "inconsistent footnote references in translated message. original: {0}, translated: {1}" -msgstr "" +msgstr "ارجاعات پانویس ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-brace-format msgid "inconsistent references in translated message. original: {0}, translated: {1}" -msgstr "" +msgstr "ارجاعات ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-brace-format msgid "inconsistent citation references in translated message. original: {0}, translated: {1}" -msgstr "" +msgstr "ارجاعات استنادی ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-brace-format msgid "inconsistent term references in translated message. original: {0}, translated: {1}" -msgstr "" +msgstr "ارجاعات اصطلاحی ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-format msgid "%b %d, %Y" -msgstr "" +msgstr "%b %d, %Y" msgid "could not calculate translation progress!" -msgstr "" +msgstr "نمی‌توان پیشرفت ترجمه را محاسبه کرد!" msgid "no translated elements!" -msgstr "" +msgstr "هیچ عنصر ترجمه‌شده‌ای وجود ندارد!" #, python-format msgid "4 column based index found. It might be a bug of extensions you use: %r" -msgstr "" +msgstr "اندیس مبتنی بر ۴ ستون یافت شد. ممکن است اشکالی از افزونه‌هایی باشد که استفاده می‌کنید: %r" #, python-format msgid "Footnote [%s] is not referenced." -msgstr "" +msgstr "پاورقی [%s] ارجاع داده نشده است." msgid "Footnote [*] is not referenced." -msgstr "" +msgstr "پاورقی [*] ارجاع داده نشده است." msgid "Footnote [#] is not referenced." -msgstr "" +msgstr "پاورقی [#] ارجاع داده نشده است." msgid "Usage:" -msgstr "" +msgstr "کاربرد:" #, python-brace-format msgid "{0} [OPTIONS] []" -msgstr "" +msgstr "{0} [OPTIONS] []" msgid " The Sphinx documentation generator." -msgstr "" +msgstr " تولیدکننده‌ی مستندات Sphinx." msgid "Commands:" -msgstr "" +msgstr "دستورات:" msgid "Options" msgstr "گزینه‌ها" msgid "For more information, visit https://www.sphinx-doc.org/en/master/man/." -msgstr "" +msgstr "برای اطلاعات بیشتر، به https://www.sphinx-doc.org/en/master/man/ مراجعه کنید." #, python-brace-format msgid "" "{0}: error: {1}\n" "Run '{0} --help' for information" msgstr "" +"{0}: خطا: {1}\n" +"برای کسب اطلاعات '{0} --help' را اجرا کنید" msgid " Manage documentation with Sphinx." -msgstr "" +msgstr " مدیریت مستندات با Sphinx." msgid "Show the version and exit." -msgstr "" +msgstr "نمایش نسخه و خروج." msgid "Show this message and exit." -msgstr "" +msgstr "نمایش این پیام و خروج." msgid "Logging" -msgstr "" +msgstr "گزارش‌گیری" msgid "Increase verbosity (can be repeated)" -msgstr "" +msgstr "افزایش پرگویی (قابل تکرار)" msgid "Only print errors and warnings." -msgstr "" +msgstr "فقط خطاها و هشدارها را چاپ کن." msgid "No output at all" -msgstr "" +msgstr "هیچ خروجی‌ای" msgid "" -msgstr "" +msgstr "" msgid "See 'sphinx --help'.\n" -msgstr "" +msgstr "به 'sphinx --help' مراجعه کنید.\n" msgid "new config" -msgstr "" +msgstr "پیکربندی جدید" msgid "config changed" -msgstr "" +msgstr "پیکربندی تغییر کرد" msgid "extensions changed" -msgstr "" +msgstr "افزونه‌ها تغییر کردند" msgid "build environment version not current" -msgstr "" +msgstr "نسخه‌ی محیط ساخت فعلی نیست" msgid "source directory has changed" -msgstr "" +msgstr "پوشه‌ی مبدأ تغییر کرده است" #, python-format msgid "The configuration has changed (1 option: %r)" -msgstr "" +msgstr "پیکربندی تغییر کرده است (۱ گزینه: %r)" #, python-format msgid "The configuration has changed (%d options: %s)" -msgstr "" +msgstr "پیکربندی تغییر کرده است (%d گزینه: %s)" #, python-format msgid "The configuration has changed (%d options: %s, ...)" -msgstr "" +msgstr "پیکربندی تغییر کرده است (%d گزینه: %s، ...)" msgid "This environment is incompatible with the selected builder, please choose another doctree directory." -msgstr "" +msgstr "این محیط با سازنده‌ی انتخاب‌شده ناسازگار است، لطفاً پوشه‌ی doctree دیگری انتخاب کنید." #, python-format msgid "Failed to scan documents in %s: %r" -msgstr "" +msgstr "اسکن اسناد در %s ناموفق بود: %r" #, python-format msgid "Domain %r is not registered" -msgstr "" +msgstr "دامنه‌ی %r ثبت نشده است" msgid "document isn't included in any toctree" -msgstr "" +msgstr "سند در هیچ توک‌تری گنجانده نشده است" msgid "self referenced toctree found. Ignored." -msgstr "" +msgstr "توک‌تری خود‌ارجاع یافت شد. نادیده گرفته شد." #, python-format msgid "document is referenced in multiple toctrees: %s, selecting: %s <- %s" -msgstr "" +msgstr "سند در چندین توک‌تری ارجاع داده شده است: %s، انتخاب: %s <- %s" #, python-format msgid "reading error: %s, %s" -msgstr "" +msgstr "خطای خواندن: %s، %s" #, python-format msgid "writing error: %s, %s" -msgstr "" +msgstr "خطای نوشتن: %s، %s" #, python-format msgid "locale_dir %s does not exist" -msgstr "" +msgstr "locale_dir %s وجود ندارد" #, python-format msgid "Invalid Babel locale: %r." -msgstr "" +msgstr "نامعتبر بودن locale Babel: %r." #, python-format msgid "Invalid date format. Quote the string by single quote if you want to output it directly: %s" -msgstr "" +msgstr "قالب تاریخ نامعتبر. اگر می‌خواهید مستقیماً چاپ شود، رشته را با نقل‌قول تک احاطه کنید: %s" #, python-format msgid "Problem in %s domain: field is supposed to use role '%s', but that role is not in the domain." -msgstr "" +msgstr "مشکل در دامنه‌ی %s: فیلد باید از نقش '%s' استفاده کند، اما آن نقش در دامنه نیست." #, python-format msgid "%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead." -msgstr "" +msgstr "%r برای ورودی‌های اندیس منسوخ شده است (از ورودی %r). به‌جای آن از 'pair: %s' استفاده کنید." #, python-format msgid "toctree contains ref to nonexisting file %r" -msgstr "" +msgstr "توک‌تری حاوی ارجاع به پرونده‌ی ناموجود %r است" #, python-format msgid "exception while evaluating only directive expression: %s" -msgstr "" +msgstr "استثنا هنگام ارزیابی عبارت دایرکتیو only: %s" msgid "skipped" -msgstr "" +msgstr "رد شد" msgid "failed" -msgstr "" +msgstr "شکست خورد" #, python-format msgid "Aborted attempted copy from %s to %s (the destination path has existing data)." -msgstr "" +msgstr "تلاش برای کپی از %s به %s لغو شد (مسیر مقصد داده‌ی موجود دارد)." #, python-format msgid "unknown directive name: %s" -msgstr "" +msgstr "نام دایرکتیو ناشناخته: %s" #, python-format msgid "unknown role name: %s" -msgstr "" +msgstr "نام نقش ناشناخته: %s" #, python-format msgid "unknown node type: %r" -msgstr "" +msgstr "نوع گره ناشناخته: %r" #, python-format msgid "Aborted attempted copy from rendered template %s to %s (the destination path has existing data)." -msgstr "" +msgstr "تلاش برای کپی از قالب رندرشده‌ی %s به %s لغو شد (مسیر مقصد داده‌ی موجود دارد)." #, python-format msgid "Writing evaluated template result to %s" -msgstr "" +msgstr "در حال نوشتن نتیجه‌ی قالب ارزیابی‌شده در %s" #, python-format msgid "default role %s not found" -msgstr "" +msgstr "نقش پیش‌فرض %s یافت نشد" #, python-format msgid "inventory <%s> contains duplicate definitions of %s" -msgstr "" +msgstr "inventory <%s> شامل تعریف‌های تکراری %s است" #, python-format msgid "inventory <%s> contains multiple definitions for %s" -msgstr "" +msgstr "inventory <%s> شامل تعریف‌های متعدد برای %s است" msgid "Footnotes" -msgstr "" +msgstr "پاورقی‌ها" #, python-format msgid "[image: %s]" -msgstr "" +msgstr "[image: %s]" msgid "[image]" -msgstr "" +msgstr "[image]" msgid "Index" -msgstr "" +msgstr "اندیس" msgid "encountered title node not in section, topic, table, admonition or sidebar" -msgstr "" +msgstr "گره عنوانی یافت شد که در بخش، موضوع، جدول، آدمانیشن یا نوار کناری نیست" msgid "caption not inside a figure." -msgstr "" +msgstr "عنوان داخل شکل نیست." #, python-format msgid "unimplemented node type: %r" -msgstr "" +msgstr "نوع گره پیاده‌سازی‌نشده: %r" #, python-format msgid "unknown %r toplevel_sectioning for class %r" -msgstr "" +msgstr "%r toplevel_sectioning ناشناخته برای کلاس %r" #, python-format msgid "no Babel option known for language %r" -msgstr "" +msgstr "هیچ گزینه‌ی Babel برای زبان %r شناخته‌شده نیست" msgid "too large :maxdepth:, ignored." -msgstr "" +msgstr ":maxdepth: بسیار بزرگ، نادیده گرفته شد." #, python-format msgid "template %s not found; loading from legacy %s instead" -msgstr "" +msgstr "قالب %s یافت نشد؛ به‌جای آن از %s قدیمی بارگذاری می‌شود" msgid "document title is not a single Text node" -msgstr "" +msgstr "عنوان سند یک گره Text واحد نیست" #, python-format msgid "unsupported rubric heading level: %s" -msgstr "" +msgstr "سطح عنوان rubric پشتیبانی‌نشده: %s" msgid "both tabularcolumns and :widths: option are given. :widths: is ignored." -msgstr "" +msgstr "هم tabularcolumns و هم گزینه‌ی :widths: داده شده‌اند. :widths: نادیده گرفته می‌شود." #, python-format msgid "dimension unit %s is invalid. Ignored." -msgstr "" +msgstr "واحد ابعاد %s نامعتبر است. نادیده گرفته شد." #, python-format msgid "unknown index entry type %s found" -msgstr "" +msgstr "نوع ورودی اندیس ناشناخته‌ی %s یافت شد" #, python-format msgid "Invalid math_eqref_format: %r" -msgstr "" +msgstr "نامعتبر بودن math_eqref_format: %r" msgid "Link to this definition" -msgstr "" +msgstr "پیوند به این تعریف" #, python-format msgid "numfig_format is not defined for %s" -msgstr "" +msgstr "numfig_format برای %s تعریف نشده است" #, python-format msgid "Any IDs not assigned for %s node" -msgstr "" +msgstr "هیچ شناسه‌ای برای گره‌ی %s اختصاص داده نشده است" msgid "Link to this term" -msgstr "" +msgstr "پیوند به این اصطلاح" msgid "Link to this heading" -msgstr "" +msgstr "پیوند به این عنوان" msgid "Link to this table" -msgstr "" +msgstr "پیوند به این جدول" msgid "Link to this code" -msgstr "" +msgstr "پیوند به این کد" msgid "Link to this image" -msgstr "" +msgstr "پیوند به این تصویر" msgid "Link to this toctree" -msgstr "" +msgstr "پیوند به این توکتری" msgid "Could not obtain image size. :scale: option is ignored." -msgstr "" +msgstr "اندازه‌ی تصویر به‌دست نیامد. گزینه‌ی :scale: نادیده گرفته می‌شود." #, python-format msgid "%s %s" -msgstr "" +msgstr "%s %s" #, python-format msgid "duplicate label of equation %s, other instance in %s" -msgstr "" +msgstr "برچسب تکراری معادله‌ی %s، نمونه‌ی دیگر در %s" #, python-format msgid "%s() (built-in function)" -msgstr "" +msgstr "%s()(تابع توکار)" #, python-format msgid "%s() (%s method)" -msgstr "" +msgstr "%s() (%s متد)" #, python-format msgid "%s() (class)" -msgstr "" +msgstr "%s() (کلاس)" #, python-format msgid "%s (global variable or constant)" -msgstr "" +msgstr "%s (متغیر سراسری یا ثابت)" #, python-format msgid "%s (%s attribute)" -msgstr "" +msgstr "%s (%s ویژگی)" msgid "Arguments" -msgstr "" +msgstr "آرگومان‌ها" msgid "Throws" -msgstr "" +msgstr "پرتاب‌ها" msgid "Returns" -msgstr "" +msgstr "بازگشتی‌ها" msgid "Return type" -msgstr "" +msgstr "نوع بازگشتی" #, python-format msgid "%s (module)" -msgstr "" +msgstr "%s (ماژول)" msgid "function" -msgstr "" +msgstr "تابع" msgid "method" -msgstr "" +msgstr "متد" msgid "class" -msgstr "" +msgstr "کلاس" msgid "data" -msgstr "" +msgstr "داده" msgid "attribute" -msgstr "" +msgstr "ویژگی" msgid "module" -msgstr "" +msgstr "ماژول" #, python-format msgid "duplicate %s description of %s, other %s in %s" -msgstr "" +msgstr "توصیف %s تکراری از %s، %s دیگر در %s" #, python-format msgid "Added in version %s" @@ -1827,125 +1855,127 @@ msgstr "حذف شده در نسخه‌ی %s" #, python-format msgid "%s (directive)" -msgstr "" +msgstr "%s (دایرکتیو)" #, python-format msgid ":%s: (directive option)" -msgstr "" +msgstr ":%s: (گزینه‌ی دایرکتیو)" #, python-format msgid "%s (role)" -msgstr "" +msgstr "%s (نقش)" msgid "directive" -msgstr "" +msgstr "دایرکتیو" msgid "directive-option" -msgstr "" +msgstr "گزینه‌ی دایرکتیو" msgid "role" -msgstr "" +msgstr "نقش" #, python-format msgid "duplicate description of %s %s, other instance in %s" -msgstr "" +msgstr "توصیف تکراری از %s %s، نمونه‌ی دیگر در %s" #, python-format msgid "duplicate citation %s, other instance in %s" -msgstr "" +msgstr "ارجاع تکراری %s، نمونه‌ی دیگر در %s" #, python-format msgid "Citation [%s] is not referenced." -msgstr "" +msgstr "ارجاع [%s] استفاده نشده است." msgid "Attention" -msgstr "" +msgstr "توجه" msgid "Caution" -msgstr "" +msgstr "احتیاط" msgid "Danger" -msgstr "" +msgstr "خطر" msgid "Error" -msgstr "" +msgstr "خطا" msgid "Hint" -msgstr "" +msgstr "اشاره" msgid "Important" -msgstr "" +msgstr "مهم" msgid "Note" -msgstr "" +msgstr "یادداشت" msgid "See also" -msgstr "" +msgstr "همچنین ببینید" msgid "Tip" -msgstr "" +msgstr "نکته" msgid "Warning" -msgstr "" +msgstr "هشدار" msgid "automatically insert docstrings from modules" -msgstr "" +msgstr "درج خودکار رشته‌های مستند از ماژول‌ها" msgid "automatically test code snippets in doctest blocks" -msgstr "" +msgstr "آزمون خودکار قطعه‌کدها در بلوک‌های doctest" msgid "link between Sphinx documentation of different projects" -msgstr "" +msgstr "پیوند بین مستندات Sphinx پروژه‌های مختلف" msgid "write \"todo\" entries that can be shown or hidden on build" -msgstr "" +msgstr "نوشتن ورودی‌های \"todo\" که می‌توانند در ساخت نمایش داده شوند یا پنهان شوند" msgid "checks for documentation coverage" -msgstr "" +msgstr "بررسی پوشش مستندات" msgid "include math, rendered as PNG or SVG images" -msgstr "" +msgstr "گنجاندن ریاضی، رندرشده به‌صورت تصاویر PNG یا SVG" msgid "include math, rendered in the browser by MathJax" -msgstr "" +msgstr "گنجاندن ریاضی، رندرشده در مرورگر توسط MathJax" msgid "conditional inclusion of content based on config values" -msgstr "" +msgstr "گنجاندن شرطی محتوا بر اساس مقادیر پیکربندی" msgid "include links to the source code of documented Python objects" -msgstr "" +msgstr "گنجاندن پیوندها به کد منبع اشیاء مستندشده‌ی پایتون" msgid "create .nojekyll file to publish the document on GitHub pages" -msgstr "" +msgstr "ایجاد پرونده‌ی .nojekyll برای انتشار سند در صفحات گیت‌هاب" msgid "Please enter a valid path name." -msgstr "" +msgstr "لطفاً یک نام مسیر معتبر وارد کنید." msgid "Please enter some text." -msgstr "" +msgstr "لطفاً مقداری متن وارد کنید." #, python-format msgid "Please enter one of %s." -msgstr "" +msgstr "لطفاً یکی از %s را وارد کنید." msgid "Please enter either 'y' or 'n'." -msgstr "" +msgstr "لطفاً یا 'y' یا 'n' را وارد کنید." msgid "Please enter a file suffix, e.g. '.rst' or '.txt'." -msgstr "" +msgstr "لطفاً یک پسوند پرونده وارد کنید، مثلاً '.rst' یا '.txt'." #, python-format msgid "Welcome to the Sphinx %s quickstart utility." -msgstr "" +msgstr "به ابزار شروع سریع Sphinx %s خوش آمدید." msgid "" "Please enter values for the following settings (just press Enter to\n" "accept a default value, if one is given in brackets)." msgstr "" +"لطفاً مقادیری برای تنظیمات زیر وارد کنید (برای پذیرش مقدار پیش‌فرض، فقط Enter را فشار دهید،\n" +"اگر مقداری در براکت داده شده است)." #, python-format msgid "Selected root path: %s" -msgstr "" +msgstr "مسیر ریشه‌ی انتخاب‌شده: %s" msgid "Enter the root path for documentation." msgstr "مسیر ریشه برای مستندات را وارد کنید." @@ -1954,40 +1984,46 @@ msgid "Root path for the documentation" msgstr "مسیر ریشه برای مستندات" msgid "Error: an existing conf.py has been found in the selected root path." -msgstr "" +msgstr "خطا: یک conf.py از قبل در مسیر ریشه‌ی انتخاب‌شده وجود دارد." msgid "sphinx-quickstart will not overwrite existing Sphinx projects." -msgstr "" +msgstr "sphinx-quickstart پروژه‌های Sphinx موجود را بازنویسی نمی‌کند." msgid "Please enter a new root path (or just Enter to exit)" -msgstr "" +msgstr "لطفاً یک مسیر ریشه‌ی جدید وارد کنید (یا فقط Enter را برای خروج فشار دهید)" msgid "" "You have two options for placing the build directory for Sphinx output.\n" "Either, you use a directory \"_build\" within the root path, or you separate\n" "\"source\" and \"build\" directories within the root path." msgstr "" +"شما دو گزینه برای قرار دادن پوشه‌ی ساخت خروجی Sphinx دارید.\n" +"یا از یک پوشه‌ی \"_build\" در مسیر ریشه استفاده می‌کنید، یا پوشه‌های\n" +"\"source\" و \"build\" را در مسیر ریشه جدا می‌کنید." msgid "Separate source and build directories (y/n)" -msgstr "" +msgstr "جدا کردن پوشه‌های source و build (y/n)" msgid "" "Inside the root directory, two more directories will be created; \"_templates\"\n" "for custom HTML templates and \"_static\" for custom stylesheets and other static\n" "files. You can enter another prefix (such as \".\") to replace the underscore." msgstr "" +"درون پوشه‌ی ریشه، دو پوشه‌ی دیگر ایجاد می‌شود؛ \"_templates\"\n" +"برای قالب‌های HTML سفارشی و \"_static\" برای شیوه‌نامه‌های سفارشی و سایر پرونده‌های\n" +"ایستا. می‌توانید پیشوند دیگری (مثل \".\") برای جایگزینی زیرخط وارد کنید." msgid "Name prefix for templates and static dir" -msgstr "" +msgstr "پیشوند نام برای پوشه‌های قالب و ایستا" msgid "The project name will occur in several places in the built documentation." -msgstr "" +msgstr "نام پروژه در چندین جای مستندات ساخته‌شده ظاهر خواهد شد." msgid "Project name" -msgstr "" +msgstr "نام پروژه" msgid "Author name(s)" -msgstr "" +msgstr "نام نویسنده(ها)" msgid "" "Sphinx has the notion of a \"version\" and a \"release\" for the\n" @@ -1996,12 +2032,17 @@ msgid "" "something like 2.5.1 or 3.0a1. If you don't need this dual structure,\n" "just set both to the same value." msgstr "" +"Sphinx مفهوم \"version\" و \"release\" را برای نرم‌افزار دارد.\n" +"هر نسخه می‌تواند چندین انتشار داشته باشد. برای مثال، برای\n" +"Python نسخه چیزی مثل 2.5 یا 3.0 است، در حالی که انتشار\n" +"چیزی مثل 2.5.1 یا 3.0a1 است. اگر به این ساختار دوگانه نیاز ندارید،\n" +"فقط هر دو را روی یک مقدار تنظیم کنید." msgid "Project version" -msgstr "" +msgstr "نسخه‌ی پروژه" msgid "Project release" -msgstr "" +msgstr "انتشار پروژه" msgid "" "If the documents are to be written in a language other than English,\n" @@ -2011,17 +2052,25 @@ msgid "" "For a list of supported codes, see\n" "https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language." msgstr "" +"اگر اسناد به زبانی غیر از انگلیسی نوشته می‌شوند،\n" +"می‌توانید زبانی را با کد زبان آن انتخاب کنید. Sphinx سپس\n" +"متنی که تولید می‌کند را به آن زبان ترجمه می‌کند.\n" +"\n" +"برای فهرست کدهای پشتیبانی‌شده، به\n" +"https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language مراجعه کنید." msgid "Project language" -msgstr "" +msgstr "زبان پروژه" msgid "" "The file name suffix for source files. Commonly, this is either \".txt\"\n" "or \".rst\". Only files with this suffix are considered documents." msgstr "" +"پسوند نام پرونده برای پرونده‌های مبدأ. معمولاً، این یا \".txt\"\n" +"است یا \".rst\". فقط پرونده‌هایی با این پسوند سند در نظر گرفته می‌شوند." msgid "Source file suffix" -msgstr "" +msgstr "پسوند پرونده‌ی مبدأ" msgid "" "One document is special in that it is considered the top node of the\n" @@ -2029,68 +2078,81 @@ msgid "" "of the documents. Normally, this is \"index\", but if your \"index\"\n" "document is a custom template, you can also set this to another filename." msgstr "" +"یک سند از این نظر ویژه است که گره رأس \"درخت محتوا\"\n" +"در نظر گرفته می‌شود، یعنی ریشه‌ی ساختار سلسله‌مراتبی\n" +"اسناد است. معمولاً این سند \"index\" است، اما اگر سند \"index\"\n" +"شما یک قالب سفارشی باشد، می‌توانید آن را روی نام پرونده‌ی دیگری نیز تنظیم کنید." msgid "Name of your master document (without suffix)" -msgstr "" +msgstr "نام سند اصلی شما (بدون پسوند)" #, python-format msgid "Error: the master file %s has already been found in the selected root path." -msgstr "" +msgstr "خطا: پرونده‌ی اصلی %s از قبل در مسیر ریشه‌ی انتخاب‌شده یافت شده است." msgid "sphinx-quickstart will not overwrite the existing file." -msgstr "" +msgstr "sphinx-quickstart پرونده‌ی موجود را بازنویسی نمی‌کند." msgid "Please enter a new file name, or rename the existing file and press Enter" -msgstr "" +msgstr "لطفاً یک نام پرونده‌ی جدید وارد کنید، یا پرونده‌ی موجود را تغییر نام دهید و Enter را فشار دهید" msgid "Indicate which of the following Sphinx extensions should be enabled:" -msgstr "" +msgstr "مشخص کنید کدام‌یک از افزونه‌های Sphinx زیر باید فعال شوند:" msgid "Note: imgmath and mathjax cannot be enabled at the same time. imgmath has been deselected." -msgstr "" +msgstr "توجه: imgmath و mathjax نمی‌توانند هم‌زمان فعال شوند. imgmath از حالت انتخاب خارج شده است." msgid "" "A Makefile and a Windows command file can be generated for you so that you\n" "only have to run e.g. `make html' instead of invoking sphinx-build\n" "directly." msgstr "" +"یک Makefile و یک پرونده‌ی دستور ویندوز می‌تواند برای شما تولید شود تا\n" +"فقط لازم باشد مثلاً `make html' را اجرا کنید، به‌جای اینکه sphinx-build را\n" +"مستقیماً فراخوانی کنید." msgid "Create Makefile? (y/n)" -msgstr "" +msgstr "ایجاد Makefile؟ (y/n)" msgid "Create Windows command file? (y/n)" -msgstr "" +msgstr "ایجاد پرونده‌ی دستور ویندوز؟ (y/n)" #, python-format msgid "Creating file %s." -msgstr "" +msgstr "در حال ایجاد پرونده %s." #, python-format msgid "File %s already exists, skipping." -msgstr "" +msgstr "پرونده‌ی %s از قبل وجود دارد، رد می‌شود." msgid "Finished: An initial directory structure has been created." -msgstr "" +msgstr "پایان: یک ساختار پوشه‌ی اولیه ایجاد شد." #, python-format msgid "" "You should now populate your master file %s and create other documentation\n" "source files. " msgstr "" +"اکنون باید پرونده‌ی اصلی %s خود را پر کنید و سایر پرونده‌های مبدأ\n" +"مستندات را ایجاد کنید. " msgid "" "Use the Makefile to build the docs, like so:\n" " make builder" msgstr "" +"برای ساخت مستندات از Makefile به این شکل استفاده کنید:\n" +" make builder" #, python-format msgid "" "Use the sphinx-build command to build the docs, like so:\n" " sphinx-build -b builder %s %s" msgstr "" +"برای ساخت مستندات از دستور sphinx-build به این شکل استفاده کنید:\n" +" sphinx-build -b builder %s %s" msgid "where \"builder\" is one of the supported builders, e.g. html, latex or linkcheck." -msgstr "" +msgstr "که در آن \"builder\" یکی از سازنده‌های پشتیبانی‌شده است، مثلاً html، latex یا linkcheck." msgid "" "\n" @@ -2100,107 +2162,113 @@ msgid "" "project and then generates a complete documentation directory and sample\n" "Makefile to be used with sphinx-build.\n" msgstr "" +"\n" +"تولید پرونده‌های موردنیاز برای یک پروژه‌ی Sphinx.\n" +"\n" +"sphinx-quickstart یک ابزار تعاملی است که چند سؤال درباره‌ی پروژه‌ی شما\n" +"می‌پرسد و سپس یک پوشه‌ی کامل مستندات و یک Makefile نمونه\n" +"برای استفاده با sphinx-build تولید می‌کند.\n" msgid "For more information, visit ." -msgstr "" +msgstr "برای اطلاعات بیشتر، به مراجعه کنید." msgid "quiet mode" -msgstr "" +msgstr "حالت بی‌صدا" msgid "project root" -msgstr "" +msgstr "ریشه‌ی پروژه" msgid "Structure options" -msgstr "" +msgstr "گزینه‌های ساختار" msgid "if specified, separate source and build dirs" -msgstr "" +msgstr "در صورت مشخص شدن، پوشه‌های مبدأ و ساخت را جدا کنید" msgid "if specified, create build dir under source dir" -msgstr "" +msgstr "در صورت مشخص شدن، پوشه‌ی ساخت را زیر پوشه‌ی مبدأ ایجاد کنید" msgid "replacement for dot in _templates etc." -msgstr "" +msgstr "جایگزین نقطه در _templates و غیره." msgid "Project basic options" -msgstr "" +msgstr "گزینه‌های پایه‌ی پروژه" msgid "project name" -msgstr "" +msgstr "نام پروژه" msgid "author names" -msgstr "" +msgstr "نام نویسندگان" msgid "version of project" -msgstr "" +msgstr "نسخه‌ی پروژه" msgid "release of project" -msgstr "" +msgstr "انتشار پروژه" msgid "document language" -msgstr "" +msgstr "زبان سند" msgid "source file suffix" -msgstr "" +msgstr "پسوند پرونده‌ی مبدأ" msgid "master document name" -msgstr "" +msgstr "نام سند اصلی" msgid "use epub" -msgstr "" +msgstr "استفاده از epub" msgid "Extension options" -msgstr "" +msgstr "گزینه‌های افزونه" #, python-format msgid "enable %s extension" -msgstr "" +msgstr "فعال‌سازی افزونه‌ی %s" msgid "enable arbitrary extensions" -msgstr "" +msgstr "فعال‌سازی افزونه‌های دلخواه" msgid "Makefile and Batchfile creation" -msgstr "" +msgstr "ایجاد Makefile و Batchfile" msgid "create makefile" -msgstr "" +msgstr "ایجاد makefile" msgid "do not create makefile" -msgstr "" +msgstr "makefile ایجاد نکنید" msgid "create batchfile" -msgstr "" +msgstr "ایجاد batchfile" msgid "do not create batchfile" -msgstr "" +msgstr "batchfile ایجاد نکنید" msgid "use make-mode for Makefile/make.bat" -msgstr "" +msgstr "استفاده از حالت make برای Makefile/make.bat" msgid "Project templating" -msgstr "" +msgstr "قالب‌بندی پروژه" msgid "template directory for template files" -msgstr "" +msgstr "پوشه‌ی قالب برای پرونده‌های قالب" msgid "define a template variable" -msgstr "" +msgstr "تعریف یک متغیر قالب" msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified." -msgstr "" +msgstr "\"quiet\" مشخص شده است، اما هیچ‌یک از \"project\" یا \"author\" مشخص نشده است." msgid "Error: specified path is not a directory, or sphinx files already exist." -msgstr "" +msgstr "خطا: مسیر مشخص‌شده یک پوشه نیست، یا پرونده‌های sphinx از قبل وجود دارند." msgid "sphinx-quickstart only generate into a empty directory. Please specify a new root path." -msgstr "" +msgstr "sphinx-quickstart فقط در یک پوشه‌ی خالی تولید می‌کند. لطفاً یک مسیر ریشه‌ی جدید مشخص کنید." #, python-format msgid "Invalid template variable: %s" -msgstr "" +msgstr "متغیر قالب نامعتبر: %s" msgid "job number should be a positive number" -msgstr "" +msgstr "تعداد کار باید یک عدد مثبت باشد" msgid "" "\n" @@ -2219,106 +2287,121 @@ msgid "" "By default, everything that is outdated is built. Output only for selected\n" "files can be built by specifying individual filenames.\n" msgstr "" +"\n" +"تولید مستندات از پرونده‌های مبدأ.\n" +"\n" +"sphinx-build مستندات را از پرونده‌های موجود در SOURCEDIR تولید می‌کند و آن را در\n" +"OUTPUTDIR قرار می‌دهد. این ابزار به‌دنبال 'conf.py' در SOURCEDIR برای تنظیمات\n" +"پیکربندی می‌گردد. ابزار 'sphinx-quickstart' می‌تواند برای تولید پرونده‌های قالب،\n" +"از جمله 'conf.py' استفاده شود.\n" +"\n" +"sphinx-build می‌تواند مستندات را در قالب‌های مختلفی ایجاد کند. یک قالب با\n" +"مشخص کردن نام سازنده در خط فرمان انتخاب می‌شود؛ مقدار پیش‌فرض آن\n" +"HTML است. سازنده‌ها همچنین می‌توانند سایر وظایف مربوط به پردازش\n" +"مستندات را انجام دهند.\n" +"\n" +"به‌طور پیش‌فرض، هر چیزی که قدیمی باشد ساخته می‌شود. خروجی فقط برای پرونده‌های\n" +"انتخاب‌شده می‌تواند با مشخص کردن نام‌های پرونده‌ی مجزا ساخته شود.\n" msgid "path to documentation source files" msgstr "مسیر منابع مستندات" msgid "path to output directory" -msgstr "" +msgstr "مسیر پوشه‌ی خروجی" msgid "(optional) a list of specific files to rebuild. Ignored if --write-all is specified" -msgstr "" +msgstr "(اختیاری) فهرستی از پرونده‌های مشخص برای بازسازی. در صورت مشخص شدن --write-all نادیده گرفته می‌شود" msgid "general options" msgstr "گزینه‌های عمومی" msgid "builder to use (default: 'html')" -msgstr "" +msgstr "سازنده‌ی مورد استفاده (پیش‌فرض: 'html')" msgid "run in parallel with N processes, when possible. 'auto' uses the number of CPU cores" -msgstr "" +msgstr "در صورت امکان، با N فرایند به‌صورت موازی اجرا شود. 'auto' از تعداد هسته‌های CPU استفاده می‌کند" msgid "write all files (default: only write new and changed files)" -msgstr "" +msgstr "نوشتن همه‌ی پرونده‌ها (پیش‌فرض: فقط پرونده‌های جدید و تغییر‌یافته نوشته می‌شوند)" msgid "don't use a saved environment, always read all files" -msgstr "" +msgstr "از محیط ذخیره‌شده استفاده نکنید، همیشه همه‌ی پرونده‌ها را بخوانید" msgid "path options" -msgstr "" +msgstr "گزینه‌های مسیر" msgid "directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)" -msgstr "" +msgstr "پوشه‌ی پرونده‌های doctree و محیط (پیش‌فرض: OUTPUT_DIR/.doctrees)" msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)" -msgstr "" +msgstr "پوشه‌ی پرونده‌ی پیکربندی (conf.py) (پیش‌فرض: SOURCE_DIR)" msgid "use no configuration file, only use settings from -D options" -msgstr "" +msgstr "از هیچ پرونده‌ی پیکربندی استفاده نکنید؛ فقط از تنظیمات گزینه‌های -D استفاده کنید" msgid "override a setting in configuration file" -msgstr "" +msgstr "بازنویسی یک تنظیم در پرونده‌ی پیکربندی" msgid "pass a value into HTML templates" -msgstr "" +msgstr "انتقال یک مقدار به قالب‌های HTML" msgid "define tag: include \"only\" blocks with TAG" -msgstr "" +msgstr "تعریف تگ: گنجاندن \"only\" بلوک‌ها با TAG" msgid "nitpicky mode: warn about all missing references" -msgstr "" +msgstr "حالت سخت‌گیرانه: هشدار درباره‌ی همه‌ی ارجاعات گم‌شده" msgid "console output options" -msgstr "" +msgstr "گزینه‌های خروجی کنسول" msgid "increase verbosity (can be repeated)" -msgstr "" +msgstr "افزایش پرگویی (قابل تکرار)" msgid "no output on stdout, just warnings on stderr" -msgstr "" +msgstr "هیچ خروجی‌ای روی stdout نیست، فقط هشدارها روی stderr" msgid "no output at all, not even warnings" -msgstr "" +msgstr "هیچ خروجی‌ای، حتی هشدارها" msgid "do emit colored output (default: auto-detect)" -msgstr "" +msgstr "خروجی رنگی تولید کنید (پیش‌فرض: تشخیص خودکار)" msgid "do not emit colored output (default: auto-detect)" -msgstr "" +msgstr "خروجی رنگی تولید نکنید (پیش‌فرض: تشخیص خودکار)" msgid "warning control options" -msgstr "" +msgstr "گزینه‌های کنترل هشدار" msgid "write warnings (and errors) to given file" -msgstr "" +msgstr "نوشتن هشدارها (و خطاها) در پرونده‌ی داده‌شده" msgid "turn warnings into errors" -msgstr "" +msgstr "تبدیل هشدارها به خطا" msgid "show full traceback on exception" -msgstr "" +msgstr "نمایش ردگیری کامل هنگام استثنا" msgid "run Pdb on exception" -msgstr "" +msgstr "اجرای Pdb هنگام استثنا" msgid "raise an exception on warnings" -msgstr "" +msgstr "پرتاب استثنا هنگام هشدارها" msgid "cannot combine -a option and filenames" -msgstr "" +msgstr "نمی‌توان گزینه‌ی -a و نام پرونده‌ها را با هم ترکیب کرد" #, python-format msgid "cannot open warning file '%s': %s" -msgstr "" +msgstr "نمی‌توان پرونده‌ی هشدار «%s» را باز کرد: %s" msgid "-D option argument must be in the form name=value" -msgstr "" +msgstr "آرگومان گزینه‌ی -D باید به شکل name=value باشد" msgid "-A option argument must be in the form name=value" -msgstr "" +msgstr "آرگومان گزینه‌ی -A باید به شکل name=value باشد" msgid "Collapse sidebar" -msgstr "" +msgstr "جمع کردن نوار کناری" msgid "Table of Contents" msgstr "فهرست مطالب" @@ -2327,20 +2410,20 @@ msgid "Search" msgstr "جست‌وجو" msgid "Go" -msgstr "" +msgstr "رفتن" msgid "Show Source" msgstr "نمایش منبع" msgid "Contents" -msgstr "" +msgstr "محتویات" #, python-format msgid "Search %(docstitle)s" -msgstr "" +msgstr "جست‌وجو در %(docstitle)s" msgid "Overview" -msgstr "" +msgstr "نمای کلی" msgid "Welcome! This is" msgstr "خوش آمدید! این" @@ -2349,375 +2432,383 @@ msgid "the documentation for" msgstr "مستندات" msgid "last updated" -msgstr "" +msgstr "آخرین به‌روزرسانی" msgid "Indices and tables:" -msgstr "" +msgstr "اندیس‌ها و جدول‌ها:" msgid "Complete Table of Contents" msgstr "فهرست مطالب کامل" msgid "lists all sections and subsections" -msgstr "" +msgstr "همه‌ی بخش‌ها و زیربخش‌ها را فهرست می‌کند" msgid "Search Page" -msgstr "" +msgstr "صفحه‌ی جست‌وجو" msgid "search this documentation" -msgstr "" +msgstr "این مستند را جست‌وجو کنید" msgid "Global Module Index" -msgstr "" +msgstr "اندیس سراسری ماژول‌ها" msgid "quick access to all modules" -msgstr "" +msgstr "دسترسی سریع به همه‌ی ماژول‌ها" msgid "General Index" -msgstr "" +msgstr "اندیس کلی" msgid "all functions, classes, terms" -msgstr "" +msgstr "همه‌ی توابع، کلاس‌ها و اصطلاحات" msgid "This Page" msgstr "این صفحه" #, python-format msgid "Index – %(key)s" -msgstr "" +msgstr "اندیس – %(key)s" msgid "Full index on one page" -msgstr "" +msgstr "اندیس کامل در یک صفحه" msgid "Quick search" -msgstr "" +msgstr "جست‌وجو سریع" msgid "Index pages by letter" -msgstr "" +msgstr "صفحه‌های اندیس بر اساس حرف" msgid "can be huge" -msgstr "" +msgstr "می‌تواند بزرگ باشد" msgid "Previous topic" -msgstr "" +msgstr "موضوع قبلی" msgid "previous chapter" -msgstr "" +msgstr "فصل قبلی" msgid "Next topic" -msgstr "" +msgstr "موضوع بعدی" msgid "next chapter" -msgstr "" +msgstr "فصل بعدی" msgid "Navigation" -msgstr "" +msgstr "ناوبری" #, python-format msgid "Search within %(docstitle)s" -msgstr "" +msgstr "جست‌وجو در %(docstitle)s" msgid "About these documents" msgstr "درباره‌ی مستندات" #, python-format msgid "© %(copyright_prefix)s %(copyright)s." -msgstr "" +msgstr "© %(copyright_prefix)s %(copyright)s." #, python-format msgid "Last updated on %(last_updated)s." -msgstr "" +msgstr "آخرین به‌روزرسانی در %(last_updated)s." #, python-format msgid "Created using Sphinx %(sphinx_version)s." -msgstr "" +msgstr "ساخته‌شده با Sphinx %(sphinx_version)s." msgid "" "Please activate JavaScript to enable the search\n" " functionality." msgstr "" +"لطفاً برای فعال‌سازی قابلیت جست‌وجو،\\n\n" +" JavaScript را فعال کنید." msgid "" "Searching for multiple words only shows matches that contain\n" " all words." msgstr "" +"جست‌وجو برای چندین واژه فقط تطبیق‌هایی را نشان می‌دهد که شامل\\n\n" +" همه‌ی واژه‌ها باشند." msgid "search" -msgstr "" +msgstr "جست‌وجو" msgid "Hide Search Matches" -msgstr "" +msgstr "پنهان کردن تطبیق‌های جست‌وجو" msgid "Search Results" -msgstr "" +msgstr "نتایج جست‌وجو" msgid "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." -msgstr "" +msgstr "جست‌وجوی شما با هیچ سندی مطابقت نداشت. لطفاً مطمئن شوید که همه‌ی واژه‌ها درست نوشته شده‌اند و دسته‌بندی‌های کافی را انتخاب کرده‌اید." #, python-brace-format msgid "Search finished, found one page matching the search query." msgid_plural "Search finished, found ${resultCount} pages matching the search query." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "جست‌وجو به پایان رسید؛ یک صفحه مطابق با عبارت جست‌وجو یافت شد." +msgstr[1] "جست‌وجو به پایان رسید؛ ${resultCount} صفحه مطابق با عبارت جست‌وجو یافت شد." msgid "Searching" -msgstr "" +msgstr "در حال جست‌وجو" msgid "Preparing search..." -msgstr "" +msgstr "در حال آماده‌سازی جست‌وجو..." msgid ", in " -msgstr "" +msgstr "، در " #, python-format msgid "%(filename)s — %(docstitle)s" -msgstr "" +msgstr "%(filename)s — %(docstitle)s" #, python-format msgid "Changes in Version %(version)s — %(docstitle)s" -msgstr "" +msgstr "تغییرات در نسخه‌ی %(version)s — %(docstitle)s" #, python-format msgid "Automatically generated list of changes in version %(version)s" -msgstr "" +msgstr "فهرست خودکار‌تولیدشده‌ی تغییرات در نسخه‌ی %(version)s" msgid "Library changes" -msgstr "" +msgstr "تغییرات کتابخانه" msgid "C API changes" -msgstr "" +msgstr "تغییرات API C" msgid "Other changes" -msgstr "" +msgstr "تغییرات دیگر" msgid "Expand sidebar" -msgstr "" +msgstr "باز کردن نوار کناری" msgid "Positional-only parameter separator (PEP 570)" -msgstr "" +msgstr "جداکننده‌ی پارامتر فقط‌جایگاهی (PEP 570)" msgid "Keyword-only parameters separator (PEP 3102)" -msgstr "" +msgstr "جداکننده‌ی پارامترهای فقط کلیدواژه‌ای (PEP 3102)" #, python-format msgid "%s() (in module %s)" -msgstr "" +msgstr "%s() (در ماژول %s)" #, python-format msgid "%s (in module %s)" -msgstr "" +msgstr "%s (در ماژول %s)" #, python-format msgid "%s (built-in variable)" -msgstr "" +msgstr "%s (متغیر توکار)" #, python-format msgid "%s (built-in class)" -msgstr "" +msgstr "%s (کلاس توکار)" #, python-format msgid "%s (class in %s)" -msgstr "" +msgstr "%s (کلاس در %s)" #, python-format msgid "%s() (%s class method)" -msgstr "" +msgstr "%s() (%s متد کلاس)" #, python-format msgid "%s() (%s static method)" -msgstr "" +msgstr "%s() (%s متد ایستا)" #, python-format msgid "%s (%s property)" -msgstr "" +msgstr "%s (%s پراپرتی)" #, python-format msgid "%s (type alias in %s)" -msgstr "" +msgstr "%s (مستعار نوع در %s)" msgid "Python Module Index" -msgstr "" +msgstr "اندیس ماژول‌های پایتون" msgid "modules" -msgstr "" +msgstr "ماژول‌ها" msgid "Deprecated" -msgstr "" +msgstr "منسوخ" msgid "exception" -msgstr "" +msgstr "استثنا" msgid "class method" -msgstr "" +msgstr "متد کلاس" msgid "static method" -msgstr "" +msgstr "متد ایستا" msgid "property" -msgstr "" +msgstr "پراپرتی" msgid "type alias" -msgstr "" +msgstr "مستعار نوع" #, python-format msgid "duplicate object description of %s, other instance in %s, use :no-index: for one of them" -msgstr "" +msgstr "توصیف شیء تکراری برای %s، نمونه‌ی دیگر در %s، برای یکی از آن‌ها از :no-index: استفاده کنید" #, python-format msgid "more than one target found for cross-reference %r: %s" -msgstr "" +msgstr "بیش از یک هدف برای ارجاع متقابل %r یافت شد: %s" msgid " (deprecated)" -msgstr "" +msgstr " \" (منسوخ)" msgid "Parameters" -msgstr "" +msgstr "پارامترها" msgid "Variables" -msgstr "" +msgstr "متغیر‌ها" msgid "Raises" -msgstr "" +msgstr "پرتاب‌ها" msgid "Template Parameters" -msgstr "" +msgstr "پارامترهای قالب" #, python-format msgid "%s (C++ %s)" -msgstr "" +msgstr "%s (C++ %s)" #, python-format msgid "" "Duplicate C++ declaration, also defined at %s:%s.\n" "Declaration is '.. cpp:%s:: %s'." msgstr "" +"اعلان C++ تکراری، همچنین در %s:%s تعریف شده است.\n" +"اعلان '.. cpp:%s:: %s' است." msgid "Return values" -msgstr "" +msgstr "مقادیر بازگشتی" msgid "union" -msgstr "" +msgstr "اجتماع" msgid "member" -msgstr "" +msgstr "عضو" msgid "type" -msgstr "" +msgstr "نوع" msgid "concept" -msgstr "" +msgstr "مفهوم" msgid "enum" -msgstr "" +msgstr "شمارشی" msgid "enumerator" -msgstr "" +msgstr "شمارشگر" msgid "function parameter" -msgstr "" +msgstr "پارامتر تابع" msgid "template parameter" -msgstr "" +msgstr "پارامتر قالب" #, python-format msgid "%s (C %s)" -msgstr "" +msgstr "%s (C %s)" #, python-format msgid "" "Duplicate C declaration, also defined at %s:%s.\n" "Declaration is '.. c:%s:: %s'." msgstr "" +"اعلان C تکراری، همچنین در %s:%s تعریف شده است.\n" +"اعلان '.. c:%s:: %s' است." msgid "variable" -msgstr "" +msgstr "متغیر" msgid "macro" -msgstr "" +msgstr "ماکرو" msgid "struct" -msgstr "" +msgstr "ساختار" #, python-format msgid "environment variable; %s" -msgstr "" +msgstr "متغیر محیطی؛ %s" #, python-format msgid "%s; configuration value" -msgstr "" +msgstr "%s؛ مقدار پیکربندی" msgid "Type" -msgstr "" +msgstr "نوع" msgid "Default" -msgstr "" +msgstr "پیش‌فرض" #, python-format msgid "Malformed option description %r, should look like \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" or \"+opt args\"" -msgstr "" +msgstr "توصیف گزینه‌ی بدشکل %r، باید به شکل \"opt\"، \"-opt args\"، \"--opt args\"، \"/opt args\" یا \"+opt args\" باشد" #, python-format msgid "%s command line option" -msgstr "" +msgstr "گزینه‌ی خط فرمان %s" msgid "command line option" -msgstr "" +msgstr "گزینه‌ی خط فرمان" msgid "glossary term must be preceded by empty line" -msgstr "" +msgstr "واژه‌ی واژه‌نامه باید پس از یک سطر خالی بیاید" msgid "glossary terms must not be separated by empty lines" -msgstr "" +msgstr "واژه‌های واژه‌نامه نباید با سطرهای خالی جدا شوند" msgid "glossary seems to be misformatted, check indentation" -msgstr "" +msgstr "به نظر می‌رسد واژه‌نامه بدشکل است، تورفتگی را بررسی کنید" msgid "glossary term" -msgstr "" +msgstr "واژه‌ی واژه‌نامه" msgid "grammar token" -msgstr "" +msgstr "توکن دستور زبان" msgid "reference label" -msgstr "" +msgstr "برچسب ارجاع" msgid "environment variable" -msgstr "" +msgstr "متغیر محیطی" msgid "program option" -msgstr "" +msgstr "گزینه‌ی برنامه" msgid "document" -msgstr "" +msgstr "سند" msgid "Module Index" -msgstr "" +msgstr "اندیس ماژول‌ها" #, python-format msgid "duplicate %s description of %s, other instance in %s" -msgstr "" +msgstr "توصیف %s تکراری از %s، نمونه‌ی دیگر در %s" msgid "numfig is disabled. :numref: is ignored." -msgstr "" +msgstr "numfig غیرفعال است. :numref: نادیده گرفته می‌شود." #, python-format msgid "Failed to create a cross reference. Any number is not assigned: %s" -msgstr "" +msgstr "ایجاد ارجاع متقابل ناموفق بود. هیچ شماره‌ای اختصاص داده نشده است: %s" #, python-format msgid "the link has no caption: %s" -msgstr "" +msgstr "پیوند عنوان ندارد: %s" #, python-format msgid "invalid numfig_format: %s (%r)" -msgstr "" +msgstr "numfig_format نامعتبر: %s (%r)" #, python-format msgid "invalid numfig_format: %s" -msgstr "" +msgstr "numfig_format نامعتبر: %s" #, python-format msgid "undefined label: %r" -msgstr "" +msgstr "برچسب تعریف‌نشده: %r" #, python-format msgid "Failed to create a cross reference. A title or caption not found: %r" From 8abb9bbe6d3c972e5f487a58d004db48e8220ddb Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Sun, 4 Oct 2026 09:40:37 +0330 Subject: [PATCH 04/15] Translate the rest of sphinx.po and polish existing translations --- sphinx.po | 1952 ++++++++++++++++++++++++++--------------------------- 1 file changed, 948 insertions(+), 1004 deletions(-) diff --git a/sphinx.po b/sphinx.po index cacc2834a..f7acc226c 100644 --- a/sphinx.po +++ b/sphinx.po @@ -13,424 +13,58 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-19 20:08+0330\n" -"PO-Revision-Date: 2026-09-29 18:57+0330\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2025-02-18 18:26+0000\n" +"PO-Revision-Date: 2026-08-28 10:54+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" -"Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" +"Language-Team: Persian (https://github.com/python/python-docs-fa/fa/)\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.9\n" - -msgid "Stable" -msgstr "پایدار" - -msgid "In development" -msgstr "در حال توسعه" - -msgid "This page" -msgstr "این صفحه" - -msgid "Report a bug" -msgstr "گزارش یک اشکال" - -msgid "Improve this page" -msgstr "بهبود این صفحه" - -msgid "Show source" -msgstr "نمایش منبع" - -msgid "Show translation source" -msgstr "نمایش منبع ترجمه" - -msgid "Download" -msgstr "دانلود" - -msgid "Download Python %(dl_version)s documentation" -msgstr "دانلود مستندات پایتون %(dl_version)s" - -msgid "Last updated on: %(last_updated)s." -msgstr "آخرین به‌روزرسانی در: %(last_updated)s." - -msgid "Download an archive containing all the documentation for this version of Python:" -msgstr "آرشیوی از تمام مستندات این نسخه از پایتون را دانلود کنید:" - -msgid "Format" -msgstr "قالب" - -msgid "Packed as .zip" -msgstr "فشرده‌شده به صورت .zip" - -msgid "Packed as .tar.bz2" -msgstr "فشرده‌شده به صورت .tar.bz2" - -msgid "HTML" -msgstr "HTML" - -msgid "Download" -msgstr "دانلود" - -msgid "Download" -msgstr "دانلود" - -msgid "Plain text" -msgstr "متن ساده" - -msgid "Download" -msgstr "دانلود" - -msgid "Download" -msgstr "دانلود" - -msgid "Texinfo" -msgstr "Texinfo" - -msgid "Download" -msgstr "دانلود" - -msgid "Download" -msgstr "دانلود" - -msgid "EPUB" -msgstr "EPUB" - -msgid "Download" -msgstr "دانلود" - -msgid "" -"\n" -"We no longer provide pre-built PDFs of the documentation.\n" -"To build a PDF archive, follow the instructions in the\n" -"Developer's Guide\n" -"and run make dist-pdf in the Doc/ directory of a copy of the CPython repository.\n" -msgstr "" -"\n" -"ما دیگر پرونده‌های PDF از پیش‌ساخته‌شده‌ی مستندات را ارائه نمی‌دهیم.\n" -"برای ساختن یک آرشیو PDF، دستورالعمل‌های موجود در\n" -"راهنمای توسعه‌دهندگان را دنبال کنید\n" -"و دستور make dist-pdf را در پوشه‌ی Doc/ یک نسخه‌ی محلی (کپی) از مخزن CPython اجرا کنید.\n" - -msgid "" -"\n" -"See the directory listing\n" -"for file sizes." -msgstr "" -"\n" -"برای مشاهده‌ی اندازه‌ی پرونده‌ها، به فهرست مراجعه کنید." - -msgid "Problems" -msgstr "مشکلات" - -msgid "" -"Open an issue\n" -"if you have comments or suggestions for the Python documentation." -msgstr "" -"اگر نظر یا پیشنهادی برای مستندات پایتون دارید،\n" -"یک گزارش مشکل باز کنید." - -msgid "Availability" -msgstr "دسترس‌پذیری" - -msgid "Part of the" -msgstr "قسمتی از" - -msgid "Limited API" -msgstr "API محدود" - -msgid "Stable ABI" -msgstr "ABI پایدار" - -msgid "(as an opaque struct)" -msgstr "(به‌عنوان یک ساختار کدر)" - -msgid "(including all members)" -msgstr "شامل تمام اعضا" - -msgid "since version %s" -msgstr "از نسخه‌ی %s" - -msgid "(Only some members are part of the stable ABI.)" -msgstr "(تنها برخی از اعضا قسمتی از ABI پایدار هستند.)" - -msgid "This is" -msgstr "این است" - -msgid "Unstable API" -msgstr "API ناپایدار" - -msgid ". It may change without warning in minor releases." -msgstr "این ممکن است بدون هشدار در نسخه‌های جزئی تغییر کند." - -msgid "Return value: Always NULL." -msgstr "مقدار بازگشتی: همیشه NULL." - -msgid "Return value: New reference." -msgstr "مقدار بازگشتی: ارجاع جدید." - -msgid "Return value: Borrowed reference." -msgstr "مقدار بازگشتی: ارجاع امانتی." - -msgid "CPython implementation detail:" -msgstr "جزئیات پیاده‌سازی در سی‌پایتون:" - -msgid "Deprecated since version %s, will be removed in version %s" -msgstr "منسوخ شده از نسخه‌ی %s, در نسخه‌ی %s حذف خواهد شد" - -msgid "Deprecated since version %s, removed in version %s" -msgstr "منسوخ شده از نسخه‌ی %s، در نسخه‌ی %s حذف شده است" - -msgid ":term:`Soft deprecated` since version %s" -msgstr ":term:`منسوخ‌سازی نرم ` از نسخه‌ی %s" - -msgid "in development" -msgstr "در حال توسعه" - -msgid "pre-release" -msgstr "نسخه‌ی پیش‌انتشار" - -msgid "stable" -msgstr "پایدار" - -msgid "security-fixes" -msgstr "اصلاحیه‌های امنیتی" - -msgid "EOL" -msgstr "پایان پشتیبانی" - -msgid "Welcome! This is the official documentation for Python %(release)s." -msgstr "خوش‌آمدید! این مستندات رسمی پایتون نسخه‌ی %(release)s است." - -msgid "Documentation sections:" -msgstr "بخش‌های مستند:" - -msgid "What's new in Python %(version)s?" -msgstr "چه چیز جدیدی در پایتون نسخه‌ی %(version)s است؟" - -msgid "Or all \"What's new\" documents since Python 2.0" -msgstr "یا تمام مستندات «چه چیز جدیدی» از پایتون ۲.۰" - -msgid "Tutorial" -msgstr "آموزش" - -msgid "Start here: a tour of Python's syntax and features" -msgstr "از اینجا شروع کنید: سفری در سینتکس و ویژگی‌های پایتون" - -msgid "Built-ins reference" -msgstr "مرجع توکارها" - -msgid "Built-in functions and classes" -msgstr "توابع و کلاس‌های توکار" - -msgid "Library reference" -msgstr "مرجع کتابخانه" - -msgid "Standard library modules" -msgstr "ماژول‌های کتابخانه‌ی استاندارد" - -msgid "Language reference" -msgstr "مرجع زبان" - -msgid "Syntax and language elements" -msgstr "المان‌های نحوی و زبانی" - -msgid "Python setup and usage" -msgstr "راه‌اندازی و استفاده از پایتون" - -msgid "How to install, configure, and use Python" -msgstr "نحوه‌ی نصب، پیکربندی و استفاده از پایتون" - -msgid "Python HOWTOs" -msgstr "راهنماهای گام‌به‌گام پایتون" - -msgid "In-depth topic manuals" -msgstr "راهنماهای موضوعی عمیق" - -msgid "Installing Python modules" -msgstr "نصب ماژول‌های پایتون" - -msgid "Third-party modules and PyPI.org" -msgstr "ماژول‌های شخص ثالث و PyPI.org" - -msgid "Extending and embedding" -msgstr "توسعه و تعبیه" - -msgid "For C/C++ programmers" -msgstr "برای برنامه‌نویسان C/C++" - -msgid "Python's C API" -msgstr "API C پایتون" - -msgid "C API reference" -msgstr "مرجع API C" - -msgid "FAQs" -msgstr "سوالات متداول" - -msgid "Frequently asked questions (with answers!)" -msgstr "سؤالات متداول (همراه با پاسخ!)" - -msgid "Deprecations" -msgstr "موارد منسوخ‌شده" - -msgid "Deprecated functionality" -msgstr "قابلیت‌های منسوخ‌شده" - -msgid "Other resources:" -msgstr "منابع دیگر:" - -msgid "Python developer's guide" -msgstr "راهنمای توسعه‌دهندگان پایتون" - -msgid "Information on contributing to Python" -msgstr "اطلاعاتی درباره‌ی مشارکت در پایتون" - -msgid "Python Packaging User Guide" -msgstr "راهنمای کاربر بسته‌بندی پایتون" - -msgid "Resources relating to Python packaging" -msgstr "منابع مربوط به بسته‌بندی پایتون" - -msgid "Audio/visual talks" -msgstr "گفتارهای صوتی/تصویری" - -msgid "Podcasts, talks, and video presentations from the community" -msgstr "پادکست‌ها، گفتارها و ارائه‌های تصویری از سوی کامیونیتی" - -msgid "Python Enhancement Proposals" -msgstr "پیشنهادهای بهبود پایتون" - -msgid "Index of proposed improvements to Python" -msgstr "اندیس بهبودهای پیشنهادی پایتون" - -msgid "Static Typing with Python" -msgstr "تایپ‌گذاری ایستا (Static Typing) در پایتون" - -msgid "Information and guides about Python type safety" -msgstr "اطلاعات و راهنماهایی درباره‌ی ایمنی تایپ در پایتون" - -msgid "Indices, glossary, and search:" -msgstr "اندیس‌ها، واژه‌نامه و جست‌وجو:" - -msgid "Global module index" -msgstr "اندیس ماژول‌های سراسری" - -msgid "All modules and libraries" -msgstr "همه‌ی ماژول‌ها و کتابخانه‌ها" - -msgid "General index" -msgstr "اندیس کلی" - -msgid "All functions, classes, and terms" -msgstr "همه‌ی توابع، کلاس‌ها و اصطلاحات" - -msgid "Glossary" -msgstr "واژه‌نامه" - -msgid "Terms explained" -msgstr "اصطلاحات توضیح داده شده" - -msgid "Search page" -msgstr "صفحه‌ی جست‌وجو" - -msgid "Search this documentation" -msgstr "این مستند را جست‌وجو کنید" - -msgid "Complete table of contents" -msgstr "جدول کامل محتویات" - -msgid "All sections and subsections" -msgstr "همه‌ی بخش‌ها و زیربخش‌ها" - -msgid "Project information:" -msgstr "اطلاعات پروژه:" - -msgid "Reporting issues" -msgstr "گزارش مشکلات" - -msgid "Contributing to docs" -msgstr "مشارکت در مستندات" - -msgid "Download the documentation" -msgstr "دانلود مستندات" - -msgid "History and license of Python" -msgstr "تاریخچه و مجوز پایتون" - -msgid "Copyright" -msgstr "حق نشر" - -msgid "About the documentation" -msgstr "درباره‌ی مستندات" - -msgid "Docs by version" -msgstr "مستندات بر اساس نسخه" - -msgid "All versions" -msgstr "همه‌ی نسخه‌ها" - -msgid "" -"This document is for an old version of Python that is no longer supported.\n" -" You should upgrade, and read the" -msgstr "" -"این سند مربوط به نسخه‌ای قدیمی از پایتون است که دیگر پشتیبانی نمی‌شود.\n" -" شما باید نسخه‌ی خود را ارتقا دهید و مطالب مربوط به" - -msgid "Python documentation for the current stable release" -msgstr "مستندات پایتون برای نسخه‌ی پایدار فعلی" - -msgid "" -"This is a deploy preview created from a pull request.\n" -" For authoritative documentation, see" -msgstr "" -"این یک پیش‌نمایش مستقرشده است که از یک درخواست ادغام ایجاد شده است.\n" -" برای مشاهده‌ی مستندات معتبر، به" - -msgid "the current stable release" -msgstr "نسخه‌ی پایدار فعلی" +"X-Generator: Poedit 3.6\n" #, python-format msgid "The %s extension is required by needs_extensions settings, but it is not loaded." -msgstr "افزونه‌ی %s توسط تنظیمات needs_extensions لازم است، اما بارگذاری نشده است." +msgstr "افزونه‌ی %s توسط تنظیمات needs_extensions لازم است، اما بار نشده است." #, python-format msgid "This project needs the extension %s at least in version %s and therefore cannot be built with the loaded version (%s)." -msgstr "این پروژه به افزونه‌ی %s حداقل در نسخه‌ی %s نیاز دارد و بنابراین نمی‌تواند با نسخه‌ی بارگذاری‌شده‌ی (%s) ساخته شود." +msgstr "این پروژه به افزونه‌ی %s حداقل در نسخه‌ی %s نیاز دارد و بنابراین نمی‌توان آن را با نسخه‌ی بارشده (%s) ساخت." #, python-format msgid "Cannot find source directory (%s)" -msgstr "نمی‌توان پوشه‌ی مبدأ (%s) را پیدا کرد." +msgstr "پوشه‌ی منبع (%s) پیدا نشد" #, python-format msgid "Output directory (%s) is not a directory" msgstr "پوشه‌ی خروجی (%s) یک پوشه نیست" msgid "Source directory and destination directory cannot be identical" -msgstr "پوشه‌ی مبدأ و پوشه‌ی مقصد نمی‌توانند یکسان باشند" +msgstr "پوشه‌ی منبع و پوشه‌ی مقصد نمی‌توانند یکسان باشند" #, python-format msgid "Running Sphinx v%s" -msgstr "در حال اجرای Sphinx v%s" +msgstr "در حال اجرای Sphinx نسخه‌ی %s" #, python-format msgid "This project needs at least Sphinx v%s and therefore cannot be built with this version." -msgstr "این پروژه حداقل به Sphinx v%s نیاز دارد و بنابراین نمی‌تواند با این نسخه ساخته شود." +msgstr "این پروژه حداقل به Sphinx نسخه‌ی %s نیاز دارد و بنابراین نمی‌توان آن را با این نسخه ساخت." msgid "making output directory" -msgstr "در حال ایجاد پوشه‌ی خروجی" +msgstr "در حال ساخت پوشه‌ی خروجی" #, python-format msgid "while setting up extension %s:" msgstr "هنگام راه‌اندازی افزونه‌ی %s:" msgid "'setup' as currently defined in conf.py isn't a Python callable. Please modify its definition to make it a callable function. This is needed for conf.py to behave as a Sphinx extension." -msgstr "'setup' آن‌گونه که اکنون در conf.py تعریف شده، یک فراخوانی‌پذیر پایتون نیست. لطفاً تعریف آن را طوری تغییر دهید که یک تابع فراخوانی‌پذیر شود. این کار لازم است تا conf.py بتواند به‌عنوان یک افزونه‌ی Sphinx رفتار کند." +msgstr "«setup» به‌شکلی که در حال حاضر در conf.py تعریف شده، یک فراخوانی‌پذیر پایتونی نیست. لطفاً تعریف آن را تغییر دهید تا به یک تابع فراخوانی‌پذیر تبدیل شود. این کار برای اینکه conf.py مانند یک افزونه‌ی Sphinx رفتار کند، لازم است." #, python-format msgid "loading translations [%s]... " -msgstr "در حال بارگذاری ترجمه‌های [%s]... " +msgstr "در حال بارگذاری ترجمه‌ها [%s]... " msgid "done" msgstr "انجام شد" @@ -443,115 +77,115 @@ msgstr "در حال بارگذاری محیط پیکل‌شده" #, python-format msgid "failed: %s" -msgstr "شکست: %s" +msgstr "شکست خورد: %s" msgid "No builder selected, using default: html" -msgstr "سازنده‌ای انتخاب نشده است، استفاده از پیش‌فرض: html" +msgstr "هیچ سازنده‌ای انتخاب نشد، استفاده از پیش‌فرض: html" msgid "build finished with problems." -msgstr "ساخت با مشکلات به پایان رسید." +msgstr "ساخت با مشکلاتی به پایان رسید." msgid "build succeeded." -msgstr "ساخت با موفقیت انجام شد." +msgstr "ساخت با موفقیت به پایان رسید." msgid "build finished with problems, 1 warning (with warnings treated as errors)." -msgstr "ساخت با مشکلات به پایان رسید، ۱ هشدار (با در نظر گرفتن هشدارها به‌عنوان خطا)." +msgstr "ساخت با مشکلاتی به پایان رسید، ۱ هشدار (با هشدارها به‌عنوان خطا برخورد شده است)." msgid "build finished with problems, 1 warning." -msgstr "ساخت با مشکلات به پایان رسید، ۱ هشدار." +msgstr "ساخت با مشکلاتی به پایان رسید، ۱ هشدار." msgid "build succeeded, 1 warning." -msgstr "ساخت با موفقیت انجام شد، ۱ هشدار." +msgstr "ساخت با موفقیت به پایان رسید، ۱ هشدار." #, python-format msgid "build finished with problems, %s warnings (with warnings treated as errors)." -msgstr "ساخت با مشکلات به پایان رسید، %s هشدار (با در نظر گرفتن هشدارها به‌عنوان خطا)." +msgstr "ساخت با مشکلاتی به پایان رسید، %s هشدار (با هشدارها به‌عنوان خطا برخورد شده است)." #, python-format msgid "build finished with problems, %s warnings." -msgstr "ساخت با مشکلات به پایان رسید، %s هشدار." +msgstr "ساخت با مشکلاتی به پایان رسید، %s هشدار." #, python-format msgid "build succeeded, %s warnings." -msgstr "ساخت با موفقیت انجام شد، %s هشدار." +msgstr "ساخت با موفقیت به پایان رسید، %s هشدار." #, python-format msgid "node class %r is already registered, its visitors will be overridden" -msgstr "کلاس گره‌ی %r از قبل ثبت شده است؛ بازدیدکنندگان آن بازنویسی خواهند شد" +msgstr "کلاس گره‌ی %r هم‌اکنون ثبت شده است، بازدیدکننده‌های آن بازنویسی خواهند شد" #, python-format msgid "directive %r is already registered and will not be overridden" -msgstr "دایرکتیو %r از قبل ثبت شده است و بازنویسی نخواهد شد" +msgstr "دایرکتیو %r هم‌اکنون ثبت شده و بازنویسی نخواهد شد" #, python-format msgid "role %r is already registered and will not be overridden" -msgstr "نقش %r از قبل ثبت شده است و بازنویسی نخواهد شد" +msgstr "رول %r هم‌اکنون ثبت شده و بازنویسی نخواهد شد" #, python-format msgid "the %s extension does not declare if it is safe for parallel reading, assuming it isn't - please ask the extension author to check and make it explicit" -msgstr "افزونه‌ی %s اعلام نمی‌کند که آیا برای خواندن موازی ایمن است یا نه؛ فرض بر این است که ایمن نیست — لطفاً از نویسنده‌ی افزونه بخواهید آن را بررسی و صریح کند" +msgstr "افزونه‌ی %s مشخص نکرده که برای خواندن موازی امن است یا نه، فرض بر ناامن بودن است - لطفاً از نویسنده‌ی افزونه بخواهید این موضوع را بررسی و صریح کند" #, python-format msgid "the %s extension is not safe for parallel reading" -msgstr "افزونه‌ی %s برای خواندن موازی ایمن نیست" +msgstr "افزونه‌ی %s برای خواندن موازی امن نیست" #, python-format msgid "the %s extension does not declare if it is safe for parallel writing, assuming it isn't - please ask the extension author to check and make it explicit" -msgstr "افزونه‌ی %s اعلام نمی‌کند که آیا برای نوشتن موازی ایمن است یا نه؛ فرض بر این است که ایمن نیست — لطفاً از نویسنده‌ی افزونه بخواهید آن را بررسی و صریحاً اعلام کند" +msgstr "افزونه‌ی %s مشخص نکرده که برای نوشتن موازی امن است یا نه، فرض بر ناامن بودن است - لطفاً از نویسنده‌ی افزونه بخواهید این موضوع را بررسی و صریح کند" #, python-format msgid "the %s extension is not safe for parallel writing" -msgstr "افزونه‌ی %s برای نوشتن موازی ایمن نیست" +msgstr "افزونه‌ی %s برای نوشتن موازی امن نیست" #, python-format msgid "doing serial %s" -msgstr "در حال انجام سریال %s" +msgstr "در حال انجام %s به‌صورت سریال" #, python-format msgid "config directory doesn't contain a conf.py file (%s)" -msgstr "پوشه‌ی پیکربندی (%s) شامل یک فایل conf.py نمی‌شود" +msgstr "پوشه‌ی پیکربندی حاوی پرونده‌ی conf.py نیست (%s)" msgid "Invalid configuration value found: 'language = None'. Update your configuration to a valid language code. Falling back to 'en' (English)." -msgstr "مقدار پیکربندی نامعتبر یافت شد: 'language = None'. پیکربندی خود را به یک کد زبان معتبر به‌روزرسانی کنید. بازگشت به 'en' (English)." +msgstr "مقدار پیکربندی نامعتبری یافت شد: «language = None». پیکربندی خود را به یک کد زبان معتبر به‌روزرسانی کنید. بازگشت به «en» (انگلیسی)." #, python-format msgid "'%s' must be '0' or '1', got '%s'" -msgstr "'%s' باید '0' یا '1' باشد، '%s' دریافت شد" +msgstr "«%s» باید «۰» یا «۱» باشد، «%s» دریافت شد" #, python-format msgid "cannot override dictionary config setting %r, ignoring (use %r to set individual elements)" -msgstr "نمی‌توان تنظیم پیکربندی دیکشنری %r را بازنویسی کرد، نادیده گرفته می‌شود (برای تنظیم عناصر مجزا از %r استفاده کنید)" +msgstr "نمی‌توان تنظیم پیکربندی دیکشنری‌ای %r را بازنویسی کرد، نادیده گرفته شد (برای تنظیم عناصر جداگانه از %r استفاده کنید)" #, python-format msgid "invalid number %r for config value %r, ignoring" -msgstr "عدد نامعتبر %r برای مقدار پیکربندی %r، نادیده گرفته می‌شود" +msgstr "عدد نامعتبر %r برای مقدار پیکربندی %r، نادیده گرفته شد" #, python-format msgid "cannot override config setting %r with unsupported type, ignoring" -msgstr "نمی‌توان تنظیم پیکربندی %r را با نوع پشتیبانی‌نشده بازنویسی کرد، نادیده گرفته می‌شود" +msgstr "نمی‌توان تنظیم پیکربندی %r را با نوعی پشتیبانی‌نشده بازنویسی کرد، نادیده گرفته شد" #, python-format msgid "unknown config value %r in override, ignoring" -msgstr "مقدار پیکربندی ناشناخته %r در بازنویسی، نادیده گرفته می‌شود" +msgstr "مقدار پیکربندی ناشناخته‌ی %r در بازنویسی، نادیده گرفته شد" #, python-format msgid "No such config value: %r" -msgstr "چنین مقدار پیکربندی وجود ندارد: %r" +msgstr "چنین مقدار پیکربندی‌ای وجود ندارد: %r" #, python-format msgid "Config value %r already present" -msgstr "مقدار پیکربندی %r از قبل موجود است" +msgstr "مقدار پیکربندی %r هم‌اکنون وجود دارد" #, python-format msgid "cannot cache unpickleable configuration value: %r (because it contains a function, class, or module object)" -msgstr "نمی‌توان مقدار پیکربندی پیکل‌ناپذیر را نهان کرد: %r (چون شامل یک تابع، کلاس یا شیء ماژول است)" +msgstr "نمی‌توان مقدار پیکربندی پیکل‌ناپذیر %r را در نهانگاه ذخیره کرد (چون حاوی یک تابع، کلاس یا شیء ماژول است)" #, python-format msgid "There is a syntax error in your configuration file: %s\n" -msgstr "یک خطای سینتکس در پرونده‌ی پیکربندی شما وجود دارد: %s\n" +msgstr "خطای نحوی در پرونده‌ی پیکربندی شما وجود دارد: %s\n" msgid "The configuration file (or one of the modules it imports) called sys.exit()" -msgstr "پرونده‌ی پیکربندی (یا یکی از ماژول‌هایی که ایمپورت می‌کند) sys.exit() را فراخوانی کرد" +msgstr "پرونده‌ی پیکربندی (یا یکی از ماژول‌هایی که ایمپورت می‌کند) تابع ()sys.exit را فراخوانی کرد" #, python-format msgid "" @@ -559,21 +193,21 @@ msgid "" "\n" "%s" msgstr "" -"یک خطای برنامه‌ای در پرونده‌ی پیکربندی شما وجود دارد:\n" +"خطایی برنامه‌ای در پرونده‌ی پیکربندی شما وجود دارد:\n" "\n" "%s" #, python-format msgid "Failed to convert %r to a frozenset" -msgstr "تبدیل %r به frozenset ناموفق بود" +msgstr "تبدیل %r به frozenset شکست خورد" #, python-format msgid "Converting `source_suffix = %r` to `source_suffix = %r`." -msgstr "در حال تبدیل `source_suffix = %r` به `source_suffix = %r`." +msgstr "در حال تبدیل «source_suffix = %r» به «source_suffix = %r»." #, python-format msgid "The config value `source_suffix' expects a dictionary, a string, or a list of strings. Got `%r' instead (type %s)." -msgstr "مقدار پیکربندی `source_suffix' انتظار می‌رود یک دیکشنری، یک رشته، یا لیستی از رشته‌ها باشد. به‌جای آن `%r' دریافت شد (نوع %s)." +msgstr "مقدار پیکربندی «source_suffix» انتظار یک دیکشنری، رشته یا فهرستی از رشته‌ها را دارد. به‌جای آن «%r» (نوع %s) دریافت شد." #, python-format msgid "Section %s" @@ -589,94 +223,94 @@ msgstr "جدول %s" #, python-format msgid "Listing %s" -msgstr "فهرست %s" +msgstr "لیستینگ %s" #, python-brace-format msgid "The config value `{name}` has to be a one of {candidates}, but `{current}` is given." -msgstr "مقدار پیکربندی `{name}` باید یکی از {candidates} باشد، اما `{current}` داده شده است." +msgstr "مقدار پیکربندی «{name}» باید یکی از {candidates} باشد، اما «{current}» داده شده است." #, python-brace-format msgid "The config value `{name}' has type `{current.__name__}'; expected {permitted}." -msgstr "مقدار پیکربندی `{name}' از نوع `{current.__name__}' است؛ {permitted} انتظار می‌رفت." +msgstr "مقدار پیکربندی «{name}» از نوع «{current.__name__}» است؛ {permitted} انتظار می‌رفت." #, python-brace-format msgid "The config value `{name}' has type `{current.__name__}', defaults to `{default.__name__}'." -msgstr "مقدار پیکربندی `{name}' از نوع `{current.__name__}' است، به‌طور پیش‌فرض `{default.__name__}' است." +msgstr "مقدار پیکربندی «{name}» از نوع «{current.__name__}» است و مقدار پیش‌فرض آن «{default.__name__}» است." #, python-format msgid "primary_domain %r not found, ignored." -msgstr "primary_domain %r یافت نشد، نادیده گرفته شد." +msgstr "primary_domain %r پیدا نشد، نادیده گرفته شد." msgid "Sphinx now uses \"index\" as the master document by default. To keep pre-2.0 behaviour, set \"master_doc = 'contents'\"." -msgstr "Sphinx اکنون به‌طور پیش‌فرض از \"index\" به‌عنوان سند اصلی استفاده می‌کند. برای حفظ رفتار پیش از ۲.۰، \"master_doc = 'contents'\" را تنظیم کنید." +msgstr "Sphinx اکنون به‌طور پیش‌فرض از «index» به‌عنوان سند اصلی استفاده می‌کند. برای حفظ رفتار پیش از نسخه‌ی ۲.۰، مقدار «master_doc = 'contents'» را تنظیم کنید." #, python-format msgid "Pygments lexer name %r is not known" -msgstr "نام لکسر Pygments %r ناشناخته است" +msgstr "نام لکسر Pygments با نام %r شناخته‌شده نیست" #, python-format msgid "Lexing literal_block %r as \"%s\" resulted in an error at token: %r. Retrying in relaxed mode." -msgstr "لکسر کردن literal_block %r به‌عنوان \"%s\" منجر به خطا در توکن: %r شد. تلاش مجدد در حالت آسوده." +msgstr "لکسینگ literal_block با نام %r به‌صورت «%s» در توکن %r به خطا انجامید. تلاش دوباره در حالت آزاد." #, python-format msgid "Theme configuration sections other than [theme] and [options] are not supported (tried to get a value from %r)." -msgstr "بخش‌های پیکربندی تم غیر از [theme] و [options] پشتیبانی نمی‌شوند (تلاش شد مقداری از %r دریافت شود)." +msgstr "بخش‌های پیکربندی پوسته غیر از [theme] و [options] پشتیبانی نمی‌شوند (تلاش برای دریافت مقدار از %r)." #, python-format msgid "setting %s.%s occurs in none of the searched theme configs" -msgstr "تنظیم %s.%s در هیچ‌کدام از پیکربندی‌های تم جست‌وجوشده وجود ندارد" +msgstr "تنظیم %s.%s در هیچ‌کدام از پیکربندی‌های پوسته‌ی جست‌وجوشده وجود ندارد" #, python-format msgid "unsupported theme option %r given" -msgstr "گزینه‌ی تم پشتیبانی‌نشده %r داده شد" +msgstr "گزینه‌ی پشتیبانی‌نشده‌ی پوسته‌ی %r داده شد" #, python-format msgid "file %r on theme path is not a valid zipfile or contains no theme" -msgstr "پرونده‌ی %r در مسیر تم یک zipfile معتبر نیست یا شامل تم نیست" +msgstr "پرونده‌ی %r در مسیر پوسته یک زیپ‌فایل معتبر نیست یا حاوی هیچ پوسته‌ای نیست" #, python-format msgid "no theme named %r found (missing theme.toml?)" -msgstr "هیچ تمی با نام %r یافت نشد (theme.toml گم شده است؟)" +msgstr "هیچ پوسته‌ای با نام %r پیدا نشد (theme.toml گم شده؟)" #, python-format msgid "The %r theme has circular inheritance" -msgstr "تم %r ارث‌بری حلقه‌ای دارد" +msgstr "پوسته‌ی %r دارای وراثت چرخه‌ای است" #, python-format msgid "The %r theme inherits from %r, which is not a loaded theme. Loaded themes are: %s" -msgstr "تم %r از %r ارث می‌برد، که یک تم بارگذاری‌شده نیست. تم‌های بارگذاری‌شده عبارت‌اند از: %s" +msgstr "پوسته‌ی %r از %r ارث‌بری می‌کند که پوسته‌ای بارشده نیست. پوسته‌های بارشده عبارت‌اند از: %s" #, python-format msgid "The %r theme has too many ancestors" -msgstr "تم %r نیاکان زیادی دارد" +msgstr "پوسته‌ی %r اجداد بیش از حد زیادی دارد" #, python-format msgid "no theme configuration file found in %r" -msgstr "هیچ پرونده‌ی پیکربندی تمی در %r پیدا نشد" +msgstr "هیچ پرونده‌ی پیکربندی پوسته‌ای در %r پیدا نشد" #, python-format msgid "theme %r doesn't have the \"theme\" table" -msgstr "تم %r جدول \"theme\" را ندارد" +msgstr "پوسته‌ی %r جدول «theme» را ندارد" #, python-format msgid "The %r theme \"[theme]\" table is not a table" -msgstr "جدول \"[theme]\" تم %r یک جدول نیست" +msgstr "جدول «[theme]» در پوسته‌ی %r یک جدول نیست" #, python-format msgid "The %r theme must define the \"theme.inherit\" setting" -msgstr "تم %r باید تنظیم \"theme.inherit\" را تعریف کند" +msgstr "پوسته‌ی %r باید تنظیم «theme.inherit» را تعریف کند" #, python-format msgid "The %r theme \"[options]\" table is not a table" -msgstr "جدول \"[options]\" تم %r یک جدول نیست" +msgstr "جدول «[options]» در پوسته‌ی %r یک جدول نیست" #, python-format msgid "The \"theme.pygments_style\" setting must be a table. Hint: \"%s\"" -msgstr "تنظیم \"theme.pygments_style\" باید یک جدول باشد. راهنما: \"%s\"" +msgstr "تنظیم «theme.pygments_style» باید یک جدول باشد. راهنمایی: «%s»" #, python-format msgid "Event %r already present" -msgstr "رویداد %r از قبل موجود است" +msgstr "رویداد %r هم‌اکنون وجود دارد" #, python-format msgid "Unknown event name: %s" @@ -684,31 +318,31 @@ msgstr "نام رویداد ناشناخته: %s" #, python-format msgid "Handler %r for event %r threw an exception" -msgstr "هندلر %r برای رویداد %r یک استثنا پرتاب کرد" +msgstr "هندلر %r برای رویداد %r استثنایی پرتاب کرد" #, python-format msgid "" "multiple files found for the document \"%s\": %s\n" "Use %r for the build." msgstr "" -"چندین پرونده برای سند \"%s\" یافت شد: %s\n" +"چندین پرونده برای سند «%s» پیدا شد: %s\n" "برای ساخت از %r استفاده کنید." #, python-format msgid "Ignored unreadable document %r." -msgstr "سند ناخوانای %r نادیده گرفته شد." +msgstr "سند غیرقابل‌خواندن %r نادیده گرفته شد." #, python-format msgid "Builder class %s has no \"name\" attribute" -msgstr "کلاس سازنده‌ی %s ویژگی \"name\" را ندارد" +msgstr "کلاس سازنده‌ی %s ویژگی «name» ندارد" #, python-format msgid "Builder %r already exists (in module %s)" -msgstr "سازنده‌ی %r از قبل وجود دارد (در ماژول %s)" +msgstr "سازنده‌ی %r هم‌اکنون وجود دارد (در ماژول %s)" #, python-format msgid "Builder name %s not registered or available through entry point" -msgstr "نام سازنده‌ی %s ثبت نشده است یا از طریق نقطه‌ی ورود در دسترس نیست" +msgstr "نام سازنده‌ی %s ثبت نشده یا از طریق نقطه‌ی ورود در دسترس نیست" #, python-format msgid "Builder name %s not registered" @@ -716,7 +350,7 @@ msgstr "نام سازنده‌ی %s ثبت نشده است" #, python-format msgid "domain %s already registered" -msgstr "دامنه‌ی %s از قبل ثبت شده است" +msgstr "دامنه‌ی %s هم‌اکنون ثبت شده است" #, python-format msgid "domain %s not yet registered" @@ -724,82 +358,82 @@ msgstr "دامنه‌ی %s هنوز ثبت نشده است" #, python-format msgid "The %r directive is already registered to domain %s" -msgstr "دایرکتیو %r از قبل در دامنه‌ی %s ثبت شده است" +msgstr "دایرکتیو %r هم‌اکنون در دامنه‌ی %s ثبت شده است" #, python-format msgid "The %r role is already registered to domain %s" -msgstr "نقش %r از قبل در دامنه‌ی %s ثبت شده است" +msgstr "رول %r هم‌اکنون در دامنه‌ی %s ثبت شده است" #, python-format msgid "The %r index is already registered to domain %s" -msgstr "اندیس %r از قبل در دامنه‌ی %s ثبت شده است" +msgstr "اندیس %r هم‌اکنون در دامنه‌ی %s ثبت شده است" #, python-format msgid "The %r object_type is already registered" -msgstr "نوع شیء %r از قبل ثبت شده است" +msgstr "object_type با نام %r هم‌اکنون ثبت شده است" #, python-format msgid "The %r crossref_type is already registered" -msgstr "نوع ارجاع متقابل %r از قبل ثبت شده است" +msgstr "crossref_type با نام %r هم‌اکنون ثبت شده است" #, python-format msgid "source_suffix %r is already registered" -msgstr "source_suffix %r از قبل ثبت شده است" +msgstr "source_suffix با نام %r هم‌اکنون ثبت شده است" #, python-format msgid "source_parser for %r is already registered" -msgstr "source_parser برای %r از قبل ثبت شده است" +msgstr "source_parser برای %r هم‌اکنون ثبت شده است" #, python-format msgid "Source parser for %s not registered" -msgstr "تجزیه‌گر مبدأ برای %s ثبت نشده است" +msgstr "پارسر منبع برای %s ثبت نشده است" #, python-format msgid "Translator for %r already exists" -msgstr "مترجم برای %r از قبل وجود دارد" +msgstr "مترجم برای %r هم‌اکنون وجود دارد" #, python-format msgid "kwargs for add_node() must be a (visit, depart) function tuple: %r=%r" -msgstr "آرگومان‌های کلیدواژه‌ای برای add_node() باید یک تاپل تابعی (visit, depart) باشند: %r=%r" +msgstr "آرگومان‌های کلیدواژه‌ای ()add_node باید یک تاپل تابعی (visit, depart) باشد: %r=%r" #, python-format msgid "enumerable_node %r already registered" -msgstr "enumerable_node %r از قبل ثبت شده است" +msgstr "enumerable_node با نام %r هم‌اکنون ثبت شده است" #, python-format msgid "math renderer %s is already registered" -msgstr "رندرکننده‌ی ریاضی %s از قبل ثبت شده است" +msgstr "رندرکننده‌ی ریاضی %s هم‌اکنون ثبت شده است" #, python-format msgid "the extension %r was already merged with Sphinx since version %s; this extension is ignored." -msgstr "افزونه‌ی %r از نسخه‌ی %s از قبل با Sphinx ادغام شده است؛ این افزونه نادیده گرفته می‌شود." +msgstr "افزونه‌ی %r از نسخه‌ی %s با Sphinx ادغام شده است؛ این افزونه نادیده گرفته می‌شود." msgid "Original exception:\n" msgstr "استثنای اصلی:\n" #, python-format msgid "Could not import extension %s" -msgstr "نمی‌توان افزونه‌ی %s را ایمپورت کرد" +msgstr "ایمپورت افزونه‌ی %s ممکن نشد" #, python-format msgid "extension %r has no setup() function; is it really a Sphinx extension module?" -msgstr "افزونه‌ی %r تابع setup() ندارد؛ آیا واقعاً یک ماژول افزونه‌ی Sphinx است؟" +msgstr "افزونه‌ی %r تابع ()setup ندارد؛ آیا این واقعاً یک ماژول افزونه‌ی Sphinx است؟" #, python-format msgid "The %s extension used by this project needs at least Sphinx v%s; it therefore cannot be built with this version." -msgstr "افزونه‌ی %s که این پروژه استفاده می‌کند حداقل به Sphinx v%s نیاز دارد؛ بنابراین نمی‌تواند با این نسخه ساخته شود." +msgstr "افزونه‌ی %s که این پروژه استفاده می‌کند حداقل به Sphinx نسخه‌ی %s نیاز دارد؛ بنابراین نمی‌توان آن را با این نسخه ساخت." #, python-format msgid "extension %r returned an unsupported object from its setup() function; it should return None or a metadata dictionary" -msgstr "افزونه‌ی %r یک شیء پشتیبانی‌نشده از تابع setup() خود برگرداند؛ باید None یا یک دیکشنری فراداده برگرداند" +msgstr "افزونه‌ی %r شیئی پشتیبانی‌نشده از تابع ()setup خود بازگرداند؛ باید None یا دیکشنری فراداده بازگرداند" #, python-format msgid "`None` is not a valid filetype for %r." -msgstr "`None` یک نوع پرونده‌ی معتبر برای %r نیست." +msgstr "«None» نوع پرونده‌ی معتبری برای %r نیست." #, python-format msgid "Common Vulnerabilities and Exposures; CVE %s" -msgstr "آسیب‌پذیری‌ها و مواجهه‌های رایج؛ CVE %s" +msgstr "آسیب‌پذیری‌ها و افشاگری‌های عمومی؛ CVE %s" #, python-format msgid "invalid CVE number %s" @@ -807,7 +441,7 @@ msgstr "شماره‌ی CVE نامعتبر %s" #, python-format msgid "Common Weakness Enumeration; CWE %s" -msgstr "شمارش ضعف‌های رایج؛ CWE %s" +msgstr "فهرست ضعف‌های عمومی؛ CWE %s" #, python-format msgid "invalid CWE number %s" @@ -826,13 +460,13 @@ msgid "invalid RFC number %s" msgstr "شماره‌ی RFC نامعتبر %s" msgid "[source]" -msgstr "[source]" +msgstr "نمایش منبع" msgid "highlighting module code... " msgstr "در حال برجسته‌سازی کد ماژول... " msgid "[docs]" -msgstr "[docs]" +msgstr "[مستندات]" msgid "Module code" msgstr "کد ماژول" @@ -842,18 +476,18 @@ msgid "

Source code for %s

" msgstr "

کد منبع برای %s

" msgid "Overview: module code" -msgstr "نمای کلی: کد ماژول" +msgstr "بررسی اجمالی: کد ماژول" msgid "

All modules for which code is available

" -msgstr "

همه‌ی ماژول‌هایی که کد برای آن‌ها در دسترس است

" +msgstr "

تمام ماژول‌هایی که کد آن‌ها در دسترس است

" #, python-format msgid "hardcoded link %r could be replaced by an extlink (try using %r instead)" -msgstr "پیوند سخت‌کد‌شده‌ی %r می‌تواند با یک extlink جایگزین شود (به‌جای آن از %r استفاده کنید)" +msgstr "پیوند سخت‌کدشده‌ی %r می‌تواند با یک extlink جایگزین شود (به‌جای آن از %r استفاده کنید)" #, python-format msgid "section \"%s\" gets labeled as \"%s\"" -msgstr "بخش \"%s\" به‌عنوان \"%s\" برچسب می‌خورد" +msgstr "بخش «%s» با برچسب «%s» علامت‌گذاری می‌شود" #, python-format msgid "duplicate label %s, other instance in %s" @@ -863,58 +497,58 @@ msgid "Link to this equation" msgstr "پیوند به این معادله" msgid "====================== slowest reading durations =======================" -msgstr "====================== کندترین مدت‌های خواندن =======================" +msgstr "====================== کندترین مدت‌زمان‌های خواندن =======================" #, python-format msgid "missing '+' or '-' in '%s' option." -msgstr "علامت '+' یا '-' در گزینه‌ی '%s' گم شده است." +msgstr "«+» یا «-» در گزینه‌ی «%s» گم شده است." #, python-format msgid "'%s' is not a valid option." -msgstr "'%s' یک گزینه‌ی معتبر نیست." +msgstr "«%s» گزینه‌ی معتبری نیست." #, python-format msgid "'%s' is not a valid pyversion option" -msgstr "'%s' یک گزینه‌ی معتبر pyversion نیست" +msgstr "«%s» گزینه‌ی pyversion معتبری نیست" msgid "invalid TestCode type" msgstr "نوع TestCode نامعتبر" #, python-format msgid "Testing of doctests in the sources finished, look at the results in %(outdir)s/output.txt." -msgstr "آزمون doctestها در منابع به پایان رسید، نتایج را در %(outdir)s/output.txt ببینید." +msgstr "آزمایش doctestها در منابع به پایان رسید، نتایج را در %(outdir)s/output.txt ببینید." #, python-format msgid "no code/output in %s block at %s:%s" -msgstr "هیچ کد/خروجی‌ای در بلوک %s در %s:%s وجود ندارد" +msgstr "هیچ کد/خروجی‌ای در بلوک %s در %s:%s نیست" #, python-format msgid "ignoring invalid doctest code: %r" -msgstr "نادیده گرفتن کد doctest نامعتبر: %r" +msgstr "کد doctest نامعتبر نادیده گرفته شد: %r" #, python-format msgid "LaTeX command %r cannot be run (needed for math display), check the imgmath_latex setting" -msgstr "دستور LaTeX %r نمی‌تواند اجرا شود (لازم برای نمایش ریاضی)، تنظیم imgmath_latex را بررسی کنید" +msgstr "دستور LaTeX با نام %r قابل اجرا نیست (برای نمایش ریاضی لازم است)، تنظیم imgmath_latex را بررسی کنید" #, python-format msgid "%s command %r cannot be run (needed for math display), check the imgmath_%s setting" -msgstr "دستور %s %r نمی‌تواند اجرا شود (لازم برای نمایش ریاضی)، تنظیم imgmath_%s را بررسی کنید" +msgstr "دستور %s با نام %r قابل اجرا نیست (برای نمایش ریاضی لازم است)، تنظیم imgmath_%s را بررسی کنید" #, python-format msgid "display latex %r: %s" -msgstr "نمایش latex %r: %s" +msgstr "نمایش latex برای %r: %s" #, python-format msgid "inline latex %r: %s" -msgstr "latex درون‌خطی %r: %s" +msgstr "latex درون‌خطی برای %r: %s" #, python-format msgid "invalid regex %r in %s" -msgstr "regex نامعتبر %r در %s" +msgstr "عبارت باقاعده‌ی نامعتبر %r در %s" #, python-format msgid "module %s could not be imported: %s" -msgstr "ماژول %s نمی‌تواند ایمپورت شود: %s" +msgstr "ماژول %s ایمپورت نشد: %s" #, python-format msgid "the following modules are documented but were not specified in coverage_modules: %s" @@ -925,27 +559,27 @@ msgstr "ماژول‌های زیر در coverage_modules مشخص شده‌ان #, python-format, python-brace-format msgid "Testing of coverage in the sources finished, look at the results in %(outdir)s{sep}python.txt." -msgstr "آزمون پوشش در منابع به پایان رسید، نتایج را در %(outdir)s{sep}python.txt ببینید." +msgstr "آزمایش پوشش در منابع به پایان رسید، نتایج را در %(outdir)s{sep}python.txt ببینید." #, python-format msgid "invalid regex %r in coverage_c_regexes" -msgstr "regex نامعتبر %r در coverage_c_regexes" +msgstr "عبارت باقاعده‌ی نامعتبر %r در coverage_c_regexes" #, python-format msgid "undocumented c api: %s [%s] in file %s" -msgstr "c api مستند‌نشده: %s [%s] در پرونده‌ی %s" +msgstr "API سی مستندنشده: %s [%s] در پرونده‌ی %s" #, python-format msgid "undocumented python function: %s :: %s" -msgstr "تابع پایتون مستند‌نشده: %s :: %s" +msgstr "تابع پایتونی مستندنشده: %s :: %s" #, python-format msgid "undocumented python class: %s :: %s" -msgstr "کلاس پایتون مستند‌نشده: %s :: %s" +msgstr "کلاس پایتونی مستندنشده: %s :: %s" #, python-format msgid "undocumented python method: %s :: %s :: %s" -msgstr "متد پایتون مستند‌نشده: %s :: %s :: %s" +msgstr "متد پایتونی مستندنشده: %s :: %s :: %s" #, python-format msgid "" @@ -953,7 +587,7 @@ msgid "" "\n" "Traceback: %s" msgstr "" -"نمی‌توان دستور تبدیل تصویر %r را اجرا کرد. 'sphinx.ext.imgconverter' به‌طور پیش‌فرض به ImageMagick نیاز دارد. مطمئن شوید نصب شده است، یا گزینه‌ی 'image_converter' را روی یک دستور تبدیل سفارشی تنظیم کنید.\n" +"اجرای دستور تبدیل تصویر %r ممکن نشد. «sphinx.ext.imgconverter» به‌طور پیش‌فرض به ImageMagick نیاز دارد. اطمینان حاصل کنید نصب شده است، یا گزینه‌ی «image_converter» را روی یک دستور تبدیل سفارشی تنظیم کنید.\n" "\n" "ردگیری: %s" @@ -973,25 +607,25 @@ msgstr "" #, python-format msgid "convert command %r cannot be run, check the image_converter setting" -msgstr "دستور convert %r نمی‌تواند اجرا شود، تنظیم image_converter را بررسی کنید" +msgstr "دستور convert با نام %r قابل اجرا نیست، تنظیم image_converter را بررسی کنید" msgid "Graphviz directive cannot have both content and a filename argument" msgstr "دایرکتیو Graphviz نمی‌تواند هم محتوا و هم آرگومان نام پرونده داشته باشد" #, python-format msgid "External Graphviz file %r not found or reading it failed" -msgstr "پرونده‌ی Graphviz خارجی %r یافت نشد یا خواندنش ناموفق بود" +msgstr "پرونده‌ی خارجی Graphviz با نام %r پیدا نشد یا خواندن آن شکست خورد" msgid "Ignoring \"graphviz\" directive without content." -msgstr "نادیده گرفتن دایرکتیو \"graphviz\" بدون محتوا." +msgstr "دایرکتیو «graphviz» بدون محتوا نادیده گرفته شد." #, python-format msgid "graphviz_dot executable path must be set! %r" -msgstr "مسیر فایل اجرایی graphviz_dot باید تنظیم شود! %r" +msgstr "مسیر اجرایی graphviz_dot باید تنظیم شود! %r" #, python-format msgid "dot command %r cannot be run (needed for graphviz output), check the graphviz_dot setting" -msgstr "دستور dot %r نمی‌تواند اجرا شود (لازم برای خروجی graphviz)، تنظیم graphviz_dot را بررسی کنید" +msgstr "دستور dot با نام %r قابل اجرا نیست (برای خروجی graphviz لازم است)، تنظیم graphviz_dot را بررسی کنید" #, python-format msgid "" @@ -1023,25 +657,25 @@ msgstr "" #, python-format msgid "graphviz_output_format must be either 'png' or 'svg', but is %r" -msgstr "graphviz_output_format باید یا 'png' یا 'svg' باشد، اما %r است" +msgstr "graphviz_output_format باید «png» یا «svg» باشد، اما %r است" #, python-format msgid "dot code %r: %s" -msgstr "کد dot %r: %s" +msgstr "کد dot در %r: %s" #, python-format msgid "[graph: %s]" -msgstr "[graph: %s]" +msgstr "[گراف: %s]" msgid "[graph]" -msgstr "[graph]" +msgstr "[گراف]" msgid "Todo" -msgstr "کارهای انجام‌نشده" +msgstr "کارهای باقی‌مانده" #, python-format msgid "TODO entry found: %s" -msgstr "ورودی TODO یافت شد: %s" +msgstr "ورودی کارهای باقی‌مانده پیدا شد: %s" msgid "<>" msgstr "<<ورودی اصلی>>" @@ -1054,57 +688,57 @@ msgid "original entry" msgstr "ورودی اصلی" msgid "non-whitespace stripped by dedent" -msgstr "فاصله‌های غیر‌سفید توسط dedent حذف شد" +msgstr "نویسه‌ی غیرفاصله توسط dedent حذف شد" #, python-format msgid "Invalid caption: %s" -msgstr "عنوان نامعتبر: %s" +msgstr "زیرنویس نامعتبر: %s" #, python-format msgid "line number spec is out of range(1-%d): %r" -msgstr "مشخصه‌ی شماره سطر خارج از محدوده‌ی (1-%d) است: %r" +msgstr "مشخصه‌ی شماره‌ی سطر خارج از محدوده‌ی (۱ تا %d) است: %r" #, python-format msgid "Cannot use both \"%s\" and \"%s\" options" -msgstr "نمی‌توان هم از گزینه‌ی \"%s\" و هم از گزینه‌ی \"%s\" استفاده کرد" +msgstr "نمی‌توان هر دو گزینه‌ی «%s» و «%s» را استفاده کرد" #, python-format msgid "Include file '%s' not found or reading it failed" -msgstr "پرونده‌ی ضمیمه‌ی '%s' یافت نشد یا خواندنش ناموفق بود" +msgstr "پرونده‌ی include با نام «%s» پیدا نشد یا خواندن آن شکست خورد" #, python-format msgid "Encoding %r used for reading included file '%s' seems to be wrong, try giving an :encoding: option" -msgstr "کدگذاری %r استفاده‌شده برای خواندن پرونده‌ی ضمیمه‌ی '%s' نادرست به نظر می‌رسد، سعی کنید یک گزینه‌ی :encoding: بدهید" +msgstr "کدگذاری %r که برای خواندن پرونده‌ی include‌شده‌ی «%s» استفاده شده، اشتباه به‌نظر می‌رسد، گزینه‌ی :encoding: را امتحان کنید" #, python-format msgid "Object named %r not found in include file %r" -msgstr "شیء نام‌دار %r در پرونده‌ی ضمیمه‌ی %r یافت نشد" +msgstr "شیئی با نام %r در پرونده‌ی include شده‌ی %r پیدا نشد" msgid "Cannot use \"lineno-match\" with a disjoint set of \"lines\"" -msgstr "نمی‌توان از \"lineno-match\" با مجموعه‌ی ناپیوسته‌ای از \"lines\" استفاده کرد" +msgstr "نمی‌توان «lineno-match» را با مجموعه‌ای ناپیوسته از «lines» استفاده کرد" #, python-format msgid "Line spec %r: no lines pulled from include file %r" -msgstr "مشخصه‌ی سطر %r: هیچ سطری از پرونده‌ی ضمیمه‌ی %r استخراج نشد" +msgstr "مشخصه‌ی سطر %r: هیچ سطری از پرونده‌ی include شده‌ی %r دریافت نشد" msgid "\":file:\" option for csv-table directive now recognizes an absolute path as a relative path from source directory. Please update your document." -msgstr "گزینه‌ی \":file:\" برای دایرکتیو csv-table اکنون یک مسیر مطلق را به‌عنوان مسیر نسبی از پوشه‌ی مبدأ می‌شناسد. لطفاً سند خود را به‌روزرسانی کنید." +msgstr "گزینه‌ی «:file:» برای دایرکتیو csv-table اکنون یک مسیر مطلق را به‌عنوان مسیری نسبی از پوشه‌ی منبع تشخیص می‌دهد. لطفاً سند خود را به‌روزرسانی کنید." #, python-format msgid "toctree glob pattern %r didn't match any documents" -msgstr "الگوی glob توک‌تری %r با هیچ سندی مطابقت نداشت" +msgstr "الگوی glob در toctree با نام %r با هیچ سندی مطابقت نداشت" #, python-format msgid "toctree contains reference to excluded document %r" -msgstr "توک‌تری حاوی ارجاع به سند حذف‌شده %r است" +msgstr "toctree حاوی ارجاعی به سند حذف‌شده‌ی %r است" #, python-format msgid "toctree contains reference to nonexisting document %r" -msgstr "توک‌تری حاوی ارجاع به سند ناموجود %r است" +msgstr "toctree حاوی ارجاعی به سند ناموجود %r است" #, python-format msgid "duplicated entry found in toctree: %s" -msgstr "ورودی تکراری در توک‌تری یافت شد: %s" +msgstr "ورودی تکراری در toctree پیدا شد: %s" msgid "Section author: " msgstr "نویسنده‌ی بخش: " @@ -1119,18 +753,18 @@ msgid "Author: " msgstr "نویسنده: " msgid ".. acks content is not a list" -msgstr ".. محتوای acks یک فهرست نیست" +msgstr "محتوای ‎.. acks یک فهرست نیست" msgid ".. hlist content is not a list" -msgstr ".. محتوای hlist یک فهرست نیست" +msgstr "محتوای ‎.. hlist یک فهرست نیست" #, python-format msgid "The overview file is in %(outdir)s." -msgstr "پرونده‌ی نمای کلی در %(outdir)s است." +msgstr "پرونده‌ی بررسی اجمالی در %(outdir)s است." #, python-format msgid "no changes in version %s." -msgstr "هیچ تغییری در نسخه‌ی %s نبوده." +msgstr "تغییری در نسخه‌ی %s وجود ندارد." msgid "writing summary file..." msgstr "در حال نوشتن پرونده‌ی خلاصه..." @@ -1142,33 +776,33 @@ msgid "Module level" msgstr "سطح ماژول" msgid "copying source files..." -msgstr "در حال کپی پرونده‌های مبدأ..." +msgstr "در حال کپی کردن پرونده‌های منبع..." #, python-format msgid "could not read %r for changelog creation" -msgstr "نمی‌توان %r را برای ایجاد تغییرنامه خواند" +msgstr "خواندن %r برای ساخت گزارش تغییرات ممکن نشد" #, python-format msgid "The manual pages are in %(outdir)s." -msgstr "صفحات راهنما در %(outdir)s هستند." +msgstr "صفحه‌های راهنما در %(outdir)s هستند." msgid "no \"man_pages\" config value found; no manual pages will be written" -msgstr "هیچ مقدار پیکربندی \"man_pages\" یافت نشد؛ هیچ صفحه‌ی راهنمایی نوشته نخواهد شد" +msgstr "هیچ مقدار پیکربندی «man_pages» پیدا نشد؛ هیچ صفحه‌ی راهنمایی نوشته نخواهد شد" msgid "writing" msgstr "در حال نوشتن" #, python-format msgid "\"man_pages\" config value references unknown document %s" -msgstr "مقدار پیکربندی \"man_pages\" به سند ناشناخته‌ی %s ارجاع می‌دهد" +msgstr "مقدار پیکربندی «man_pages» به سند ناشناخته‌ی %s ارجاع می‌دهد" #, python-format msgid "a suitable image for %s builder not found: %s (%s)" -msgstr "تصویر مناسبی برای سازنده‌ی %s یافت نشد: %s (%s)" +msgstr "تصویر مناسبی برای سازنده‌ی %s پیدا نشد: %s (%s)" #, python-format msgid "a suitable image for %s builder not found: %s" -msgstr "تصویر مناسبی برای سازنده‌ی %s یافت نشد: %s" +msgstr "تصویر مناسبی برای سازنده‌ی %s پیدا نشد: %s" msgid "building [mo]: " msgstr "در حال ساخت [mo]: " @@ -1189,47 +823,47 @@ msgid "targets for %d po files that are out of date" msgstr "هدف‌ها برای %d پرونده‌ی po که قدیمی هستند" msgid "all source files" -msgstr "همه‌ی پرونده‌های مبدأ" +msgstr "همه‌ی پرونده‌های منبع" #, python-format msgid "file %r given on command line does not exist, " -msgstr "پرونده‌ی %r داده‌شده در خط فرمان وجود ندارد، " +msgstr "پرونده‌ی %r که در خط فرمان داده شده وجود ندارد، " #, python-format msgid "file %r given on command line is not under the source directory, ignoring" -msgstr "پرونده‌ی %r داده‌شده در خط فرمان زیر پوشه‌ی مبدأ نیست، نادیده گرفته می‌شود" +msgstr "پرونده‌ی %r که در خط فرمان داده شده زیرمجموعه‌ی پوشه‌ی منبع نیست، نادیده گرفته شد" #, python-format msgid "file %r given on command line is not a valid document, ignoring" -msgstr "پرونده‌ی %r داده‌شده در خط فرمان یک سند معتبر نیست، نادیده گرفته می‌شود" +msgstr "پرونده‌ی %r که در خط فرمان داده شده سند معتبری نیست، نادیده گرفته شد" #, python-format msgid "%d source files given on command line" -msgstr "%d پرونده‌ی مبدأ داده‌شده در خط فرمان" +msgstr "%d پرونده‌ی منبع در خط فرمان داده شد" #, python-format msgid "targets for %d source files that are out of date" -msgstr "هدف‌ها برای %d پرونده‌ی مبدأ که قدیمی هستند" +msgstr "هدف‌ها برای %d پرونده‌ی منبع که قدیمی هستند" #, python-format msgid "building [%s]: " msgstr "در حال ساخت [%s]: " msgid "looking for now-outdated files... " -msgstr "در حال جست‌وجوی پرونده‌های تازه قدیمی‌شده... " +msgstr "در حال جست‌وجوی پرونده‌های اکنون قدیمی... " #, python-format msgid "%d found" -msgstr "%d یافت شد" +msgstr "%d پیدا شد" msgid "none found" -msgstr "هیچ‌کدام یافت نشد" +msgstr "هیچ‌کدام پیدا نشد" msgid "pickling environment" msgstr "در حال پیکل کردن محیط" msgid "checking consistency" -msgstr "در حال بررسی سازگاری" +msgstr "در حال بررسی یکپارچگی" msgid "no targets are out of date." msgstr "هیچ هدفی قدیمی نیست." @@ -1239,43 +873,43 @@ msgstr "در حال به‌روزرسانی محیط: " #, python-format msgid "%s added, %s changed, %s removed" -msgstr "%s اضافه شد، %s تغییر کرد، %s حذف شد" +msgstr "%s افزوده شد، %s تغییر کرد، %s حذف شد" #, python-format msgid "Sphinx is unable to load the master document (%s) because it matches a built-in exclude pattern %r. Please move your master document to a different location." -msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند چون با الگوی حذف توکار %r مطابقت دارد. لطفاً سند اصلی خود را به مکان دیگری منتقل کنید." +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بار کند چون با الگوی حذف توکار %r مطابقت دارد. لطفاً سند اصلی خود را به مکان دیگری منتقل کنید." #, python-format msgid "Sphinx is unable to load the master document (%s) because it matches an exclude pattern specified in conf.py, %r. Please remove this pattern from conf.py." -msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند چون با الگوی حذف مشخص‌شده در conf.py، %r مطابقت دارد. لطفاً این الگو را از conf.py حذف کنید." +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بار کند چون با الگوی حذف مشخص‌شده در conf.py، یعنی %r، مطابقت دارد. لطفاً این الگو را از conf.py حذف کنید." #, python-format msgid "Sphinx is unable to load the master document (%s) because it is not included in the custom include_patterns = %r. Ensure that a pattern in include_patterns matches the master document." -msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند چون در include_patterns سفارشی = %r گنجانده نشده است. مطمئن شوید که یک الگو در include_patterns با سند اصلی مطابقت دارد." +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بار کند چون در include_patterns سفارشی، یعنی %r، گنجانده نشده است. مطمئن شوید یکی از الگوهای include_patterns با سند اصلی مطابقت دارد." #, python-format msgid "Sphinx is unable to load the master document (%s). The master document must be within the source directory or a subdirectory of it." -msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بارگذاری کند. سند اصلی باید در پوشه‌ی مبدأ یا زیرپوشه‌ای از آن باشد." +msgstr "Sphinx نمی‌تواند سند اصلی (%s) را بار کند. سند اصلی باید درون پوشه‌ی منبع یا زیرپوشه‌ای از آن باشد." msgid "reading sources... " msgstr "در حال خواندن منابع... " #, python-format msgid "docnames to write: %s" -msgstr "نام اسناد برای نوشتن: %s" +msgstr "نام‌سندهای موردنیاز برای نوشتن: %s" msgid "no docnames to write!" -msgstr "هیچ نام سندی برای نوشتن نیست!" +msgstr "هیچ نام‌سندی برای نوشتن وجود ندارد!" msgid "preparing documents" -msgstr "در حال آماده‌سازی اسناد" +msgstr "در حال آماده‌سازی سندها" msgid "copying assets" -msgstr "در حال کپی دارایی‌ها" +msgstr "در حال کپی کردن دارایی‌ها" #, python-format msgid "undecodable source characters, replacing with \"?\": %r" -msgstr "نویسه‌های مبدأ کدگشایی‌ناپذیر، جایگزینی با \"?\": %r" +msgstr "نویسه‌های منبع کدگشایی‌ناپذیر، جایگزینی با «؟»: %r" #, python-format msgid "The ePub file is in %(outdir)s." @@ -1285,34 +919,34 @@ msgid "writing nav.xhtml file..." msgstr "در حال نوشتن پرونده‌ی nav.xhtml..." msgid "conf value \"epub_language\" (or \"language\") should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_language\" (یا \"language\") برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_language» (یا «language») برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_uid\" should be XML NAME for EPUB3" -msgstr "مقدار پیکربندی \"epub_uid\" برای EPUB3 باید XML NAME باشد" +msgstr "مقدار پیکربندی «epub_uid» برای EPUB3 باید XML NAME باشد" msgid "conf value \"epub_title\" (or \"html_title\") should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_title\" (یا \"html_title\") برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_title» (یا «html_title») برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_author\" should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_author\" برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_author» برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_contributor\" should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_contributor\" برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_contributor» برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_description\" should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_description\" برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_description» برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_publisher\" should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_publisher\" برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_publisher» برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_copyright\" (or \"copyright\")should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_copyright\" (یا \"copyright\") برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_copyright» (یا «copyright») برای EPUB3 نباید خالی باشد" msgid "conf value \"epub_identifier\" should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"epub_identifier\" برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «epub_identifier» برای EPUB3 نباید خالی باشد" msgid "conf value \"version\" should not be empty for EPUB3" -msgstr "مقدار پیکربندی \"version\" برای EPUB3 نباید خالی باشد" +msgstr "مقدار پیکربندی «version» برای EPUB3 نباید خالی باشد" #, python-format msgid "invalid css_file: %r, ignored" @@ -1328,7 +962,7 @@ msgstr "خطا در نوشتن پرونده‌ی %s: %s" #, python-format msgid "The pseudo-XML files are in %(outdir)s." -msgstr "پرونده‌های شبه-XML در %(outdir)s هستند." +msgstr "پرونده‌های شبه‌XML در %(outdir)s هستند." #, python-format msgid "The Texinfo files are in %(outdir)s." @@ -1340,35 +974,35 @@ msgid "" "(use 'make info' here to do that automatically)." msgstr "" "\n" -"در آن پوشه 'make' را اجرا کنید تا این‌ها از طریق makeinfo پردازش شوند\n" -"(از 'make info' در اینجا استفاده کنید تا این کار به‌طور خودکار انجام شود)." +"دستور «make» را در آن پوشه اجرا کنید تا این‌ها از طریق makeinfo پردازش شوند\n" +"(برای انجام خودکار این کار از «make info» استفاده کنید)." msgid "no \"texinfo_documents\" config value found; no documents will be written" -msgstr "هیچ مقدار پیکربندی \"texinfo_documents\" یافت نشد؛ هیچ سندی نوشته نخواهد شد" +msgstr "هیچ مقدار پیکربندی «texinfo_documents» پیدا نشد؛ هیچ سندی نوشته نخواهد شد" #, python-format msgid "\"texinfo_documents\" config value references unknown document %s" -msgstr "مقدار پیکربندی \"texinfo_documents\" به سند ناشناخته‌ی %s ارجاع می‌دهد" +msgstr "مقدار پیکربندی «texinfo_documents» به سند ناشناخته‌ی %s ارجاع می‌دهد" #, python-format msgid "processing %s" msgstr "در حال پردازش %s" msgid "resolving references..." -msgstr "در حال حل ارجاعات..." +msgstr "در حال حل ارجاع‌ها..." msgid " (in " msgstr " (در " msgid "copying images... " -msgstr "در حال کپی تصاویر... " +msgstr "در حال کپی کردن تصاویر... " #, python-format msgid "cannot copy image file %r: %s" -msgstr "نمی‌توان پرونده‌ی تصویر %r را کپی کرد: %s" +msgstr "کپی کردن پرونده‌ی تصویر %r ممکن نشد: %s" msgid "copying Texinfo support files" -msgstr "در حال کپی پرونده‌های پشتیبانی Texinfo" +msgstr "در حال کپی کردن پرونده‌های پشتیبانی Texinfo" #, python-format msgid "error writing file Makefile: %s" @@ -1376,18 +1010,18 @@ msgstr "خطا در نوشتن پرونده‌ی Makefile: %s" #, python-format msgid "duplicated ToC entry found: %s" -msgstr "ورودی تکراری در فهرست مطالب یافت شد: %s" +msgstr "ورودی تکراری فهرست مطالب پیدا شد: %s" #, python-format msgid "cannot read image file %r: copying it instead" -msgstr "نمی‌توان پرونده‌ی تصویر %r را خواند: به‌جای آن کپی می‌شود" +msgstr "خواندن پرونده‌ی تصویر %r ممکن نشد: به‌جای آن کپی می‌شود" #, python-format msgid "cannot write image file %r: %s" -msgstr "نمی‌توان پرونده‌ی تصویر %r را نوشت: %s" +msgstr "نوشتن پرونده‌ی تصویر %r ممکن نشد: %s" msgid "Pillow not found - copying image files" -msgstr "Pillow یافت نشد - در حال کپی پرونده‌های تصویر" +msgstr "Pillow پیدا نشد - در حال کپی کردن پرونده‌های تصویر" msgid "writing mimetype file..." msgstr "در حال نوشتن پرونده‌ی mimetype..." @@ -1400,7 +1034,7 @@ msgstr "در حال نوشتن پرونده‌ی content.opf..." #, python-format msgid "unknown mimetype for %s, ignoring" -msgstr "mimetype ناشناخته برای %s، نادیده گرفته می‌شود" +msgstr "mimetype ناشناخته برای %s، نادیده گرفته شد" msgid "node has an invalid level" msgstr "گره سطح نامعتبری دارد" @@ -1434,26 +1068,26 @@ msgid "The HTML page is in %(outdir)s." msgstr "صفحه‌ی HTML در %(outdir)s است." msgid "assembling single document" -msgstr "در حال سرهم‌بندی سند واحد" +msgstr "در حال گردآوری سند تکی" msgid "writing additional files" msgstr "در حال نوشتن پرونده‌های اضافی" #, python-format msgid "Look for any errors in the above output or in %(outdir)s/output.txt" -msgstr "هر خطایی را در خروجی بالا یا در %(outdir)s/output.txt جست‌وجو کنید" +msgstr "به‌دنبال هر خطایی در خروجی بالا یا در %(outdir)s/output.txt بگردید" #, python-format msgid "broken link: %s (%s)" -msgstr "پیوند شکسته: %s (%s)" +msgstr "پیوند خراب: %s (%s)" #, python-format msgid "Anchor '%s' not found" -msgstr "لنگر '%s' یافت نشد" +msgstr "لنگر «%s» پیدا نشد" #, python-format msgid "Failed to compile regex in linkcheck_allowed_redirects: %r %s" -msgstr "کامپایل regex در linkcheck_allowed_redirects ناموفق بود: %r %s" +msgstr "کامپایل عبارت باقاعده در linkcheck_allowed_redirects شکست خورد: %r %s" #, python-format msgid "The text files are in %(outdir)s." @@ -1461,43 +1095,43 @@ msgstr "پرونده‌های متنی در %(outdir)s هستند." #, python-brace-format msgid "inconsistent footnote references in translated message. original: {0}, translated: {1}" -msgstr "ارجاعات پانویس ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" +msgstr "ارجاع‌های پانویس ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-brace-format msgid "inconsistent references in translated message. original: {0}, translated: {1}" -msgstr "ارجاعات ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" +msgstr "ارجاع‌های ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-brace-format msgid "inconsistent citation references in translated message. original: {0}, translated: {1}" -msgstr "ارجاعات استنادی ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" +msgstr "ارجاع‌های استناد ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-brace-format msgid "inconsistent term references in translated message. original: {0}, translated: {1}" -msgstr "ارجاعات اصطلاحی ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" +msgstr "ارجاع‌های اصطلاح ناسازگار در پیام ترجمه‌شده. اصلی: {0}، ترجمه‌شده: {1}" #, python-format msgid "%b %d, %Y" -msgstr "%b %d, %Y" +msgstr "%d %b %Y" msgid "could not calculate translation progress!" -msgstr "نمی‌توان پیشرفت ترجمه را محاسبه کرد!" +msgstr "محاسبه‌ی پیشرفت ترجمه ممکن نشد!" msgid "no translated elements!" msgstr "هیچ عنصر ترجمه‌شده‌ای وجود ندارد!" #, python-format msgid "4 column based index found. It might be a bug of extensions you use: %r" -msgstr "اندیس مبتنی بر ۴ ستون یافت شد. ممکن است اشکالی از افزونه‌هایی باشد که استفاده می‌کنید: %r" +msgstr "اندیس چهارستونی پیدا شد. ممکن است اشکالی از افزونه‌هایی باشد که استفاده می‌کنید: %r" #, python-format msgid "Footnote [%s] is not referenced." -msgstr "پاورقی [%s] ارجاع داده نشده است." +msgstr "پانویس [%s] ارجاع داده نشده است." msgid "Footnote [*] is not referenced." -msgstr "پاورقی [*] ارجاع داده نشده است." +msgstr "پانویس [*] ارجاع داده نشده است." msgid "Footnote [#] is not referenced." -msgstr "پاورقی [#] ارجاع داده نشده است." +msgstr "پانویس [#] ارجاع داده نشده است." msgid "Usage:" msgstr "کاربرد:" @@ -1510,13 +1144,13 @@ msgid " The Sphinx documentation generator." msgstr " تولیدکننده‌ی مستندات Sphinx." msgid "Commands:" -msgstr "دستورات:" +msgstr "دستورها:" msgid "Options" msgstr "گزینه‌ها" msgid "For more information, visit https://www.sphinx-doc.org/en/master/man/." -msgstr "برای اطلاعات بیشتر، به https://www.sphinx-doc.org/en/master/man/ مراجعه کنید." +msgstr "برای اطلاعات بیشتر، از https://www.sphinx-doc.org/en/master/man/ دیدن کنید." #, python-brace-format msgid "" @@ -1524,7 +1158,7 @@ msgid "" "Run '{0} --help' for information" msgstr "" "{0}: خطا: {1}\n" -"برای کسب اطلاعات '{0} --help' را اجرا کنید" +"برای اطلاعات بیشتر «{0} --help» را اجرا کنید" msgid " Manage documentation with Sphinx." msgstr " مدیریت مستندات با Sphinx." @@ -1542,16 +1176,16 @@ msgid "Increase verbosity (can be repeated)" msgstr "افزایش پرگویی (قابل تکرار)" msgid "Only print errors and warnings." -msgstr "فقط خطاها و هشدارها را چاپ کن." +msgstr "فقط چاپ خطاها و هشدارها." msgid "No output at all" -msgstr "هیچ خروجی‌ای" +msgstr "بدون هیچ خروجی‌ای" msgid "" msgstr "" msgid "See 'sphinx --help'.\n" -msgstr "به 'sphinx --help' مراجعه کنید.\n" +msgstr "به «sphinx --help» مراجعه کنید.\n" msgid "new config" msgstr "پیکربندی جدید" @@ -1563,10 +1197,10 @@ msgid "extensions changed" msgstr "افزونه‌ها تغییر کردند" msgid "build environment version not current" -msgstr "نسخه‌ی محیط ساخت فعلی نیست" +msgstr "نسخه‌ی محیط ساخت به‌روز نیست" msgid "source directory has changed" -msgstr "پوشه‌ی مبدأ تغییر کرده است" +msgstr "پوشه‌ی منبع تغییر کرده است" #, python-format msgid "The configuration has changed (1 option: %r)" @@ -1585,21 +1219,21 @@ msgstr "این محیط با سازنده‌ی انتخاب‌شده ناساز #, python-format msgid "Failed to scan documents in %s: %r" -msgstr "اسکن اسناد در %s ناموفق بود: %r" +msgstr "پویش سندها در %s شکست خورد: %r" #, python-format msgid "Domain %r is not registered" msgstr "دامنه‌ی %r ثبت نشده است" msgid "document isn't included in any toctree" -msgstr "سند در هیچ توک‌تری گنجانده نشده است" +msgstr "سند در هیچ toctree‌ای گنجانده نشده است" msgid "self referenced toctree found. Ignored." -msgstr "توک‌تری خود‌ارجاع یافت شد. نادیده گرفته شد." +msgstr "toctree خودارجاع پیدا شد. نادیده گرفته شد." #, python-format msgid "document is referenced in multiple toctrees: %s, selecting: %s <- %s" -msgstr "سند در چندین توک‌تری ارجاع داده شده است: %s، انتخاب: %s <- %s" +msgstr "سند در چندین toctree ارجاع داده شده است: %s، انتخاب: %s <- %s" #, python-format msgid "reading error: %s, %s" @@ -1611,27 +1245,27 @@ msgstr "خطای نوشتن: %s، %s" #, python-format msgid "locale_dir %s does not exist" -msgstr "locale_dir %s وجود ندارد" +msgstr "locale_dir با مقدار %s وجود ندارد" #, python-format msgid "Invalid Babel locale: %r." -msgstr "نامعتبر بودن locale Babel: %r." +msgstr "لوکیل Babel نامعتبر: %r." #, python-format msgid "Invalid date format. Quote the string by single quote if you want to output it directly: %s" -msgstr "قالب تاریخ نامعتبر. اگر می‌خواهید مستقیماً چاپ شود، رشته را با نقل‌قول تک احاطه کنید: %s" +msgstr "قالب تاریخ نامعتبر است. اگر می‌خواهید آن را مستقیماً خروجی دهید، رشته را با تک‌کوتیشن نقل‌قول کنید: %s" #, python-format msgid "Problem in %s domain: field is supposed to use role '%s', but that role is not in the domain." -msgstr "مشکل در دامنه‌ی %s: فیلد باید از نقش '%s' استفاده کند، اما آن نقش در دامنه نیست." +msgstr "مشکل در دامنه‌ی %s: فرض بر این است که فیلد از رول «%s» استفاده کند، اما آن رول در دامنه وجود ندارد." #, python-format msgid "%r is deprecated for index entries (from entry %r). Use 'pair: %s' instead." -msgstr "%r برای ورودی‌های اندیس منسوخ شده است (از ورودی %r). به‌جای آن از 'pair: %s' استفاده کنید." +msgstr "%r برای ورودی‌های اندیس منسوخ شده است (از ورودی %r). به‌جای آن از «pair: %s» استفاده کنید." #, python-format msgid "toctree contains ref to nonexisting file %r" -msgstr "توک‌تری حاوی ارجاع به پرونده‌ی ناموجود %r است" +msgstr "toctree حاوی ارجاعی به پرونده‌ی ناموجود %r است" #, python-format msgid "exception while evaluating only directive expression: %s" @@ -1645,7 +1279,7 @@ msgstr "شکست خورد" #, python-format msgid "Aborted attempted copy from %s to %s (the destination path has existing data)." -msgstr "تلاش برای کپی از %s به %s لغو شد (مسیر مقصد داده‌ی موجود دارد)." +msgstr "تلاش برای کپی از %s به %s لغو شد (مسیر مقصد دارای داده‌ی موجود است)." #, python-format msgid "unknown directive name: %s" @@ -1653,7 +1287,7 @@ msgstr "نام دایرکتیو ناشناخته: %s" #, python-format msgid "unknown role name: %s" -msgstr "نام نقش ناشناخته: %s" +msgstr "نام رول ناشناخته: %s" #, python-format msgid "unknown node type: %r" @@ -1661,42 +1295,42 @@ msgstr "نوع گره ناشناخته: %r" #, python-format msgid "Aborted attempted copy from rendered template %s to %s (the destination path has existing data)." -msgstr "تلاش برای کپی از قالب رندرشده‌ی %s به %s لغو شد (مسیر مقصد داده‌ی موجود دارد)." +msgstr "تلاش برای کپی از قالب رندرشده‌ی %s به %s لغو شد (مسیر مقصد دارای داده‌ی موجود است)." #, python-format msgid "Writing evaluated template result to %s" -msgstr "در حال نوشتن نتیجه‌ی قالب ارزیابی‌شده در %s" +msgstr "در حال نوشتن نتیجه‌ی ارزیابی‌شده‌ی قالب در %s" #, python-format msgid "default role %s not found" -msgstr "نقش پیش‌فرض %s یافت نشد" +msgstr "رول پیش‌فرض %s پیدا نشد" #, python-format msgid "inventory <%s> contains duplicate definitions of %s" -msgstr "inventory <%s> شامل تعریف‌های تکراری %s است" +msgstr "فهرست موجودی <%s> حاوی تعریف‌های تکراری از %s است" #, python-format msgid "inventory <%s> contains multiple definitions for %s" -msgstr "inventory <%s> شامل تعریف‌های متعدد برای %s است" +msgstr "فهرست موجودی <%s> حاوی چندین تعریف برای %s است" msgid "Footnotes" -msgstr "پاورقی‌ها" +msgstr "پانویس‌ها" #, python-format msgid "[image: %s]" -msgstr "[image: %s]" +msgstr "[تصویر: %s]" msgid "[image]" -msgstr "[image]" +msgstr "[تصویر]" msgid "Index" msgstr "اندیس" msgid "encountered title node not in section, topic, table, admonition or sidebar" -msgstr "گره عنوانی یافت شد که در بخش، موضوع، جدول، آدمانیشن یا نوار کناری نیست" +msgstr "گره‌ی عنوانی برخورد شد که در بخش، موضوع، جدول، هشدار یا نوار کناری نیست" msgid "caption not inside a figure." -msgstr "عنوان داخل شکل نیست." +msgstr "زیرنویس درون یک شکل نیست." #, python-format msgid "unimplemented node type: %r" @@ -1704,21 +1338,21 @@ msgstr "نوع گره پیاده‌سازی‌نشده: %r" #, python-format msgid "unknown %r toplevel_sectioning for class %r" -msgstr "%r toplevel_sectioning ناشناخته برای کلاس %r" +msgstr "toplevel_sectioning ناشناخته‌ی %r برای کلاس %r" #, python-format msgid "no Babel option known for language %r" -msgstr "هیچ گزینه‌ی Babel برای زبان %r شناخته‌شده نیست" +msgstr "هیچ گزینه‌ی Babel شناخته‌شده‌ای برای زبان %r وجود ندارد" msgid "too large :maxdepth:, ignored." -msgstr ":maxdepth: بسیار بزرگ، نادیده گرفته شد." +msgstr ":maxdepth: بیش از حد بزرگ است، نادیده گرفته شد." #, python-format msgid "template %s not found; loading from legacy %s instead" -msgstr "قالب %s یافت نشد؛ به‌جای آن از %s قدیمی بارگذاری می‌شود" +msgstr "قالب %s پیدا نشد؛ به‌جای آن از %s قدیمی بار می‌شود" msgid "document title is not a single Text node" -msgstr "عنوان سند یک گره Text واحد نیست" +msgstr "عنوان سند یک گره‌ی متنی تکی نیست" #, python-format msgid "unsupported rubric heading level: %s" @@ -1733,11 +1367,11 @@ msgstr "واحد ابعاد %s نامعتبر است. نادیده گرفته ش #, python-format msgid "unknown index entry type %s found" -msgstr "نوع ورودی اندیس ناشناخته‌ی %s یافت شد" +msgstr "نوع ورودی اندیس ناشناخته‌ی %s پیدا شد" #, python-format msgid "Invalid math_eqref_format: %r" -msgstr "نامعتبر بودن math_eqref_format: %r" +msgstr "math_eqref_format نامعتبر: %r" msgid "Link to this definition" msgstr "پیوند به این تعریف" @@ -1748,7 +1382,7 @@ msgstr "numfig_format برای %s تعریف نشده است" #, python-format msgid "Any IDs not assigned for %s node" -msgstr "هیچ شناسه‌ای برای گره‌ی %s اختصاص داده نشده است" +msgstr "هیچ شناسه‌ای برای گره‌ی %s تخصیص نیافته است" msgid "Link to this term" msgstr "پیوند به این اصطلاح" @@ -1766,7 +1400,7 @@ msgid "Link to this image" msgstr "پیوند به این تصویر" msgid "Link to this toctree" -msgstr "پیوند به این توکتری" +msgstr "پیوند به این toctree" msgid "Could not obtain image size. :scale: option is ignored." msgstr "اندازه‌ی تصویر به‌دست نیامد. گزینه‌ی :scale: نادیده گرفته می‌شود." @@ -1781,15 +1415,15 @@ msgstr "برچسب تکراری معادله‌ی %s، نمونه‌ی دیگر #, python-format msgid "%s() (built-in function)" -msgstr "%s()(تابع توکار)" +msgstr "()%s (تابع توکار)" #, python-format msgid "%s() (%s method)" -msgstr "%s() (%s متد)" +msgstr "()%s (متد %s)" #, python-format msgid "%s() (class)" -msgstr "%s() (کلاس)" +msgstr "()%s (کلاس)" #, python-format msgid "%s (global variable or constant)" @@ -1797,16 +1431,16 @@ msgstr "%s (متغیر سراسری یا ثابت)" #, python-format msgid "%s (%s attribute)" -msgstr "%s (%s ویژگی)" +msgstr "%s (ویژگی %s)" msgid "Arguments" msgstr "آرگومان‌ها" msgid "Throws" -msgstr "پرتاب‌ها" +msgstr "پرتاب می‌کند" msgid "Returns" -msgstr "بازگشتی‌ها" +msgstr "بازمی‌گرداند" msgid "Return type" msgstr "نوع بازگشتی" @@ -1835,7 +1469,7 @@ msgstr "ماژول" #, python-format msgid "duplicate %s description of %s, other %s in %s" -msgstr "توصیف %s تکراری از %s، %s دیگر در %s" +msgstr "توضیح %s تکراری برای %s، %s دیگر در %s" #, python-format msgid "Added in version %s" @@ -1863,7 +1497,7 @@ msgstr ":%s: (گزینه‌ی دایرکتیو)" #, python-format msgid "%s (role)" -msgstr "%s (نقش)" +msgstr "%s (رول)" msgid "directive" msgstr "دایرکتیو" @@ -1872,19 +1506,19 @@ msgid "directive-option" msgstr "گزینه‌ی دایرکتیو" msgid "role" -msgstr "نقش" +msgstr "رول" #, python-format msgid "duplicate description of %s %s, other instance in %s" -msgstr "توصیف تکراری از %s %s، نمونه‌ی دیگر در %s" +msgstr "توضیح تکراری %s %s، نمونه‌ی دیگر در %s" #, python-format msgid "duplicate citation %s, other instance in %s" -msgstr "ارجاع تکراری %s، نمونه‌ی دیگر در %s" +msgstr "استناد تکراری %s، نمونه‌ی دیگر در %s" #, python-format msgid "Citation [%s] is not referenced." -msgstr "ارجاع [%s] استفاده نشده است." +msgstr "استناد [%s] ارجاع داده نشده است." msgid "Attention" msgstr "توجه" @@ -1899,131 +1533,131 @@ msgid "Error" msgstr "خطا" msgid "Hint" -msgstr "اشاره" +msgstr "راهنمایی" msgid "Important" msgstr "مهم" msgid "Note" -msgstr "یادداشت" +msgstr "نکته" msgid "See also" msgstr "همچنین ببینید" msgid "Tip" -msgstr "نکته" +msgstr "نکته‌ی کاربردی" msgid "Warning" msgstr "هشدار" msgid "automatically insert docstrings from modules" -msgstr "درج خودکار رشته‌های مستند از ماژول‌ها" +msgstr "درج خودکار رشته‌های مستندساز از ماژول‌ها" msgid "automatically test code snippets in doctest blocks" -msgstr "آزمون خودکار قطعه‌کدها در بلوک‌های doctest" +msgstr "آزمایش خودکار قطعه‌کدها در بلوک‌های doctest" msgid "link between Sphinx documentation of different projects" -msgstr "پیوند بین مستندات Sphinx پروژه‌های مختلف" +msgstr "پیوند میان مستندات Sphinx پروژه‌های مختلف" msgid "write \"todo\" entries that can be shown or hidden on build" -msgstr "نوشتن ورودی‌های \"todo\" که می‌توانند در ساخت نمایش داده شوند یا پنهان شوند" +msgstr "نوشتن ورودی‌های «todo» که هنگام ساخت می‌توانند نمایش یا پنهان شوند" msgid "checks for documentation coverage" msgstr "بررسی پوشش مستندات" msgid "include math, rendered as PNG or SVG images" -msgstr "گنجاندن ریاضی، رندرشده به‌صورت تصاویر PNG یا SVG" +msgstr "گنجاندن ریاضیات، رندرشده به‌صورت تصاویر PNG یا SVG" msgid "include math, rendered in the browser by MathJax" -msgstr "گنجاندن ریاضی، رندرشده در مرورگر توسط MathJax" +msgstr "گنجاندن ریاضیات، رندرشده در مرورگر توسط MathJax" msgid "conditional inclusion of content based on config values" msgstr "گنجاندن شرطی محتوا بر اساس مقادیر پیکربندی" msgid "include links to the source code of documented Python objects" -msgstr "گنجاندن پیوندها به کد منبع اشیاء مستندشده‌ی پایتون" +msgstr "گنجاندن پیوند به کد منبع اشیای پایتونی مستندشده" msgid "create .nojekyll file to publish the document on GitHub pages" -msgstr "ایجاد پرونده‌ی .nojekyll برای انتشار سند در صفحات گیت‌هاب" +msgstr "ساخت پرونده‌ی nojekyll. برای انتشار سند در GitHub Pages" msgid "Please enter a valid path name." msgstr "لطفاً یک نام مسیر معتبر وارد کنید." msgid "Please enter some text." -msgstr "لطفاً مقداری متن وارد کنید." +msgstr "لطفاً متنی وارد کنید." #, python-format msgid "Please enter one of %s." msgstr "لطفاً یکی از %s را وارد کنید." msgid "Please enter either 'y' or 'n'." -msgstr "لطفاً یا 'y' یا 'n' را وارد کنید." +msgstr "لطفاً «y» یا «n» را وارد کنید." msgid "Please enter a file suffix, e.g. '.rst' or '.txt'." -msgstr "لطفاً یک پسوند پرونده وارد کنید، مثلاً '.rst' یا '.txt'." +msgstr "لطفاً یک پسوند پرونده وارد کنید، مثلاً «rst.» یا «txt.»." #, python-format msgid "Welcome to the Sphinx %s quickstart utility." -msgstr "به ابزار شروع سریع Sphinx %s خوش آمدید." +msgstr "به ابزار شروع سریع Sphinx نسخه‌ی %s خوش‌آمدید." msgid "" "Please enter values for the following settings (just press Enter to\n" "accept a default value, if one is given in brackets)." msgstr "" -"لطفاً مقادیری برای تنظیمات زیر وارد کنید (برای پذیرش مقدار پیش‌فرض، فقط Enter را فشار دهید،\n" -"اگر مقداری در براکت داده شده است)." +"لطفاً مقادیری برای تنظیمات زیر وارد کنید (برای پذیرفتن مقدار پیش‌فرض،\n" +"در صورتی که در کروشه داده شده، فقط کلید Enter را بزنید)." #, python-format msgid "Selected root path: %s" msgstr "مسیر ریشه‌ی انتخاب‌شده: %s" msgid "Enter the root path for documentation." -msgstr "مسیر ریشه برای مستندات را وارد کنید." +msgstr "مسیر ریشه را برای مستندات وارد کنید." msgid "Root path for the documentation" msgstr "مسیر ریشه برای مستندات" msgid "Error: an existing conf.py has been found in the selected root path." -msgstr "خطا: یک conf.py از قبل در مسیر ریشه‌ی انتخاب‌شده وجود دارد." +msgstr "خطا: یک conf.py موجود در مسیر ریشه‌ی انتخاب‌شده پیدا شد." msgid "sphinx-quickstart will not overwrite existing Sphinx projects." -msgstr "sphinx-quickstart پروژه‌های Sphinx موجود را بازنویسی نمی‌کند." +msgstr "sphinx-quickstart پروژه‌های موجود Sphinx را بازنویسی نخواهد کرد." msgid "Please enter a new root path (or just Enter to exit)" -msgstr "لطفاً یک مسیر ریشه‌ی جدید وارد کنید (یا فقط Enter را برای خروج فشار دهید)" +msgstr "لطفاً یک مسیر ریشه‌ی جدید وارد کنید (یا برای خروج فقط Enter را بزنید)" msgid "" "You have two options for placing the build directory for Sphinx output.\n" "Either, you use a directory \"_build\" within the root path, or you separate\n" "\"source\" and \"build\" directories within the root path." msgstr "" -"شما دو گزینه برای قرار دادن پوشه‌ی ساخت خروجی Sphinx دارید.\n" -"یا از یک پوشه‌ی \"_build\" در مسیر ریشه استفاده می‌کنید، یا پوشه‌های\n" -"\"source\" و \"build\" را در مسیر ریشه جدا می‌کنید." +"دو گزینه برای قرار دادن پوشه‌ی ساخت خروجی Sphinx دارید.\n" +"یا از پوشه‌ی «‎_build» درون مسیر ریشه استفاده می‌کنید، یا پوشه‌های\n" +"«source» و «build» را درون مسیر ریشه از هم جدا می‌کنید." msgid "Separate source and build directories (y/n)" -msgstr "جدا کردن پوشه‌های source و build (y/n)" +msgstr "جداسازی پوشه‌های source و build (y/n)" msgid "" "Inside the root directory, two more directories will be created; \"_templates\"\n" "for custom HTML templates and \"_static\" for custom stylesheets and other static\n" "files. You can enter another prefix (such as \".\") to replace the underscore." msgstr "" -"درون پوشه‌ی ریشه، دو پوشه‌ی دیگر ایجاد می‌شود؛ \"_templates\"\n" -"برای قالب‌های HTML سفارشی و \"_static\" برای شیوه‌نامه‌های سفارشی و سایر پرونده‌های\n" -"ایستا. می‌توانید پیشوند دیگری (مثل \".\") برای جایگزینی زیرخط وارد کنید." +"درون پوشه‌ی ریشه، دو پوشه‌ی دیگر ساخته خواهد شد؛ «‎_templates»\n" +"برای قالب‌های سفارشی HTML و «‎_static» برای شیوه‌نامه‌های سفارشی و دیگر پرونده‌های\n" +"ایستا. می‌توانید پیشوند دیگری (مانند «.») برای جایگزینی زیرخط وارد کنید." msgid "Name prefix for templates and static dir" msgstr "پیشوند نام برای پوشه‌های قالب و ایستا" msgid "The project name will occur in several places in the built documentation." -msgstr "نام پروژه در چندین جای مستندات ساخته‌شده ظاهر خواهد شد." +msgstr "نام پروژه در چندین مکان از مستندات ساخته‌شده ظاهر خواهد شد." msgid "Project name" msgstr "نام پروژه" msgid "Author name(s)" -msgstr "نام نویسنده(ها)" +msgstr "نام (های) نویسنده" msgid "" "Sphinx has the notion of a \"version\" and a \"release\" for the\n" @@ -2032,11 +1666,11 @@ msgid "" "something like 2.5.1 or 3.0a1. If you don't need this dual structure,\n" "just set both to the same value." msgstr "" -"Sphinx مفهوم \"version\" و \"release\" را برای نرم‌افزار دارد.\n" -"هر نسخه می‌تواند چندین انتشار داشته باشد. برای مثال، برای\n" -"Python نسخه چیزی مثل 2.5 یا 3.0 است، در حالی که انتشار\n" -"چیزی مثل 2.5.1 یا 3.0a1 است. اگر به این ساختار دوگانه نیاز ندارید،\n" -"فقط هر دو را روی یک مقدار تنظیم کنید." +"Sphinx برای نرم‌افزار مفهوم «نسخه» (version) و «انتشار» (release)\n" +"را دارد. هر نسخه می‌تواند چندین انتشار داشته باشد. برای مثال، برای\n" +"پایتون، نسخه چیزی شبیه 2.5 یا 3.0 است، درحالی‌که انتشار\n" +"چیزی شبیه 2.5.1 یا 3.0a1 است. اگر به این ساختار دوگانه نیاز ندارید،\n" +"فقط هر دو را به یک مقدار یکسان تنظیم کنید." msgid "Project version" msgstr "نسخه‌ی پروژه" @@ -2052,9 +1686,9 @@ msgid "" "For a list of supported codes, see\n" "https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language." msgstr "" -"اگر اسناد به زبانی غیر از انگلیسی نوشته می‌شوند،\n" -"می‌توانید زبانی را با کد زبان آن انتخاب کنید. Sphinx سپس\n" -"متنی که تولید می‌کند را به آن زبان ترجمه می‌کند.\n" +"اگر قرار است سندها به زبانی غیر از انگلیسی نوشته شوند،\n" +"می‌توانید در اینجا زبانی را با کد زبان آن انتخاب کنید. سپس Sphinx\n" +"متنی را که تولید می‌کند به آن زبان ترجمه خواهد کرد.\n" "\n" "برای فهرست کدهای پشتیبانی‌شده، به\n" "https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language مراجعه کنید." @@ -2066,11 +1700,11 @@ msgid "" "The file name suffix for source files. Commonly, this is either \".txt\"\n" "or \".rst\". Only files with this suffix are considered documents." msgstr "" -"پسوند نام پرونده برای پرونده‌های مبدأ. معمولاً، این یا \".txt\"\n" -"است یا \".rst\". فقط پرونده‌هایی با این پسوند سند در نظر گرفته می‌شوند." +"پسوند نام پرونده برای پرونده‌های منبع. معمولاً این پسوند یا «txt.»\n" +"یا «rst.» است. فقط پرونده‌های دارای این پسوند سند محسوب می‌شوند." msgid "Source file suffix" -msgstr "پسوند پرونده‌ی مبدأ" +msgstr "پسوند پرونده‌ی منبع" msgid "" "One document is special in that it is considered the top node of the\n" @@ -2078,69 +1712,69 @@ msgid "" "of the documents. Normally, this is \"index\", but if your \"index\"\n" "document is a custom template, you can also set this to another filename." msgstr "" -"یک سند از این نظر ویژه است که گره رأس \"درخت محتوا\"\n" +"یک سند از این نظر خاص است که گره‌ی بالای «درخت محتویات»\n" "در نظر گرفته می‌شود، یعنی ریشه‌ی ساختار سلسله‌مراتبی\n" -"اسناد است. معمولاً این سند \"index\" است، اما اگر سند \"index\"\n" -"شما یک قالب سفارشی باشد، می‌توانید آن را روی نام پرونده‌ی دیگری نیز تنظیم کنید." +"سندها است. معمولاً این سند «index» است، اما اگر سند «index»\n" +"شما یک قالب سفارشی است، می‌توانید آن را به نام پرونده‌ی دیگری تنظیم کنید." msgid "Name of your master document (without suffix)" msgstr "نام سند اصلی شما (بدون پسوند)" #, python-format msgid "Error: the master file %s has already been found in the selected root path." -msgstr "خطا: پرونده‌ی اصلی %s از قبل در مسیر ریشه‌ی انتخاب‌شده یافت شده است." +msgstr "خطا: پرونده‌ی اصلی %s هم‌اکنون در مسیر ریشه‌ی انتخاب‌شده پیدا شده است." msgid "sphinx-quickstart will not overwrite the existing file." -msgstr "sphinx-quickstart پرونده‌ی موجود را بازنویسی نمی‌کند." +msgstr "sphinx-quickstart پرونده‌ی موجود را بازنویسی نخواهد کرد." msgid "Please enter a new file name, or rename the existing file and press Enter" -msgstr "لطفاً یک نام پرونده‌ی جدید وارد کنید، یا پرونده‌ی موجود را تغییر نام دهید و Enter را فشار دهید" +msgstr "لطفاً یک نام پرونده‌ی جدید وارد کنید، یا پرونده‌ی موجود را تغییرنام دهید و Enter را بزنید" msgid "Indicate which of the following Sphinx extensions should be enabled:" -msgstr "مشخص کنید کدام‌یک از افزونه‌های Sphinx زیر باید فعال شوند:" +msgstr "مشخص کنید کدام‌یک از افزونه‌های زیر Sphinx باید فعال شوند:" msgid "Note: imgmath and mathjax cannot be enabled at the same time. imgmath has been deselected." -msgstr "توجه: imgmath و mathjax نمی‌توانند هم‌زمان فعال شوند. imgmath از حالت انتخاب خارج شده است." +msgstr "نکته: imgmath و mathjax را نمی‌توان همزمان فعال کرد. imgmath از حالت انتخاب خارج شد." msgid "" "A Makefile and a Windows command file can be generated for you so that you\n" "only have to run e.g. `make html' instead of invoking sphinx-build\n" "directly." msgstr "" -"یک Makefile و یک پرونده‌ی دستور ویندوز می‌تواند برای شما تولید شود تا\n" -"فقط لازم باشد مثلاً `make html' را اجرا کنید، به‌جای اینکه sphinx-build را\n" -"مستقیماً فراخوانی کنید." +"یک Makefile و یک پرونده‌ی دستور ویندوز می‌توانند برای شما تولید شوند تا\n" +"فقط لازم باشد مثلاً «make html» را اجرا کنید، به‌جای فراخوانی مستقیم\n" +"sphinx-build." msgid "Create Makefile? (y/n)" -msgstr "ایجاد Makefile؟ (y/n)" +msgstr "ساخت Makefile؟ (y/n)" msgid "Create Windows command file? (y/n)" -msgstr "ایجاد پرونده‌ی دستور ویندوز؟ (y/n)" +msgstr "ساخت پرونده‌ی دستور ویندوز؟ (y/n)" #, python-format msgid "Creating file %s." -msgstr "در حال ایجاد پرونده %s." +msgstr "در حال ساخت پرونده‌ی %s." #, python-format msgid "File %s already exists, skipping." -msgstr "پرونده‌ی %s از قبل وجود دارد، رد می‌شود." +msgstr "پرونده‌ی %s هم‌اکنون وجود دارد، رد شد." msgid "Finished: An initial directory structure has been created." -msgstr "پایان: یک ساختار پوشه‌ی اولیه ایجاد شد." +msgstr "پایان یافت: یک ساختار پوشه‌ی اولیه ساخته شد." #, python-format msgid "" "You should now populate your master file %s and create other documentation\n" "source files. " msgstr "" -"اکنون باید پرونده‌ی اصلی %s خود را پر کنید و سایر پرونده‌های مبدأ\n" -"مستندات را ایجاد کنید. " +"اکنون باید پرونده‌ی اصلی %s خود را پر کنید و دیگر پرونده‌های منبع\n" +"مستندات را بسازید. " msgid "" "Use the Makefile to build the docs, like so:\n" " make builder" msgstr "" -"برای ساخت مستندات از Makefile به این شکل استفاده کنید:\n" +"برای ساخت مستندات از Makefile استفاده کنید، به این شکل:\n" " make builder" #, python-format @@ -2148,11 +1782,11 @@ msgid "" "Use the sphinx-build command to build the docs, like so:\n" " sphinx-build -b builder %s %s" msgstr "" -"برای ساخت مستندات از دستور sphinx-build به این شکل استفاده کنید:\n" +"برای ساخت مستندات از دستور sphinx-build استفاده کنید، به این شکل:\n" " sphinx-build -b builder %s %s" msgid "where \"builder\" is one of the supported builders, e.g. html, latex or linkcheck." -msgstr "که در آن \"builder\" یکی از سازنده‌های پشتیبانی‌شده است، مثلاً html، latex یا linkcheck." +msgstr "که در آن «builder» یکی از سازنده‌های پشتیبانی‌شده است، مثلاً html، latex یا linkcheck." msgid "" "\n" @@ -2165,12 +1799,12 @@ msgstr "" "\n" "تولید پرونده‌های موردنیاز برای یک پروژه‌ی Sphinx.\n" "\n" -"sphinx-quickstart یک ابزار تعاملی است که چند سؤال درباره‌ی پروژه‌ی شما\n" -"می‌پرسد و سپس یک پوشه‌ی کامل مستندات و یک Makefile نمونه\n" +"sphinx-quickstart ابزاری تعاملی است که چند پرسش درباره‌ی پروژه‌ی\n" +"شما می‌پرسد و سپس یک پوشه‌ی کامل مستندات و یک Makefile نمونه\n" "برای استفاده با sphinx-build تولید می‌کند.\n" msgid "For more information, visit ." -msgstr "برای اطلاعات بیشتر، به مراجعه کنید." +msgstr "برای اطلاعات بیشتر، از دیدن کنید." msgid "quiet mode" msgstr "حالت بی‌صدا" @@ -2182,13 +1816,13 @@ msgid "Structure options" msgstr "گزینه‌های ساختار" msgid "if specified, separate source and build dirs" -msgstr "در صورت مشخص شدن، پوشه‌های مبدأ و ساخت را جدا کنید" +msgstr "اگر مشخص شود، پوشه‌های source و build جدا می‌شوند" msgid "if specified, create build dir under source dir" -msgstr "در صورت مشخص شدن، پوشه‌ی ساخت را زیر پوشه‌ی مبدأ ایجاد کنید" +msgstr "اگر مشخص شود، پوشه‌ی build زیر پوشه‌ی source ساخته می‌شود" msgid "replacement for dot in _templates etc." -msgstr "جایگزین نقطه در _templates و غیره." +msgstr "جایگزین نقطه در ‎_templates و غیره." msgid "Project basic options" msgstr "گزینه‌های پایه‌ی پروژه" @@ -2197,7 +1831,7 @@ msgid "project name" msgstr "نام پروژه" msgid "author names" -msgstr "نام نویسندگان" +msgstr "نام‌های نویسنده" msgid "version of project" msgstr "نسخه‌ی پروژه" @@ -2209,7 +1843,7 @@ msgid "document language" msgstr "زبان سند" msgid "source file suffix" -msgstr "پسوند پرونده‌ی مبدأ" +msgstr "پسوند پرونده‌ی منبع" msgid "master document name" msgstr "نام سند اصلی" @@ -2228,19 +1862,19 @@ msgid "enable arbitrary extensions" msgstr "فعال‌سازی افزونه‌های دلخواه" msgid "Makefile and Batchfile creation" -msgstr "ایجاد Makefile و Batchfile" +msgstr "ساخت Makefile و Batchfile" msgid "create makefile" -msgstr "ایجاد makefile" +msgstr "ساخت makefile" msgid "do not create makefile" -msgstr "makefile ایجاد نکنید" +msgstr "makefile ساخته نشود" msgid "create batchfile" -msgstr "ایجاد batchfile" +msgstr "ساخت batchfile" msgid "do not create batchfile" -msgstr "batchfile ایجاد نکنید" +msgstr "batchfile ساخته نشود" msgid "use make-mode for Makefile/make.bat" msgstr "استفاده از حالت make برای Makefile/make.bat" @@ -2255,10 +1889,10 @@ msgid "define a template variable" msgstr "تعریف یک متغیر قالب" msgid "\"quiet\" is specified, but any of \"project\" or \"author\" is not specified." -msgstr "\"quiet\" مشخص شده است، اما هیچ‌یک از \"project\" یا \"author\" مشخص نشده است." +msgstr "«quiet» مشخص شده، اما هیچ‌کدام از «project» یا «author» مشخص نشده است." msgid "Error: specified path is not a directory, or sphinx files already exist." -msgstr "خطا: مسیر مشخص‌شده یک پوشه نیست، یا پرونده‌های sphinx از قبل وجود دارند." +msgstr "خطا: مسیر مشخص‌شده یک پوشه نیست، یا پرونده‌های sphinx هم‌اکنون وجود دارند." msgid "sphinx-quickstart only generate into a empty directory. Please specify a new root path." msgstr "sphinx-quickstart فقط در یک پوشه‌ی خالی تولید می‌کند. لطفاً یک مسیر ریشه‌ی جدید مشخص کنید." @@ -2268,7 +1902,7 @@ msgid "Invalid template variable: %s" msgstr "متغیر قالب نامعتبر: %s" msgid "job number should be a positive number" -msgstr "تعداد کار باید یک عدد مثبت باشد" +msgstr "شماره‌ی کار باید عددی مثبت باشد" msgid "" "\n" @@ -2288,68 +1922,68 @@ msgid "" "files can be built by specifying individual filenames.\n" msgstr "" "\n" -"تولید مستندات از پرونده‌های مبدأ.\n" +"تولید مستندات از پرونده‌های منبع.\n" "\n" -"sphinx-build مستندات را از پرونده‌های موجود در SOURCEDIR تولید می‌کند و آن را در\n" -"OUTPUTDIR قرار می‌دهد. این ابزار به‌دنبال 'conf.py' در SOURCEDIR برای تنظیمات\n" -"پیکربندی می‌گردد. ابزار 'sphinx-quickstart' می‌تواند برای تولید پرونده‌های قالب،\n" -"از جمله 'conf.py' استفاده شود.\n" +"sphinx-build مستندات را از پرونده‌های موجود در SOURCEDIR تولید می‌کند و آن را\n" +"در OUTPUTDIR قرار می‌دهد. برای تنظیمات پیکربندی به‌دنبال «conf.py»\n" +"در SOURCEDIR می‌گردد. ابزار «sphinx-quickstart» را می‌توان برای تولید پرونده‌های قالب،\n" +"از جمله «conf.py»، استفاده کرد\n" "\n" -"sphinx-build می‌تواند مستندات را در قالب‌های مختلفی ایجاد کند. یک قالب با\n" -"مشخص کردن نام سازنده در خط فرمان انتخاب می‌شود؛ مقدار پیش‌فرض آن\n" -"HTML است. سازنده‌ها همچنین می‌توانند سایر وظایف مربوط به پردازش\n" -"مستندات را انجام دهند.\n" +"sphinx-build می‌تواند مستندات را در قالب‌های مختلف بسازد. یک قالب با\n" +"مشخص کردن نام سازنده در خط فرمان انتخاب می‌شود؛ پیش‌فرض آن\n" +"HTML است. سازنده‌ها همچنین می‌توانند وظیفه‌های دیگری مرتبط با پردازش\n" +"مستندات انجام دهند.\n" "\n" -"به‌طور پیش‌فرض، هر چیزی که قدیمی باشد ساخته می‌شود. خروجی فقط برای پرونده‌های\n" -"انتخاب‌شده می‌تواند با مشخص کردن نام‌های پرونده‌ی مجزا ساخته شود.\n" +"به‌طور پیش‌فرض، هرچه قدیمی است ساخته می‌شود. خروجی فقط برای پرونده‌های\n" +"انتخاب‌شده را می‌توان با مشخص کردن نام پرونده‌های جداگانه ساخت.\n" msgid "path to documentation source files" -msgstr "مسیر منابع مستندات" +msgstr "مسیر پرونده‌های منبع مستندات" msgid "path to output directory" msgstr "مسیر پوشه‌ی خروجی" msgid "(optional) a list of specific files to rebuild. Ignored if --write-all is specified" -msgstr "(اختیاری) فهرستی از پرونده‌های مشخص برای بازسازی. در صورت مشخص شدن --write-all نادیده گرفته می‌شود" +msgstr "(اختیاری) فهرستی از پرونده‌های مشخص برای بازسازی. اگر --write-all مشخص شود، نادیده گرفته می‌شود" msgid "general options" -msgstr "گزینه‌های عمومی" +msgstr "گزینه‌های کلی" msgid "builder to use (default: 'html')" -msgstr "سازنده‌ی مورد استفاده (پیش‌فرض: 'html')" +msgstr "سازنده‌ای که استفاده می‌شود (پیش‌فرض: «html»)" msgid "run in parallel with N processes, when possible. 'auto' uses the number of CPU cores" -msgstr "در صورت امکان، با N فرایند به‌صورت موازی اجرا شود. 'auto' از تعداد هسته‌های CPU استفاده می‌کند" +msgstr "در صورت امکان، اجرا به‌صورت موازی با N فرایند. «auto» از تعداد هسته‌های پردازنده استفاده می‌کند" msgid "write all files (default: only write new and changed files)" -msgstr "نوشتن همه‌ی پرونده‌ها (پیش‌فرض: فقط پرونده‌های جدید و تغییر‌یافته نوشته می‌شوند)" +msgstr "نوشتن همه‌ی پرونده‌ها (پیش‌فرض: فقط نوشتن پرونده‌های جدید و تغییریافته)" msgid "don't use a saved environment, always read all files" -msgstr "از محیط ذخیره‌شده استفاده نکنید، همیشه همه‌ی پرونده‌ها را بخوانید" +msgstr "استفاده نکردن از محیط ذخیره‌شده، همیشه خواندن همه‌ی پرونده‌ها" msgid "path options" msgstr "گزینه‌های مسیر" msgid "directory for doctree and environment files (default: OUTPUT_DIR/.doctrees)" -msgstr "پوشه‌ی پرونده‌های doctree و محیط (پیش‌فرض: OUTPUT_DIR/.doctrees)" +msgstr "پوشه برای پرونده‌های doctree و محیط (پیش‌فرض: OUTPUT_DIR/.doctrees)" msgid "directory for the configuration file (conf.py) (default: SOURCE_DIR)" -msgstr "پوشه‌ی پرونده‌ی پیکربندی (conf.py) (پیش‌فرض: SOURCE_DIR)" +msgstr "پوشه برای پرونده‌ی پیکربندی (conf.py) (پیش‌فرض: SOURCE_DIR)" msgid "use no configuration file, only use settings from -D options" -msgstr "از هیچ پرونده‌ی پیکربندی استفاده نکنید؛ فقط از تنظیمات گزینه‌های -D استفاده کنید" +msgstr "استفاده نکردن از پرونده‌ی پیکربندی، فقط استفاده از تنظیمات گزینه‌های -D" msgid "override a setting in configuration file" msgstr "بازنویسی یک تنظیم در پرونده‌ی پیکربندی" msgid "pass a value into HTML templates" -msgstr "انتقال یک مقدار به قالب‌های HTML" +msgstr "ارسال یک مقدار به قالب‌های HTML" msgid "define tag: include \"only\" blocks with TAG" -msgstr "تعریف تگ: گنجاندن \"only\" بلوک‌ها با TAG" +msgstr "تعریف تگ: گنجاندن بلوک‌های «only» دارای TAG" msgid "nitpicky mode: warn about all missing references" -msgstr "حالت سخت‌گیرانه: هشدار درباره‌ی همه‌ی ارجاعات گم‌شده" +msgstr "حالت موشکافانه: هشدار درباره‌ی همه‌ی ارجاع‌های گم‌شده" msgid "console output options" msgstr "گزینه‌های خروجی کنسول" @@ -2358,16 +1992,16 @@ msgid "increase verbosity (can be repeated)" msgstr "افزایش پرگویی (قابل تکرار)" msgid "no output on stdout, just warnings on stderr" -msgstr "هیچ خروجی‌ای روی stdout نیست، فقط هشدارها روی stderr" +msgstr "بدون خروجی در stdout، فقط هشدارها در stderr" msgid "no output at all, not even warnings" -msgstr "هیچ خروجی‌ای، حتی هشدارها" +msgstr "بدون هیچ خروجی‌ای، حتی هشدارها" msgid "do emit colored output (default: auto-detect)" -msgstr "خروجی رنگی تولید کنید (پیش‌فرض: تشخیص خودکار)" +msgstr "تولید خروجی رنگی (پیش‌فرض: تشخیص خودکار)" msgid "do not emit colored output (default: auto-detect)" -msgstr "خروجی رنگی تولید نکنید (پیش‌فرض: تشخیص خودکار)" +msgstr "تولید نکردن خروجی رنگی (پیش‌فرض: تشخیص خودکار)" msgid "warning control options" msgstr "گزینه‌های کنترل هشدار" @@ -2388,11 +2022,11 @@ msgid "raise an exception on warnings" msgstr "پرتاب استثنا هنگام هشدارها" msgid "cannot combine -a option and filenames" -msgstr "نمی‌توان گزینه‌ی -a و نام پرونده‌ها را با هم ترکیب کرد" +msgstr "نمی‌توان گزینه‌ی -a و نام پرونده‌ها را ترکیب کرد" #, python-format msgid "cannot open warning file '%s': %s" -msgstr "نمی‌توان پرونده‌ی هشدار «%s» را باز کرد: %s" +msgstr "پرونده‌ی هشدار «%s» باز نشد: %s" msgid "-D option argument must be in the form name=value" msgstr "آرگومان گزینه‌ی -D باید به شکل name=value باشد" @@ -2410,7 +2044,7 @@ msgid "Search" msgstr "جست‌وجو" msgid "Go" -msgstr "رفتن" +msgstr "برو" msgid "Show Source" msgstr "نمایش منبع" @@ -2420,16 +2054,16 @@ msgstr "محتویات" #, python-format msgid "Search %(docstitle)s" -msgstr "جست‌وجو در %(docstitle)s" +msgstr "جست‌وجوی %(docstitle)s" msgid "Overview" -msgstr "نمای کلی" +msgstr "بررسی اجمالی" msgid "Welcome! This is" -msgstr "خوش آمدید! این" +msgstr "خوش‌آمدید! این است" msgid "the documentation for" -msgstr "مستندات" +msgstr "مستندات برای" msgid "last updated" msgstr "آخرین به‌روزرسانی" @@ -2438,7 +2072,7 @@ msgid "Indices and tables:" msgstr "اندیس‌ها و جدول‌ها:" msgid "Complete Table of Contents" -msgstr "فهرست مطالب کامل" +msgstr "جدول کامل محتویات" msgid "lists all sections and subsections" msgstr "همه‌ی بخش‌ها و زیربخش‌ها را فهرست می‌کند" @@ -2450,7 +2084,7 @@ msgid "search this documentation" msgstr "این مستند را جست‌وجو کنید" msgid "Global Module Index" -msgstr "اندیس سراسری ماژول‌ها" +msgstr "اندیس ماژول‌های سراسری" msgid "quick access to all modules" msgstr "دسترسی سریع به همه‌ی ماژول‌ها" @@ -2472,13 +2106,13 @@ msgid "Full index on one page" msgstr "اندیس کامل در یک صفحه" msgid "Quick search" -msgstr "جست‌وجو سریع" +msgstr "جست‌وجوی سریع" msgid "Index pages by letter" msgstr "صفحه‌های اندیس بر اساس حرف" msgid "can be huge" -msgstr "می‌تواند بزرگ باشد" +msgstr "می‌تواند بسیار بزرگ باشد" msgid "Previous topic" msgstr "موضوع قبلی" @@ -2493,14 +2127,17 @@ msgid "next chapter" msgstr "فصل بعدی" msgid "Navigation" -msgstr "ناوبری" +msgstr "پیمایش" #, python-format msgid "Search within %(docstitle)s" msgstr "جست‌وجو در %(docstitle)s" msgid "About these documents" -msgstr "درباره‌ی مستندات" +msgstr "درباره‌ی این مستندات" + +msgid "Copyright" +msgstr "حق نشر" #, python-format msgid "© %(copyright_prefix)s %(copyright)s." @@ -2508,43 +2145,43 @@ msgstr "© %(copyright_prefix)s %(copyright)s." #, python-format msgid "Last updated on %(last_updated)s." -msgstr "آخرین به‌روزرسانی در %(last_updated)s." +msgstr "آخرین به‌روزرسانی در: %(last_updated)s." #, python-format msgid "Created using Sphinx %(sphinx_version)s." -msgstr "ساخته‌شده با Sphinx %(sphinx_version)s." +msgstr "ساخته‌شده با استفاده از Sphinx نسخه‌ی %(sphinx_version)s." msgid "" "Please activate JavaScript to enable the search\n" " functionality." msgstr "" -"لطفاً برای فعال‌سازی قابلیت جست‌وجو،\\n\n" -" JavaScript را فعال کنید." +"لطفاً برای فعال کردن قابلیت جست‌وجو،\n" +" جاوااسکریپت را فعال کنید." msgid "" "Searching for multiple words only shows matches that contain\n" " all words." msgstr "" -"جست‌وجو برای چندین واژه فقط تطبیق‌هایی را نشان می‌دهد که شامل\\n\n" +"جست‌وجوی چند واژه فقط مواردی را نشان می‌دهد که حاوی\n" " همه‌ی واژه‌ها باشند." msgid "search" msgstr "جست‌وجو" msgid "Hide Search Matches" -msgstr "پنهان کردن تطبیق‌های جست‌وجو" +msgstr "پنهان کردن نتایج جست‌وجو" msgid "Search Results" msgstr "نتایج جست‌وجو" msgid "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." -msgstr "جست‌وجوی شما با هیچ سندی مطابقت نداشت. لطفاً مطمئن شوید که همه‌ی واژه‌ها درست نوشته شده‌اند و دسته‌بندی‌های کافی را انتخاب کرده‌اید." +msgstr "جست‌وجوی شما با هیچ سندی مطابقت نداشت. لطفاً مطمئن شوید همه‌ی واژه‌ها به‌درستی نوشته شده‌اند و دسته‌های کافی را انتخاب کرده‌اید." #, python-brace-format msgid "Search finished, found one page matching the search query." msgid_plural "Search finished, found ${resultCount} pages matching the search query." -msgstr[0] "جست‌وجو به پایان رسید؛ یک صفحه مطابق با عبارت جست‌وجو یافت شد." -msgstr[1] "جست‌وجو به پایان رسید؛ ${resultCount} صفحه مطابق با عبارت جست‌وجو یافت شد." +msgstr[0] "جست‌وجو به پایان رسید، یک صفحه با پرس‌وجوی جست‌وجو مطابقت داشت." +msgstr[1] "جست‌وجو به پایان رسید، ${resultCount} صفحه با پرس‌وجوی جست‌وجو مطابقت داشت." msgid "Searching" msgstr "در حال جست‌وجو" @@ -2565,29 +2202,29 @@ msgstr "تغییرات در نسخه‌ی %(version)s — %(docstitle)s" #, python-format msgid "Automatically generated list of changes in version %(version)s" -msgstr "فهرست خودکار‌تولیدشده‌ی تغییرات در نسخه‌ی %(version)s" +msgstr "فهرست خودکارتولیدشده‌ی تغییرات در نسخه‌ی %(version)s" msgid "Library changes" msgstr "تغییرات کتابخانه" msgid "C API changes" -msgstr "تغییرات API C" +msgstr "تغییرات API سی" msgid "Other changes" -msgstr "تغییرات دیگر" +msgstr "دیگر تغییرات" msgid "Expand sidebar" msgstr "باز کردن نوار کناری" msgid "Positional-only parameter separator (PEP 570)" -msgstr "جداکننده‌ی پارامتر فقط‌جایگاهی (PEP 570)" +msgstr "جداکننده‌ی پارامتر فقط-جایگاهی (PEP 570)" msgid "Keyword-only parameters separator (PEP 3102)" -msgstr "جداکننده‌ی پارامترهای فقط کلیدواژه‌ای (PEP 3102)" +msgstr "جداکننده‌ی پارامترهای فقط-کلیدواژه‌ای (PEP 3102)" #, python-format msgid "%s() (in module %s)" -msgstr "%s() (در ماژول %s)" +msgstr "()%s (در ماژول %s)" #, python-format msgid "%s (in module %s)" @@ -2607,15 +2244,15 @@ msgstr "%s (کلاس در %s)" #, python-format msgid "%s() (%s class method)" -msgstr "%s() (%s متد کلاس)" +msgstr "()%s (متد کلاس %s)" #, python-format msgid "%s() (%s static method)" -msgstr "%s() (%s متد ایستا)" +msgstr "()%s (متد ایستای %s)" #, python-format msgid "%s (%s property)" -msgstr "%s (%s پراپرتی)" +msgstr "%s (پراپرتی %s)" #, python-format msgid "%s (type alias in %s)" @@ -2628,7 +2265,7 @@ msgid "modules" msgstr "ماژول‌ها" msgid "Deprecated" -msgstr "منسوخ" +msgstr "منسوخ‌شده" msgid "exception" msgstr "استثنا" @@ -2647,44 +2284,44 @@ msgstr "مستعار نوع" #, python-format msgid "duplicate object description of %s, other instance in %s, use :no-index: for one of them" -msgstr "توصیف شیء تکراری برای %s، نمونه‌ی دیگر در %s، برای یکی از آن‌ها از :no-index: استفاده کنید" +msgstr "توضیح شیء تکراری برای %s، نمونه‌ی دیگر در %s، برای یکی از آن‌ها از :no-index: استفاده کنید" #, python-format msgid "more than one target found for cross-reference %r: %s" -msgstr "بیش از یک هدف برای ارجاع متقابل %r یافت شد: %s" +msgstr "بیش از یک هدف برای ارجاع‌متقابل %r پیدا شد: %s" msgid " (deprecated)" -msgstr " \" (منسوخ)" +msgstr " (منسوخ‌شده)" msgid "Parameters" msgstr "پارامترها" msgid "Variables" -msgstr "متغیر‌ها" +msgstr "متغیرها" msgid "Raises" -msgstr "پرتاب‌ها" +msgstr "پرتاب می‌کند" msgid "Template Parameters" msgstr "پارامترهای قالب" #, python-format msgid "%s (C++ %s)" -msgstr "%s (C++ %s)" +msgstr "%s (++C %s)" #, python-format msgid "" "Duplicate C++ declaration, also defined at %s:%s.\n" "Declaration is '.. cpp:%s:: %s'." msgstr "" -"اعلان C++ تکراری، همچنین در %s:%s تعریف شده است.\n" -"اعلان '.. cpp:%s:: %s' است." +"اعلان تکراری ++C، همچنین در %s:%s تعریف شده است.\n" +"اعلان «.. cpp:%s:: %s» است." msgid "Return values" msgstr "مقادیر بازگشتی" msgid "union" -msgstr "اجتماع" +msgstr "یونیون" msgid "member" msgstr "عضو" @@ -2696,7 +2333,7 @@ msgid "concept" msgstr "مفهوم" msgid "enum" -msgstr "شمارشی" +msgstr "enum" msgid "enumerator" msgstr "شمارشگر" @@ -2709,15 +2346,15 @@ msgstr "پارامتر قالب" #, python-format msgid "%s (C %s)" -msgstr "%s (C %s)" +msgstr "%s (سی %s)" #, python-format msgid "" "Duplicate C declaration, also defined at %s:%s.\n" "Declaration is '.. c:%s:: %s'." msgstr "" -"اعلان C تکراری، همچنین در %s:%s تعریف شده است.\n" -"اعلان '.. c:%s:: %s' است." +"اعلان تکراری سی، همچنین در %s:%s تعریف شده است.\n" +"اعلان «.. c:%s:: %s» است." msgid "variable" msgstr "متغیر" @@ -2726,7 +2363,7 @@ msgid "macro" msgstr "ماکرو" msgid "struct" -msgstr "ساختار" +msgstr "struct" #, python-format msgid "environment variable; %s" @@ -2744,7 +2381,7 @@ msgstr "پیش‌فرض" #, python-format msgid "Malformed option description %r, should look like \"opt\", \"-opt args\", \"--opt args\", \"/opt args\" or \"+opt args\"" -msgstr "توصیف گزینه‌ی بدشکل %r، باید به شکل \"opt\"، \"-opt args\"، \"--opt args\"، \"/opt args\" یا \"+opt args\" باشد" +msgstr "توضیح گزینه‌ی بدشکل %r، باید شبیه «opt»، «‎-opt args»، «‎--opt args»، «‎/opt args» یا «‎+opt args» باشد" #, python-format msgid "%s command line option" @@ -2754,19 +2391,19 @@ msgid "command line option" msgstr "گزینه‌ی خط فرمان" msgid "glossary term must be preceded by empty line" -msgstr "واژه‌ی واژه‌نامه باید پس از یک سطر خالی بیاید" +msgstr "اصطلاح واژه‌نامه باید قبل از آن یک سطر خالی داشته باشد" msgid "glossary terms must not be separated by empty lines" -msgstr "واژه‌های واژه‌نامه نباید با سطرهای خالی جدا شوند" +msgstr "اصطلاحات واژه‌نامه نباید با سطرهای خالی از هم جدا شوند" msgid "glossary seems to be misformatted, check indentation" -msgstr "به نظر می‌رسد واژه‌نامه بدشکل است، تورفتگی را بررسی کنید" +msgstr "به‌نظر می‌رسد واژه‌نامه بدقالب است، تورفتگی را بررسی کنید" msgid "glossary term" -msgstr "واژه‌ی واژه‌نامه" +msgstr "اصطلاح واژه‌نامه" msgid "grammar token" -msgstr "توکن دستور زبان" +msgstr "توکن گرامری" msgid "reference label" msgstr "برچسب ارجاع" @@ -2785,18 +2422,18 @@ msgstr "اندیس ماژول‌ها" #, python-format msgid "duplicate %s description of %s, other instance in %s" -msgstr "توصیف %s تکراری از %s، نمونه‌ی دیگر در %s" +msgstr "توضیح %s تکراری برای %s، نمونه‌ی دیگر در %s" msgid "numfig is disabled. :numref: is ignored." msgstr "numfig غیرفعال است. :numref: نادیده گرفته می‌شود." #, python-format msgid "Failed to create a cross reference. Any number is not assigned: %s" -msgstr "ایجاد ارجاع متقابل ناموفق بود. هیچ شماره‌ای اختصاص داده نشده است: %s" +msgstr "ساخت ارجاع‌متقابل شکست خورد. هیچ شماره‌ای تخصیص نیافته است: %s" #, python-format msgid "the link has no caption: %s" -msgstr "پیوند عنوان ندارد: %s" +msgstr "پیوند زیرنویسی ندارد: %s" #, python-format msgid "invalid numfig_format: %s (%r)" @@ -2812,383 +2449,388 @@ msgstr "برچسب تعریف‌نشده: %r" #, python-format msgid "Failed to create a cross reference. A title or caption not found: %r" -msgstr "" +msgstr "ساخت ارجاع‌متقابل شکست خورد. هیچ عنوان یا زیرنویسی پیدا نشد: %r" #, python-format msgid "circular toctree references detected, ignoring: %s <- %s" -msgstr "" +msgstr "ارجاع‌های چرخه‌ای toctree شناسایی شد، نادیده گرفته شد: %s <- %s" #, python-format msgid "toctree contains reference to document %r that doesn't have a title: no link will be generated" -msgstr "" +msgstr "toctree حاوی ارجاعی به سند %r است که عنوانی ندارد: هیچ پیوندی تولید نخواهد شد" #, python-format msgid "toctree contains reference to non-included document %r" -msgstr "" +msgstr "toctree حاوی ارجاعی به سند گنجانده‌نشده‌ی %r است" #, python-format msgid "toctree contains reference to non-existing document %r" -msgstr "" +msgstr "toctree حاوی ارجاعی به سند ناموجود %r است" #, python-format msgid "see %s" -msgstr "" +msgstr "%s را ببینید" #, python-format msgid "see also %s" -msgstr "" +msgstr "همچنین %s را ببینید" #, python-format msgid "unknown index entry type %r" -msgstr "" +msgstr "نوع ورودی اندیس ناشناخته‌ی %r" msgid "Symbols" -msgstr "" +msgstr "نمادها" #, python-format msgid "image file not readable: %s" -msgstr "" +msgstr "پرونده‌ی تصویر خوانا نیست: %s" #, python-format msgid "image file %s not readable: %s" -msgstr "" +msgstr "پرونده‌ی تصویر %s خوانا نیست: %s" #, python-format msgid "download file not readable: %s" -msgstr "" +msgstr "پرونده‌ی دانلود خوانا نیست: %s" #, python-format msgid "%s is already assigned section numbers (nested numbered toctree?)" -msgstr "" +msgstr "به %s هم‌اکنون شماره‌های بخش تخصیص یافته است (toctree شماره‌گذاری‌شده‌ی تودرتو؟)" msgid "Interrupted!" -msgstr "" +msgstr "قطع شد!" msgid "reStructuredText markup error!" -msgstr "" +msgstr "خطای نشانه‌گذاری reStructuredText!" msgid "Encoding error!" -msgstr "" +msgstr "خطای کدگذاری!" msgid "Recursion error!" -msgstr "" +msgstr "خطای بازگشتی!" msgid "This can happen with very large or deeply nested source files. You can carefully increase the default Python recursion limit of 1,000 in conf.py with e.g.:" -msgstr "" +msgstr "این ممکن است با پرونده‌های منبع بسیار بزرگ یا عمیقاً تودرتو رخ دهد. می‌توانید با احتیاط محدودیت بازگشت پیش‌فرض پایتون، یعنی ۱۰۰۰، را در conf.py افزایش دهید، مثلاً با:" msgid "Starting debugger:" -msgstr "" +msgstr "در حال آغاز اشکال‌زدا:" msgid "The full traceback has been saved in:" -msgstr "" +msgstr "ردگیری کامل در این مسیر ذخیره شده است:" msgid "To report this error to the developers, please open an issue at . Thanks!" -msgstr "" +msgstr "برای گزارش این خطا به توسعه‌دهندگان، لطفاً یک گزارش مشکل در باز کنید. متشکریم!" msgid "Please also report this if it was a user error, so that a better error message can be provided next time." -msgstr "" +msgstr "لطفاً حتی اگر این خطا از کاربر بوده نیز آن را گزارش دهید، تا دفعه‌ی بعد پیام خطای بهتری ارائه شود." msgid "Could not determine the fallback text for the cross-reference. Might be a bug." -msgstr "" +msgstr "متن جایگزین برای ارجاع‌متقابل تعیین نشد. ممکن است اشکالی باشد." #, python-format msgid "more than one target found for 'any' cross-reference %r: could be %s" -msgstr "" +msgstr "بیش از یک هدف برای ارجاع‌متقابل «any» با نام %r پیدا شد: می‌تواند %s باشد" #, python-format msgid "%s:%s reference target not found: %s" -msgstr "" +msgstr "هدف ارجاع %s:%s پیدا نشد: %s" #, python-format msgid "%r reference target not found: %s" -msgstr "" +msgstr "هدف ارجاع %r پیدا نشد: %s" #, python-format msgid "Could not fetch remote image: %s [%s]" -msgstr "" +msgstr "دریافت تصویر دوردست ممکن نشد: %s [%s]" #, python-format msgid "Could not fetch remote image: %s [%d]" -msgstr "" +msgstr "دریافت تصویر دوردست ممکن نشد: %s [%d]" #, python-format msgid "Unknown image format: %s..." -msgstr "" +msgstr "قالب تصویر ناشناخته: %s..." #, python-format msgid "The HTML pages are in %(outdir)s." -msgstr "" +msgstr "صفحه‌های HTML در %(outdir)s هستند." #, python-format msgid "Failed to read build info file: %r" -msgstr "" +msgstr "خواندن پرونده‌ی اطلاعات ساخت شکست خورد: %r" msgid "build_info mismatch, copying .buildinfo to .buildinfo.bak" -msgstr "" +msgstr "عدم تطابق build_info، در حال کپی کردن buildinfo. به buildinfo.bak." msgid "building [html]: " -msgstr "" +msgstr "در حال ساخت [html]: " #, python-format msgid "template %s has been changed since the previous build, all docs will be rebuilt" -msgstr "" +msgstr "قالب %s از ساخت پیشین تغییر کرده است، همه‌ی سندها بازسازی خواهند شد" msgid "index" -msgstr "" +msgstr "اندیس" #, python-format msgid "Logo of %s" -msgstr "" +msgstr "لوگوی %s" msgid "next" -msgstr "" +msgstr "بعدی" msgid "previous" -msgstr "" +msgstr "قبلی" msgid "generating indices" -msgstr "" +msgstr "در حال تولید اندیس‌ها" msgid "writing additional pages" -msgstr "" +msgstr "در حال نوشتن صفحه‌های اضافی" #, python-format msgid "cannot copy image file '%s': %s" -msgstr "" +msgstr "کپی کردن پرونده‌ی تصویر «%s» ممکن نشد: %s" msgid "copying downloadable files... " -msgstr "" +msgstr "در حال کپی کردن پرونده‌های قابل‌دانلود... " #, python-format msgid "cannot copy downloadable file %r: %s" -msgstr "" +msgstr "کپی کردن پرونده‌ی قابل‌دانلود %r ممکن نشد: %s" #, python-format msgid "Failed to copy a file in the theme's 'static' directory: %s: %r" -msgstr "" +msgstr "کپی کردن پرونده‌ای در پوشه‌ی «static» پوسته شکست خورد: %s: %r" #, python-format msgid "Failed to copy a file in html_static_file: %s: %r" -msgstr "" +msgstr "کپی کردن پرونده‌ای در html_static_file شکست خورد: %s: %r" msgid "copying static files" -msgstr "" +msgstr "در حال کپی کردن پرونده‌های ایستا" #, python-format msgid "cannot copy static file %r" -msgstr "" +msgstr "کپی کردن پرونده‌ی ایستای %r ممکن نشد" msgid "copying extra files" -msgstr "" +msgstr "در حال کپی کردن پرونده‌های اضافی" #, python-format msgid "cannot copy extra file %r" -msgstr "" +msgstr "کپی کردن پرونده‌ی اضافی %r ممکن نشد" #, python-format msgid "Failed to write build info file: %r" -msgstr "" +msgstr "نوشتن پرونده‌ی اطلاعات ساخت شکست خورد: %r" msgid "search index couldn't be loaded, but not all documents will be built: the index will be incomplete." -msgstr "" +msgstr "اندیس جست‌وجو بار نشد، اما همه‌ی سندها ساخته نخواهند شد: اندیس ناقص خواهد بود." #, python-format msgid "page %s matches two patterns in html_sidebars: %r and %r" -msgstr "" +msgstr "صفحه‌ی %s با دو الگو در html_sidebars مطابقت دارد: %r و %r" #, python-format msgid "a Unicode error occurred when rendering the page %s. Please make sure all config values that contain non-ASCII content are Unicode strings." -msgstr "" +msgstr "هنگام رندر صفحه‌ی %s خطای یونیکد رخ داد. لطفاً مطمئن شوید همه‌ی مقادیر پیکربندی حاوی محتوای غیرASCII، رشته‌های یونیکد هستند." #, python-format msgid "" "An error happened in rendering the page %s.\n" "Reason: %r" msgstr "" +"خطایی هنگام رندر صفحه‌ی %s رخ داد.\n" +"دلیل: %r" msgid "dumping object inventory" -msgstr "" +msgstr "در حال برون‌ریزی فهرست موجودی اشیا" #, python-format msgid "dumping search index in %s" -msgstr "" +msgstr "در حال برون‌ریزی اندیس جست‌وجو در %s" #, python-format msgid "invalid js_file: %r, ignored" -msgstr "" +msgstr "js_file نامعتبر: %r، نادیده گرفته شد" msgid "Many math_renderers are registered. But no math_renderer is selected." -msgstr "" +msgstr "چندین math_renderer ثبت شده‌اند. اما هیچ math_renderer‌ای انتخاب نشده است." #, python-format msgid "Unknown math_renderer %r is given." -msgstr "" +msgstr "math_renderer ناشناخته‌ی %r داده شده است." #, python-format msgid "html_extra_path entry %r is placed inside outdir" -msgstr "" +msgstr "ورودی html_extra_path با نام %r درون outdir قرار دارد" #, python-format msgid "html_extra_path entry %r does not exist" -msgstr "" +msgstr "ورودی html_extra_path با نام %r وجود ندارد" #, python-format msgid "html_static_path entry %r is placed inside outdir" -msgstr "" +msgstr "ورودی html_static_path با نام %r درون outdir قرار دارد" #, python-format msgid "html_static_path entry %r does not exist" -msgstr "" +msgstr "ورودی html_static_path با نام %r وجود ندارد" #, python-format msgid "logo file %r does not exist" -msgstr "" +msgstr "پرونده‌ی لوگوی %r وجود ندارد" #, python-format msgid "favicon file %r does not exist" -msgstr "" +msgstr "پرونده‌ی favicon با نام %r وجود ندارد" #, python-format msgid "Values in 'html_sidebars' must be a list of strings. At least one pattern has a string value: %s. Change to `html_sidebars = %r`." -msgstr "" +msgstr "مقادیر در «html_sidebars» باید فهرستی از رشته‌ها باشند. حداقل یک الگو مقدار رشته‌ای دارد: %s. به «html_sidebars = %r» تغییر دهید." msgid "HTML 4 is no longer supported by Sphinx. (\"html4_writer=True\" detected in configuration options)" -msgstr "" +msgstr "HTML ۴ دیگر توسط Sphinx پشتیبانی نمی‌شود. («html4_writer=True» در گزینه‌های پیکربندی شناسایی شد)" #, python-format msgid "%s %s documentation" -msgstr "" +msgstr "مستندات %s %s" msgid "failed to read broken build info file (unknown version)" -msgstr "" +msgstr "خواندن پرونده‌ی اطلاعات ساخت خراب شکست خورد (نسخه‌ی ناشناخته)" msgid "failed to read broken build info file (missing config entry)" -msgstr "" +msgstr "خواندن پرونده‌ی اطلاعات ساخت خراب شکست خورد (ورودی پیکربندی گم‌شده)" msgid "failed to read broken build info file (missing tags entry)" -msgstr "" +msgstr "خواندن پرونده‌ی اطلاعات ساخت خراب شکست خورد (ورودی تگ‌ها گم‌شده)" #, python-format msgid "The LaTeX files are in %(outdir)s." -msgstr "" +msgstr "پرونده‌های LaTeX در %(outdir)s هستند." msgid "" "\n" "Run 'make' in that directory to run these through (pdf)latex\n" "(use `make latexpdf' here to do that automatically)." msgstr "" +"\n" +"دستور «make» را در آن پوشه اجرا کنید تا این‌ها از طریق (pdf)latex پردازش شوند\n" +"(برای انجام خودکار این کار از «make latexpdf» استفاده کنید)." msgid "no \"latex_documents\" config value found; no documents will be written" -msgstr "" +msgstr "هیچ مقدار پیکربندی «latex_documents» پیدا نشد؛ هیچ سندی نوشته نخواهد شد" #, python-format msgid "\"latex_documents\" config value references unknown document %s" -msgstr "" +msgstr "مقدار پیکربندی «latex_documents» به سند ناشناخته‌ی %s ارجاع می‌دهد" msgid "Release" -msgstr "" +msgstr "انتشار" msgid "copying TeX support files" -msgstr "" +msgstr "در حال کپی کردن پرونده‌های پشتیبانی TeX" msgid "copying additional files" -msgstr "" +msgstr "در حال کپی کردن پرونده‌های اضافی" #, python-format msgid "Unknown configure key: latex_elements[%r], ignored." -msgstr "" +msgstr "کلید پیکربندی ناشناخته: latex_elements[%r]، نادیده گرفته شد." #, python-format msgid "Unknown theme option: latex_theme_options[%r], ignored." -msgstr "" +msgstr "گزینه‌ی پوسته‌ی ناشناخته: latex_theme_options[%r]، نادیده گرفته شد." msgid "Failed to get a docname!" -msgstr "" +msgstr "دریافت نام‌سند شکست خورد!" #, python-format msgid "Failed to get a docname for source %r!" -msgstr "" +msgstr "دریافت نام‌سند برای منبع %r شکست خورد!" #, python-format msgid "No footnote was found for given reference node %r" -msgstr "" +msgstr "هیچ پانویسی برای گره‌ی ارجاع داده‌شده‌ی %r پیدا نشد" #, python-format msgid "%r doesn't have \"theme\" setting" -msgstr "" +msgstr "%r تنظیم «theme» را ندارد" #, python-format msgid "%r doesn't have \"%s\" setting" -msgstr "" +msgstr "%r تنظیم «%s» را ندارد" msgid "continued from previous page" -msgstr "" +msgstr "ادامه از صفحه‌ی قبل" msgid "continues on next page" -msgstr "" +msgstr "در صفحه‌ی بعد ادامه دارد" msgid "Non-alphabetical" -msgstr "" +msgstr "غیرالفبایی" msgid "Numbers" -msgstr "" +msgstr "اعداد" msgid "page" -msgstr "" +msgstr "صفحه" msgid "Keyword Arguments" -msgstr "" +msgstr "آرگومان‌های کلیدواژه‌ای" #, python-format msgid "invalid value set (missing closing brace): %s" -msgstr "" +msgstr "مجموعه‌مقدار نامعتبر (آکولاد بسته گم‌شده): %s" #, python-format msgid "invalid value set (missing opening brace): %s" -msgstr "" +msgstr "مجموعه‌مقدار نامعتبر (آکولاد باز گم‌شده): %s" #, python-format msgid "malformed string literal (missing closing quote): %s" -msgstr "" +msgstr "لفظ رشته‌ای بدشکل (نقل‌قول بسته گم‌شده): %s" #, python-format msgid "malformed string literal (missing opening quote): %s" -msgstr "" +msgstr "لفظ رشته‌ای بدشکل (نقل‌قول باز گم‌شده): %s" msgid "Example" -msgstr "" +msgstr "مثال" msgid "Examples" -msgstr "" +msgstr "مثال‌ها" msgid "Notes" -msgstr "" +msgstr "یادداشت‌ها" msgid "Other Parameters" -msgstr "" +msgstr "دیگر پارامترها" msgid "Receives" -msgstr "" +msgstr "دریافت می‌کند" msgid "References" -msgstr "" +msgstr "مراجع" msgid "Warns" -msgstr "" +msgstr "هشدار می‌دهد" msgid "Yields" -msgstr "" +msgstr "بازده می‌دهد" #, python-format msgid "autosummary references excluded document %r. Ignored." -msgstr "" +msgstr "autosummary به سند حذف‌شده‌ی %r ارجاع می‌دهد. نادیده گرفته شد." #, python-format msgid "autosummary: stub file not found %r. Check your autosummary_generate setting." -msgstr "" +msgstr "autosummary: پرونده‌ی stub با نام %r پیدا نشد. تنظیم autosummary_generate خود را بررسی کنید." msgid "A captioned autosummary requires :toctree: option. ignored." -msgstr "" +msgstr "یک autosummary دارای زیرنویس به گزینه‌ی :toctree: نیاز دارد. نادیده گرفته شد." #, python-format msgid "" @@ -3196,39 +2838,44 @@ msgid "" "Possible hints:\n" "%s" msgstr "" +"autosummary: ایمپورت %s شکست خورد.\n" +"راهنمایی‌های احتمالی:\n" +"%s" #, python-format msgid "failed to parse name %s" -msgstr "" +msgstr "پارس کردن نام %s شکست خورد" #, python-format msgid "failed to import object %s" -msgstr "" +msgstr "ایمپورت شیء %s شکست خورد" #, python-format msgid "Summarised items should not include the current module. Replace %r with %r." -msgstr "" +msgstr "آیتم‌های خلاصه‌شده نباید شامل ماژول فعلی باشند. %r را با %r جایگزین کنید." #, python-format msgid "autosummary_generate: file not found: %s" -msgstr "" +msgstr "autosummary_generate: پرونده پیدا نشد: %s" msgid "autosummary generates .rst files internally. But your source_suffix does not contain .rst. Skipped." -msgstr "" +msgstr "autosummary به‌صورت درونی پرونده‌های rst. تولید می‌کند. اما source_suffix شما حاوی rst. نیست. رد شد." #, python-format msgid "" "autosummary: failed to determine %r to be documented, the following exception was raised:\n" "%s" msgstr "" +"autosummary: تعیین %r برای مستندسازی شکست خورد، استثنای زیر پرتاب شد:\n" +"%s" #, python-format msgid "[autosummary] generating autosummary for: %s" -msgstr "" +msgstr "[autosummary] در حال تولید autosummary برای: %s" #, python-format msgid "[autosummary] writing to %s" -msgstr "" +msgstr "[autosummary] در حال نوشتن در %s" #, python-format msgid "" @@ -3236,6 +2883,9 @@ msgid "" "Possible hints:\n" "%s" msgstr "" +"[autosummary] ایمپورت %s شکست خورد.\n" +"راهنمایی‌های احتمالی:\n" +"%s" msgid "" "\n" @@ -3250,35 +2900,46 @@ msgid "" "\n" " pydoc sphinx.ext.autosummary\n" msgstr "" +"\n" +"تولید ReStructuredText با استفاده از دایرکتیوهای autosummary.\n" +"\n" +"sphinx-autogen یک فرانت‌اند برای sphinx.ext.autosummary.generate است. این ابزار\n" +"پرونده‌های reStructuredText را از دایرکتیوهای autosummary موجود در\n" +"پرونده‌های ورودی داده‌شده تولید می‌کند.\n" +"\n" +"قالب دایرکتیو autosummary در ماژول پایتونی\n" +"«sphinx.ext.autosummary» مستند شده و می‌توان با استفاده از موارد زیر آن را خواند::\n" +"\n" +" pydoc sphinx.ext.autosummary\n" msgid "source files to generate rST files for" -msgstr "" +msgstr "پرونده‌های منبع برای تولید پرونده‌های rST" msgid "directory to place all output in" -msgstr "" +msgstr "پوشه‌ای برای قرار دادن تمام خروجی" #, python-format msgid "default suffix for files (default: %(default)s)" -msgstr "" +msgstr "پسوند پیش‌فرض برای پرونده‌ها (پیش‌فرض: %(default)s)" #, python-format msgid "custom template directory (default: %(default)s)" -msgstr "" +msgstr "پوشه‌ی قالب سفارشی (پیش‌فرض: %(default)s)" #, python-format msgid "document imported members (default: %(default)s)" -msgstr "" +msgstr "مستندسازی اعضای ایمپورت‌شده (پیش‌فرض: %(default)s)" #, python-format msgid "document exactly the members in module __all__ attribute. (default: %(default)s)" -msgstr "" +msgstr "مستندسازی دقیقاً اعضای موجود در ویژگی ‎__all__ ماژول. (پیش‌فرض: %(default)s)" msgid "Remove existing files in the output directory that were not generated" -msgstr "" +msgstr "حذف پرونده‌های موجود در پوشه‌ی خروجی که تولید نشده‌اند" #, python-format msgid "Failed to remove %s: %s" -msgstr "" +msgstr "حذف %s شکست خورد: %s" msgid "" "\n" @@ -3290,330 +2951,613 @@ msgid "" "\n" "Note: By default this script will not overwrite already created files." msgstr "" +"\n" +"به‌صورت بازگشتی در به‌دنبال ماژول‌ها و بسته‌های پایتونی بگردید و\n" +"یک پرونده‌ی reST با دایرکتیوهای automodule به‌ازای هر بسته در بسازید.\n" +"\n" +"ها می‌توانند الگوهای پرونده و/یا پوشه باشند که از\n" +"تولید کنار گذاشته می‌شوند.\n" +"\n" +"نکته: به‌طور پیش‌فرض این اسکریپت پرونده‌های از پیش ساخته‌شده را بازنویسی نمی‌کند." msgid "path to module to document" -msgstr "" +msgstr "مسیر ماژول برای مستندسازی" msgid "fnmatch-style file and/or directory patterns to exclude from generation" -msgstr "" +msgstr "الگوهای پرونده و/یا پوشه به سبک fnmatch برای کنار گذاشتن از تولید" msgid "directory to place all output" -msgstr "" +msgstr "پوشه‌ای برای قرار دادن تمام خروجی" msgid "maximum depth of submodules to show in the TOC (default: 4)" -msgstr "" +msgstr "حداکثر عمق زیرماژول‌ها برای نمایش در فهرست مطالب (پیش‌فرض: ۴)" msgid "overwrite existing files" -msgstr "" +msgstr "بازنویسی پرونده‌های موجود" msgid "follow symbolic links. Powerful when combined with collective.recipe.omelette." -msgstr "" +msgstr "دنبال کردن پیوندهای نمادین. هنگام ترکیب با collective.recipe.omelette قدرتمند است." msgid "run the script without creating files" -msgstr "" +msgstr "اجرای اسکریپت بدون ساخت پرونده" msgid "put documentation for each module on its own page" -msgstr "" +msgstr "قرار دادن مستندات هر ماژول در صفحه‌ی خودش" msgid "include \"_private\" modules" -msgstr "" +msgstr "گنجاندن ماژول‌های «‎_private»" msgid "filename of table of contents (default: modules)" -msgstr "" +msgstr "نام پرونده‌ی فهرست مطالب (پیش‌فرض: modules)" msgid "don't create a table of contents file" -msgstr "" +msgstr "پرونده‌ی فهرست مطالب ساخته نشود" msgid "don't create headings for the module/package packages (e.g. when the docstrings already contain them)" -msgstr "" +msgstr "عنوان برای بسته‌های ماژول/بسته ساخته نشود (مثلاً وقتی رشته‌های مستندساز هم‌اکنون حاوی آن‌ها هستند)" msgid "put module documentation before submodule documentation" -msgstr "" +msgstr "قرار دادن مستندات ماژول پیش از مستندات زیرماژول" msgid "interpret module paths according to PEP-0420 implicit namespaces specification" -msgstr "" +msgstr "تفسیر مسیرهای ماژول بر اساس مشخصات فضای‌نام ضمنی PEP-0420" msgid "Comma-separated list of options to pass to automodule directive (or use SPHINX_APIDOC_OPTIONS)." -msgstr "" +msgstr "فهرستی جداشده با ویرگول از گزینه‌ها برای ارسال به دایرکتیو automodule (یا استفاده از SPHINX_APIDOC_OPTIONS)." msgid "file suffix (default: rst)" -msgstr "" +msgstr "پسوند پرونده (پیش‌فرض: rst)" msgid "generate a full project with sphinx-quickstart" -msgstr "" +msgstr "تولید یک پروژه‌ی کامل با sphinx-quickstart" msgid "append module_path to sys.path, used when --full is given" -msgstr "" +msgstr "افزودن module_path به sys.path، هنگامی که --full داده شده استفاده می‌شود" msgid "project name (default: root module name)" -msgstr "" +msgstr "نام پروژه (پیش‌فرض: نام ماژول ریشه)" msgid "project author(s), used when --full is given" -msgstr "" +msgstr "نویسنده (های) پروژه، هنگامی که --full داده شده استفاده می‌شود" msgid "project version, used when --full is given" -msgstr "" +msgstr "نسخه‌ی پروژه، هنگامی که --full داده شده استفاده می‌شود" msgid "project release, used when --full is given, defaults to --doc-version" -msgstr "" +msgstr "انتشار پروژه، هنگامی که --full داده شده استفاده می‌شود، پیش‌فرض آن --doc-version است" msgid "extension options" -msgstr "" +msgstr "گزینه‌های افزونه" msgid "enable arbitrary extensions, used when --full is given" -msgstr "" +msgstr "فعال‌سازی افزونه‌های دلخواه، هنگامی که --full داده شده استفاده می‌شود" #, python-format msgid "enable %s extension, used when --full is given" -msgstr "" +msgstr "فعال‌سازی افزونه‌ی %s، هنگامی که --full داده شده استفاده می‌شود" #, python-format msgid "%s is not a directory." -msgstr "" +msgstr "%s یک پوشه نیست." msgid "Running apidoc" -msgstr "" +msgstr "در حال اجرای apidoc" #, python-format msgid "apidoc_modules item %i must be a dict" -msgstr "" +msgstr "آیتم %i در apidoc_modules باید یک دیکشنری باشد" #, python-format msgid "apidoc_modules item %i must have a 'path' key" -msgstr "" +msgstr "آیتم %i در apidoc_modules باید کلید «path» داشته باشد" #, python-format msgid "apidoc_modules item %i 'path' must be a string" -msgstr "" +msgstr "«path» در آیتم %i از apidoc_modules باید یک رشته باشد" #, python-format msgid "apidoc_modules item %i 'path' is not an existing folder: %s" -msgstr "" +msgstr "«path» در آیتم %i از apidoc_modules یک پوشه‌ی موجود نیست: %s" #, python-format msgid "apidoc_modules item %i must have a 'destination' key" -msgstr "" +msgstr "آیتم %i در apidoc_modules باید کلید «destination» داشته باشد" #, python-format msgid "apidoc_modules item %i 'destination' must be a string" -msgstr "" +msgstr "«destination» در آیتم %i از apidoc_modules باید یک رشته باشد" #, python-format msgid "apidoc_modules item %i 'destination' should be a relative path" -msgstr "" +msgstr "«destination» در آیتم %i از apidoc_modules باید یک مسیر نسبی باشد" #, python-format msgid "apidoc_modules item %i cannot create destination directory: %s" -msgstr "" +msgstr "آیتم %i از apidoc_modules نمی‌تواند پوشه‌ی مقصد بسازد: %s" #, python-format msgid "apidoc_modules item %i '%s' must be an int" -msgstr "" +msgstr "آیتم %i از apidoc_modules، «%s» باید یک عدد صحیح باشد" #, python-format msgid "apidoc_modules item %i '%s' must be a boolean" -msgstr "" +msgstr "آیتم %i از apidoc_modules، «%s» باید یک بولی باشد" #, python-format msgid "apidoc_modules item %i has unexpected keys: %s" -msgstr "" +msgstr "آیتم %i از apidoc_modules کلیدهای غیرمنتظره‌ای دارد: %s" #, python-format msgid "apidoc_modules item %i '%s' must be a sequence" -msgstr "" +msgstr "آیتم %i از apidoc_modules، «%s» باید یک دنباله باشد" #, python-format msgid "apidoc_modules item %i '%s' must contain strings" -msgstr "" +msgstr "آیتم %i از apidoc_modules، «%s» باید حاوی رشته باشد" #, python-format msgid "Would create file %s." -msgstr "" +msgstr "پرونده‌ی %s ساخته خواهد شد." #, python-format msgid "(in %s v%s)" -msgstr "" +msgstr "(در %s نسخه‌ی %s)" #, python-format msgid "(in %s)" -msgstr "" +msgstr "(در %s)" #, python-format msgid "inventory '%s': duplicate matches found for %s:%s" -msgstr "" +msgstr "فهرست موجودی «%s»: تطبیق‌های تکراری برای %s:%s پیدا شد" #, python-format msgid "inventory '%s': multiple matches found for %s:%s" -msgstr "" +msgstr "فهرست موجودی «%s»: چندین تطبیق برای %s:%s پیدا شد" #, python-format msgid "inventory for external cross-reference not found: %r" -msgstr "" +msgstr "فهرست موجودی برای ارجاع‌متقابل خارجی پیدا نشد: %r" #, python-format msgid "invalid external cross-reference suffix: %r" -msgstr "" +msgstr "پسوند ارجاع‌متقابل خارجی نامعتبر: %r" #, python-format msgid "domain for external cross-reference not found: %r" -msgstr "" +msgstr "دامنه برای ارجاع‌متقابل خارجی پیدا نشد: %r" #, python-format msgid "external %s:%s reference target not found: %s" -msgstr "" +msgstr "هدف ارجاع خارجی %s:%s پیدا نشد: %s" #, python-format msgid "Invalid intersphinx project identifier `%r` in intersphinx_mapping. Project identifiers must be non-empty strings." -msgstr "" +msgstr "شناسه‌ی پروژه‌ی intersphinx نامعتبر «%r» در intersphinx_mapping. شناسه‌های پروژه باید رشته‌های غیرخالی باشند." #, python-format msgid "Invalid value `%r` in intersphinx_mapping[%r]. Expected a two-element tuple or list." -msgstr "" +msgstr "مقدار نامعتبر «%r» در intersphinx_mapping[%r]. یک تاپل یا فهرست دوعضوی انتظار می‌رفت." #, python-format msgid "Invalid value `%r` in intersphinx_mapping[%r]. Values must be a (target URI, inventory locations) pair." -msgstr "" +msgstr "مقدار نامعتبر «%r» در intersphinx_mapping[%r]. مقادیر باید یک جفت (URI هدف، مکان‌های فهرست موجودی) باشند." #, python-format msgid "Invalid target URI value `%r` in intersphinx_mapping[%r][0]. Target URIs must be unique non-empty strings." -msgstr "" +msgstr "مقدار URI هدف نامعتبر «%r» در intersphinx_mapping[%r][0]. URIهای هدف باید رشته‌های غیرخالی یکتا باشند." #, python-format msgid "Invalid target URI value `%r` in intersphinx_mapping[%r][0]. Target URIs must be unique (other instance in intersphinx_mapping[%r])." -msgstr "" +msgstr "مقدار URI هدف نامعتبر «%r» در intersphinx_mapping[%r][0]. URIهای هدف باید یکتا باشند (نمونه‌ی دیگر در intersphinx_mapping[%r])." #, python-format msgid "Invalid inventory location value `%r` in intersphinx_mapping[%r][1]. Inventory locations must be non-empty strings or None." -msgstr "" +msgstr "مقدار مکان فهرست موجودی نامعتبر «%r» در intersphinx_mapping[%r][1]. مکان‌های فهرست موجودی باید رشته‌های غیرخالی یا None باشند." msgid "Invalid `intersphinx_mapping` configuration (1 error)." -msgstr "" +msgstr "پیکربندی «intersphinx_mapping» نامعتبر (۱ خطا)." #, python-format msgid "Invalid `intersphinx_mapping` configuration (%s errors)." -msgstr "" +msgstr "پیکربندی «intersphinx_mapping» نامعتبر (%s خطا)." msgid "An invalid intersphinx_mapping entry was added after normalisation." -msgstr "" +msgstr "یک ورودی نامعتبر intersphinx_mapping پس از نرمال‌سازی افزوده شد." #, python-format msgid "loading intersphinx inventory '%s' from %s ..." -msgstr "" +msgstr "در حال بارگذاری فهرست موجودی intersphinx با نام «%s» از %s ..." msgid "encountered some issues with some of the inventories, but they had working alternatives:" -msgstr "" +msgstr "با برخی از فهرست‌های موجودی مشکلاتی برخورد شد، اما جایگزین‌های کارآمدی داشتند:" msgid "failed to reach any of the inventories with the following issues:" -msgstr "" +msgstr "دسترسی به هیچ‌کدام از فهرست‌های موجودی با مشکلات زیر ممکن نشد:" #, python-format msgid "intersphinx inventory has moved: %s -> %s" -msgstr "" +msgstr "فهرست موجودی intersphinx جابه‌جا شده است: %s -> %s" #, python-format msgid "invalid value for member-order option: %s" -msgstr "" +msgstr "مقدار نامعتبر برای گزینه‌ی member-order: %s" #, python-format msgid "invalid value for class-doc-from option: %s" -msgstr "" +msgstr "مقدار نامعتبر برای گزینه‌ی class-doc-from: %s" #, python-format msgid "invalid signature for auto%s (%r)" -msgstr "" +msgstr "امضای نامعتبر برای auto%s (%r)" #, python-format msgid "error while formatting arguments for %s: %s" -msgstr "" +msgstr "خطا هنگام قالب‌بندی آرگومان‌ها برای %s: %s" #, python-format msgid "" "autodoc: failed to determine %s.%s (%r) to be documented, the following exception was raised:\n" "%s" msgstr "" +"autodoc: تعیین %s.%s (%r) برای مستندسازی شکست خورد، استثنای زیر پرتاب شد:\n" +"%s" #, python-format msgid "don't know which module to import for autodocumenting %r (try placing a \"module\" or \"currentmodule\" directive in the document, or giving an explicit module name)" -msgstr "" +msgstr "مشخص نیست کدام ماژول برای مستندسازی خودکار %r باید ایمپورت شود (سعی کنید دایرکتیو «module» یا «currentmodule» را در سند قرار دهید، یا نام ماژول را صریحاً بدهید)" #, python-format msgid "A mocked object is detected: %r" -msgstr "" +msgstr "شیء ماک‌شده‌ای شناسایی شد: %r" #, python-format msgid "error while formatting signature for %s: %s" -msgstr "" +msgstr "خطا هنگام قالب‌بندی امضا برای %s: %s" msgid "\"::\" in automodule name doesn't make sense" -msgstr "" +msgstr "«::» در نام automodule معنایی ندارد" #, python-format msgid "signature arguments or return annotation given for automodule %s" -msgstr "" +msgstr "آرگومان‌های امضا یا حاشیه‌نویسی بازگشتی برای automodule با نام %s داده شده است" #, python-format msgid "__all__ should be a list of strings, not %r (in module %s) -- ignoring __all__" -msgstr "" +msgstr "‎__all__ باید فهرستی از رشته‌ها باشد، نه %r (در ماژول %s) -- ‎__all__ نادیده گرفته شد" #, python-format msgid "missing attribute mentioned in :members: option: module %s, attribute %s" -msgstr "" +msgstr "ویژگی گم‌شده که در گزینه‌ی :members: ذکر شده: ماژول %s، ویژگی %s" #, python-format msgid "Failed to get a function signature for %s: %s" -msgstr "" +msgstr "دریافت امضای تابع برای %s شکست خورد: %s" #, python-format msgid "Failed to get a constructor signature for %s: %s" -msgstr "" +msgstr "دریافت امضای سازنده برای %s شکست خورد: %s" #, python-format msgid "Bases: %s" -msgstr "" +msgstr "پایه‌ها: %s" #, python-format msgid "missing attribute %s in object %s" -msgstr "" +msgstr "ویژگی گم‌شده‌ی %s در شیء %s" #, python-format msgid "alias of %s" -msgstr "" +msgstr "مستعار %s" #, python-format msgid "alias of TypeVar(%s)" -msgstr "" +msgstr "مستعار TypeVar(%s)" #, python-format msgid "Failed to get a method signature for %s: %s" -msgstr "" +msgstr "دریافت امضای متد برای %s شکست خورد: %s" #, python-format msgid "Invalid __slots__ found on %s. Ignored." -msgstr "" +msgstr "‎__slots__ نامعتبر در %s پیدا شد. نادیده گرفته شد." #, python-format msgid "Failed to parse a default argument value for %r: %s" -msgstr "" +msgstr "پارس کردن مقدار پیش‌فرض آرگومان برای %r شکست خورد: %s" #, python-format msgid "Failed to update signature for %r: parameter not found: %s" -msgstr "" +msgstr "به‌روزرسانی امضا برای %r شکست خورد: پارامتر پیدا نشد: %s" #, python-format msgid "Failed to parse type_comment for %r: %s" -msgstr "" +msgstr "پارس کردن type_comment برای %r شکست خورد: %s" + +#~ msgid "Stable" +#~ msgstr "پایدار" + +#~ msgid "In development" +#~ msgstr "در حال توسعه" + +#~ msgid "Report a bug" +#~ msgstr "گزارش یک اشکال" + +#~ msgid "Improve this page" +#~ msgstr "بهبود این صفحه" + +#~ msgid "Show translation source" +#~ msgstr "نمایش منبع ترجمه" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "Download Python %(dl_version)s documentation" +#~ msgstr "دانلود مستندات پایتون %(dl_version)s" + +#~ msgid "Download an archive containing all the documentation for this version of Python:" +#~ msgstr "آرشیوی از تمام مستندات این نسخه از پایتون را دانلود کنید:" + +#~ msgid "Format" +#~ msgstr "قالب" + +#~ msgid "Packed as .zip" +#~ msgstr "فشرده‌شده به صورت .zip" + +#~ msgid "Packed as .tar.bz2" +#~ msgstr "فشرده‌شده به صورت .tar.bz2" + +#~ msgid "HTML" +#~ msgstr "HTML" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "Plain text" +#~ msgstr "متن ساده" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "Texinfo" +#~ msgstr "Texinfo" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "EPUB" +#~ msgstr "EPUB" + +#~ msgid "Download" +#~ msgstr "دانلود" + +#~ msgid "" +#~ "\n" +#~ "We no longer provide pre-built PDFs of the documentation.\n" +#~ "To build a PDF archive, follow the instructions in the\n" +#~ "Developer's Guide\n" +#~ "and run make dist-pdf in the Doc/ directory of a copy of the CPython repository.\n" +#~ msgstr "" +#~ "\n" +#~ "ما دیگر پرونده‌های PDF از پیش‌ساخته‌شده‌ی مستندات را ارائه نمی‌دهیم.\n" +#~ "برای ساختن یک آرشیو PDF، دستورالعمل‌های موجود در\n" +#~ "راهنمای توسعه‌دهندگان را دنبال کنید\n" +#~ "و دستور make dist-pdf را در پوشه‌ی Doc/ یک نسخه‌ی محلی (کپی) از مخزن CPython اجرا کنید.\n" + +#~ msgid "" +#~ "\n" +#~ "See the directory listing\n" +#~ "for file sizes." +#~ msgstr "" +#~ "\n" +#~ "برای مشاهده‌ی اندازه‌ی پرونده‌ها، به فهرست مراجعه کنید." + +#~ msgid "Problems" +#~ msgstr "مشکلات" + +#~ msgid "" +#~ "Open an issue\n" +#~ "if you have comments or suggestions for the Python documentation." +#~ msgstr "" +#~ "اگر نظر یا پیشنهادی برای مستندات پایتون دارید،\n" +#~ "یک گزارش مشکل باز کنید." + +#~ msgid "Availability" +#~ msgstr "دسترس‌پذیری" + +#~ msgid "Part of the" +#~ msgstr "قسمتی از" + +#~ msgid "Limited API" +#~ msgstr "API محدود" + +#~ msgid "Stable ABI" +#~ msgstr "ABI پایدار" + +#~ msgid "(as an opaque struct)" +#~ msgstr "(به‌عنوان یک ساختار مبهم)" + +#~ msgid "(including all members)" +#~ msgstr "شامل تمام اعضا" + +#~ msgid "since version %s" +#~ msgstr "از نسخه‌ی %s" + +#~ msgid "(Only some members are part of the stable ABI.)" +#~ msgstr "(تنها برخی از اعضا قسمتی از ABI پایدار هستند.)" + +#~ msgid "Unstable API" +#~ msgstr "API ناپایدار" + +#~ msgid ". It may change without warning in minor releases." +#~ msgstr "این ممکن است بدون هشدار در نسخه‌های جزئی تغییر کند." + +#~ msgid "Return value: New reference." +#~ msgstr "مقدار بازگشتی: مرجع جدید." + +#~ msgid "Return value: Borrowed reference." +#~ msgstr "مقدار بازگشتی: مرجع امانتی." + +#~ msgid "CPython implementation detail:" +#~ msgstr "جزئیات پیاده‌سازی در CPython:" + +#~ msgid "Deprecated since version %s, will be removed in version %s" +#~ msgstr "منسوخ شده از نسخه‌ی %s, در نسخه‌ی %s حذف خواهد شد" + +#~ msgid "Deprecated since version %s, removed in version %s" +#~ msgstr "منسوخ شده از نسخه‌ی %s، در نسخه‌ی %s حذف شده است" + +#~ msgid ":term:`Soft deprecated` since version %s" +#~ msgstr ":term:`منسوخ‌سازی نرم ` از نسخه‌ی %s" + +#~ msgid "in development" +#~ msgstr "در حال توسعه" + +#~ msgid "stable" +#~ msgstr "پایدار" + +#~ msgid "security-fixes" +#~ msgstr "اصلاحیه‌های امنیتی" + +#~ msgid "EOL" +#~ msgstr "پایان پشتیبانی" + +#~ msgid "Welcome! This is the official documentation for Python %(release)s." +#~ msgstr "خوش‌آمدید! این مستندات رسمی پایتون نسخه‌ی %(release)s است." + +#~ msgid "Documentation sections:" +#~ msgstr "بخش‌های مستند:" + +#~ msgid "What's new in Python %(version)s?" +#~ msgstr "چه چیز جدیدی در پایتون نسخه‌ی %(version)s است؟" + +#~ msgid "Or all \"What's new\" documents since Python 2.0" +#~ msgstr "یا تمام مستندات «چه چیز جدیدی» از پایتون ۲.۰" + +#~ msgid "Tutorial" +#~ msgstr "آموزش" + +#~ msgid "Start here: a tour of Python's syntax and features" +#~ msgstr "از اینجا شروع کنید: سفری در سینتکس و ویژگی‌های پایتون" + +#~ msgid "Standard library and builtins" +#~ msgstr "کتابخانه‌ی استاندارد و توابع توکار" + +#~ msgid "Language reference" +#~ msgstr "مرجع زبان" + +#~ msgid "Python setup and usage" +#~ msgstr "راه‌اندازی و استفاده از پایتون" + +#~ msgid "How to install, configure, and use Python" +#~ msgstr "نحوه‌ی نصب، پیکربندی و استفاده از پایتون" + +#~ msgid "Python HOWTOs" +#~ msgstr "راهنماهای گام‌به‌گام پایتون" + +#~ msgid "In-depth topic manuals" +#~ msgstr "راهنماهای موضوعی عمیق" + +#~ msgid "Installing Python modules" +#~ msgstr "نصب ماژول‌های پایتون" + +#~ msgid "Third-party modules and PyPI.org" +#~ msgstr "ماژول‌های شخص ثالث و PyPI.org" + +#~ msgid "Extending and embedding" +#~ msgstr "توسعه و تعبیه" + +#~ msgid "For C/C++ programmers" +#~ msgstr "برای برنامه‌نویسان C/C++" + +#~ msgid "Python's C API" +#~ msgstr "رابط برنامه‌نویسی C پایتون" + +#~ msgid "FAQs" +#~ msgstr "سوالات متداول" + +#~ msgid "Frequently asked questions (with answers!)" +#~ msgstr "سؤالات متداول (همراه با پاسخ!)" + +#~ msgid "Deprecated functionality" +#~ msgstr "قابلیت‌های منسوخ‌شده" + +#~ msgid "Other resources:" +#~ msgstr "منابع دیگر:" + +#~ msgid "Python Packaging User Guide" +#~ msgstr "راهنمای کاربر بسته‌بندی پایتون" + +#~ msgid "Resources relating to Python packaging" +#~ msgstr "منابع مربوط به بسته‌بندی پایتون" + +#~ msgid "Static Typing with Python" +#~ msgstr "تایپ‌گذاری ایستا (Static Typing) در پایتون" + +#~ msgid "Information and guides about Python type safety" +#~ msgstr "اطلاعات و راهنماهایی درباره‌ی ایمنی تایپ در پایتون" + +#~ msgid "Indices, glossary, and search:" +#~ msgstr "اندیس‌ها، واژه‌نامه و جست‌وجو:" + +#~ msgid "All modules and libraries" +#~ msgstr "همه‌ی ماژول‌ها و کتابخانه‌ها" + +#~ msgid "Terms explained" +#~ msgstr "اصطلاحات توضیح داده شده" + +#~ msgid "Contributing to docs" +#~ msgstr "مشارکت در مستندات" + +#~ msgid "Download the documentation" +#~ msgstr "دانلود مستندات" + +#~ msgid "History and license of Python" +#~ msgstr "تاریخچه و مجوز پایتون" #~ msgid "Download these documents" #~ msgstr "دانلود این مستندات" -#~ msgid "Other resources" -#~ msgstr "منابع دیگر" +#~ msgid "Docs by version" +#~ msgstr "مستندات بر اساس نسخه" -#~ msgid "PEP index" -#~ msgstr "اندیس PEP" +#~ msgid "All versions" +#~ msgstr "همه‌ی نسخه‌ها" #~ msgid "Beginner's guide" #~ msgstr "راهنمای مبتدیان" #~ msgid "Book list" #~ msgstr "لیست کتاب‌ها" + +#~ msgid "Audio/visual talks" +#~ msgstr "گفتارهای صوتی/تصویری" + +#~ msgid "Python developer’s guide" +#~ msgstr "راهنمای توسعه‌دهندگان پایتون" + +#~ msgid "" +#~ "This document is for an old version of Python that is no longer supported.\n" +#~ " You should upgrade, and read the" +#~ msgstr "" +#~ "این سند مربوط به نسخه‌ای قدیمی از پایتون است که دیگر پشتیبانی نمی‌شود.\n" +#~ " شما باید نسخه‌ی خود را ارتقا دهید و مطالب مربوط به" + +#~ msgid "" +#~ "This is a deploy preview created from a pull request.\n" +#~ " For authoritative documentation, see" +#~ msgstr "" +#~ "این یک پیش‌نمایش مستقرشده است که از یک درخواست ادغام ایجاد شده است.\n" +#~ " برای مشاهده‌ی مستندات معتبر، به" + +#~ msgid "the current stable release" +#~ msgstr "نسخه‌ی پایدار فعلی" From 36102c2c015e08d2b4ea1fb809d55ddbc29414b2 Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Sun, 4 Oct 2026 09:43:35 +0330 Subject: [PATCH 05/15] Fix markup issue in sphinx.po --- sphinx.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sphinx.po b/sphinx.po index f7acc226c..3c845b8b1 100644 --- a/sphinx.po +++ b/sphinx.po @@ -2907,8 +2907,8 @@ msgstr "" "پرونده‌های reStructuredText را از دایرکتیوهای autosummary موجود در\n" "پرونده‌های ورودی داده‌شده تولید می‌کند.\n" "\n" -"قالب دایرکتیو autosummary در ماژول پایتونی\n" -"«sphinx.ext.autosummary» مستند شده و می‌توان با استفاده از موارد زیر آن را خواند::\n" +"قالب دایرکتیو autosummary در ماژول پایتون\n" +"``sphinx.ext.autosummary`` مستند شده است و با دستور زیر قابل خواندن است::\n" "\n" " pydoc sphinx.ext.autosummary\n" From 14bb15770036e8211de06471ad768493efccde0e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 4 Oct 2026 06:43:35 +0000 Subject: [PATCH 06/15] chore: update translation status, PO headers, team credits, and contributor chart --- README.md | 4 ++-- STATUS.md | 8 ++++---- TEAM.md | 2 +- reports/contributor_stats_latest.png | Bin 50040 -> 49703 bytes 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index a8f00e70a..d95592da2 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,6 @@ ### مشارکت‌های کاربران -![نمودار مشارکت‌های کاربران؛ sepehr-rs 38277، Revisto 3984، danialbehzadi 677، invincible627 358، khosro_o 63، ParhamF 41، Ariyan_Bolandi 37، mahdyaralipor 24، nikovinix7878 13، thaghgoo 12](reports/contributor_stats_latest.png) -(به‌روزرسانی: 2026-10-02) +![نمودار مشارکت‌های کاربران؛ sepehr-rs 38277، Revisto 3984، danialbehzadi 677، invincible627 471، khosro_o 63، ParhamF 41، Ariyan_Bolandi 37، mahdyaralipor 24، nikovinix7878 13، thaghgoo 12](reports/contributor_stats_latest.png) +(به‌روزرسانی: 2026-10-04) diff --git a/STATUS.md b/STATUS.md index a12694bc2..daf527593 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,6 +1,6 @@ ### وضعیت ترجمه فایل‌ها -(به‌روزرسانی: 2026-10-02) +(به‌روزرسانی: 2026-10-04) | فایل | ترجمه‌شده | مبهم | تعداد ترجمه‌شده | تعداد ترجمه‌نشده | |:-----|:-----------:|:-----------:|:-----------:|:-----------:| @@ -35,7 +35,6 @@ | c-api/datetime.po | 100.0% | 0.0% | 65 | 0 | | c-api/descriptor.po | 100.0% | 0.0% | 33 | 0 | | c-api/dict.po | 100.0% | 0.0% | 109 | 0 | -| c-api/exceptions.po | 100.0% | 0.0% | 274 | 0 | | c-api/extension-modules.po | 100.0% | 0.0% | 50 | 0 | | c-api/file.po | 100.0% | 0.0% | 31 | 0 | | c-api/float.po | 100.0% | 0.0% | 58 | 0 | @@ -488,6 +487,7 @@ | reference/lexical_analysis.po | 100.0% | 0.0% | 476 | 0 | | reference/simple_stmts.po | 100.0% | 0.0% | 291 | 0 | | reference/toplevel_components.po | 100.0% | 0.0% | 32 | 0 | +| sphinx.po | 100.0% | 0.0% | 858 | 0 | | tutorial/appendix.po | 100.0% | 0.0% | 28 | 0 | | tutorial/appetite.po | 100.0% | 0.0% | 17 | 0 | | tutorial/classes.po | 100.0% | 0.0% | 149 | 0 | @@ -540,8 +540,8 @@ | whatsnew/changelog.po | 100.0% | 0.0% | 1 | 0 | | whatsnew/index.po | 100.0% | 0.0% | 3 | 0 | | library/asyncio-eventloop.po | 99.8% | 0.0% | 426 | 1 | +| c-api/exceptions.po | 99.3% | 0.0% | 274 | 2 | | library/ssl.po | 99.3% | 0.0% | 546 | 4 | | library/asyncio-stream.po | 99.1% | 0.0% | 105 | 1 | -| sphinx.po | 13.3% | 0.0% | 129 | 841 | -| **مجموع** | **98.8%** | **0.0%** | **70443** | **847** | +| **مجموع** | **100.0%** | **0.0%** | **71172** | **8** | diff --git a/TEAM.md b/TEAM.md index 2440127d1..c27371623 100644 --- a/TEAM.md +++ b/TEAM.md @@ -3,7 +3,7 @@ | Revisto | coordinator | 3984 | | sepehr-rs | coordinator | 38277 | | danialbehzadi | reviewer | 677 | -| invincible627 | translator | 358 | +| invincible627 | translator | 471 | | khosro_o | reviewer | 63 | | ParhamF | translator | 41 | | Ariyan_Bolandi | reviewer | 37 | diff --git a/reports/contributor_stats_latest.png b/reports/contributor_stats_latest.png index 4a97cef7371b07b02b2c1e83476ba0492b1e39a2..4530f6ae61b025d03201846f53336cd3e193d4b1 100644 GIT binary patch literal 49703 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 From 3f72f0d107d8b11bc0bf08a87869c9f74442119c Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Sun, 4 Oct 2026 17:28:47 +0330 Subject: [PATCH 07/15] Sync and fix sphinx.po --- c-api/exceptions.po | 8 +- sphinx.po | 653 +++++++++++++++++++++++++------------------- 2 files changed, 370 insertions(+), 291 deletions(-) diff --git a/c-api/exceptions.po b/c-api/exceptions.po index ea3594fe2..bd20e5480 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-04 05:27+0000\n" +"POT-Creation-Date: 2026-10-04 17:29+0330\n" "PO-Revision-Date: 2026-09-15 13:22+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -540,9 +540,6 @@ msgstr "نقطه‌ای را نشان‌گذاری می‌کند که در آن msgid "The function then checks if the stack limit is reached. If this is the case, a :exc:`RecursionError` is set and a nonzero value is returned. Otherwise, zero is returned." msgstr "سپس تابع بررسی می‌کند که آیا به حد پشته رسیده است یا خیر. اگر چنین باشد، یک :exc:`RecursionError` تنظیم می‌شود و مقدار غیرصفر بازگردانده می‌شود. در غیر این صورت، صفر بازگردانده می‌شود." -msgid "The check is based on the remaining C stack space of the current thread, not on a count of calls, so it is unaffected by :c:func:`Py_SetRecursionLimit` and :func:`sys.setrecursionlimit`." -msgstr "" - msgid "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` to be concatenated to the :exc:`RecursionError` message caused by the recursion depth limit." msgstr "*where* باید یک رشته‌ی کدگذاری‌شده با UTF-8 مانند ``\" in instance check\"`` باشد تا به پیام :exc:`RecursionError` که ناشی از محدودیت عمق بازگشت است، الحاق شود." @@ -552,9 +549,6 @@ msgstr "تابع :c:func:`PyUnstable_ThreadState_SetStackProtection`." msgid "This function is now also available in the :ref:`limited API `." msgstr "این تابع اکنون در :ref:`API محدود ` نیز در دسترس است." -msgid "The check is based on the remaining C stack space. Previously, a separate counter of C-level calls was used." -msgstr "" - msgid "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each *successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "یک :c:func:`Py_EnterRecursiveCall` را پایان می‌دهد. باید یک‌بار برای هر فراخوانی *موفق* :c:func:`Py_EnterRecursiveCall` فراخوانی شود." diff --git a/sphinx.po b/sphinx.po index 3c845b8b1..4d1d6b0c1 100644 --- a/sphinx.po +++ b/sphinx.po @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" -"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-02-18 18:26+0000\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-10-04 17:29+0330\n" "PO-Revision-Date: 2026-08-28 10:54+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/fa/)\n" @@ -25,6 +25,373 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.6\n" +msgid "Stable" +msgstr "پایدار" + +msgid "In development" +msgstr "در حال توسعه" + +msgid "This page" +msgstr "این صفحه" + +msgid "Report a bug" +msgstr "گزارش یک اشکال" + +msgid "Improve this page" +msgstr "بهبود این صفحه" + +msgid "Show source" +msgstr "نمایش منبع" + +msgid "Show translation source" +msgstr "نمایش منبع ترجمه" + +msgid "Download" +msgstr "دانلود" + +msgid "Download Python %(dl_version)s documentation" +msgstr "دانلود مستندات پایتون %(dl_version)s" + +msgid "Last updated on: %(last_updated)s." +msgstr "آخرین به‌روزرسانی در: %(last_updated)s." + +msgid "Download an archive containing all the documentation for this version of Python:" +msgstr "آرشیوی از تمام مستندات این نسخه از پایتون را دانلود کنید:" + +msgid "Format" +msgstr "قالب" + +msgid "Packed as .zip" +msgstr "فشرده‌شده به صورت .zip" + +msgid "Packed as .tar.bz2" +msgstr "فشرده‌شده به صورت .tar.bz2" + +msgid "HTML" +msgstr "HTML" + +msgid "Download" +msgstr "دانلود" + +msgid "Download" +msgstr "دانلود" + +msgid "Plain text" +msgstr "متن ساده" + +msgid "Download" +msgstr "دانلود" + +msgid "Download" +msgstr "دانلود" + +msgid "Texinfo" +msgstr "Texinfo" + +msgid "Download" +msgstr "دانلود" + +msgid "Download" +msgstr "دانلود" + +msgid "EPUB" +msgstr "EPUB" + +msgid "Download" +msgstr "دانلود" + +msgid "" +"\n" +"We no longer provide pre-built PDFs of the documentation.\n" +"To build a PDF archive, follow the instructions in the\n" +"Developer's Guide\n" +"and run make dist-pdf in the Doc/ directory of a copy of the CPython repository.\n" +msgstr "" +"\n" +"ما دیگر پرونده‌های PDF از پیش‌ساخته‌شده‌ی مستندات را ارائه نمی‌دهیم.\n" +"برای ساختن یک آرشیو PDF، دستورالعمل‌های موجود در\n" +"راهنمای توسعه‌دهندگان را دنبال کنید\n" +"و دستور make dist-pdf را در پوشه‌ی Doc/ یک نسخه‌ی محلی (کپی) از مخزن CPython اجرا کنید.\n" + +msgid "" +"\n" +"See the directory listing\n" +"for file sizes." +msgstr "" +"\n" +"برای مشاهده‌ی اندازه‌ی پرونده‌ها، به فهرست مراجعه کنید." + +msgid "Problems" +msgstr "مشکلات" + +msgid "" +"Open an issue\n" +"if you have comments or suggestions for the Python documentation." +msgstr "" +"اگر نظر یا پیشنهادی برای مستندات پایتون دارید،\n" +"یک گزارش مشکل باز کنید." + +msgid "Availability" +msgstr "دسترس‌پذیری" + +msgid "Part of the" +msgstr "قسمتی از" + +msgid "Limited API" +msgstr "API محدود" + +msgid "Stable ABI" +msgstr "ABI پایدار" + +msgid "(as an opaque struct)" +msgstr "(به‌عنوان یک ساختار مبهم)" + +msgid "(including all members)" +msgstr "شامل تمام اعضا" + +msgid "since version %s" +msgstr "از نسخه‌ی %s" + +msgid "(Only some members are part of the stable ABI.)" +msgstr "(تنها برخی از اعضا قسمتی از ABI پایدار هستند.)" + +msgid "This is" +msgstr "این است" + +msgid "Unstable API" +msgstr "API ناپایدار" + +msgid ". It may change without warning in minor releases." +msgstr "این ممکن است بدون هشدار در نسخه‌های جزئی تغییر کند." + +msgid "Return value: Always NULL." +msgstr "مقدار بازگشتی: همیشه NULL." + +msgid "Return value: New reference." +msgstr "مقدار بازگشتی: مرجع جدید." + +msgid "Return value: Borrowed reference." +msgstr "مقدار بازگشتی: مرجع امانتی." + +msgid "CPython implementation detail:" +msgstr "جزئیات پیاده‌سازی در CPython:" + +msgid "Deprecated since version %s, will be removed in version %s" +msgstr "منسوخ شده از نسخه‌ی %s, در نسخه‌ی %s حذف خواهد شد" + +msgid "Deprecated since version %s, removed in version %s" +msgstr "منسوخ شده از نسخه‌ی %s، در نسخه‌ی %s حذف شده است" + +msgid ":term:`Soft deprecated` since version %s" +msgstr ":term:`منسوخ‌سازی نرم ` از نسخه‌ی %s" + +msgid "in development" +msgstr "در حال توسعه" + +msgid "pre-release" +msgstr "پیش‌انتشار" + +msgid "stable" +msgstr "پایدار" + +msgid "security-fixes" +msgstr "اصلاحیه‌های امنیتی" + +msgid "EOL" +msgstr "پایان پشتیبانی" + +msgid "Welcome! This is the official documentation for Python %(release)s." +msgstr "خوش‌آمدید! این مستندات رسمی پایتون نسخه‌ی %(release)s است." + +msgid "Documentation sections:" +msgstr "بخش‌های مستند:" + +msgid "What's new in Python %(version)s?" +msgstr "چه چیز جدیدی در پایتون نسخه‌ی %(version)s است؟" + +msgid "Or all \"What's new\" documents since Python 2.0" +msgstr "یا تمام مستندات «چه چیز جدیدی» از پایتون ۲.۰" + +msgid "Tutorial" +msgstr "آموزش" + +msgid "Start here: a tour of Python's syntax and features" +msgstr "از اینجا شروع کنید: سفری در سینتکس و ویژگی‌های پایتون" + +msgid "Built-ins reference" +msgstr "ارجاع‌های داخلی" + +msgid "Built-in functions and classes" +msgstr "توابع و کلاس‌های توکار" + +msgid "Library reference" +msgstr "مرجع کتابخانه" + +msgid "Standard library modules" +msgstr "ماژول‌های کتابخانه‌ی استاندارد" + +msgid "Language reference" +msgstr "مرجع زبان" + +msgid "Syntax and language elements" +msgstr "سینتکس و عناصر زبان" + +msgid "Python setup and usage" +msgstr "راه‌اندازی و استفاده از پایتون" + +msgid "How to install, configure, and use Python" +msgstr "نحوه‌ی نصب، پیکربندی و استفاده از پایتون" + +msgid "Python HOWTOs" +msgstr "راهنماهای گام‌به‌گام پایتون" + +msgid "In-depth topic manuals" +msgstr "راهنماهای موضوعی عمیق" + +msgid "Installing Python modules" +msgstr "نصب ماژول‌های پایتون" + +msgid "Third-party modules and PyPI.org" +msgstr "ماژول‌های شخص ثالث و PyPI.org" + +msgid "Extending and embedding" +msgstr "توسعه و تعبیه" + +msgid "For C/C++ programmers" +msgstr "برای برنامه‌نویسان C/C++" + +msgid "Python's C API" +msgstr "رابط برنامه‌نویسی C پایتون" + +msgid "C API reference" +msgstr "مراجع C API" + +msgid "FAQs" +msgstr "سوالات متداول" + +msgid "Frequently asked questions (with answers!)" +msgstr "سؤالات متداول (همراه با پاسخ!)" + +msgid "Deprecations" +msgstr "منسوخ‌شده‌ها" + +msgid "Deprecated functionality" +msgstr "قابلیت‌های منسوخ‌شده" + +msgid "Other resources:" +msgstr "منابع دیگر:" + +msgid "Python developer's guide" +msgstr "راهنمای توسعه‌دهندگان پایتون" + +msgid "Information on contributing to Python" +msgstr "اطلاعات درباره‌ی مشارکت به پایتون" + +msgid "Python Packaging User Guide" +msgstr "راهنمای کاربر بسته‌بندی پایتون" + +msgid "Resources relating to Python packaging" +msgstr "منابع مربوط به بسته‌بندی پایتون" + +msgid "Audio/visual talks" +msgstr "گفتارهای صوتی/تصویری" + +msgid "Podcasts, talks, and video presentations from the community" +msgstr "پادکست‌ها، سخنرانی‌ها و ارائه‌های ویدئویی از سوی اعضای جامعه" + +msgid "Python Enhancement Proposals" +msgstr "پیشنهادهای بهبود پایتون" + +msgid "Index of proposed improvements to Python" +msgstr "فهرست پیشنهادهای بهبود پایتون" + +msgid "Static Typing with Python" +msgstr "تایپ‌گذاری ایستا (Static Typing) در پایتون" + +msgid "Information and guides about Python type safety" +msgstr "اطلاعات و راهنماهایی درباره‌ی ایمنی تایپ در پایتون" + +msgid "Indices, glossary, and search:" +msgstr "اندیس‌ها، واژه‌نامه و جست‌وجو:" + +msgid "Global module index" +msgstr "اندیس ماژول سراسری" + +msgid "All modules and libraries" +msgstr "همه‌ی ماژول‌ها و کتابخانه‌ها" + +msgid "General index" +msgstr "اندیس کلی" + +msgid "All functions, classes, and terms" +msgstr "همه‌ی توابع، کلاس‌ها و اصطلاحات" + +msgid "Glossary" +msgstr "واژه‌نامه" + +msgid "Terms explained" +msgstr "اصطلاحات توضیح داده شده" + +msgid "Search page" +msgstr "صفحه‌ی جست‌وجو" + +msgid "Search this documentation" +msgstr "این مستند را جست‌وجو کنید" + +msgid "Complete table of contents" +msgstr "جدول کامل محتویات" + +msgid "All sections and subsections" +msgstr "همه‌ی بخش‌ها و زیربخش‌ها" + +msgid "Project information:" +msgstr "اطلاعات پروژه" + +msgid "Reporting issues" +msgstr "گزارش اشکالات" + +msgid "Contributing to docs" +msgstr "مشارکت به مستندات" + +msgid "Download the documentation" +msgstr "دانلود مستندات" + +msgid "History and license of Python" +msgstr "تاریخچه و مجوز پایتون" + +msgid "Copyright" +msgstr "حق نشر" + +msgid "About the documentation" +msgstr "درباره‌ی مستندات" + +msgid "Docs by version" +msgstr "مستندات بر اساس نسخه" + +msgid "All versions" +msgstr "همه‌ی نسخه‌ها" + +msgid "" +"This document is for an old version of Python that is no longer supported.\n" +" You should upgrade, and read the" +msgstr "" +"این سند مربوط به نسخه‌ای قدیمی از پایتون است که دیگر پشتیبانی نمی‌شود.\n" +" شما باید نسخه‌ی خود را ارتقا دهید و مطالب مربوط به" + + +msgid "Python documentation for the current stable release" +msgstr "مستندات پایتون برای نسخه‌ی پایدار فعلی" + +msgid "" +"This is a deploy preview created from a pull request.\n" +" For authoritative documentation, see" +msgstr "" +"این یک پیش‌نمایش مستقرشده است که از یک درخواست ادغام ایجاد شده است.\n" +" برای مشاهده‌ی مستندات معتبر، به" + +msgid "the current stable release" +msgstr "نسخه‌ی پایدار فعلی" + #, python-format msgid "The %s extension is required by needs_extensions settings, but it is not loaded." msgstr "افزونه‌ی %s توسط تنظیمات needs_extensions لازم است، اما بار نشده است." @@ -2136,9 +2503,6 @@ msgstr "جست‌وجو در %(docstitle)s" msgid "About these documents" msgstr "درباره‌ی این مستندات" -msgid "Copyright" -msgstr "حق نشر" - #, python-format msgid "© %(copyright_prefix)s %(copyright)s." msgstr "© %(copyright_prefix)s %(copyright)s." @@ -3274,290 +3638,11 @@ msgstr "به‌روزرسانی امضا برای %r شکست خورد: پارا msgid "Failed to parse type_comment for %r: %s" msgstr "پارس کردن type_comment برای %r شکست خورد: %s" -#~ msgid "Stable" -#~ msgstr "پایدار" - -#~ msgid "In development" -#~ msgstr "در حال توسعه" - -#~ msgid "Report a bug" -#~ msgstr "گزارش یک اشکال" - -#~ msgid "Improve this page" -#~ msgstr "بهبود این صفحه" - -#~ msgid "Show translation source" -#~ msgstr "نمایش منبع ترجمه" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "Download Python %(dl_version)s documentation" -#~ msgstr "دانلود مستندات پایتون %(dl_version)s" - -#~ msgid "Download an archive containing all the documentation for this version of Python:" -#~ msgstr "آرشیوی از تمام مستندات این نسخه از پایتون را دانلود کنید:" - -#~ msgid "Format" -#~ msgstr "قالب" - -#~ msgid "Packed as .zip" -#~ msgstr "فشرده‌شده به صورت .zip" - -#~ msgid "Packed as .tar.bz2" -#~ msgstr "فشرده‌شده به صورت .tar.bz2" - -#~ msgid "HTML" -#~ msgstr "HTML" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "Plain text" -#~ msgstr "متن ساده" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "Texinfo" -#~ msgstr "Texinfo" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "EPUB" -#~ msgstr "EPUB" - -#~ msgid "Download" -#~ msgstr "دانلود" - -#~ msgid "" -#~ "\n" -#~ "We no longer provide pre-built PDFs of the documentation.\n" -#~ "To build a PDF archive, follow the instructions in the\n" -#~ "Developer's Guide\n" -#~ "and run make dist-pdf in the Doc/ directory of a copy of the CPython repository.\n" -#~ msgstr "" -#~ "\n" -#~ "ما دیگر پرونده‌های PDF از پیش‌ساخته‌شده‌ی مستندات را ارائه نمی‌دهیم.\n" -#~ "برای ساختن یک آرشیو PDF، دستورالعمل‌های موجود در\n" -#~ "راهنمای توسعه‌دهندگان را دنبال کنید\n" -#~ "و دستور make dist-pdf را در پوشه‌ی Doc/ یک نسخه‌ی محلی (کپی) از مخزن CPython اجرا کنید.\n" - -#~ msgid "" -#~ "\n" -#~ "See the directory listing\n" -#~ "for file sizes." -#~ msgstr "" -#~ "\n" -#~ "برای مشاهده‌ی اندازه‌ی پرونده‌ها، به فهرست مراجعه کنید." - -#~ msgid "Problems" -#~ msgstr "مشکلات" - -#~ msgid "" -#~ "Open an issue\n" -#~ "if you have comments or suggestions for the Python documentation." -#~ msgstr "" -#~ "اگر نظر یا پیشنهادی برای مستندات پایتون دارید،\n" -#~ "یک گزارش مشکل باز کنید." - -#~ msgid "Availability" -#~ msgstr "دسترس‌پذیری" - -#~ msgid "Part of the" -#~ msgstr "قسمتی از" - -#~ msgid "Limited API" -#~ msgstr "API محدود" - -#~ msgid "Stable ABI" -#~ msgstr "ABI پایدار" - -#~ msgid "(as an opaque struct)" -#~ msgstr "(به‌عنوان یک ساختار مبهم)" - -#~ msgid "(including all members)" -#~ msgstr "شامل تمام اعضا" - -#~ msgid "since version %s" -#~ msgstr "از نسخه‌ی %s" - -#~ msgid "(Only some members are part of the stable ABI.)" -#~ msgstr "(تنها برخی از اعضا قسمتی از ABI پایدار هستند.)" - -#~ msgid "Unstable API" -#~ msgstr "API ناپایدار" - -#~ msgid ". It may change without warning in minor releases." -#~ msgstr "این ممکن است بدون هشدار در نسخه‌های جزئی تغییر کند." - -#~ msgid "Return value: New reference." -#~ msgstr "مقدار بازگشتی: مرجع جدید." - -#~ msgid "Return value: Borrowed reference." -#~ msgstr "مقدار بازگشتی: مرجع امانتی." - -#~ msgid "CPython implementation detail:" -#~ msgstr "جزئیات پیاده‌سازی در CPython:" - -#~ msgid "Deprecated since version %s, will be removed in version %s" -#~ msgstr "منسوخ شده از نسخه‌ی %s, در نسخه‌ی %s حذف خواهد شد" - -#~ msgid "Deprecated since version %s, removed in version %s" -#~ msgstr "منسوخ شده از نسخه‌ی %s، در نسخه‌ی %s حذف شده است" - -#~ msgid ":term:`Soft deprecated` since version %s" -#~ msgstr ":term:`منسوخ‌سازی نرم ` از نسخه‌ی %s" - -#~ msgid "in development" -#~ msgstr "در حال توسعه" - -#~ msgid "stable" -#~ msgstr "پایدار" - -#~ msgid "security-fixes" -#~ msgstr "اصلاحیه‌های امنیتی" - -#~ msgid "EOL" -#~ msgstr "پایان پشتیبانی" - -#~ msgid "Welcome! This is the official documentation for Python %(release)s." -#~ msgstr "خوش‌آمدید! این مستندات رسمی پایتون نسخه‌ی %(release)s است." - -#~ msgid "Documentation sections:" -#~ msgstr "بخش‌های مستند:" - -#~ msgid "What's new in Python %(version)s?" -#~ msgstr "چه چیز جدیدی در پایتون نسخه‌ی %(version)s است؟" - -#~ msgid "Or all \"What's new\" documents since Python 2.0" -#~ msgstr "یا تمام مستندات «چه چیز جدیدی» از پایتون ۲.۰" - -#~ msgid "Tutorial" -#~ msgstr "آموزش" - -#~ msgid "Start here: a tour of Python's syntax and features" -#~ msgstr "از اینجا شروع کنید: سفری در سینتکس و ویژگی‌های پایتون" - -#~ msgid "Standard library and builtins" -#~ msgstr "کتابخانه‌ی استاندارد و توابع توکار" - -#~ msgid "Language reference" -#~ msgstr "مرجع زبان" - -#~ msgid "Python setup and usage" -#~ msgstr "راه‌اندازی و استفاده از پایتون" - -#~ msgid "How to install, configure, and use Python" -#~ msgstr "نحوه‌ی نصب، پیکربندی و استفاده از پایتون" - -#~ msgid "Python HOWTOs" -#~ msgstr "راهنماهای گام‌به‌گام پایتون" - -#~ msgid "In-depth topic manuals" -#~ msgstr "راهنماهای موضوعی عمیق" - -#~ msgid "Installing Python modules" -#~ msgstr "نصب ماژول‌های پایتون" - -#~ msgid "Third-party modules and PyPI.org" -#~ msgstr "ماژول‌های شخص ثالث و PyPI.org" - -#~ msgid "Extending and embedding" -#~ msgstr "توسعه و تعبیه" - -#~ msgid "For C/C++ programmers" -#~ msgstr "برای برنامه‌نویسان C/C++" - -#~ msgid "Python's C API" -#~ msgstr "رابط برنامه‌نویسی C پایتون" - -#~ msgid "FAQs" -#~ msgstr "سوالات متداول" - -#~ msgid "Frequently asked questions (with answers!)" -#~ msgstr "سؤالات متداول (همراه با پاسخ!)" - -#~ msgid "Deprecated functionality" -#~ msgstr "قابلیت‌های منسوخ‌شده" - -#~ msgid "Other resources:" -#~ msgstr "منابع دیگر:" - -#~ msgid "Python Packaging User Guide" -#~ msgstr "راهنمای کاربر بسته‌بندی پایتون" - -#~ msgid "Resources relating to Python packaging" -#~ msgstr "منابع مربوط به بسته‌بندی پایتون" - -#~ msgid "Static Typing with Python" -#~ msgstr "تایپ‌گذاری ایستا (Static Typing) در پایتون" - -#~ msgid "Information and guides about Python type safety" -#~ msgstr "اطلاعات و راهنماهایی درباره‌ی ایمنی تایپ در پایتون" - -#~ msgid "Indices, glossary, and search:" -#~ msgstr "اندیس‌ها، واژه‌نامه و جست‌وجو:" - -#~ msgid "All modules and libraries" -#~ msgstr "همه‌ی ماژول‌ها و کتابخانه‌ها" - -#~ msgid "Terms explained" -#~ msgstr "اصطلاحات توضیح داده شده" - -#~ msgid "Contributing to docs" -#~ msgstr "مشارکت در مستندات" - -#~ msgid "Download the documentation" -#~ msgstr "دانلود مستندات" - -#~ msgid "History and license of Python" -#~ msgstr "تاریخچه و مجوز پایتون" - #~ msgid "Download these documents" #~ msgstr "دانلود این مستندات" -#~ msgid "Docs by version" -#~ msgstr "مستندات بر اساس نسخه" - -#~ msgid "All versions" -#~ msgstr "همه‌ی نسخه‌ها" - #~ msgid "Beginner's guide" #~ msgstr "راهنمای مبتدیان" #~ msgid "Book list" #~ msgstr "لیست کتاب‌ها" - -#~ msgid "Audio/visual talks" -#~ msgstr "گفتارهای صوتی/تصویری" - -#~ msgid "Python developer’s guide" -#~ msgstr "راهنمای توسعه‌دهندگان پایتون" - -#~ msgid "" -#~ "This document is for an old version of Python that is no longer supported.\n" -#~ " You should upgrade, and read the" -#~ msgstr "" -#~ "این سند مربوط به نسخه‌ای قدیمی از پایتون است که دیگر پشتیبانی نمی‌شود.\n" -#~ " شما باید نسخه‌ی خود را ارتقا دهید و مطالب مربوط به" - -#~ msgid "" -#~ "This is a deploy preview created from a pull request.\n" -#~ " For authoritative documentation, see" -#~ msgstr "" -#~ "این یک پیش‌نمایش مستقرشده است که از یک درخواست ادغام ایجاد شده است.\n" -#~ " برای مشاهده‌ی مستندات معتبر، به" - -#~ msgid "the current stable release" -#~ msgstr "نسخه‌ی پایدار فعلی" From 01b5df62422a11d0feb7a810094f409e5b3cb176 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 5 Oct 2026 04:16:47 +0000 Subject: [PATCH 08/15] chore: sync msgids with CPython 3.14 --- c-api/exceptions.po | 8 +++++++- library/ctypes.po | 6 ++++-- sphinx.po | 3 +-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/c-api/exceptions.po b/c-api/exceptions.po index bd20e5480..c7aa4219d 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-04 17:29+0330\n" +"POT-Creation-Date: 2026-10-05 04:14+0000\n" "PO-Revision-Date: 2026-09-15 13:22+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -540,6 +540,9 @@ msgstr "نقطه‌ای را نشان‌گذاری می‌کند که در آن msgid "The function then checks if the stack limit is reached. If this is the case, a :exc:`RecursionError` is set and a nonzero value is returned. Otherwise, zero is returned." msgstr "سپس تابع بررسی می‌کند که آیا به حد پشته رسیده است یا خیر. اگر چنین باشد، یک :exc:`RecursionError` تنظیم می‌شود و مقدار غیرصفر بازگردانده می‌شود. در غیر این صورت، صفر بازگردانده می‌شود." +msgid "The check is based on the remaining C stack space of the current thread, not on a count of calls, so it is unaffected by :c:func:`Py_SetRecursionLimit` and :func:`sys.setrecursionlimit`." +msgstr "" + msgid "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` to be concatenated to the :exc:`RecursionError` message caused by the recursion depth limit." msgstr "*where* باید یک رشته‌ی کدگذاری‌شده با UTF-8 مانند ``\" in instance check\"`` باشد تا به پیام :exc:`RecursionError` که ناشی از محدودیت عمق بازگشت است، الحاق شود." @@ -549,6 +552,9 @@ msgstr "تابع :c:func:`PyUnstable_ThreadState_SetStackProtection`." msgid "This function is now also available in the :ref:`limited API `." msgstr "این تابع اکنون در :ref:`API محدود ` نیز در دسترس است." +msgid "The check is based on the remaining C stack space. Previously, a separate counter of C-level calls was used." +msgstr "" + msgid "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each *successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "یک :c:func:`Py_EnterRecursiveCall` را پایان می‌دهد. باید یک‌بار برای هر فراخوانی *موفق* :c:func:`Py_EnterRecursiveCall` فراخوانی شود." diff --git a/library/ctypes.po b/library/ctypes.po index dadddfce4..3021fc2af 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-28 04:10+0000\n" +"POT-Creation-Date: 2026-10-05 04:14+0000\n" "PO-Revision-Date: 2026-09-13 18:16+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -2352,7 +2352,9 @@ msgstr "برای دسترسی مستقیم به API پایتون C، یک شیء msgid "An instance of :class:`PyDLL` that exposes Python C API functions as attributes. Note that all these functions are assumed to return C :c:expr:`int`, which is of course not always the truth, so you have to assign the correct :attr:`!restype` attribute to use these functions." msgstr "نمونه‌ای از :class:`PyDLL` که توابع Python C API را به‌عنوان ویژگی‌ها در دسترس قرار می‌دهد. توجه داشته باشید که فرض می‌شود همه‌ی این توابع مقداری از نوع C :c:expr:`int` را برمی‌گردانند، که البته همیشه درست نیست، بنابراین برای استفاده از این توابع باید ویژگی :attr:`!restype` صحیح را اختصاص دهید." -msgid "Note that if the Python interpreter is statically linked, this will be ``None``, as ``dlopen`` is not possible in this case." +#, fuzzy +#| msgid "Note that if the Python interpreter is statically linked, this will be ``None``, as ``dlopen`` is not possible in this case." +msgid "If the Python interpreter is statically linked, this may be ``None``." msgstr "توجه داشته باشید که اگر مفسر پایتون به‌صورت ایستا پیوند شده باشد، این مقدار ``None`` خواهد بود، زیرا در این حالت ``dlopen`` ممکن نیست." msgid "Loading a library through any of these objects raises an :ref:`auditing event ` ``ctypes.dlopen`` with string argument ``name``, the name used to load the library." diff --git a/sphinx.po b/sphinx.po index 4d1d6b0c1..1f148aa24 100644 --- a/sphinx.po +++ b/sphinx.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-04 17:29+0330\n" +"POT-Creation-Date: 2026-10-05 04:14+0000\n" "PO-Revision-Date: 2026-08-28 10:54+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/fa/)\n" @@ -378,7 +378,6 @@ msgstr "" "این سند مربوط به نسخه‌ای قدیمی از پایتون است که دیگر پشتیبانی نمی‌شود.\n" " شما باید نسخه‌ی خود را ارتقا دهید و مطالب مربوط به" - msgid "Python documentation for the current stable release" msgstr "مستندات پایتون برای نسخه‌ی پایدار فعلی" From ea10490f1548368a18b70d53a0f926df44cb1f14 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 5 Oct 2026 05:27:46 +0000 Subject: [PATCH 09/15] chore: update translation status, PO headers, team credits, and contributor chart --- STATUS.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/STATUS.md b/STATUS.md index daf527593..a70d089ac 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,6 +1,6 @@ ### وضعیت ترجمه فایل‌ها -(به‌روزرسانی: 2026-10-04) +(به‌روزرسانی: 2026-10-05) | فایل | ترجمه‌شده | مبهم | تعداد ترجمه‌شده | تعداد ترجمه‌نشده | |:-----|:-----------:|:-----------:|:-----------:|:-----------:| @@ -225,7 +225,6 @@ | library/crypt.po | 100.0% | 0.0% | 4 | 0 | | library/crypto.po | 100.0% | 0.0% | 3 | 0 | | library/csv.po | 100.0% | 0.0% | 133 | 0 | -| library/ctypes.po | 100.0% | 0.0% | 678 | 0 | | library/curses.ascii.po | 100.0% | 0.0% | 69 | 0 | | library/curses.panel.po | 100.0% | 0.0% | 25 | 0 | | library/curses.po | 100.0% | 0.0% | 510 | 0 | @@ -487,7 +486,7 @@ | reference/lexical_analysis.po | 100.0% | 0.0% | 476 | 0 | | reference/simple_stmts.po | 100.0% | 0.0% | 291 | 0 | | reference/toplevel_components.po | 100.0% | 0.0% | 32 | 0 | -| sphinx.po | 100.0% | 0.0% | 858 | 0 | +| sphinx.po | 100.0% | 0.0% | 970 | 0 | | tutorial/appendix.po | 100.0% | 0.0% | 28 | 0 | | tutorial/appetite.po | 100.0% | 0.0% | 17 | 0 | | tutorial/classes.po | 100.0% | 0.0% | 149 | 0 | @@ -539,9 +538,10 @@ | whatsnew/3.9.po | 100.0% | 0.0% | 380 | 0 | | whatsnew/changelog.po | 100.0% | 0.0% | 1 | 0 | | whatsnew/index.po | 100.0% | 0.0% | 3 | 0 | +| library/ctypes.po | 99.9% | 0.1% | 677 | 0 | | library/asyncio-eventloop.po | 99.8% | 0.0% | 426 | 1 | | c-api/exceptions.po | 99.3% | 0.0% | 274 | 2 | | library/ssl.po | 99.3% | 0.0% | 546 | 4 | | library/asyncio-stream.po | 99.1% | 0.0% | 105 | 1 | -| **مجموع** | **100.0%** | **0.0%** | **71172** | **8** | +| **مجموع** | **100.0%** | **0.0%** | **71283** | **8** | From 47aa59bdc8c6ac3116931c51aea0c25d53be40b7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 6 Oct 2026 04:11:51 +0000 Subject: [PATCH 10/15] chore: sync msgids with CPython 3.14 --- using/configure.po | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/using/configure.po b/using/configure.po index 7a894817e..71157ae71 100644 --- a/using/configure.po +++ b/using/configure.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-29 04:09+0000\n" +"POT-Creation-Date: 2026-10-06 04:10+0000\n" "PO-Revision-Date: 2026-09-14 10:31+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -868,6 +868,9 @@ msgstr "آشکارساز خطاهای حافظه‌ی AddressSanitizer یعنی msgid "Enable MemorySanitizer allocation error detector, ``msan`` (default is no)." msgstr "فعال‌سازی آشکارساز خطای تخصیص MemorySanitizer، ``msan`` (پیش‌فرض: خیر)." +msgid "MSan reports false positives for memory initialized by libraries that are not built with MSan, so either build all dependencies with MSan or disable the extension modules that use them in :file:`Modules/Setup.local`." +msgstr "" + msgid "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` (default is no)." msgstr "فعال کردن آشکارساز رفتار تعریف‌نشده UndefinedBehaviorSanitizer، ``ubsan`` (پیش‌فرض: خیر)." From 6e4f997bb4f5702962c24f6e41be70e10a184e1e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 6 Oct 2026 05:12:06 +0000 Subject: [PATCH 11/15] chore: update translation status, PO headers, team credits, and contributor chart --- STATUS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/STATUS.md b/STATUS.md index a70d089ac..d0ccaff1c 100644 --- a/STATUS.md +++ b/STATUS.md @@ -1,6 +1,6 @@ ### وضعیت ترجمه فایل‌ها -(به‌روزرسانی: 2026-10-05) +(به‌روزرسانی: 2026-10-06) | فایل | ترجمه‌شده | مبهم | تعداد ترجمه‌شده | تعداد ترجمه‌نشده | |:-----|:-----------:|:-----------:|:-----------:|:-----------:| @@ -506,7 +506,6 @@ | tutorial/whatnow.po | 100.0% | 0.0% | 18 | 0 | | using/android.po | 100.0% | 0.0% | 27 | 0 | | using/cmdline.po | 100.0% | 0.0% | 270 | 0 | -| using/configure.po | 100.0% | 0.0% | 468 | 0 | | using/editors.po | 100.0% | 0.0% | 6 | 0 | | using/index.po | 100.0% | 0.0% | 2 | 0 | | using/ios.po | 100.0% | 0.0% | 91 | 0 | @@ -539,9 +538,10 @@ | whatsnew/changelog.po | 100.0% | 0.0% | 1 | 0 | | whatsnew/index.po | 100.0% | 0.0% | 3 | 0 | | library/ctypes.po | 99.9% | 0.1% | 677 | 0 | +| using/configure.po | 99.8% | 0.0% | 468 | 1 | | library/asyncio-eventloop.po | 99.8% | 0.0% | 426 | 1 | | c-api/exceptions.po | 99.3% | 0.0% | 274 | 2 | | library/ssl.po | 99.3% | 0.0% | 546 | 4 | | library/asyncio-stream.po | 99.1% | 0.0% | 105 | 1 | -| **مجموع** | **100.0%** | **0.0%** | **71283** | **8** | +| **مجموع** | **100.0%** | **0.0%** | **71283** | **9** | From a7e7dc4325ff97fbaf6af3274c3bbdfab50b2b30 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Oct 2026 14:56:22 +0000 Subject: [PATCH 12/15] chore: sync msgids with CPython 3.14 --- c-api/code.po | 5 +- c-api/conversion.po | 11 +- c-api/descriptor.po | 48 +- c-api/dict.po | 5 +- c-api/exceptions.po | 5 +- c-api/file.po | 17 +- c-api/float.po | 10 +- c-api/function.po | 5 +- c-api/hash.po | 19 +- c-api/import.po | 20 +- c-api/init_config.po | 5 +- c-api/interp-lifecycle.po | 20 +- c-api/intro.po | 18 +- c-api/long.po | 11 +- c-api/marshal.po | 8 +- c-api/monitoring.po | 10 +- c-api/profiling.po | 11 +- c-api/pyexpat.po | 59 +++ c-api/structures.po | 24 +- c-api/synchronization.po | 11 +- c-api/unicode.po | 31 +- c-api/veryhigh.po | 25 +- c-api/weakref.po | 8 +- extending/newtypes.po | 13 +- howto/remote_debugging.po | 10 +- library/calendar.po | 6 +- library/concurrent.interpreters.po | 59 ++- library/ctypes.po | 583 ++++++++++++++++++++-- library/curses.po | 25 +- library/datetime.po | 55 ++- library/gc.po | 7 +- library/gzip.po | 6 +- library/http.client.po | 6 +- library/inspect.po | 6 +- library/mailbox.po | 5 +- library/mmap.po | 40 +- library/multiprocessing.po | 9 +- library/os.po | 5 +- library/pathlib.po | 58 ++- library/tempfile.po | 8 +- library/test.po | 77 ++- library/tkinter.po | 132 +++-- library/tokenize.po | 69 ++- library/traceback.po | 8 +- library/turtle.po | 747 ++++++++++++++++++++--------- reference/datamodel.po | 11 +- using/android.po | 7 +- using/cmdline.po | 10 +- using/configure.po | 13 +- using/ios.po | 6 +- using/mac.po | 5 +- using/windows.po | 10 +- 52 files changed, 1915 insertions(+), 467 deletions(-) create mode 100644 c-api/pyexpat.po diff --git a/c-api/code.po b/c-api/code.po index a1435f205..320a757d1 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:48+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -112,6 +112,9 @@ msgstr "پاک کردن پایشگر (watcher) شناسایی‌شده با *wat msgid "Enumeration of possible code object watcher events: - ``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" msgstr "شمارش رویدادهای ممکن دیده‌بان شیء کد: - ``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" +msgid "Apply the macro *V* to each suffix of :c:type:`PyCodeEvent` constants. Currently expands to ``V(CREATE) V(DESTROY)``. The macro *V* must accept one event name and supply any punctuation needed between expansions." +msgstr "" + msgid "Type of a code object watcher callback function." msgstr "نوع تابع کال‌بک دیده‌بان شیء کد." diff --git a/c-api/conversion.po b/c-api/conversion.po index 067539346..dc39a3294 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:48+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -185,3 +185,12 @@ msgstr "بازگرداندن معادل کوچک نویسه‌ی *c*." msgid "Return the uppercase equivalent of the character *c*." msgstr "معادل بزرگ‌نویسی نویسه‌ی *c* را برمی‌گرداند." + +msgid "Bit masks" +msgstr "" + +msgid "The following constants are bit masks used by the character classification macros above:" +msgstr "" + +msgid "Values used internally by the ``Py_IS*`` classification macros above. Exposed for backwards compatibility only." +msgstr "" diff --git a/c-api/descriptor.po b/c-api/descriptor.po index 68d78593d..47eace2c5 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:48+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -61,20 +61,22 @@ msgstr "توصیف‌گرهای متد، توابع C را به‌صورت مت msgid "The type object for method descriptor objects created from :c:type:`PyMethodDef` structures. These descriptors expose C functions as methods on a type, and correspond to :class:`types.MethodDescriptorType` objects in Python." msgstr "شیء نوع برای اشیاء توصیف‌گر متد که از ساختارهای :c:type:`PyMethodDef` ایجاد شده‌اند. این توصیف‌گرها توابع C را به‌عنوان متدهایی روی یک نوع در دسترس قرار می‌دهند و معادل اشیاء :class:`types.MethodDescriptorType` در پایتون هستند." -msgid "Describes a slot wrapper used by :c:func:`PyDescr_NewWrapper`." -msgstr "یک دربرگیرنده‌ی جایگاه را توصیف می‌کند که توسط :c:func:`PyDescr_NewWrapper` استفاده می‌شود." +msgid "The type object for wrapper descriptor objects created by :c:func:`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`." +msgstr "" -msgid "Each ``wrapperbase`` record stores the Python-visible name and metadata for a special method implemented by a type slot, together with the wrapper function used to adapt that slot to Python's calling convention." -msgstr "هر رکورد ``wrapperbase`` نام قابل‌مشاهده در پایتون و فراداده‌ی متد ویژه‌ای را که توسط یک جایگاه نوع پیاده‌سازی شده است، به همراه تابع پوششی‌ای که برای تطبیق آن جایگاه با قرارداد فراخوانی پایتون استفاده می‌شود، ذخیره می‌کند." +#, fuzzy +#| msgid "Wrapper descriptors expose special methods implemented by type slots. This is the same kind of descriptor that CPython creates for slot-based special methods such as ``__repr__`` or ``__add__``, and it appears in Python as a :class:`types.WrapperDescriptorType` object." +msgid "Wrapper descriptors are used internally to expose special methods such as ``__repr__`` or ``__add__``, which are implemented by type slots. The type is exposed in Python as :class:`types.WrapperDescriptorType`." +msgstr "توصیف‌گرهای پوششی، متدهای ویژه‌ای را که توسط جایگاه‌های نوع پیاده‌سازی شده‌اند، در دسترس قرار می‌دهند. این همان نوع توصیف‌گری است که سی‌پایتون برای متدهای ویژه‌ی مبتنی بر جایگاه مانند ``__repr__`` یا ``__add__`` ایجاد می‌کند و در پایتون به‌صورت یک شیء :class:`types.WrapperDescriptorType` ظاهر می‌شود." -msgid "Create a new wrapper descriptor for extension type *type* from the :c:struct:`wrapperbase` structure *base* and the wrapped slot function pointer *wrapped*." -msgstr "یک توصیف‌گر پوششی جدید برای نوع توسعه‌ای *type* از ساختار :c:struct:`wrapperbase` به نام *base* و اشاره‌گر تابع جایگاه دربرگرفته‌شده به نام *wrapped* می‌سازد." +msgid "Create a new wrapper descriptor of type :c:var:`PyWrapperDescr_Type`." +msgstr "" -msgid "Wrapper descriptors expose special methods implemented by type slots. This is the same kind of descriptor that CPython creates for slot-based special methods such as ``__repr__`` or ``__add__``, and it appears in Python as a :class:`types.WrapperDescriptorType` object." -msgstr "توصیف‌گرهای پوششی، متدهای ویژه‌ای را که توسط جایگاه‌های نوع پیاده‌سازی شده‌اند، در دسترس قرار می‌دهند. این همان نوع توصیف‌گری است که سی‌پایتون برای متدهای ویژه‌ی مبتنی بر جایگاه مانند ``__repr__`` یا ``__add__`` ایجاد می‌کند و در پایتون به‌صورت یک شیء :class:`types.WrapperDescriptorType` ظاهر می‌شود." +msgid "This function is meant for internal use only; it and related API (``struct wrapperbase`` and the ``PyWrapperFlag_KEYWORDS`` flag) are exposed publicly for backwards compatibility reasons." +msgstr "" -msgid "The type object for wrapper descriptor objects created by :c:func:`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`. Wrapper descriptors are used internally to expose special methods implemented via wrapper structures, and appear in Python as :class:`types.WrapperDescriptorType` objects." -msgstr "شیء نوع برای اشیاء توصیف‌گر پوششی که توسط :c:func:`PyDescr_NewWrapper` و :c:func:`PyWrapper_New` ایجاد می‌شوند. توصیف‌گرهای پوششی به‌طور داخلی برای در دسترس قرار دادن متدهای ویژه‌ای که از طریق ساختارهای پوششی پیاده‌سازی شده‌اند استفاده می‌شوند و در پایتون به‌صورت اشیاء :class:`types.WrapperDescriptorType` ظاهر می‌شوند." +msgid "See :c:func:`PyCMethod_New` for wrapping a C function." +msgstr "" msgid "Create a new class method descriptor for extension type *type* from the :c:type:`PyMethodDef` structure *method*." msgstr "یک توصیف‌گر متد کلاس جدید برای نوع توسعه‌ای *type* از ساختار :c:type:`PyMethodDef` به نام *method* ایجاد می‌کند." @@ -94,6 +96,18 @@ msgstr "این، شکل مقیدِ یک توصیف‌گر پوششی (wrapper de msgid "On success, return a :term:`strong reference` to the wrapper object. Return ``NULL`` with an exception set on failure." msgstr "در صورت موفقیت، یک :term:`ارجاع قوی ` به شیء پوششی برمی‌گرداند. در صورت شکل، ``NULL`` را همراه با یک استثنای تنظیم‌شده برمی‌گرداند." +msgid "Return a :term:`borrowed reference` to the type that the descriptor *descr* belongs to. This is accessible as :attr:`~object.__objclass__` in Python." +msgstr "" + +msgid "*descr* must be a descriptor object created by one of the ``PyDescr_New*`` functions (an instance of :c:var:`PyMethodDescr_Type`, :c:var:`PyClassMethodDescr_Type`, :c:var:`PyMemberDescr_Type`, :c:var:`PyGetSetDescr_Type`, or :c:var:`PyWrapperDescr_Type`). If the passed descriptor is not an instance of one of these types, the behavior is undefined." +msgstr "" + +msgid "Return the name of the descriptor *descr* as a :term:`borrowed reference` to a :class:`str` object. This is available as :attr:`~definition.__name__` in Python." +msgstr "" + +msgid "*descr* must be a descriptor object created by one of the ``PyDescr_New*`` functions. If not, the behavior is undefined." +msgstr "" + msgid "Built-in descriptors" msgstr "توصیف‌گرهای توکار" @@ -120,3 +134,15 @@ msgstr "یک شیء :class:`staticmethod` جدید ایجاد می‌کند که msgid "On success, this function returns a :term:`strong reference` to a new static method descriptor. On failure, this function returns ``NULL`` with an exception set." msgstr "در صورت موفقیت، این تابع یک :term:`ارجاع قوی ` به توصیف‌گر جدید متد ایستا برمی‌گرداند. در صورت شکست، این تابع ``NULL`` را همراه با یک استثنای تنظیم‌شده برمی‌گرداند." + +#~ msgid "Describes a slot wrapper used by :c:func:`PyDescr_NewWrapper`." +#~ msgstr "یک دربرگیرنده‌ی جایگاه را توصیف می‌کند که توسط :c:func:`PyDescr_NewWrapper` استفاده می‌شود." + +#~ msgid "Each ``wrapperbase`` record stores the Python-visible name and metadata for a special method implemented by a type slot, together with the wrapper function used to adapt that slot to Python's calling convention." +#~ msgstr "هر رکورد ``wrapperbase`` نام قابل‌مشاهده در پایتون و فراداده‌ی متد ویژه‌ای را که توسط یک جایگاه نوع پیاده‌سازی شده است، به همراه تابع پوششی‌ای که برای تطبیق آن جایگاه با قرارداد فراخوانی پایتون استفاده می‌شود، ذخیره می‌کند." + +#~ msgid "Create a new wrapper descriptor for extension type *type* from the :c:struct:`wrapperbase` structure *base* and the wrapped slot function pointer *wrapped*." +#~ msgstr "یک توصیف‌گر پوششی جدید برای نوع توسعه‌ای *type* از ساختار :c:struct:`wrapperbase` به نام *base* و اشاره‌گر تابع جایگاه دربرگرفته‌شده به نام *wrapped* می‌سازد." + +#~ msgid "The type object for wrapper descriptor objects created by :c:func:`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`. Wrapper descriptors are used internally to expose special methods implemented via wrapper structures, and appear in Python as :class:`types.WrapperDescriptorType` objects." +#~ msgstr "شیء نوع برای اشیاء توصیف‌گر پوششی که توسط :c:func:`PyDescr_NewWrapper` و :c:func:`PyWrapper_New` ایجاد می‌شوند. توصیف‌گرهای پوششی به‌طور داخلی برای در دسترس قرار دادن متدهای ویژه‌ای که از طریق ساختارهای پوششی پیاده‌سازی شده‌اند استفاده می‌شوند و در پایتون به‌صورت اشیاء :class:`types.WrapperDescriptorType` ظاهر می‌شوند." diff --git a/c-api/dict.po b/c-api/dict.po index 6cc9ee867..75400e7b4 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 20:16+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -288,6 +288,9 @@ msgstr "دیکشنری *dict* را به‌عنوان دیگر دیده‌بان msgid "Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, ``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, ``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED``, or ``PyDict_EVENT_DEALLOCATED``." msgstr "برشمردن رویدادهای ممکن دیده‌بان دیکشنری: ``PyDict_EVENT_ADDED``، ``PyDict_EVENT_MODIFIED``، ``PyDict_EVENT_DELETED``، ``PyDict_EVENT_CLONED``، ``PyDict_EVENT_CLEARED`` یا ``PyDict_EVENT_DEALLOCATED``." +msgid "Apply the macro *V* to each suffix of :c:type:`PyDict_WatchEvent` constants. Currently expands to ``V(ADDED) V(MODIFIED) V(DELETED) V(CLONED) V(CLEARED) V(DEALLOCATED)``. The macro *V* must accept one event name and supply any punctuation needed between expansions." +msgstr "" + msgid "Type of a dict watcher callback function." msgstr "نوع تابع کال‌بک ناظر دیکشنری." diff --git a/c-api/exceptions.po b/c-api/exceptions.po index c7aa4219d..75f6a4c19 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-05 04:14+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 13:22+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -201,6 +201,9 @@ msgstr "دسته‌های هشدار باید زیرکلاس‌هایی از :c: msgid "For information about warning control, see the documentation for the :mod:`warnings` module and the :option:`-W` option in the command line documentation. There is no C API for warning control." msgstr "برای کسب اطلاعات درباره‌ی کنترل هشدارها، به مستندات ماژول :mod:`warnings` و گزینه‌ی :option:`-W` در مستندات خط فرمان مراجعه کنید. برای کنترل هشدارها API زبان C وجود ندارد." +msgid "Equivalent to :c:expr:`PyErr_WarnEx(category, message, 1)`." +msgstr "" + msgid "Issue a warning message with explicit control over all warning attributes. This is a straightforward wrapper around the Python function :func:`warnings.warn_explicit`; see there for more information. The *module* and *registry* arguments may be set to ``NULL`` to get the default effect described there." msgstr "یک پیام هشدار با کنترل صریح بر تمام ویژگی‌های هشدار صادر می‌کند. این پوششی ساده در اطراف تابع پایتونی :func:`warnings.warn_explicit` است؛ برای اطلاعات بیشتر به آنجا مراجعه کنید. آرگومان‌های *module* و *registry* می‌توانند روی ``NULL`` تنظیم شوند تا اثر پیش‌فرضِ توصیف‌شده در آنجا به دست آید." diff --git a/c-api/file.po b/c-api/file.po index 9d41e5ee2..9c027dc72 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:48+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -42,6 +42,18 @@ msgstr "توصیف‌گر پرونده مرتبط با *p* را به‌صورت msgid "Equivalent to ``p.readline([n])``, this function reads one line from the object *p*. *p* may be a file object or any object with a :meth:`~io.IOBase.readline` method. If *n* is ``0``, exactly one line is read, regardless of the length of the line. If *n* is greater than ``0``, no more than *n* bytes will be read from the file; a partial line can be returned. In both cases, an empty string is returned if the end of the file is reached immediately. If *n* is less than ``0``, however, one line is read regardless of length, but :exc:`EOFError` is raised if the end of the file is reached immediately." msgstr "این تابع معادل ``p.readline([n])`` است و یک سطر از شیء *p* می‌خواند. *p* می‌تواند یک شیء پرونده یا هر شیء دارای متد :meth:`~io.IOBase.readline` باشد. اگر *n* برابر ``0`` باشد، دقیقاً یک سطر خوانده می‌شود، بدون توجه به طول سطر. اگر *n* بزرگ‌تر از ``0`` باشد، بیش از *n* بایت از پرونده خوانده نمی‌شود؛ ممکن است سطر ناقصی برگردانده شود. در هر دو حالت، اگر بلافاصله به پایان پرونده برسیم، رشته‌ای خالی برگردانده می‌شود. اما اگر *n* کوچک‌تر از ``0`` باشد، یک سطر بدون توجه به طول خوانده می‌شود، ولی اگر بلافاصله به پایان پرونده برسیم، :exc:`EOFError` پرتاب می‌شود." +msgid "Read a line from the C stream *stream* into the buffer *buf*, like the C standard library function :c:func:`!fgets`, but treating all of ``\\n``, ``\\r`` and ``\\r\\n`` as line endings (see :term:`universal newlines`). Any ``\\r`` or ``\\r\\n`` read from the stream is stored in *buf* as a single ``\\n``." +msgstr "" + +msgid "At most ``n - 1`` characters are stored in *buf*; reading stops after a newline has been stored or when the end of the file is reached. The result is always null-terminated. *stream* should be opened in binary mode, so that the C library does not perform its own newline translation." +msgstr "" + +msgid "Return *buf* on success. Return ``NULL`` if no characters could be read, because *stream* is at end of file, a read error occurred, or *n* is less than 2. Like :c:func:`!fgets`, this function does not distinguish between end of file and a read error, and it does not set an exception." +msgstr "" + +msgid "*fobj* exists only for backward compatibility and must be ``NULL``." +msgstr "" + msgid "Overrides the normal behavior of :func:`io.open_code` to pass its parameter through the provided handler." msgstr "رفتار عادی :func:`io.open_code` را بازتعریف می‌کند تا پارامتر خود را از هندلر ارائه‌شده عبور دهد." @@ -102,6 +114,9 @@ msgstr "به جای آن، از :c:func:`PyFile_FromFd` با مقادیر پیش msgid "Type of file-like objects used internally at Python startup when :py:mod:`io` is not yet available. Use Python :py:func:`open` or :c:func:`PyFile_FromFd` to create file objects instead." msgstr "نوع اشیای شبه‌پرونده‌ای که در زمان راه‌اندازی پایتون، هنگامی که :py:mod:`io` هنوز در دسترس نیست، به‌طور داخلی استفاده می‌شوند. به‌جای آن، برای ایجاد اشیای پرونده از :py:func:`open` پایتون یا :c:func:`PyFile_FromFd` استفاده کنید." +msgid "The string literal ``\"b\"``, used to open files in binary mode. Exposed for backwards compatibility only." +msgstr "" + msgid "object" msgstr "شیء" diff --git a/c-api/float.po b/c-api/float.po index 67b31b829..78ba52d7f 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 13:21+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -145,7 +145,9 @@ msgstr "در پلتفرم‌های غیر IEEE که دقتی بیشتر از آ msgid "Pack functions" msgstr "توابع بسته‌بندی" -msgid "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if you want the bytes string in little-endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if you want big-endian format (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal to ``1`` on big endian processor, or ``0`` on little endian processor." +#, fuzzy +#| msgid "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if you want the bytes string in little-endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if you want big-endian format (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal to ``1`` on big endian processor, or ``0`` on little endian processor." +msgid "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if you want the bytes string in little-endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if you want big-endian format (exponent first, at *p*). Use the :c:macro:`PY_LITTLE_ENDIAN` constant to select the native endian: it is equal to ``0`` on big endian processor, or ``1`` on little endian processor." msgstr "روال‌های بسته‌بندی ۲، ۴ یا ۸ بایت را با شروع از *p* می‌نویسند. *le* یک آرگومان :c:expr:`int` است؛ اگر می‌خواهید رشته بایتی در قالب کوچک‌اندیان باشد، ناصفر است (توان در انتها، در ``p+1``، ``p+3``، یا ``p+6`` و ``p+7``)، و اگر قالب بزرگ‌اندیان را می‌خواهید، صفر است (توان در ابتدا، در *p*). برای استفاده از اندیان بومی می‌توان از ثابت :c:macro:`PY_BIG_ENDIAN` بهره گرفت: این ثابت روی پردازنده‌های بزرگ‌اندیان برابر ``1`` و روی پردازنده‌های کوچک‌اندیان برابر ``0`` است." msgid "Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, most likely :exc:`OverflowError`)." @@ -172,7 +174,9 @@ msgstr "یک double زبان C را به قالب دقت مضاعف binary64 ا msgid "Unpack functions" msgstr "توابع واگشایی" -msgid "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if the bytes string is in little-endian format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal to ``1`` on big endian processor, or ``0`` on little endian processor." +#, fuzzy +#| msgid "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if the bytes string is in little-endian format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal to ``1`` on big endian processor, or ``0`` on little endian processor." +msgid "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if the bytes string is in little-endian format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-endian (exponent first, at *p*). Use the :c:macro:`PY_LITTLE_ENDIAN` constant to select the native endian: it is equal to ``0`` on big endian processor, or ``1`` on little endian processor." msgstr "روال‌های واگشایی ۲، ۴ یا ۸ بایت را با شروع از *p* می‌خوانند. *le* یک آرگومان :c:expr:`int` است؛ اگر رشته بایتی در قالب کوچک‌اندیان باشد، ناصفر است (نما در انتها، در ``p+1``، ``p+3`` یا ``p+6`` و ``p+7``)، و اگر بزرگ‌اندیان باشد، صفر است (نما در ابتدا، در *p*). می‌توان ثابت :c:macro:`PY_BIG_ENDIAN` را برای بهره‌گیری از اندیان بومی به کار برد: این ثابت روی پردازنده‌ی بزرگ‌اندیان برابر ``1``، یا روی پردازنده‌ی کوچک‌اندیان برابر ``0`` است." msgid "Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:`PyErr_Occurred` is true (and an exception is set, most likely :exc:`OverflowError`)." diff --git a/c-api/function.po b/c-api/function.po index 986ce2941..f9a63abd1 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:48+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -121,6 +121,9 @@ msgstr "``PyFunction_EVENT_MODIFY_DEFAULTS``" msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" msgstr "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" +msgid "Apply the macro *V* to each suffix of :c:type:`PyFunction_WatchEvent` constants. Currently expands to ``V(CREATE) V(DESTROY) V(MODIFY_CODE) V(MODIFY_DEFAULTS) V(MODIFY_KWDEFAULTS) V(MODIFY_QUALNAME)``. The macro *V* must accept one event name and supply any punctuation needed between expansions." +msgstr "" + msgid "Type of a function watcher callback function." msgstr "نوع تابع کال‌بک دیده‌بان (watcher) تابع." diff --git a/c-api/hash.po b/c-api/hash.po index 6619b8941..b0f83c710 100644 --- a/c-api/hash.po +++ b/c-api/hash.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2024-02-23 14:15+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -39,10 +39,17 @@ msgstr "یک مقدار عددی که الگوریتم هش‌کردنِ :class: msgid "The algorithm name is exposed by :data:`sys.hash_info.algorithm`." msgstr "نام الگوریتم توسط :data:`sys.hash_info.algorithm` در دسترس قرار می‌گیرد." -msgid "Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine which algorithm is used for hashing. The hash algorithm can be configured via the configure :option:`--with-hash-algorithm` option." +#, fuzzy +#| msgid "Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine which algorithm is used for hashing. The hash algorithm can be configured via the configure :option:`--with-hash-algorithm` option." +msgid "Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine which algorithm is used for hashing. The built-in hash algorithm can be configured via the configure :option:`--with-hash-algorithm` option." msgstr "مقادیر عددی برای مقایسه با :c:macro:`Py_HASH_ALGORITHM` به‌منظور تعیین اینکه کدام الگوریتم برای هش‌کردن استفاده می‌شود. الگوریتم هش را می‌توان از طریق گزینه‌ی :option:`--with-hash-algorithm` در configure پیکربندی کرد." -msgid "Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`." +msgid ":c:macro:`!Py_HASH_EXTERNAL` has value ``0`` and indicates a hash implementation supplied by the application embedding Python; see :c:var:`PyHash_Func`." +msgstr "" + +#, fuzzy +#| msgid "Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`." +msgid "Add :c:macro:`!Py_HASH_FNV`, :c:macro:`!Py_HASH_SIPHASH24`, and :c:macro:`!Py_HASH_EXTERNAL`." msgstr "افزودن :c:macro:`!Py_HASH_FNV` و :c:macro:`!Py_HASH_SIPHASH24`." msgid "Add :c:macro:`!Py_HASH_SIPHASH13`." @@ -111,6 +118,12 @@ msgstr "اندازه‌ی ورودی بذر بر حسب بیت." msgid "This corresponds to the :data:`sys.hash_info.seed_bits` constant." msgstr "این با ثابت :data:`sys.hash_info.seed_bits` مطابق است." +msgid "When Python is built with :c:macro:`Py_HASH_ALGORITHM` set to :c:macro:`Py_HASH_EXTERNAL`, the application embedding Python must define this variable to supply a hash implementation instead of using one of Python's built-in hash algorithms." +msgstr "" + +msgid "Use one of the built-in hash algorithms instead." +msgstr "" + msgid "Get the hash function definition." msgstr "گرفتن تعریف تابع هش." diff --git a/c-api/import.po b/c-api/import.po index 10bbad7f4..84dd6d512 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 08:30+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -154,16 +154,26 @@ msgstr "ویژگی ``__file__`` دیگر بر روی ماژول تنظیم نم msgid "Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a UTF-8 encoded string instead of a Unicode object." msgstr "مشابه :c:func:`PyImport_ImportFrozenModuleObject` است، اما نام به جای شیء یونیکد، یک رشته کدگذاری‌شده با UTF-8 است." -msgid "This is the structure type definition for frozen module descriptors, as generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the Python source distribution). Its definition, found in :file:`Include/import.h`, is::" +#, fuzzy +#| msgid "This is the structure type definition for frozen module descriptors, as generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the Python source distribution). Its definition, found in :file:`Include/import.h`, is::" +msgid "This is the structure type definition for frozen module descriptors, as generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the Python source distribution). Its definition, found in :file:`Include/import.h`, is:" msgstr "این تعریف نوع ساختار برای توصیف‌گرهای ماژول فریزشده است، همان‌طور که توسط ابزار :program:`freeze` تولید می‌شود (به :file:`Tools/freeze/` در توزیع سورس پایتون مراجعه کنید). تعریف آن که در :file:`Include/import.h` آمده است، چنین است::" +#, fuzzy +#| msgid "" +#| "struct _frozen {\n" +#| " const char *name;\n" +#| " const unsigned char *code;\n" +#| " int size;\n" +#| " bool is_package;\n" +#| "};" msgid "" "struct _frozen {\n" -" const char *name;\n" +" const char *name; /* ASCII encoded string */\n" " const unsigned char *code;\n" " int size;\n" -" bool is_package;\n" -"};" +" int is_package;\n" +"};\n" msgstr "" "struct _frozen {\n" " const char *name;\n" diff --git a/c-api/init_config.po b/c-api/init_config.po index 3cf16a25f..5c45dd6a8 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 20:13+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -1492,6 +1492,9 @@ msgstr "در زمان راه‌اندازی پایتون، نام کدگذاری msgid "See also the :c:member:`~PyConfig.filesystem_errors` member." msgstr "همچنین عضو :c:member:`~PyConfig.filesystem_errors` را ببینید." +msgid "See also :c:func:`PyUnicode_EncodeFSDefault` and :ref:`related functions ` for encoding paths at runtime." +msgstr "" + msgid ":term:`Filesystem error handler `: :func:`sys.getfilesystemencodeerrors`." msgstr ":term:`هندلر خطای سامانه فایل‌بندی `: :func:`sys.getfilesystemencodeerrors`." diff --git a/c-api/interp-lifecycle.po b/c-api/interp-lifecycle.po index 7b854aebd..122ea3daa 100644 --- a/c-api/interp-lifecycle.po +++ b/c-api/interp-lifecycle.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 08:29+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: none\n" @@ -403,6 +403,21 @@ msgstr "" msgid "In normal usage, an embedding application will call this function *instead* of calling :c:func:`Py_Initialize`, :c:func:`Py_InitializeEx` or :c:func:`Py_InitializeFromConfig` directly, and all settings will be applied as described elsewhere in this documentation. If this function is instead called *after* a preceding runtime initialization API call, then exactly which environmental and command line configuration settings will be updated is version dependent (as it depends on which settings correctly support being modified after they have already been set once when the runtime was first initialized)." msgstr "در استفاده‌ی معمول، یک برنامه تعبیه‌کننده این تابع را *به‌جای* فراخوانی مستقیم :c:func:`Py_Initialize`، :c:func:`Py_InitializeEx` یا :c:func:`Py_InitializeFromConfig` فراخوانی می‌کند و تمام تنظیمات همان‌گونه که در جای دیگر این مستندات توضیح داده شده است، اعمال خواهند شد. اگر این تابع در عوض *پس از* یک فراخوانی قبلی از API مقداردهی اولیه‌ی ران‌تایم فراخوانی شود، دقیقاً اینکه کدام تنظیمات پیکربندی محیطی و خط فرمان به‌روزرسانی خواهند شد، وابسته به نسخه است (زیرا به این بستگی دارد که کدام تنظیمات به‌درستی از این پشتیبانی می‌کنند که پس از آن‌که یک‌بار در نخستین مقداردهی اولیه‌ی ران‌تایم تنظیم شده‌اند، تغییر کنند)." +msgid "The main program for a \"frozen\" Python program (an executable that embeds the interpreter together with the bytecode of the program's modules, as produced by the :program:`freeze` utility; see :source:`Tools/freeze`)." +msgstr "" + +msgid "This function initializes the interpreter, imports the frozen module named ``__main__``, and finalizes the interpreter. The frozen modules must have been registered in :c:var:`PyImport_FrozenModules` before calling this function; it is a fatal error if ``__main__`` is not among them." +msgstr "" + +msgid "*argc* and *argv* are byte strings like the arguments of a C program's ``main`` function, and are passed to the interpreter with :c:func:`PyConfig_SetBytesArgv`. Unlike :c:func:`Py_Main`, the arguments are not parsed as Python command line options (:c:member:`PyConfig.parse_argv` is ``0``), so all of them are made available to the program in :data:`sys.argv`. Apart from that, the interpreter uses the :ref:`Python Configuration `, so environment variables such as :envvar:`PYTHONPATH` are honored. Warnings about the path configuration (:c:member:`PyConfig.pathconfig_warnings`) are suppressed. If :envvar:`PYTHONINSPECT` is set and standard input is a terminal, an interactive prompt is run after ``__main__`` has finished, as with the :option:`-i` option." +msgstr "" + +msgid "Return ``0`` if ``__main__`` ran without an unhandled exception, ``1`` otherwise, and ``120`` if finalizing the interpreter failed (see :c:func:`Py_FinalizeEx`). An unhandled :exc:`SystemExit` terminates the process. If the interpreter cannot be initialized, the process exits via :c:func:`Py_ExitStatusException`." +msgstr "" + +msgid "On Windows, this function is not exported by the Python DLL. The :program:`freeze` utility compiles :file:`Python/frozenmain.c` into the frozen program instead, together with the Windows-specific hooks that the function requires." +msgstr "" + msgid "Executes the main module in a fully configured CPython runtime." msgstr "ماژول اصلی را در یک ران‌تایم سی‌پایتون کاملاً پیکربندی‌شده اجرا می‌کند." @@ -613,6 +628,9 @@ msgstr "مسیر" msgid "Py_FinalizeEx (C function)" msgstr "Py_FinalizeEx (تابع C)" +msgid "freeze utility" +msgstr "" + msgid "Py_Initialize()" msgstr "Py_Initialize()" diff --git a/c-api/intro.po b/c-api/intro.po index aa454bd02..c4bfe46dd 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:49+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -219,6 +219,9 @@ msgstr "این ماکرو اکنون برای همه‌ی نوع‌های عدد msgid "Argument must be a character or an integer in the range [-128, 127] or [0, 255]. This macro returns ``c`` cast to an ``unsigned char``." msgstr "آرگومان باید یک نویسه یا یک عدد صحیح در محدوده‌ی [-128, 127] یا [0, 255] باشد. این ماکرو ``c`` را پس از تبدیل نوع به ``unsigned char`` برمی‌گرداند." +msgid "Constants describing the byte order of the platform that Python was built for. Exactly one of them is ``1`` and the other is ``0``." +msgstr "" + msgid "Assertion utilities" msgstr "ابزارهای ادعا" @@ -649,9 +652,20 @@ msgstr "نوع‌ها" msgid "There are few other data types that play a significant role in the Python/C API; most are simple C types such as :c:expr:`int`, :c:expr:`long`, :c:expr:`double` and :c:expr:`char*`. A few structure types are used to describe static tables used to list the functions exported by a module or the data attributes of a new object type, and another is used to describe the value of a complex number. These will be discussed together with the functions that use them." msgstr "چند نوع داده‌ی دیگر نیز نقش مهمی در Python/C API ایفا می‌کنند؛ بیشتر آن‌ها نوع‌های ساده‌ی C مانند :c:expr:`int`، :c:expr:`long`، :c:expr:`double` و :c:expr:`char*` هستند. چند نوع ساختاری برای توصیف جدول‌های ایستایی که توابع اکسپورتشده توسط یک ماژول یا ویژگی‌های داده‌ی یک نوع شیء جدید را فهرست می‌کنند، به کار می‌روند، و نوع دیگری برای توصیف مقدار یک عدد مختلط استفاده می‌شود. این موارد همراه با توابعی که از آن‌ها استفاده می‌کنند بحث خواهند شد." -msgid "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. C99 doesn't define such a thing directly (size_t is an unsigned integral type). See :pep:`353` for details. ``PY_SSIZE_T_MAX`` is the largest positive value of type :c:type:`Py_ssize_t`." +#, fuzzy +#| msgid "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. C99 doesn't define such a thing directly (size_t is an unsigned integral type). See :pep:`353` for details. ``PY_SSIZE_T_MAX`` is the largest positive value of type :c:type:`Py_ssize_t`." +msgid "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. C99 doesn't define such a thing directly (size_t is an unsigned integral type). See :pep:`353` for details." msgstr "یک نوع صحیح علامت‌دار به‌گونه‌ای که ``sizeof(Py_ssize_t) == sizeof(size_t)`` باشد. استاندارد C99 چنین چیزی را مستقیماً تعریف نمی‌کند (size_t یک نوع صحیح بدون علامت است). برای جزئیات به :pep:`353` مراجعه کنید. ``PY_SSIZE_T_MAX`` بزرگ‌ترین مقدار مثبت از نوع :c:type:`Py_ssize_t` است." +msgid "A constant of type :c:type:`Py_ssize_t` with value ``-1``, representing an invalid size." +msgstr "" + +msgid "The limit values (largest positive one and smallest negative one, respecitvely) of type :c:type:`Py_ssize_t`." +msgstr "" + +msgid "The maximum value of the Windows ``DWORD`` type. Expands to ``0xffffffff`` on all platforms." +msgstr "" + msgid "Exceptions" msgstr "استثناها" diff --git a/c-api/long.po b/c-api/long.po index 909c31ec5..ebd6ef76f 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 16:27+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -455,6 +455,15 @@ msgstr "اگر *op* فشرده باشد، همان‌طور که با :c:func:`P msgid "Otherwise, the return value is undefined." msgstr "در غیر این صورت، مقدار بازگشتی تعریف‌نشده است." +msgid "Build configuration" +msgstr "" + +msgid "The number of bits in each digit of CPython's native representation of integers. The value can currently be either ``30`` (the default) or ``15``, selected with :option:`--enable-big-digits` when building Python." +msgstr "" + +msgid "To access the native representation of integers, use :c:func:`PyLong_GetNativeLayout` and its :c:member:`~PyLongLayout.bits_per_digit` member instead." +msgstr "" + msgid "Export API" msgstr "API اکسپورت" diff --git a/c-api/marshal.po b/c-api/marshal.po index 9e5ab3380..24dbef101 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:49+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -42,9 +42,15 @@ msgstr "یک عدد صحیح :c:expr:`long` به نام *value* را در *file* msgid "This function can fail, in which case it sets the error indicator. Use :c:func:`PyErr_Occurred` to check for that." msgstr "این تابع می‌تواند شکست بخورد، که در این صورت نشانگر خطا را تنظیم می‌کند. برای بررسی این موضوع از :c:func:`PyErr_Occurred` استفاده کنید." +msgid "In Python 3.15 and earlier, this function does not set the error indicator if writing to *file* fails. The same caveat applies as for :c:func:`PyMarshal_WriteObjectToFile`." +msgstr "" + msgid "Marshal a Python object, *value*, to *file*. *version* indicates the file format." msgstr "یک شیء پایتون، *value*، را به *file* مارشال کنید. *version* قالب پرونده را مشخص می‌کند." +msgid "In Python 3.15 and earlier, this function can write only part of the data to *file* and return without setting the error indicator, for example if *value* contains an object which cannot be marshalled or if writing to *file* fails (see :gh:`155907`). Code which has to support these versions cannot rely on :c:func:`PyErr_Occurred` alone to know that all the data was written. It can use :c:func:`PyMarshal_WriteObjectToString` and write the result itself, or validate what was written." +msgstr "" + msgid "Return a bytes object containing the marshalled representation of *value*. *version* indicates the file format." msgstr "یک شیء bytes حاوی نمایش مارشال‌شده‌ی *value* را برمی‌گرداند. *version* قالب پرونده را مشخص می‌کند." diff --git a/c-api/monitoring.po b/c-api/monitoring.po index f7072d0ad..c24765bc6 100644 --- a/c-api/monitoring.po +++ b/c-api/monitoring.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 13:20+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -182,6 +182,14 @@ msgstr ":monitoring-event:`RERAISE`" msgid ":monitoring-event:`STOP_ITERATION`" msgstr ":monitoring-event:`STOP_ITERATION`" +msgid "Use :c:macro:`PY_MONITORING_EVENT_BRANCH_LEFT` and :c:macro:`PY_MONITORING_EVENT_BRANCH_RIGHT` instead." +msgstr "" + +#, fuzzy +#| msgid ":monitoring-event:`BRANCH_RIGHT`" +msgid ":monitoring-event:`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT`" +msgstr ":monitoring-event:`BRANCH_RIGHT`" + msgid "Exit the last scope that was entered with :c:func:`!PyMonitoring_EnterScope`." msgstr "از آخرین محدوده‌ای که با :c:func:`!PyMonitoring_EnterScope` وارد شده بود، خارج شوید." diff --git a/c-api/profiling.po b/c-api/profiling.po index 9ad65c4b1..4ccdcebf4 100644 --- a/c-api/profiling.po +++ b/c-api/profiling.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 08:25+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: none\n" @@ -157,3 +157,12 @@ msgstr "اگر تابع ردیاب دیگری از قبل ثبت شده باشد msgid "Get the registered reference tracer function and the value of the opaque data pointer that was registered when :c:func:`PyRefTracer_SetTracer` was called. If no tracer was registered this function will return NULL and will set the **data** pointer to NULL." msgstr "تابع ردیاب ارجاع ثبت‌شده و مقدار اشاره‌گر داده‌ی مات را که هنگام فراخوانی :c:func:`PyRefTracer_SetTracer` ثبت شده بود، برمی‌گرداند. اگر هیچ ردیابی ثبت نشده باشد، این تابع NULL را برمی‌گرداند و اشاره‌گر **data** را برابر NULL قرار می‌دهد." + +msgid "Performance statistics" +msgstr "" + +msgid "Largest micro-operation identifier for which CPython allocates performance statistics counters. Available only in builds configured with :option:`--enable-pystats`." +msgstr "" + +msgid "This constant is intended for internal use only and is not useful to extension modules." +msgstr "" diff --git a/c-api/pyexpat.po b/c-api/pyexpat.po new file mode 100644 index 000000000..a81aeee6d --- /dev/null +++ b/c-api/pyexpat.po @@ -0,0 +1,59 @@ +# Persian translations for Python package. +# Copyright (C) 2001 Python Software Foundation +# This file is distributed under the same license as the Python package. +# Automatically generated, 2026. +# +msgid "" +msgstr "" +"Project-Id-Version: Python 3.14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" +"PO-Revision-Date: 2026-10-22 14:54+0000\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: fa\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "Expat C API" +msgstr "" + +msgid "The :mod:`xml.parsers.expat` module exposes selected Expat functions through its ``expat_CAPI`` capsule. This allows extension modules to use the same Expat library as Python. The interface is declared in :file:`pyexpat.h`, which must be included after Expat's :file:`expat.h` header." +msgstr "" + +msgid "The name of the capsule containing the Expat C API: ``\"pyexpat.expat_CAPI\"``. Pass this to :c:func:`PyCapsule_Import` to obtain a pointer to a :c:struct:`PyExpat_CAPI`." +msgstr "" + +msgid "The string identifying the layout of :c:struct:`PyExpat_CAPI`. Before using the function pointers in the structure, check that its ``magic`` member compares equal to this string using ``strcmp()`` and its ``size`` member is at least :c:expr:`sizeof(struct PyExpat_CAPI)`." +msgstr "" + +msgid "Table of function pointers exported by :mod:`xml.parsers.expat`. The capsule owns this structure: treat it as read-only and do not free it. Keep a strong reference to the capsule while using the table." +msgstr "" + +msgid "Check the compatibility fields as described under :c:macro:`PyExpat_CAPI_MAGIC` before using the function pointers." +msgstr "" + +msgid "Interface identifier, set to :c:macro:`PyExpat_CAPI_MAGIC`." +msgstr "" + +msgid "Size of the structure in bytes, set to ``sizeof(struct PyExpat_CAPI)`` by the :mod:`xml.parsers.expat` module that created the capsule." +msgstr "" + +msgid "Major, minor, and micro version numbers of the Expat library used by :mod:`xml.parsers.expat`." +msgstr "" + +msgid "Pointer to `XML_SetUnknownEncodingHandler `_. The handler may set a Python exception on failure. The caller must check for a Python exception after parsing." +msgstr "" + +msgid "Python's unknown-encoding handler for Expat, used with ``XML_SetUnknownEncodingHandler``. It uses Python's codec registry to fill *info*. The *encodingHandlerData* argument is unused. Calling this handler requires an :term:`attached thread state`." +msgstr "" + +msgid "Pointers to the corresponding Expat functions, or ``NULL`` if not available in the Expat version used by :mod:`xml.parsers.expat`, are listed below." +msgstr "" + +msgid "Member names omit the ``XML_`` prefix; for example, ``SetHashSalt`` exposes Expat's ``XML_SetHashSalt`` function. See the `Expat API reference `_ for their behavior and the minimum Expat version they appear in." +msgstr "" + +msgid "See the `Expat API reference `_." +msgstr "" diff --git a/c-api/structures.po b/c-api/structures.po index 4e4d0474f..98f310b0e 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:50+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -377,6 +377,12 @@ msgstr "این تابع در صورت موفقیت، یک :term:`ارجاع ام msgid "This is the same as :c:func:`PyCFunction_GetSelf`, but without error or type checking." msgstr "این همان :c:func:`PyCFunction_GetSelf` است، اما بدون بررسی خطا و نوع." +msgid "Return a :term:`borrowed reference` to the defining class of *func* if its :c:member:`~PyMethodDef.ml_flags` includes :c:macro:`METH_METHOD`. Otherwise, return ``NULL`` without setting an exception." +msgstr "" + +msgid "*func* must be a C function object and must not be ``NULL``. This function does not perform error or type checking." +msgstr "" + msgid "Accessing attributes of extension types" msgstr "دسترسی به ویژگی‌های نوع‌های توسعه‌ای" @@ -468,9 +474,23 @@ msgstr "هنگام ایجاد کلاس با استفاده از :c:member:`~PyTy msgid "The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are deprecated. :c:macro:`!READ_RESTRICTED` and :c:macro:`!RESTRICTED` are equivalent to :c:macro:`Py_AUDIT_READ`; :c:macro:`!WRITE_RESTRICTED` does nothing." msgstr "ماکروهای :c:macro:`!RESTRICTED`، :c:macro:`!READ_RESTRICTED` و :c:macro:`!WRITE_RESTRICTED` که با ``#include \"structmember.h\"`` در دسترس هستند، منسوخ شده‌اند. :c:macro:`!READ_RESTRICTED` و :c:macro:`!RESTRICTED` معادل :c:macro:`Py_AUDIT_READ` هستند؛ :c:macro:`!WRITE_RESTRICTED` هیچ کاری انجام نمی‌دهد." -msgid "The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new names are now always available. Previously, these required ``#include \"structmember.h\"``. The header is still available and it provides the old names." +#, fuzzy +#| msgid "The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new names are now always available. Previously, these required ``#include \"structmember.h\"``. The header is still available and it provides the old names." +msgid "The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:macro:`PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new names are now always available. Previously, these required ``#include \"structmember.h\"``. The header is still available and it provides the old names." msgstr "ماکروی :c:macro:`!READONLY` به :c:macro:`Py_READONLY` تغییر نام یافت. ماکروی :c:macro:`!PY_AUDIT_READ` با پیشوند ``Py_`` تغییر نام یافت. نام‌های جدید اکنون همیشه در دسترس هستند. پیش‌تر، این موارد نیازمند ``#include \"structmember.h\"`` بودند. سرآیند هنوز در دسترس است و نام‌های قدیمی را فراهم می‌کند." +msgid "Soft-deprecated alias of :c:macro:`Py_AUDIT_READ` (note capitalization of the ``y``). Only available with ``#include \"structmember.h\"``." +msgstr "" + +msgid "Use :c:macro:`Py_AUDIT_READ` instead." +msgstr "" + +msgid "A member flag that has no effect, retained solely for backwards compatibility. This is only available with ``#include \"structmember.h\"``." +msgstr "" + +msgid "Omit this flag instead." +msgstr "" + msgid "Member types" msgstr "نوع‌های عضو" diff --git a/c-api/synchronization.po b/c-api/synchronization.po index 1bb60949d..6b1db455e 100644 --- a/c-api/synchronization.po +++ b/c-api/synchronization.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 12:55+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: none\n" @@ -191,6 +191,15 @@ msgstr "این API‌ها با معرفی :c:type:`PyMutex` در پایتون 3. msgid "A pointer to a mutual exclusion lock." msgstr "اشاره‌گری به قفل متقابل." +msgid "A :term:`soft deprecated` alias to :c:expr:`long long`, the integer type used for the timeout argument of :c:func:`PyThread_acquire_lock_timed`." +msgstr "" + +msgid "The maximum timeout, in microseconds, supported by :c:func:`PyThread_acquire_lock_timed`." +msgstr "" + +msgid "This differs from :data:`_thread.TIMEOUT_MAX`, which is expressed in seconds." +msgstr "" + msgid "The result of acquiring a lock with a timeout." msgstr "نتیجه‌ی به‌دست آوردن یک قفل با مهلت زمانی." diff --git a/c-api/unicode.po b/c-api/unicode.po index 56a080371..ec44ff83f 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 16:24+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -36,6 +36,9 @@ msgstr "از زمان پیاده‌سازی :pep:`393` در پایتون 3.3، msgid "UTF-8 representation is created on demand and cached in the Unicode object." msgstr "بازنمایی UTF-8 به‌هنگام نیاز ایجاد می‌شود و در نهانگاه شیء یونیکد ذخیره می‌شود." +msgid "The internal buffer always includes an extra trailing null character for compatibility with null terminated C strings. This extra character is not counted in :c:func:`PyUnicode_GetLength` nor in the various *size* arguments of the functions below." +msgstr "" + msgid "The :c:type:`Py_UNICODE` representation has been removed since Python 3.12 with deprecated APIs. See :pep:`623` for more information." msgstr "نمایش :c:type:`Py_UNICODE` از پایتون 3.12 همراه با APIهای منسوخ حذف شده است. برای اطلاعات بیشتر به :pep:`623` مراجعه کنید." @@ -102,9 +105,14 @@ msgstr "مقدار *kind* و اشاره‌گر *data* باید به ترتیب msgid "The function performs no checks for any of its requirements, and is intended for usage in loops." msgstr "این تابع هیچ بررسی‌ای برای هیچ‌یک از نیازمندی‌های خود انجام نمی‌دهد و برای استفاده در حلقه‌ها در نظر گرفته شده است." -msgid "Read a code point from a canonical representation *data* (as obtained with :c:func:`PyUnicode_DATA`). No checks or ready calls are performed." +#, fuzzy +#| msgid "Read a code point from a canonical representation *data* (as obtained with :c:func:`PyUnicode_DATA`). No checks or ready calls are performed." +msgid "Read a code point from a canonical representation *data* (as obtained with :c:func:`PyUnicode_DATA`). No checks are performed." msgstr "یک نقطه‌کد را از نمایش کانونیکال *data* (که با :c:func:`PyUnicode_DATA` به دست آمده است) می‌خواند. هیچ بررسی یا فراخوانی ready انجام نمی‌شود." +msgid "Accept reading the trailing null character at index :c:func:`PyUnicode_GetLength`." +msgstr "" + msgid "Read a character from a Unicode object *unicode*, which must be in the \"canonical\" representation. This is less efficient than :c:func:`PyUnicode_READ` if you do multiple consecutive reads." msgstr "یک نویسه از شیء یونیکد *unicode* می‌خواند که باید در نمایش «کانونیکال» باشد. اگر چندین خواندن متوالی انجام می‌دهید، این کارایی کمتری نسبت به :c:func:`PyUnicode_READ` دارد." @@ -240,6 +248,9 @@ msgstr "یک شیء یونیکد جدید با *kind* داده‌شده ایجا msgid "If necessary, the input *buffer* is copied and transformed into the canonical representation. For example, if the *buffer* is a UCS4 string (:c:macro:`PyUnicode_4BYTE_KIND`) and it consists only of codepoints in the UCS1 range, it will be transformed into UCS1 (:c:macro:`PyUnicode_1BYTE_KIND`)." msgstr "در صورت نیاز، *بافر* ورودی کپی شده و به نمایش کانونیکال تبدیل می‌شود. برای مثال، اگر *بافر* یک رشته‌ی UCS4 باشد (:c:macro:`PyUnicode_4BYTE_KIND`) و تنها شامل نقطه‌کدهایی در محدوده‌ی UCS1 باشد، به UCS1 تبدیل می‌شود (:c:macro:`PyUnicode_1BYTE_KIND`)." +msgid "All characters must be in range [U+0000; U+10ffff]. If *kind* is :c:macro:`PyUnicode_4BYTE_KIND` and the string contains invalid characters, the behavior is undefined." +msgstr "" + msgid "Create a Unicode object from the char buffer *str*. The bytes will be interpreted as being UTF-8 encoded. The buffer is copied into the new object. The return value might be a shared object, i.e. modification of the data is not allowed." msgstr "یک شیء یونیکد از بافر نویسه *str* ایجاد می‌کند. بایت‌ها به‌عنوان کدگذاری‌شده با UTF-8 تفسیر می‌شوند. بافر در شیء جدید کپی می‌شود. مقدار بازگشتی ممکن است یک شیء مشترک باشد، یعنی تغییر داده‌ها مجاز نیست." @@ -567,6 +578,9 @@ msgstr "طول شیء یونیکد را بر حسب نقطه‌کد برمی‌ msgid "On error, set an exception and return ``-1``." msgstr "در صورت خطا، یک استثنا تنظیم شده و ``-1`` بازگردانده می‌شود." +msgid "The length does not count the trailing null character." +msgstr "" + msgid "Copy characters from one Unicode object into another. This function performs character conversion when necessary and falls back to :c:func:`!memcpy` if possible. Returns ``-1`` and sets an exception on error, otherwise returns the number of copied characters." msgstr "نویسه‌ها را از یک شیء یونیکد به شیء یونیکد دیگر کپی می‌کند. این تابع در صورت نیاز تبدیل نویسه‌ها را انجام می‌دهد و در صورت امکان به :c:func:`!memcpy` روی می‌آورد. در صورت خطا ``-1`` برمی‌گرداند و یک استثنا تنظیم می‌کند، در غیر این صورت تعداد نویسه‌های کپی‌شده را برمی‌گرداند." @@ -606,6 +620,9 @@ msgstr "یک نویسه از یک رشته می‌خواند. این تابع ب msgid "Return character on success, ``-1`` on error with an exception set." msgstr "در صورت موفقیت نویسه و در صورت خطا ``-1`` را همراه با استثنای تنظیم‌شده برمی‌گرداند." +msgid "Do not accept reading the trailing null character at index :c:func:`PyUnicode_GetLength`." +msgstr "" + msgid "Return a substring of *unicode*, from character index *start* (included) to character index *end* (excluded). Negative indices are not supported. On error, set an exception and return ``NULL``." msgstr "زیررشته‌ای از *unicode* را برمی‌گرداند که از اندیس نویسه‌ی *start* (شامل) تا اندیس نویسه‌ی *end* (بدون) است. اندیس‌های منفی پشتیبانی نمی‌شوند. در صورت خطا، یک استثنا تنظیم کرده و ``NULL`` را برمی‌گرداند." @@ -1155,6 +1172,9 @@ msgstr "یک نمونه‌ی نوشتارگر یونیکد." msgid "The instance must be destroyed by :c:func:`PyUnicodeWriter_Finish` on success, or :c:func:`PyUnicodeWriter_Discard` on error." msgstr "نمونه باید در صورت موفقیت توسط :c:func:`PyUnicodeWriter_Finish` یا در صورت خطا توسط :c:func:`PyUnicodeWriter_Discard` نابود شود." +msgid "The API is **not thread safe**. To share a writer with multiple threads, a critical section or a lock is needed." +msgstr "" + msgid "Create a Unicode writer instance." msgstr "یک نمونه از نویسنده یونیکد ایجاد کنید." @@ -1206,12 +1226,17 @@ msgstr "رشته پهن *str* را در *writer* می‌نویسد." msgid "*size* is a number of wide characters. If *size* is equal to ``-1``, call ``wcslen(str)`` to get the string length." msgstr "*size* تعداد نویسه‌های پهن است. اگر *size* برابر با ``-1`` باشد، برای به‌دست آوردن طول رشته، ``wcslen(str)`` را فراخوانی کنید." -msgid "Writer the UCS4 string *str* into *writer*." +#, fuzzy +#| msgid "Writer the UCS4 string *str* into *writer*." +msgid "Write the UCS4 string *str* into *writer*." msgstr "رشته UCS4 *str* را در *writer* می‌نویسد." msgid "*size* is a number of UCS4 characters." msgstr "*size* تعداد نویسه‌های UCS4 است." +msgid "All characters must be in range [U+0000; U+10ffff]. If the string contains invalid characters, the behavior is undefined." +msgstr "" + msgid "Call :c:func:`PyObject_Str` on *obj* and write the output into *writer*." msgstr ":c:func:`PyObject_Str` را روی *obj* فراخوانی می‌کند و خروجی را در *writer* می‌نویسد." diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 1960754d7..596ba1fd3 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:50+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -87,18 +87,37 @@ msgstr "دستورها را از پرونده‌ای که با یک دستگاه msgid "Can be set to point to a function with the prototype ``int func(void)``. The function will be called when Python's interpreter prompt is about to become idle and wait for user input from the terminal. The return value is ignored. Overriding this hook can be used to integrate the interpreter's prompt with other event loops, as done in :file:`Modules/_tkinter.c` in the Python source code." msgstr "می‌توان آن را طوری تنظیم کرد که به تابعی با پیش‌نمونه‌ی ``int func(void)`` اشاره کند. این تابع زمانی فراخوانی می‌شود که اعلان مفسر پایتون در شرف بی‌کار شدن و انتظار برای ورودی کاربر از پایانه باشد. مقدار بازگشتی نادیده گرفته می‌شود. از بازنویسی این قلاب می‌توان برای یکپارچه‌سازی اعلان مفسر با حلقه‌های رویداد دیگر استفاده کرد، همان‌گونه که در :file:`Modules/_tkinter.c` در کد منبع پایتون انجام شده است." +msgid "The function is called without an :term:`attached thread state`." +msgstr "" + msgid "This function is only called from the :ref:`main interpreter `." msgstr "این تابع فقط از :ref:`مفسر اصلی ` فراخوانی می‌شود." -msgid "Can be set to point to a function with the prototype ``char *func(FILE *stdin, FILE *stdout, char *prompt)``, overriding the default function used to read a single line of input at the interpreter's prompt. The function is expected to output the string *prompt* if it's not ``NULL``, and then read a line of input from the provided standard input file, returning the resulting string. For example, The :mod:`readline` module sets this hook to provide line-editing and tab-completion features." +#, fuzzy +#| msgid "Can be set to point to a function with the prototype ``char *func(FILE *stdin, FILE *stdout, char *prompt)``, overriding the default function used to read a single line of input at the interpreter's prompt. The function is expected to output the string *prompt* if it's not ``NULL``, and then read a line of input from the provided standard input file, returning the resulting string. For example, The :mod:`readline` module sets this hook to provide line-editing and tab-completion features." +msgid "Can be set to point to a function with the prototype ``char *func(FILE *stdin, FILE *stdout, const char *prompt)``, overriding the default function used to read a single line of input at the interpreter's prompt. The function is expected to output the string *prompt* if it's not ``NULL``, and then read a line of input from the provided standard input file, returning the resulting string. For example, the :mod:`readline` module sets this hook to provide line-editing and tab-completion features." msgstr "می‌تواند برای اشاره به تابعی با پیش‌نمونه‌ی ``char *func(FILE *stdin, FILE *stdout, char *prompt)`` تنظیم شود که تابع پیش‌فرضِ استفاده‌شده برای خواندن یک سطر ورودی در اعلان مفسر را بازنویسی می‌کند. انتظار می‌رود این تابع در صورت ``NULL`` نبودن *prompt*، رشته‌ی *prompt* را به خروجی بفرستد و سپس یک سطر ورودی از پرونده‌ی ورودی استانداردِ ارائه‌شده بخواند و رشته‌ی حاصل را برگرداند. برای مثال، ماژول :mod:`readline` این قلاب را برای فراهم کردن قابلیت‌های ویرایش سطر و تکمیل با کلید Tab تنظیم می‌کند." -msgid "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." +msgid "If this pointer is ``NULL``, :c:func:`PyOS_Readline` sets it to the default implementation, :c:func:`PyOS_Readline`, before reading input." +msgstr "" + +msgid "The returned string must be null-terminated and include the trailing newline, if one was read. Return an empty string if the end of the file is reached before any characters are read. Return ``NULL`` on failure or interruption; a Python exception may be set." +msgstr "" + +#, fuzzy +#| msgid "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." +msgid "A non-``NULL`` result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`." msgstr "نتیجه باید رشته‌ای باشد که توسط :c:func:`PyMem_RawMalloc` یا :c:func:`PyMem_RawRealloc` تخصیص داده‌شده باشد، یا ``NULL`` در صورت وقوع خطا." msgid "The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc`." msgstr "نتیجه باید توسط :c:func:`PyMem_RawMalloc` یا :c:func:`PyMem_RawRealloc` تخصیص داده شود، نه توسط :c:func:`PyMem_Malloc` یا :c:func:`PyMem_Realloc`." +msgid "Display *prompt*, if it is not ``NULL``, and read a line from *sys_stdin*. If both streams are terminals and the call is made from the :ref:`main interpreter `, use :c:var:`PyOS_ReadlineFunctionPointer`. Otherwise, use the default implementation, which flushes *sys_stdout* and writes *prompt* to the C standard error stream." +msgstr "" + +msgid "The returned string follows the contract of :c:var:`PyOS_ReadlineFunctionPointer`, but the caller must free it with :c:func:`PyMem_Free`. Return ``NULL`` on failure or interruption; a Python exception may be set." +msgstr "" + msgid "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving *flags* set to ``NULL``." msgstr "این یک رابط ساده‌شده برای :c:func:`PyRun_StringFlags` در ادامه است که در آن *flags* روی ``NULL`` تنظیم می‌شود." diff --git a/c-api/weakref.po b/c-api/weakref.po index e85ebb58e..426b34986 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 00:50+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -82,6 +82,12 @@ msgstr "این تابع توسط هندلر :c:member:`~PyTypeObject.tp_dealloc` msgid "This iterates through the weak references for *object* and calls callbacks for those references which have one. It returns when all callbacks have been attempted." msgstr "این تابع ارجاع‌های ضعیفِ *object* را پیمایش می‌کند و برای ارجاع‌هایی که کال‌بک دارند، کال‌بک‌هایشان را فراخوانی می‌کند. این تابع وقتی بازمی‌گردد که تلاش برای همه‌ی کال‌بک‌ها انجام شده باشد." +msgid "Return a pointer to an internal linked list of weak references to *object*. *object* must support weak references and must not be ``NULL``." +msgstr "" + +msgid "This function is intended for internal use only. Do not access or modify the weak reference list through the returned pointer." +msgstr "" + msgid "Clears the weakrefs for *object* without calling the callbacks." msgstr "ارجاع‌های ضعیف مربوط به *object* را بدون فراخوانی کال‌بک‌ها پاک‌سازی می‌کند." diff --git a/extending/newtypes.po b/extending/newtypes.po index d299373e9..b7831ec37 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 10:51+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -510,11 +510,20 @@ msgstr "برای هر متدی که توسط نوع ارائه می‌شود، msgid "The second table is used to define attributes which map directly to data stored in the instance. A variety of primitive C types are supported, and access may be read-only or read-write. The structures in the table are defined as::" msgstr "از جدول دوم برای تعریف ویژگی‌هایی استفاده می‌شود که مستقیماً به داده‌های ذخیره‌شده در نمونه نگاشت می‌شوند. انواع مختلفی از نوع‌های اولیه‌ی C پشتیبانی می‌شوند و دسترسی می‌تواند فقط‌خواندنی یا خواندنی-نوشتنی باشد. ساختارهای موجود در جدول به صورت زیر تعریف می‌شوند::" +#, fuzzy +#| msgid "" +#| "typedef struct PyMemberDef {\n" +#| " const char *name;\n" +#| " int type;\n" +#| " int offset;\n" +#| " int flags;\n" +#| " const char *doc;\n" +#| "} PyMemberDef;" msgid "" "typedef struct PyMemberDef {\n" " const char *name;\n" " int type;\n" -" int offset;\n" +" Py_ssize_t offset;\n" " int flags;\n" " const char *doc;\n" "} PyMemberDef;" diff --git a/howto/remote_debugging.po b/howto/remote_debugging.po index f31de2fb4..874e63365 100644 --- a/howto/remote_debugging.po +++ b/howto/remote_debugging.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-25 04:09+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-25 08:57+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: none\n" @@ -38,7 +38,9 @@ msgstr "برای غیرفعال کردن پشتیبانی از اشکال‌زد msgid "Set the :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` environment variable to ``1`` before starting the interpreter." msgstr "متغیر محیطی :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` را پیش از راه‌اندازی مفسر روی ``1`` تنظیم کنید." -msgid "Use the :option:`-X disable_remote_debug` command-line option." +#, fuzzy +#| msgid "Use the :option:`-X disable_remote_debug` command-line option." +msgid "Use the :option:`-X disable-remote-debug` command-line option." msgstr "از گزینه‌ی خط فرمان :option:`-X disable_remote_debug` استفاده کنید." msgid "Compile Python with the :option:`--without-remote-debug` build flag." @@ -803,7 +805,9 @@ msgstr "اگر فرایند پایتونِ در حال اشکال‌زدایی msgid "When to use ``PYTHON_DISABLE_REMOTE_DEBUG``" msgstr "زمان استفاده از ``PYTHON_DISABLE_REMOTE_DEBUG``" -msgid "The environment variable :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (and the equivalent :option:`-X disable_remote_debug` flag) allows operators to disable the in-process side of the protocol as a **defence-in-depth** measure. This may be useful in hardened or sandboxed deployment environments where no debugging or profiling of the process is expected and reducing attack surface is a priority, even though the OS-level privilege checks already prevent unprivileged access." +#, fuzzy +#| msgid "The environment variable :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (and the equivalent :option:`-X disable_remote_debug` flag) allows operators to disable the in-process side of the protocol as a **defence-in-depth** measure. This may be useful in hardened or sandboxed deployment environments where no debugging or profiling of the process is expected and reducing attack surface is a priority, even though the OS-level privilege checks already prevent unprivileged access." +msgid "The environment variable :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (and the equivalent :option:`-X disable-remote-debug` flag) allows operators to disable the in-process side of the protocol as a **defence-in-depth** measure. This may be useful in hardened or sandboxed deployment environments where no debugging or profiling of the process is expected and reducing attack surface is a priority, even though the OS-level privilege checks already prevent unprivileged access." msgstr "متغیر محیطی :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (و پرچم معادل :option:`-X disable_remote_debug`) به راهبران اجازه می‌دهد سمت درون‌فرایندی پروتکل را به‌عنوان تدبیری برای **دفاع در عمق** غیرفعال کنند. این ممکن است در محیط‌های استقرار ایمن‌سازی‌شده یا سندباکس‌شده مفید باشد؛ محیط‌هایی که انتظار نمی‌رود هیچ‌گونه اشکال‌زدایی یا پروفایل‌گیری از فرایند در آن‌ها انجام شود و کاهش سطح حمله اولویت دارد، حتی اگر بررسی‌های امتیاز در سطح سیستم‌عامل از پیش از دسترسی فاقد امتیاز جلوگیری کنند." msgid "Setting this variable does **not** affect other OS-level debugging interfaces (``ptrace``, ``/proc``, ``task_for_pid``, etc.), which remain available according to their own permission models." diff --git a/library/calendar.po b/library/calendar.po index 8c20d9991..33f8549f3 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 07:47+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -107,7 +107,9 @@ msgstr "نمونه‌های :class:`TextCalendar` متدهای زیر را دا msgid "Return a string representing a single day formatted with the given *width*. If *theday* is ``0``, return a string of spaces of the specified width, representing an empty day. The *weekday* parameter is unused." msgstr "رشته‌ای را برمی‌گرداند که نمایانگر یک روز واحد است و با *width* داده‌شده قالب‌بندی شده است. اگر *theday* برابر ``0`` باشد، رشته‌ای از فاصله‌ها با عرض مشخص‌شده برمی‌گرداند که نمایانگر یک روز خالی است. پارامتر *weekday* استفاده نمی‌شود." -msgid "Return a single week in a string with no newline. If *w* is provided, it specifies the width of the date columns, which are centered. Depends on the first weekday as specified in the constructor or set by the :meth:`setfirstweekday` method." +#, fuzzy +#| msgid "Return a single week in a string with no newline. If *w* is provided, it specifies the width of the date columns, which are centered. Depends on the first weekday as specified in the constructor or set by the :meth:`setfirstweekday` method." +msgid "Return a single week in a string with no newline. *width* specifies the width of the date columns, which are centered. Depends on the first weekday as specified in the constructor or set by the :meth:`setfirstweekday` method." msgstr "یک هفته واحد را به‌صورت یک رشته بدون خط جدید برمی‌گرداند. اگر *w* داده شود، عرض ستون‌های تاریخ را مشخص می‌کند؛ این ستون‌ها وسط‌چین هستند. به اولین روز هفته بستگی دارد، همان‌گونه که در سازنده تعیین‌شده است یا با متد :meth:`setfirstweekday` تنظیم‌شده است." msgid "Return a string representing the name of a single weekday formatted to the specified *width*. The *weekday* parameter is an integer representing the day of the week, where ``0`` is Monday and ``6`` is Sunday." diff --git a/library/concurrent.interpreters.po b/library/concurrent.interpreters.po index 215ef12ce..80dd283a0 100644 --- a/library/concurrent.interpreters.po +++ b/library/concurrent.interpreters.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-07-25 12:59+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: none\n" @@ -199,6 +199,9 @@ msgstr "یک مفسر پایتون جدید (بی‌کار) را راه‌اند msgid "Initialize a new cross-interpreter queue and return a :class:`Queue` object for it." msgstr "یک صف بین‌مفسری جدید را مقداردهی اولیه می‌کند و یک شیء :class:`Queue` برای آن برمی‌گرداند." +msgid "*maxsize* is an integer that sets the upperbound limit on the number of items that can be placed in the queue. Insertion will be blocked once this size has been reached, until queue items are consumed. If *maxsize* is less than or equal to zero, the queue size is infinite." +msgstr "" + msgid "Interpreter objects" msgstr "اشیای مفسر" @@ -259,16 +262,45 @@ msgstr "این استثنا، که زیرکلاسی از :exc:`TypeError` است msgid "Communicating Between Interpreters" msgstr "ارتباط بین مفسرها" -msgid "A wrapper around a low-level, cross-interpreter queue, which implements the :class:`queue.Queue` interface. The underlying queue can only be created through :func:`create_queue`." +#, fuzzy +#| msgid "A wrapper around a low-level, cross-interpreter queue, which implements the :class:`queue.Queue` interface. The underlying queue can only be created through :func:`create_queue`." +msgid "A wrapper around a low-level, cross-interpreter queue, which implements all the methods of :class:`queue.Queue` except for :meth:`~queue.Queue.task_done`, :meth:`~queue.Queue.join` and :meth:`~queue.Queue.shutdown`. The underlying queue can only be created through :func:`create_queue`." msgstr "پوششی برای یک صف بین‌مفسری سطح پایین، که رابط :class:`queue.Queue` را پیاده‌سازی می‌کند. صف زیرین فقط از طریق :func:`create_queue` قابل ایجاد است." msgid "The queue's ID." msgstr "شناسه‌ی صف." -msgid "This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`!Queue.get` and :meth:`!Queue.get_nowait` when the queue is empty." +msgid "Return the number of items in the queue." +msgstr "" + +msgid "Return ``True`` if the queue is empty, ``False`` otherwise." +msgstr "" + +#, fuzzy +#| msgid "Return ``True`` if the interpreter is currently executing code in its :mod:`!__main__` module and ``False`` otherwise." +msgid "Return ``True`` if the queue is full, ``False`` otherwise." +msgstr "اگر مفسر هم‌اکنون در حال اجرای کد در ماژول :mod:`!__main__` خود باشد، ``True`` و در غیر این صورت ``False`` برمی‌گرداند." + +msgid "Put *obj* into the queue. If optional args *block* is true and *timeout* is ``None`` (the default), block if necessary until a free slot is available. If *timeout* is a positive number, it blocks at most *timeout* seconds and raises the :exc:`QueueFull` exception if no free slot was available within that time. Otherwise (*block* is false), put an object on the queue if a free slot is immediately available, else raise the :exc:`QueueFull` exception (*timeout* is ignored in that case)." +msgstr "" + +msgid "Equivalent to ``put(obj, block=False)``." +msgstr "" + +msgid "Remove and return an object from the queue. If optional args *block* is true and *timeout* is ``None`` (the default), block if necessary until an object is available. If *timeout* is a positive number, it blocks at most *timeout* seconds and raises the :exc:`QueueEmpty` exception if no object was available within that time. Otherwise (*block* is false), return an object if one is immediately available, else raise the :exc:`QueueEmpty` exception (*timeout* is ignored in that case)." +msgstr "" + +msgid "Equivalent to ``get(block=False)``." +msgstr "" + +#, fuzzy +#| msgid "This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`!Queue.get` and :meth:`!Queue.get_nowait` when the queue is empty." +msgid "This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`Queue.get` and :meth:`Queue.get_nowait` when the queue is empty." msgstr "این استثنا، زیرکلاسی از :exc:`queue.Empty`، زمانی از :meth:`!Queue.get` و :meth:`!Queue.get_nowait` پرتاب می‌شود که صف خالی باشد." -msgid "This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`!Queue.put` and :meth:`!Queue.put_nowait` when the queue is full." +#, fuzzy +#| msgid "This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`!Queue.put` and :meth:`!Queue.put_nowait` when the queue is full." +msgid "This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`Queue.put` and :meth:`Queue.put_nowait` when the queue is full." msgstr "این استثنا، زیرکلاسی از :exc:`queue.Full`، هنگامی از :meth:`!Queue.put` و :meth:`!Queue.put_nowait` پرتاب می‌شود که صف پر باشد." msgid "Basic usage" @@ -343,3 +375,22 @@ msgstr "" "\n" "t = interp.call_in_thread(run)\n" "t.join()" + +#, fuzzy +#| msgid "Communicating Between Interpreters" +msgid "Communicating between interpreters with a queue::" +msgstr "ارتباط بین مفسرها" + +msgid "" +"from concurrent import interpreters\n" +"\n" +"interp = interpreters.create()\n" +"queue = interpreters.create_queue()\n" +"\n" +"def worker(queue):\n" +" queue.put('spam!')\n" +"\n" +"t = interp.call_in_thread(worker, queue)\n" +"print(queue.get())\n" +"t.join()" +msgstr "" diff --git a/library/ctypes.po b/library/ctypes.po index 3021fc2af..8f55a90c6 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-05 04:14+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 18:16+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -230,36 +230,8 @@ msgstr "" "0x1d000000\n" ">>>" -msgid ":exc:`ValueError` is raised when you call an ``stdcall`` function with the ``cdecl`` calling convention, or vice versa::" -msgstr ":exc:`ValueError` هنگامی پرتاب می‌شود که یک تابع ``stdcall`` را با قرارداد فراخوانی ``cdecl`` فراخوانی کنید، یا برعکس::" - -msgid "" -">>> cdll.kernel32.GetModuleHandleA(None)\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -"ValueError: Procedure probably called with not enough arguments (4 bytes missing)\n" -">>>\n" -"\n" -">>> windll.msvcrt.printf(b\"spam\")\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -"ValueError: Procedure probably called with too many arguments (4 bytes in excess)\n" -">>>" +msgid ":mod:`!ctypes` cannot determine a function's calling convention or signature. Consult the function's C header file or documentation to choose the correct calling convention and set the :attr:`~_CFuncPtr.argtypes` attribute, as described in :ref:`ctypes-specifying-required-argument-types`. Without :attr:`~_CFuncPtr.argtypes`, the number of arguments is not checked. Calling a function with an incorrect calling convention or with incorrect arguments can corrupt memory or crash Python." msgstr "" -">>> cdll.kernel32.GetModuleHandleA(None)\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -"ValueError: Procedure probably called with not enough arguments (4 bytes missing)\n" -">>>\n" -"\n" -">>> windll.msvcrt.printf(b\"spam\")\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -"ValueError: Procedure probably called with too many arguments (4 bytes in excess)\n" -">>>" - -msgid "To find out the correct calling convention you have to look into the C header file or the documentation for the function you want to call." -msgstr "برای اطلاع از قرارداد فراخوانی صحیح، باید پرونده‌ی سرآیند C یا مستندات تابعی را که می‌خواهید فراخوانی کنید، بررسی کنید." msgid "On Windows, :mod:`!ctypes` uses win32 structured exception handling to prevent crashes from general protection faults when functions are called with invalid argument values::" msgstr "در ویندوز، :mod:`!ctypes` از مدیریت استثنای ساختاریافته win32 برای جلوگیری از فروپاشی ناشی از خطاهای حفاظت عمومی هنگام فراخوانی توابع با مقادیر نامعتبر آرگومان استفاده می‌کند::" @@ -892,6 +864,31 @@ msgstr "" "13\n" ">>>" +msgid "Setting :attr:`~_CFuncPtr.argtypes` also causes :mod:`!ctypes` to raise :exc:`TypeError` if too few arguments are passed::" +msgstr "" + +#, fuzzy +#| msgid "" +#| ">>> bar.values = (c_byte * 4)()\n" +#| "Traceback (most recent call last):\n" +#| " File \"\", line 1, in \n" +#| "TypeError: incompatible types, c_byte_Array_4 instance instead of LP_c_long instance\n" +#| ">>>" +msgid "" +">>> printf(b\"%s %d %f\\n\", b\"X\", 2)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: this function takes at least 4 arguments (3 given)" +msgstr "" +">>> bar.values = (c_byte * 4)()\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: incompatible types, c_byte_Array_4 instance instead of LP_c_long instance\n" +">>>" + +msgid "Functions using the ``stdcall`` calling convention require exactly as many arguments as there are items in :attr:`~_CFuncPtr.argtypes`. Functions using the ``cdecl`` calling convention accept additional arguments, to support variadic functions. The declaration must match the function's actual signature; ctypes cannot verify this." +msgstr "" + msgid "If you have defined your own classes which you pass to function calls, you have to implement a :meth:`~_CData.from_param` class method for them to be able to use them in the :attr:`~_CFuncPtr.argtypes` sequence. The :meth:`~_CData.from_param` class method receives the Python object passed to the function call, it should do a typecheck or whatever is needed to make sure this object is acceptable, and then return the object itself, its :attr:`!_as_parameter_` attribute, or whatever you want to pass as the C function argument in this case. Again, the result should be an integer, string, bytes, a :mod:`!ctypes` instance, or an object with an :attr:`!_as_parameter_` attribute." msgstr "اگر کلاس‌های خودتان را تعریف کرده‌اید و آن‌ها را به فراخوانی‌های تابع ارسال می‌کنید، باید برای آن‌ها یک متد کلاس :meth:`~_CData.from_param` پیاده‌سازی کنید تا بتوانید از آن‌ها در دنباله :attr:`~_CFuncPtr.argtypes` استفاده کنید. متد کلاس :meth:`~_CData.from_param` شیء پایتونی ارسال‌شده به فراخوانی تابع را دریافت می‌کند؛ این متد باید بررسی نوع یا هر کاری را که برای اطمینان از قابل‌قبول بودن این شیء لازم است انجام دهد و سپس خود شیء، ویژگی :attr:`!_as_parameter_` آن، یا هر چیزی را که می‌خواهید در این حالت به‌عنوان آرگومان تابع C ارسال کنید، برگرداند. باز هم، نتیجه باید یک عدد صحیح، رشته، بایت‌ها، یک نمونه از :mod:`!ctypes`، یا شیءای با ویژگی :attr:`!_as_parameter_` باشد." @@ -2210,7 +2207,9 @@ msgstr "اگر *handle* برابر ``None`` باشد، از تابع :manpage:`d msgid "*name* is the pathname of the shared library to open. If *name* does not contain a path separator, the library is found in a platform-specific way." msgstr "*name* مسیر کتابخانه اشتراکی برای باز کردن است. اگر *name* شامل جداکننده مسیر نباشد، کتابخانه به شیوه‌ای وابسته به پلتفرم یافت می‌شود." -msgid "On non-Windows systems, *name* can be ``None``. In this case, :c:func:`!dlopen` is called with ``NULL``, which opens the main program as a \"library\". (Some systems do the same is *name* is empty; ``None``/``NULL`` is more portable.)" +#, fuzzy +#| msgid "On non-Windows systems, *name* can be ``None``. In this case, :c:func:`!dlopen` is called with ``NULL``, which opens the main program as a \"library\". (Some systems do the same is *name* is empty; ``None``/``NULL`` is more portable.)" +msgid "On non-Windows systems, *name* can be ``None``. In this case, :c:func:`!dlopen` is called with ``NULL``, which opens the main program as a \"library\". (Some systems do the same if *name* is empty; ``None``/``NULL`` is more portable.)" msgstr "در سیستم‌های غیرویندوزی، *name* می‌تواند ``None`` باشد. در این حالت، :c:func:`!dlopen` با ``NULL`` فراخوانی می‌شود، که برنامه‌ی اصلی را به‌عنوان یک «کتابخانه» باز می‌کند. (برخی سیستم‌ها اگر *name* خالی باشد نیز همین کار را انجام می‌دهند؛ ``None``/``NULL`` قابل‌حمل‌تر است.)" msgid "CPython implementation detail" @@ -2238,7 +2237,9 @@ msgstr "برای دسترسی به Python C API، ترجیحاً از :py:data:` msgid "The *mode* parameter can be used to specify how the library is loaded. For details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is ignored. On posix systems, RTLD_NOW is always added, and is not configurable." msgstr "از پارامتر *mode* می‌توان برای مشخص کردن نحوه بارگذاری کتابخانه استفاده کرد. برای جزئیات، به صفحه راهنمای :manpage:`dlopen(3)` مراجعه کنید. در ویندوز، *mode* نادیده گرفته می‌شود. در سیستم‌های POSIX، RTLD_NOW همیشه اضافه می‌شود و قابل پیکربندی نیست." -msgid "The *use_errno* parameter, when set to true, enables a ctypes mechanism that allows accessing the system :data:`errno` error number in a safe way. :mod:`!ctypes` maintains a thread-local copy of the system's :data:`errno` variable; if you call foreign functions created with ``use_errno=True`` then the :data:`errno` value before the function call is swapped with the ctypes private copy, the same happens immediately after the function call." +#, fuzzy +#| msgid "The *use_errno* parameter, when set to true, enables a ctypes mechanism that allows accessing the system :data:`errno` error number in a safe way. :mod:`!ctypes` maintains a thread-local copy of the system's :data:`errno` variable; if you call foreign functions created with ``use_errno=True`` then the :data:`errno` value before the function call is swapped with the ctypes private copy, the same happens immediately after the function call." +msgid "The *use_errno* parameter, when set to true, enables a ctypes mechanism that allows accessing the system :data:`errno` error number in a safe way. :mod:`!ctypes` maintains a thread-local copy of the system's :data:`errno` variable; if you call foreign functions created with ``use_errno=True`` then the :data:`errno` value before the function call is swapped with the ctypes private copy, the same happens immediately after the function call. This mechanism only works for libraries that use the same C runtime library as the interpreter itself. A library linked against a different C runtime (for example, a different CRT on Windows) has its own :data:`errno`, which :mod:`!ctypes` cannot observe." msgstr "پارامتر *use_errno*، هنگامی که روی true تنظیم شود، سازوکاری در ctypes را فعال می‌کند که امکان دسترسی به شماره‌ی خطای سیستم :data:`errno` را به‌شکلی امن فراهم می‌کند. :mod:`!ctypes` یک نسخه‌ی محلی نخی (thread-local) از متغیر :data:`errno` سیستم را نگه می‌دارد؛ اگر توابع خارجی ساخته‌شده با ``use_errno=True`` را فراخوانی کنید، آنگاه مقدار :data:`errno` پیش از فراخوانی تابع با نسخه‌ی خصوصی ctypes مبادله می‌شود؛ همین مبادله بلافاصله پس از فراخوانی تابع نیز رخ می‌دهد." msgid "The function :func:`ctypes.get_errno` returns the value of the ctypes private copy, and the function :func:`ctypes.set_errno` changes the ctypes private copy to a new value and returns the former value." @@ -2405,7 +2406,9 @@ msgstr "برای مشخص کردن نوع نتیجه تابع خارجی، یک msgid "It is possible to assign a callable Python object that is not a ctypes type, in this case the function is assumed to return a C :c:expr:`int`, and the callable will be called with this integer, allowing further processing or error checking. Using this is deprecated, for more flexible post processing or error checking use a ctypes data type as :attr:`!restype` and assign a callable to the :attr:`errcheck` attribute." msgstr "می‌توان یک شیء پایتونی فراخوانی‌پذیر را که یک نوع ctypes نیست، انتساب داد؛ در این صورت فرض می‌شود که تابع یک :c:expr:`int` در C را برمی‌گرداند و شیء فراخوانی‌پذیر با این عدد صحیح فراخوانی می‌شود تا امکان پردازش بیشتر یا بررسی خطا فراهم شود. استفاده از این روش منسوخ است؛ برای پس‌پردازش یا بررسی خطای انعطاف‌پذیرتر، از یک نوع داده ctypes به‌عنوان :attr:`!restype` استفاده کنید و یک شیء فراخوانی‌پذیر را به ویژگی :attr:`errcheck` انتساب دهید." -msgid "Assign a tuple of ctypes types to specify the argument types that the function accepts. Functions using the ``stdcall`` calling convention can only be called with the same number of arguments as the length of this tuple; functions using the C calling convention accept additional, unspecified arguments as well." +#, fuzzy +#| msgid "Assign a tuple of ctypes types to specify the argument types that the function accepts. Functions using the ``stdcall`` calling convention can only be called with the same number of arguments as the length of this tuple; functions using the C calling convention accept additional, unspecified arguments as well." +msgid "Assign a tuple of ctypes types to specify the argument types that the function accepts. :exc:`TypeError` is raised if the function is called with fewer arguments than the length of this tuple. Functions using the ``stdcall`` calling convention also raise :exc:`TypeError` if called with more arguments; functions using the ``cdecl`` calling convention accept additional, unspecified arguments as well." msgstr "برای مشخص کردن انواع آرگومان‌هایی که تابع می‌پذیرد، یک تاپل از انواع ctypes را اختصاص دهید. توابعی که از قرارداد فراخوانی ``stdcall`` استفاده می‌کنند، فقط می‌توانند با همان تعداد آرگومانی که برابر با طول این تاپل است، فراخوانی شوند؛ توابعی که از قرارداد فراخوانی C استفاده می‌کنند، آرگومان‌های اضافی و مشخص‌نشده را نیز می‌پذیرند." msgid "When a foreign function is called, each actual argument is passed to the :meth:`~_CData.from_param` class method of the items in the :attr:`argtypes` tuple, this method allows adapting the actual argument to an object that the foreign function accepts. For example, a :class:`c_char_p` item in the :attr:`argtypes` tuple will convert a string passed as argument into a bytes object using ctypes conversion rules." @@ -2423,11 +2426,47 @@ msgstr "*result* چیزی است که تابع خارجی برمی‌گردان msgid "*func* is the foreign function object itself, this allows reusing the same callable object to check or post process the results of several functions." msgstr "*func* خودِ شیء تابع خارجی است، این امکان را می‌دهد که از همان شیء فراخوانی‌پذیر برای بررسی یا پس‌پردازش نتایج چندین تابع مجدداً استفاده شود." -msgid "*arguments* is a tuple containing the parameters originally passed to the function call, this allows specializing the behavior on the arguments used." +#, fuzzy +#| msgid "*arguments* is a tuple containing the parameters originally passed to the function call, this allows specializing the behavior on the arguments used." +msgid "*arguments* is a tuple containing the parameters passed to the function call, including any output parameters that :mod:`!ctypes` created for the call; this allows specializing the behavior on the arguments used." msgstr "*arguments* یک تاپل حاوی پارامترهایی است که در ابتدا به فراخوانی تابع ارسال‌شده‌اند؛ این امر امکان ویژه‌سازی رفتار بر اساس آرگومان‌های استفاده‌شده را فراهم می‌کند." -msgid "The object that this function returns will be returned from the foreign function call, but it can also check the result value and raise an exception if the foreign function call failed." -msgstr "شیءای که این تابع برمی‌گرداند، از فراخوانی تابع خارجی برگردانده خواهد شد، اما همچنین می‌تواند مقدار نتیجه را بررسی کند و در صورت ناموفق بودن فراخوانی تابع خارجی، یک استثنا پرتاب کند." +msgid "If the callable returns the *arguments* tuple it received, unchanged, :mod:`!ctypes` continues its normal processing of the result, which includes returning output parameters (see :ref:`ctypes-function-prototypes`). Any other object returned by the callable is returned from the foreign function call instead. The callable can also check the result value and raise an exception if the foreign function call failed." +msgstr "" + +msgid "For example, this callable raises an exception when the foreign function signals failure with a negative return value, and otherwise leaves the result to :mod:`!ctypes`::" +msgstr "" + +#, fuzzy +#| msgid "" +#| ">>> def errcheck(result, func, args):\n" +#| "... if not result:\n" +#| "... raise WinError()\n" +#| "... return args\n" +#| "...\n" +#| ">>> GetWindowRect.errcheck = errcheck\n" +#| ">>>" +msgid "" +"def errcheck(result, func, arguments):\n" +" if result < 0:\n" +" raise RuntimeError(f\"call failed with error {result}\")\n" +" return arguments" +msgstr "" +">>> def errcheck(result, func, args):\n" +"... if not result:\n" +"... raise WinError()\n" +"... return args\n" +"...\n" +">>> GetWindowRect.errcheck = errcheck\n" +">>>" + +msgid "This one instead replaces the result, converting a C ``int`` used as a boolean into a :class:`bool`::" +msgstr "" + +msgid "" +"def errcheck(result, func, arguments):\n" +" return result != 0" +msgstr "" msgid "On Windows, when a foreign function call raises a system exception (for example, due to an access violation), it will be captured and replaced with a suitable Python exception. Further, an auditing event ``ctypes.set_exception`` with argument ``code`` will be raised, allowing an audit hook to replace the exception with its own." msgstr "در ویندوز، هنگامی که یک فراخوانی تابع خارجی یک استثنای سیستمی را پرتاب می‌کند (برای مثال، به‌دلیل نقض دسترسی)، آن استثنا گرفته می‌شود و با یک استثنای پایتون مناسب جایگزین می‌گردد. علاوه بر این، یک رویداد حسابرسی ``ctypes.set_exception`` با آرگومان ``code`` پرتاب می‌شود که به یک قلاب حسابرسی اجازه می‌دهد استثنا را با استثنای خود جایگزین کند." @@ -2447,8 +2486,8 @@ msgstr "پیش‌نمونه تابع برگردانده‌شده، توابعی msgid "The returned function prototype creates functions that use the ``stdcall`` calling convention. The function will release the GIL during the call. *use_errno* and *use_last_error* have the same meaning as above." msgstr "پیش‌نمونه تابع برگشتی، توابعی را ایجاد می‌کند که از قرارداد فراخوانی ``stdcall`` استفاده می‌کنند. تابع در حین فراخوانی، GIL را آزاد خواهد کرد. *use_errno* و *use_last_error* همان معنای بالا را دارند." -msgid "The returned function prototype creates functions that use the Python calling convention. The function will *not* release the GIL during the call." -msgstr "پیش‌نمونه تابع برگردانده‌شده، توابعی ایجاد می‌کند که از قرارداد فراخوانی پایتون استفاده می‌کنند. تابع در حین فراخوانی، GIL را آزاد *نخواهد کرد*." +msgid "The returned function prototype creates functions that use the Python calling convention. Unlike :func:`CFUNCTYPE` and :func:`WINFUNCTYPE`, ctypes does *not* release the GIL before calling the foreign function, so the function may safely use the Python C API. Note that this does not prevent the GIL from being released *during* the call." +msgstr "" msgid "Function prototypes created by these factory functions can be instantiated in different ways, depending on the type and number of the parameters in the call:" msgstr "می‌توان پیش‌نمونه‌های تابع ایجادشده توسط این توابع کارخانه‌ای را به روش‌های مختلف نمونه‌سازی کرد، بسته به نوع و تعداد پارامترها در فراخوانی:" @@ -3023,8 +3062,432 @@ msgstr "نشان‌دهنده‌ی نوع داده‌ی :c:expr:`PyObject *` د msgid ":class:`!py_object` is now a :term:`generic type`." msgstr ":class:`!py_object` اکنون یک :term:`generic type` است." -msgid "The :mod:`!ctypes.wintypes` module provides quite some other Windows specific data types, for example :c:type:`!HWND`, :c:type:`!WPARAM`, :c:type:`!VARIANT_BOOL` or :c:type:`!DWORD`. Some useful structures like :c:type:`!MSG` or :c:type:`!RECT` are also defined." -msgstr "ماژول :mod:`!ctypes.wintypes` تعداد زیادی از انواع داده دیگر مختص ویندوز را فراهم می‌کند، برای مثال :c:type:`!HWND`، :c:type:`!WPARAM`، :c:type:`!VARIANT_BOOL` یا :c:type:`!DWORD`. برخی ساختارهای مفید مانند :c:type:`!MSG` یا :c:type:`!RECT` نیز تعریف شده‌اند." +#, fuzzy +#| msgid "Fundamental data types" +msgid "Windows data types" +msgstr "انواع داده بنیادی" + +#, fuzzy +#| msgid "**Source code:** :source:`Lib/ctypes`" +msgid "**Source code:** :source:`Lib/ctypes/wintypes.py`" +msgstr "**کد منبع:** :source:`Lib/ctypes`" + +msgid "The :mod:`!ctypes.wintypes` module provides types for use with Windows APIs. Most are aliases for types defined in :mod:`ctypes`. See Microsoft's `Windows data types `_ documentation for the corresponding C definitions. On non-Windows platforms, the sizes and layouts of these types may differ from their Windows counterparts." +msgstr "" + +msgid "Added :class:`HCONV`, :class:`HCONVLIST`, :class:`HCURSOR`, :class:`HDDEDATA`, :class:`HDROP`, :class:`HFILE`, :class:`HRESULT`, and :class:`HSZ`." +msgstr "" + +msgid "" +">>> from ctypes import POINTER\n" +">>> from ctypes.wintypes import LPRECT, RECT, SHORT\n" +">>> SHORT(-1).value\n" +"-1\n" +">>> rect = RECT(0, 0, 100, 50)\n" +">>> rect.right, rect.bottom\n" +"(100, 50)\n" +">>> LPRECT is POINTER(RECT)\n" +"True" +msgstr "" + +#, fuzzy +#| msgid "Incomplete Types" +msgid "Simple types" +msgstr "انواع ناقص" + +#, fuzzy +#| msgid "These are the fundamental ctypes data types:" +msgid "The following names are aliases for fundamental :mod:`ctypes` types:" +msgstr "این‌ها انواع داده‌ی بنیادی ctypes هستند:" + +msgid "Windows types" +msgstr "" + +#, fuzzy +#| msgid "ctypes type" +msgid ":mod:`ctypes` type" +msgstr "نوع ctypes" + +#, fuzzy +#| msgid ":class:`c_ubyte`" +msgid ":class:`~ctypes.c_ubyte`" +msgstr ":class:`c_ubyte`" + +#, fuzzy +#| msgid ":class:`c_char`" +msgid ":class:`~ctypes.c_char`" +msgstr ":class:`c_char`" + +#, fuzzy +#| msgid ":class:`c_wchar`" +msgid ":class:`~ctypes.c_wchar`" +msgstr ":class:`c_wchar`" + +#, fuzzy +#| msgid ":class:`c_ushort`" +msgid ":class:`~ctypes.c_ushort`" +msgstr ":class:`c_ushort`" + +#, fuzzy +#| msgid ":class:`c_ulong`" +msgid ":class:`~ctypes.c_ulong`" +msgstr ":class:`c_ulong`" + +#, fuzzy +#| msgid ":class:`c_long`" +msgid ":class:`~ctypes.c_long`" +msgstr ":class:`c_long`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`~ctypes.c_int`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_uint`" +msgid ":class:`~ctypes.c_uint`" +msgstr ":class:`c_uint`" + +#, fuzzy +#| msgid ":class:`c_short`" +msgid ":class:`~ctypes.c_short`" +msgstr ":class:`c_short`" + +#, fuzzy +#| msgid ":class:`c_double`" +msgid ":class:`~ctypes.c_double`" +msgstr ":class:`c_double`" + +#, fuzzy +#| msgid ":class:`c_float`" +msgid ":class:`~ctypes.c_float`" +msgstr ":class:`c_float`" + +#, fuzzy +#| msgid ":class:`c_longlong`" +msgid ":class:`~ctypes.c_longlong`" +msgstr ":class:`c_longlong`" + +#, fuzzy +#| msgid ":class:`c_ulonglong`" +msgid ":class:`~ctypes.c_ulonglong`" +msgstr ":class:`c_ulonglong`" + +#, fuzzy +#| msgid ":class:`c_char_p`" +msgid ":class:`~ctypes.c_char_p`" +msgstr ":class:`c_char_p`" + +#, fuzzy +#| msgid ":class:`c_wchar_p`" +msgid ":class:`~ctypes.c_wchar_p`" +msgstr ":class:`c_wchar_p`" + +#, fuzzy +#| msgid ":class:`c_void_p`" +msgid ":class:`~ctypes.c_void_p`" +msgstr ":class:`c_void_p`" + +msgid ":class:`LARGE_INTEGER` and :class:`ULARGE_INTEGER` expose an integer :attr:`!value` attribute, with no ``LowPart``, ``HighPart``, or ``QuadPart`` fields." +msgstr "" + +msgid "An unsigned integer type with the same size as :class:`~ctypes.c_void_p`." +msgstr "" + +msgid "A signed integer type with the same size as :class:`~ctypes.c_void_p`." +msgstr "" + +msgid "A 16-bit Boolean type whose :attr:`!value` attribute is a Python :class:`bool`. Assigning to :attr:`!value` stores ``-1`` for a true value and ``0`` for a false value." +msgstr "" + +#, fuzzy +#| msgid "Data types" +msgid "Handle types" +msgstr "انواع داده" + +msgid "An alias for :class:`~ctypes.c_void_p`, used to represent Windows handles." +msgstr "" + +msgid "Aliases for :class:`HANDLE` for use with specific Windows APIs. :class:`HFILE` is an alias for :class:`INT` and is listed among the simple types above." +msgstr "" + +#, fuzzy +#| msgid "Structures and unions" +msgid "Structures" +msgstr "ساختارها و اجتماع‌ها (unions)" + +msgid "The following types are subclasses of :class:`ctypes.Structure`." +msgstr "" + +msgid "A rectangle with ``left``, ``top``, ``right``, and ``bottom`` fields, all of type :class:`LONG`." +msgstr "" + +msgid "A rectangle with ``Left``, ``Top``, ``Right``, and ``Bottom`` fields, all of type :class:`SHORT`." +msgstr "" + +msgid "A point with ``x`` and ``y`` fields, both of type :class:`LONG`." +msgstr "" + +msgid "Dimensions with ``cx`` and ``cy`` fields, both of type :class:`LONG`." +msgstr "" + +msgid "A file time with ``dwLowDateTime`` and ``dwHighDateTime`` fields, both of type :class:`DWORD`." +msgstr "" + +msgid "A Windows message with the following fields:" +msgstr "" + +msgid "Field" +msgstr "" + +msgid "Type" +msgstr "" + +msgid "``hWnd``" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`HWND`" +msgstr ":class:`c_int`" + +msgid "``message``" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`UINT`" +msgstr ":class:`c_int`" + +msgid "``wParam``" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`WPARAM`" +msgstr ":class:`c_int`" + +msgid "``lParam``" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`LPARAM`" +msgstr ":class:`c_int`" + +msgid "``time``" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`DWORD`" +msgstr ":class:`c_int`" + +msgid "``pt``" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`POINT`" +msgstr ":class:`c_int`" + +msgid "Structures used by Windows file-search functions, with the following fields. :class:`WIN32_FIND_DATAA` uses :class:`CHAR` for its file names, and :class:`WIN32_FIND_DATAW` uses :class:`WCHAR`." +msgstr "" + +msgid "Fields" +msgstr "" + +msgid "``dwFileAttributes``" +msgstr "" + +msgid "``ftCreationTime``, ``ftLastAccessTime``, ``ftLastWriteTime``" +msgstr "" + +msgid ":class:`FILETIME`" +msgstr "" + +msgid "``nFileSizeHigh``, ``nFileSizeLow``" +msgstr "" + +msgid "``dwReserved0``, ``dwReserved1``" +msgstr "" + +msgid "``cFileName``" +msgstr "" + +msgid "An array of :data:`MAX_PATH` characters" +msgstr "" + +msgid "``cAlternateFileName``" +msgstr "" + +msgid "An array of 14 characters" +msgstr "" + +#, fuzzy +#| msgid "Pointers" +msgid "Pointer types" +msgstr "اشاره‌گرها" + +msgid "The following names are aliases for ``ctypes.POINTER(T)``, where *T* is the type in the second column:" +msgstr "" + +#, fuzzy +#| msgid "Return types" +msgid "Referenced type" +msgstr "انواع بازگشتی" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`BOOL`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`BOOLEAN`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`BYTE`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`CHAR`" +msgstr ":class:`c_int`" + +msgid ":class:`COLORREF`" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`FLOAT`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`HANDLE`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`HKEY`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`HKL`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`INT`" +msgstr ":class:`c_int`" + +msgid ":class:`LARGE_INTEGER`" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`LCID`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`LONG`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`MSG`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`POINTL`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`RECT`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`RECTL`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`SC_HANDLE`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`SHORT`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`SIZE`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`SIZEL`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`SMALL_RECT`" +msgstr ":class:`c_int`" + +msgid ":class:`ULARGE_INTEGER`" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`ULONG`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`USHORT`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`WCHAR`" +msgstr ":class:`c_int`" + +msgid ":class:`WIN32_FIND_DATAA`" +msgstr "" + +msgid ":class:`WIN32_FIND_DATAW`" +msgstr "" + +#, fuzzy +#| msgid ":class:`c_int`" +msgid ":class:`WORD`" +msgstr ":class:`c_int`" + +#, fuzzy +#| msgid "Calling variadic functions" +msgid "Constants and functions" +msgstr "فراخوانی توابع چندآرگومانی (variadic functions)" + +msgid "The value ``260``, used as the size of the file-name arrays in :class:`WIN32_FIND_DATAA` and :class:`WIN32_FIND_DATAW`." +msgstr "" + +msgid "Return a :class:`COLORREF` value as a Python integer. The *red*, *green*, and *blue* arguments are integers from ``0`` to ``255``, specifying the intensity of each color component::" +msgstr "" + +msgid "" +">>> from ctypes.wintypes import RGB\n" +">>> hex(RGB(255, 128, 0))\n" +"'0x80ff'" +msgstr "" msgid "Structured data types" msgstr "انواع داده ساختاریافته" @@ -3348,3 +3811,43 @@ msgstr "۵-تاییِ ``(descr, source, helpfile, helpcontext, progid)``." msgid "*descr* is the textual description. *source* is the language-dependent ``ProgID`` for the class or application that raised the error. *helpfile* is the path of the help file. *helpcontext* is the help context identifier. *progid* is the ``ProgID`` of the interface that defined the error." msgstr "*descr* توضیح متنی است. *source* ``ProgID`` وابسته به زبان برای کلاس یا برنامه‌ای است که خطا را پرتاب کرده است. *helpfile* مسیر پرونده راهنما است. *helpcontext* شناسه زمینه راهنما است. *progid* ``ProgID`` رابطی است که خطا را تعریف کرده است." + +#~ msgid ":exc:`ValueError` is raised when you call an ``stdcall`` function with the ``cdecl`` calling convention, or vice versa::" +#~ msgstr ":exc:`ValueError` هنگامی پرتاب می‌شود که یک تابع ``stdcall`` را با قرارداد فراخوانی ``cdecl`` فراخوانی کنید، یا برعکس::" + +#~ msgid "" +#~ ">>> cdll.kernel32.GetModuleHandleA(None)\n" +#~ "Traceback (most recent call last):\n" +#~ " File \"\", line 1, in \n" +#~ "ValueError: Procedure probably called with not enough arguments (4 bytes missing)\n" +#~ ">>>\n" +#~ "\n" +#~ ">>> windll.msvcrt.printf(b\"spam\")\n" +#~ "Traceback (most recent call last):\n" +#~ " File \"\", line 1, in \n" +#~ "ValueError: Procedure probably called with too many arguments (4 bytes in excess)\n" +#~ ">>>" +#~ msgstr "" +#~ ">>> cdll.kernel32.GetModuleHandleA(None)\n" +#~ "Traceback (most recent call last):\n" +#~ " File \"\", line 1, in \n" +#~ "ValueError: Procedure probably called with not enough arguments (4 bytes missing)\n" +#~ ">>>\n" +#~ "\n" +#~ ">>> windll.msvcrt.printf(b\"spam\")\n" +#~ "Traceback (most recent call last):\n" +#~ " File \"\", line 1, in \n" +#~ "ValueError: Procedure probably called with too many arguments (4 bytes in excess)\n" +#~ ">>>" + +#~ msgid "To find out the correct calling convention you have to look into the C header file or the documentation for the function you want to call." +#~ msgstr "برای اطلاع از قرارداد فراخوانی صحیح، باید پرونده‌ی سرآیند C یا مستندات تابعی را که می‌خواهید فراخوانی کنید، بررسی کنید." + +#~ msgid "The object that this function returns will be returned from the foreign function call, but it can also check the result value and raise an exception if the foreign function call failed." +#~ msgstr "شیءای که این تابع برمی‌گرداند، از فراخوانی تابع خارجی برگردانده خواهد شد، اما همچنین می‌تواند مقدار نتیجه را بررسی کند و در صورت ناموفق بودن فراخوانی تابع خارجی، یک استثنا پرتاب کند." + +#~ msgid "The returned function prototype creates functions that use the Python calling convention. The function will *not* release the GIL during the call." +#~ msgstr "پیش‌نمونه تابع برگردانده‌شده، توابعی ایجاد می‌کند که از قرارداد فراخوانی پایتون استفاده می‌کنند. تابع در حین فراخوانی، GIL را آزاد *نخواهد کرد*." + +#~ msgid "The :mod:`!ctypes.wintypes` module provides quite some other Windows specific data types, for example :c:type:`!HWND`, :c:type:`!WPARAM`, :c:type:`!VARIANT_BOOL` or :c:type:`!DWORD`. Some useful structures like :c:type:`!MSG` or :c:type:`!RECT` are also defined." +#~ msgstr "ماژول :mod:`!ctypes.wintypes` تعداد زیادی از انواع داده دیگر مختص ویندوز را فراهم می‌کند، برای مثال :c:type:`!HWND`، :c:type:`!WPARAM`، :c:type:`!VARIANT_BOOL` یا :c:type:`!DWORD`. برخی ساختارهای مفید مانند :c:type:`!MSG` یا :c:type:`!RECT` نیز تعریف شده‌اند." diff --git a/library/curses.po b/library/curses.po index 84b339e77..38822a82a 100644 --- a/library/curses.po +++ b/library/curses.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 14:57+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -190,7 +190,9 @@ msgstr "اگر پایانه قابلیت‌های درج و حذف خط را د msgid "Take a key value *ch*, and return ``True`` if the current terminal type recognizes a key with that value." msgstr "مقدار کلید *ch* را می‌گیرد و اگر نوع پایانه‌ی جاری کلیدی با آن مقدار را بشناسد، ``True`` را برمی‌گرداند." -msgid "Used for half-delay mode, which is similar to cbreak mode in that characters typed by the user are immediately available to the program. However, after blocking for *tenths* tenths of seconds, raise an exception if nothing has been typed. The value of *tenths* must be a number between ``1`` and ``255``. Use :func:`nocbreak` to leave half-delay mode." +#, fuzzy +#| msgid "Used for half-delay mode, which is similar to cbreak mode in that characters typed by the user are immediately available to the program. However, after blocking for *tenths* tenths of seconds, raise an exception if nothing has been typed. The value of *tenths* must be a number between ``1`` and ``255``. Use :func:`nocbreak` to leave half-delay mode." +msgid "Used for half-delay mode, which is similar to cbreak mode in that characters typed by the user are immediately available to the program. However, after blocking for *tenths* tenths of seconds, if nothing has been typed, :meth:`~window.getch` returns ``-1``, while :meth:`~window.getkey` and :meth:`~window.get_wch` raise :exc:`curses.error`. The value of *tenths* must be a number between ``1`` and ``255``. Use :func:`nocbreak` to leave half-delay mode." msgstr "برای حالت نیمه‌تأخیر (half-delay) استفاده می‌شود؛ این حالت شبیه حالت cbreak است، بدین معنا که نویسه‌های تایپ‌شده توسط کاربر بلافاصله در دسترس برنامه قرار می‌گیرند. با این حال، پس از مسدود شدن به مدت *tenths* دهم ثانیه، اگر چیزی تایپ نشده باشد، یک استثنا پرتاب می‌شود. مقدار *tenths* باید عددی بین ``1`` و ``255`` باشد. برای خروج از حالت نیمه‌تأخیر از :func:`nocbreak` استفاده کنید." msgid "Change the definition of a color, taking the number of the color to be changed followed by three RGB values (for the amounts of red, green, and blue components). The value of *color_number* must be between ``0`` and ``COLORS - 1``. Each of *r*, *g*, *b*, must be a value between ``0`` and ``1000``. When :func:`init_color` is used, all occurrences of that color on the screen immediately change to the new definition. This function is a no-op on most terminals; it is active only if :func:`can_change_color` returns ``True``." @@ -343,8 +345,8 @@ msgstr ":func:`start_color` هشت رنگ پایه (سیاه، قرمز، سبز msgid "Return a logical OR of all video attributes supported by the terminal. This information is useful when a curses program needs complete control over the appearance of the screen." msgstr "یک OR منطقی از تمام ویژگی‌های ویدیویی مورد پشتیبانی پایانه را برمی‌گرداند. این اطلاعات زمانی مفید است که یک برنامه curses به کنترل کامل بر ظاهر صفحه نیاز داشته باشد." -msgid "Return the value of the environment variable :envvar:`TERM`, as a bytes object, truncated to 14 characters." -msgstr "مقدار متغیر محیطی :envvar:`TERM` را به‌عنوان یک شیء بایتی برمی‌گرداند، که به ۱۴ نویسه کوتاه شده است." +msgid "Return the name of the terminal in use, as a bytes object. This is the name passed to :func:`setupterm`, or the value of the :envvar:`TERM` environment variable if none was given. Some curses libraries truncate it to 14 characters." +msgstr "" msgid "Return the value of the Boolean capability corresponding to the terminfo capability name *capname* as an integer. Return the value ``-1`` if *capname* is not a Boolean capability, or ``0`` if it is canceled or absent from the terminal description." msgstr "مقدار قابلیت بولی متناظر با نام قابلیت *capname* در terminfo را به‌صورت یک عدد صحیح برمی‌گرداند. اگر *capname* یک قابلیت بولی نباشد، مقدار ``-1`` و اگر لغو شده یا در توضیح پایانه وجود نداشته باشد، مقدار ``0`` را برمی‌گرداند." @@ -628,7 +630,9 @@ msgstr "اگر *flag* برابر ``True`` باشد، هر تغییری در تص msgid "Return the character at the given position in the window. The bottom 8 bits are the character proper and the upper bits are the attributes; extract them with the :data:`A_CHARTEXT` and :data:`A_ATTRIBUTES` bit-masks, and the color pair with :func:`pair_number`. The character byte is the locale-encoded byte of the cell's character, consistent with :meth:`instr`. On a wide-character build, a character that does not fit in a single byte in the current locale has a character byte of ``0``; use :meth:`instr` to read such characters." msgstr "نویسه را در موقعیت داده‌شده در پنجره برمی‌گرداند. ۸ بیت پایینی، خود نویسه است و بیت‌های بالایی، ویژگی‌ها هستند؛ آن‌ها را با نقاب‌های بیتی :data:`A_CHARTEXT` و :data:`A_ATTRIBUTES`، و جفت رنگ را با :func:`pair_number` استخراج کنید. بایت نویسه، بایت کدگذاری‌شده بر اساس تنظیمات locale برای نویسه‌ی سلول است و با :meth:`instr` سازگار است. در یک ساخت با نویسه‌های پهن (wide-character build)، نویسه‌ای که در تنظیمات locale فعلی در یک بایت جا نمی‌شود، بایت نویسه‌ی آن ``0`` است؛ برای خواندن چنین نویسه‌هایی از :meth:`instr` استفاده کنید." -msgid "Insert character *ch* with attributes *attr* before the character under the cursor, or at ``(y, x)`` if specified. All characters to the right of the cursor are shifted one position right, with the rightmost character on the line being lost. The cursor position does not change." +#, fuzzy +#| msgid "Insert character *ch* with attributes *attr* before the character under the cursor, or at ``(y, x)`` if specified. All characters to the right of the cursor are shifted one position right, with the rightmost character on the line being lost. The cursor position does not change." +msgid "Insert character *ch* with attributes *attr* before the character under the cursor, or at ``(y, x)`` if specified. All characters to the right of the cursor are shifted one position right, with the rightmost character on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." msgstr "نویسه *ch* را با ویژگی‌های *attr* پیش از نویسه زیر مکان‌نما، یا در ``(y, x)`` در صورت مشخص بودن، درج می‌کند. تمام نویسه‌های سمت راست مکان‌نما یک موقعیت به راست جابه‌جا می‌شوند و راست‌ترین نویسه خط از بین می‌رود. موقعیت مکان‌نما تغییر نمی‌کند." msgid "Insert *nlines* lines into the specified window above the current line. The *nlines* bottom lines are lost. For negative *nlines*, delete *nlines* lines starting with the one under the cursor, and move the remaining lines up. The bottom *nlines* lines are cleared. The current cursor position remains the same." @@ -637,7 +641,9 @@ msgstr "*nlines* خط را در پنجره‌ی مشخص‌شده، بالای msgid "Insert a blank line under the cursor. All following lines are moved down by one line." msgstr "یک خط خالی زیر مکان‌نما درج می‌کند. همه‌ی سطرهای بعدی یک خط به پایین جابه‌جا می‌شوند." -msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor, up to *n* characters. If *n* is zero or negative, the entire string is inserted. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." +#, fuzzy +#| msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor, up to *n* characters. If *n* is zero or negative, the entire string is inserted. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." +msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor, up to *n* characters. If *n* is negative, the entire string is inserted. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." msgstr "یک رشته از نویسه‌ها (هر تعداد نویسه که در خط جا شود) را پیش از نویسه‌ی زیر مکان‌نما، تا سقف *n* نویسه درج کنید. اگر *n* صفر یا منفی باشد، تمام رشته درج می‌شود. همه‌ی نویسه‌های سمت راست مکان‌نما به سمت راست جابه‌جا می‌شوند و راست‌ترین نویسه‌های خط از دست می‌روند. موقعیت مکان‌نما تغییر نمی‌کند (پس از حرکت به *y*، *x*، در صورت مشخص بودن)." msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." @@ -718,7 +724,9 @@ msgstr "این ۶ آرگومان فقط زمانی می‌توانند مشخص msgid "Reallocate storage for a curses window to adjust its dimensions to the specified values. If either dimension is larger than the current values, the window's data is filled with blanks that have the current background rendition (as set by :meth:`bkgdset`) merged into them." msgstr "فضای ذخیره‌سازی برای یک پنجره curses را دوباره تخصیص می‌دهد تا ابعاد آن با مقادیر مشخص‌شده تنظیم شود. اگر هر یک از ابعاد بزرگ‌تر از مقادیر فعلی باشد، داده‌های پنجره با نویسه‌های خالی پر می‌شوند که جلوه پس‌زمینه فعلی (که با :meth:`bkgdset` تنظیم شده است) در آن‌ها ادغام شده است." -msgid "Scroll the screen or scrolling region. Scroll upward by *lines* lines if *lines* is positive, or downward if it is negative. Scrolling has no effect unless it has been enabled for the window with :meth:`scrollok`." +#, fuzzy +#| msgid "Scroll the screen or scrolling region. Scroll upward by *lines* lines if *lines* is positive, or downward if it is negative. Scrolling has no effect unless it has been enabled for the window with :meth:`scrollok`." +msgid "Scroll the screen or scrolling region. Scroll upward by *lines* lines if *lines* is positive, or downward if it is negative. Raise :exc:`curses.error` unless scrolling has been enabled for the window with :meth:`scrollok`." msgstr "صفحه یا ناحیه‌ی پیمایش را پیمایش می‌کند. اگر *lines* مثبت باشد، به اندازه‌ی *lines* خط به بالا پیمایش می‌شود و اگر منفی باشد، به پایین پیمایش می‌شود. پیمایش هیچ اثری ندارد مگر اینکه با :meth:`scrollok` برای پنجره فعال شده باشد." msgid "Control what happens when the cursor of a window is moved off the edge of the window or scrolling region, either as a result of a newline action on the bottom line, or typing the last character of the last line. If *flag* is ``False``, the cursor is left on the bottom line. If *flag* is ``True``, the window is scrolled up one line. Note that in order to get the physical scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." @@ -1555,6 +1563,9 @@ msgstr "محتوای پنجره را به‌عنوان یک رشته برمی‌ msgid "This attribute is a flag which controls the interpretation of blanks in the window. When it is on, trailing blanks on each line are ignored; any cursor motion that would land the cursor on a trailing blank goes to the end of that line instead, and trailing blanks are stripped when the window contents are gathered." msgstr "این ویژگی یک پرچم است که تفسیر فاصله‌ها در پنجره را کنترل می‌کند. وقتی روشن است، فاصله‌های انتهایی هر خط نادیده گرفته می‌شوند؛ هر حرکت مکان‌نما که مکان‌نما را روی یک فاصله‌ی انتهایی قرار دهد، در عوض به انتهای آن خط می‌رود، و فاصله‌های انتهایی هنگام جمع‌آوری محتوای پنجره حذف می‌شوند." +#~ msgid "Return the value of the environment variable :envvar:`TERM`, as a bytes object, truncated to 14 characters." +#~ msgstr "مقدار متغیر محیطی :envvar:`TERM` را به‌عنوان یک شیء بایتی برمی‌گرداند، که به ۱۴ نویسه کوتاه شده است." + #~ msgid "Get a character. Note that the integer returned does *not* have to be in ASCII range: function keys, keypad keys and so on are represented by numbers higher than 255. In no-delay mode, return ``-1`` if there is no input, otherwise wait until a key is pressed." #~ msgstr "یک نویسه دریافت می‌کند. توجه داشته باشید که عدد صحیح برگردانده‌شده *لزوماً* در محدوده ASCII نیست: کلیدهای تابع، کلیدهای صفحه‌کلید عددی و غیره با اعدادی بزرگ‌تر از ۲۵۵ نمایش داده می‌شوند. در حالت بدون تأخیر، اگر ورودی وجود نداشته باشد ``-1`` را برمی‌گرداند، در غیر این صورت تا زمانی که یک کلید فشرده شود صبر می‌کند." diff --git a/library/datetime.po b/library/datetime.po index 7edd2652d..3bf201dc9 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 14:43+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -156,29 +156,11 @@ msgstr "اشیای نوع :class:`date` همیشه ساده هستند." msgid "An object of type :class:`.time` or :class:`.datetime` may be aware or naive." msgstr "یک شیء از نوع :class:`.time` یا :class:`.datetime` ممکن است آگاه یا ساده باشد." -msgid "A :class:`.datetime` object ``d`` is aware if both of the following hold:" -msgstr "یک شیء :class:`.datetime` به نام ``d`` آگاه است اگر هر دو شرط زیر برقرار باشند:" - -msgid "``d.tzinfo`` is not ``None``" -msgstr "``d.tzinfo`` برابر با ``None`` نیست" - -msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" -msgstr "``d.tzinfo.utcoffset(d)`` مقدار ``None`` را برنمی‌گرداند" - -msgid "Otherwise, ``d`` is naive." -msgstr "در غیر این صورت، ``d`` ساده است." - -msgid "A :class:`.time` object ``t`` is aware if both of the following hold:" -msgstr "یک شیء ``t`` از کلاس :class:`.time` آگاه است اگر هر دو مورد زیر برقرار باشند:" - -msgid "``t.tzinfo`` is not ``None``" -msgstr "``t.tzinfo`` برابر ``None`` نیست" - -msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." -msgstr "``t.tzinfo.utcoffset(None)`` مقدار ``None`` را برنمی‌گرداند." +msgid "A :class:`.datetime` object ``d`` is aware if :meth:`d.utcoffset() ` does not return ``None``. Otherwise, ``d`` is naive." +msgstr "" -msgid "Otherwise, ``t`` is naive." -msgstr "در غیر این صورت، ``t`` ساده است." +msgid "A :class:`.time` object ``t`` is aware if :meth:`t.utcoffset() ` does not return ``None``. Otherwise, ``t`` is naive." +msgstr "" msgid "The distinction between aware and naive doesn't apply to :class:`timedelta` objects." msgstr "تمایز میان آگاه و ساده برای اشیای :class:`timedelta` صدق نمی‌کند." @@ -3114,6 +3096,9 @@ msgstr "رشته‌های قالب بدون جداکننده ممکن است د msgid "When used to parse partial dates lacking a year, :meth:`.datetime.strptime` and :meth:`.date.strptime` will raise when encountering February 29 because the default year of 1900 is *not* a leap year. Always add a default leap year to partial date strings before parsing." msgstr "هنگامی که برای تجزیه‌ی تاریخ‌های ناقص فاقد سال استفاده شوند، :meth:`.datetime.strptime` و :meth:`.date.strptime` در صورت مواجهه با ۲۹ فوریه استثنا پرتاب می‌کنند، زیرا سال پیش‌فرض ۱۹۰۰ یک سال کبیسه *نیست*. همیشه پیش از تجزیه، یک سال کبیسه‌ی پیش‌فرض به رشته‌های تاریخ ناقص اضافه کنید." +msgid "If a :meth:`~.datetime.strptime` format string contains more than one directive for the same field, for example both ``%Y`` and ``%y``, every directive must still match the input, but only the value of the last one is used. For example, parsing ``200099`` with ``%Y%y`` gives the year 1999. Repeating the same directive, like ``%Y%Y``, raises an error." +msgstr "" + msgid "" ">>> import datetime as dt\n" ">>> value = \"2/29\"\n" @@ -3243,3 +3228,27 @@ msgstr "% (درصد)" msgid "datetime format" msgstr "قالب datetime" + +#~ msgid "A :class:`.datetime` object ``d`` is aware if both of the following hold:" +#~ msgstr "یک شیء :class:`.datetime` به نام ``d`` آگاه است اگر هر دو شرط زیر برقرار باشند:" + +#~ msgid "``d.tzinfo`` is not ``None``" +#~ msgstr "``d.tzinfo`` برابر با ``None`` نیست" + +#~ msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" +#~ msgstr "``d.tzinfo.utcoffset(d)`` مقدار ``None`` را برنمی‌گرداند" + +#~ msgid "Otherwise, ``d`` is naive." +#~ msgstr "در غیر این صورت، ``d`` ساده است." + +#~ msgid "A :class:`.time` object ``t`` is aware if both of the following hold:" +#~ msgstr "یک شیء ``t`` از کلاس :class:`.time` آگاه است اگر هر دو مورد زیر برقرار باشند:" + +#~ msgid "``t.tzinfo`` is not ``None``" +#~ msgstr "``t.tzinfo`` برابر ``None`` نیست" + +#~ msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." +#~ msgstr "``t.tzinfo.utcoffset(None)`` مقدار ``None`` را برنمی‌گرداند." + +#~ msgid "Otherwise, ``t`` is naive." +#~ msgstr "در غیر این صورت، ``t`` ساده است." diff --git a/library/gc.po b/library/gc.po index 2ba7e224e..839cc710b 100644 --- a/library/gc.po +++ b/library/gc.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 16:11+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -64,6 +64,11 @@ msgstr "پرچم‌های اشکال‌زدایی را که در حال حاضر msgid "Returns a list of all objects tracked by the collector, excluding the list returned. If *generation* is not ``None``, return only the objects tracked by the collector that are in that generation." msgstr "فهرستی از تمام اشیای پیگیری‌شده توسط جمع‌کننده را بازمی‌گرداند، به‌جز فهرست برگردانده‌شده. اگر *generation* برابر ``None`` نباشد، فقط اشیای پیگیری‌شده توسط جمع‌کننده را که در آن نسل قرار دارند، بازمی‌گرداند." +#, fuzzy +#| msgid "Care must be taken when using objects returned by :func:`get_referrers` because some of them could still be under construction and hence in a temporarily invalid state. Avoid using :func:`get_referrers` for any purpose other than debugging." +msgid "Care must be taken when using objects returned by :func:`get_objects` because some of them could still be under construction and hence in a temporarily invalid state. Avoid using :func:`get_objects` for any purpose other than debugging." +msgstr "هنگام استفاده از اشیای برگردانده‌شده توسط :func:`get_referrers` باید احتیاط کنید، زیرا برخی از آن‌ها ممکن است هنوز در حال ساخت باشند و بنابراین به‌طور موقت در وضعیت نامعتبری قرار داشته باشند. از استفاده از :func:`get_referrers` برای هر منظوری به‌جز اشکال‌زدایی خودداری کنید." + msgid "New *generation* parameter." msgstr "پارامتر *generation* جدید." diff --git a/library/gzip.po b/library/gzip.po index 8924b3a89..4e3987368 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2021-06-28 01:07+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -94,7 +94,9 @@ msgstr "توجه داشته باشید که پرونده همیشه در حال msgid "The *compresslevel* argument is an integer from ``0`` to ``9`` controlling the level of compression; ``1`` is fastest and produces the least compression, and ``9`` is slowest and produces the most compression. ``0`` is no compression. The default is ``9``." msgstr "آرگومان *compresslevel* یک عدد صحیح از ``0`` تا ``9`` است که سطح فشرده‌سازی را کنترل می‌کند؛ ``1`` سریع‌ترین است و کمترین میزان فشرده‌سازی را تولید می‌کند، و ``9`` کندترین است و بیشترین میزان فشرده‌سازی را تولید می‌کند. ``0`` بدون فشرده‌سازی است. مقدار پیش‌فرض ``9`` است." -msgid "The optional *mtime* argument is the timestamp requested by gzip. The time is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. If *mtime* is omitted or ``None``, the current time is used. Use *mtime* = 0 to generate a compressed stream that does not depend on creation time." +#, fuzzy +#| msgid "The optional *mtime* argument is the timestamp requested by gzip. The time is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. If *mtime* is omitted or ``None``, the current time is used. Use *mtime* = 0 to generate a compressed stream that does not depend on creation time." +msgid "The optional *mtime* argument is the timestamp requested by gzip. The time is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. Set *mtime* to ``0`` to generate a compressed stream that does not depend on creation time. If *mtime* is omitted or ``None``, the current time is used; however, if the current time is outside the range 00:00:00 UTC, January 1, 1970 through 06:28:15 UTC, February 7, 2106, or explicitly passed *mtime* argument is outside the range ``0`` to ``2**32-1``, then the value ``0`` is used instead." msgstr "آرگومان اختیاری *mtime* برچسب زمانی است که gzip درخواست می‌کند. این زمان در قالب Unix است، یعنی ثانیه‌های سپری‌شده از ۰۰:۰۰:۰۰ UTC، ۱ ژانویه ۱۹۷۰. اگر *mtime* حذف شود یا ``None`` باشد، از زمان جاری استفاده می‌شود. برای تولید یک جریان فشرده که به زمان ایجاد وابسته نباشد، از *mtime* = 0 استفاده کنید." msgid "See below for the :attr:`mtime` attribute that is set when decompressing." diff --git a/library/http.client.po b/library/http.client.po index 63cbbff06..2b1dcbbe6 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 12:34+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -235,7 +235,9 @@ msgstr "میزبان و پورت را برای تونل‌زنی HTTP Connect ت msgid "The *host* and *port* arguments specify the endpoint of the tunneled connection (i.e. the address included in the CONNECT request, *not* the address of the proxy server)." msgstr "آرگومان‌های *host* و *port* پایانه‌ی اتصال تونل‌شده را مشخص می‌کنند (یعنی نشانی گنجانده‌شده در درخواست CONNECT، *نه* نشانی سرور پراکسی)." -msgid "The *headers* argument should be a mapping of extra HTTP headers to send with the CONNECT request." +#, fuzzy +#| msgid "The *headers* argument should be a mapping of extra HTTP headers to send with the CONNECT request." +msgid "The *headers* argument should be a mapping of extra HTTP headers to send with the CONNECT request. Non-string header values are converted to strings via :func:`str`." msgstr "آرگومان *headers* باید یک نگاشت از سرآیندهای HTTP اضافی برای ارسال به‌همراه درخواست CONNECT باشد." msgid "As HTTP/1.1 is used for HTTP CONNECT tunnelling request, `as per the RFC `_, a HTTP ``Host:`` header must be provided, matching the authority-form of the request target provided as the destination for the CONNECT request. If a HTTP ``Host:`` header is not provided via the headers argument, one is generated and transmitted automatically." diff --git a/library/inspect.po b/library/inspect.po index 53f424f55..edbca8a5f 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 15:35+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -459,7 +459,9 @@ msgstr "توکار" msgid "original name of this function or method" msgstr "نام اصلی این تابع یا متد" -msgid "instance to which a method is bound, or ``None``" +#, fuzzy +#| msgid "instance to which a method is bound, or ``None``" +msgid "instance to which a method is bound, or module object a function was defined in, or ``None``" msgstr "نمونه‌ای که یک متد به آن مقید شده است، یا ``None``" msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." diff --git a/library/mailbox.po b/library/mailbox.po index df55aeb89..83757d010 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 09:15+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -33,6 +33,9 @@ msgstr "**کد منبع:** :source:`Lib/mailbox.py`" msgid "This module defines two classes, :class:`Mailbox` and :class:`Message`, for accessing and manipulating on-disk mailboxes and the messages they contain. :class:`!Mailbox` offers a dictionary-like mapping from keys to messages. :class:`!Message` extends the :mod:`email.message` module's :class:`~email.message.Message` class with format-specific state and behavior. Supported mailbox formats are Maildir, mbox, MH, Babyl, and MMDF." msgstr "این ماژول دو کلاس :class:`Mailbox` و :class:`Message` را برای دسترسی و دستکاری صندوق‌های پستی روی دیسک و پیام‌های موجود در آن‌ها تعریف می‌کند. :class:`!Mailbox` نگاشتی شبیه دیکشنری از کلیدها به پیام‌ها ارائه می‌دهد. :class:`!Message` کلاس :class:`~email.message.Message` در ماژول :mod:`email.message` را با وضعیت و رفتار خاص قالب گسترش می‌دهد. قالب‌های پشتیبانی‌شده صندوق پستی شامل Maildir، mbox، MH، Babyl و MMDF هستند." +msgid "The :mod:`!mailbox` module is designed for use in trusted environments, where data from untrusted sources is never passed to the module's API calls and only trusted users have access to the filesystems accessible to the module." +msgstr "" + msgid "Module :mod:`email`" msgstr "ماژول :mod:`email`" diff --git a/library/mmap.po b/library/mmap.po index 24be99046..90c6ea170 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 09:18+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -32,7 +32,9 @@ msgstr "دسترس‌پذیری" msgid "This module does not work or is not available on WebAssembly. See :ref:`wasm-availability` for more information." msgstr "این ماژول روی WebAssembly کار نمی‌کند یا در دسترس نیست. برای اطلاعات بیشتر، :ref:`wasm-availability` را ببینید." -msgid "Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects `. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` module to search through a memory-mapped file. You can also change a single byte by doing ``obj[index] = 97``, or change a subsequence by assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write data starting at the current file position, and :meth:`seek` through the file to different positions." +#, fuzzy +#| msgid "Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects `. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` module to search through a memory-mapped file. You can also change a single byte by doing ``obj[index] = 97``, or change a subsequence by assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write data starting at the current file position, and :meth:`seek` through the file to different positions." +msgid "Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects `. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` module to search through a memory-mapped file. You can also change a single byte by doing ``obj[index] = 97``, or change a subsequence by assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write data starting at the current file position, and :meth:`~mmap.mmap.seek` through the file to different positions." msgstr "اشیای پرونده نگاشت‌شده به حافظه، هم مانند :class:`bytearray` و هم مانند :term:`اشیای پرونده ` رفتار می‌کنند. شما می‌توانید از اشیای mmap در بیشتر مواردی استفاده کنید که انتظار می‌رود یک :class:`bytearray` وجود داشته باشد؛ برای مثال، می‌توانید از ماژول :mod:`re` برای جستجو در یک پرونده نگاشت‌شده به حافظه استفاده کنید. همچنین می‌توانید یک بایت را با ``obj[index] = 97`` تغییر دهید، یا یک زیردنباله را با انتساب به یک اسلایس تغییر دهید: ``obj[i1:i2] = b'...'``. همچنین می‌توانید داده‌ها را از موقعیت فعلی پرونده بخوانید و بنویسید، و با :meth:`seek` در پرونده به موقعیت‌های مختلف حرکت کنید." msgid "A memory-mapped file is created by the :class:`~mmap.mmap` constructor, which is different on Unix and on Windows. In either case you must provide a file descriptor for a file opened for update. If you wish to map an existing Python file object, use its :meth:`~io.IOBase.fileno` method to obtain the correct value for the *fileno* parameter. Otherwise, you can open the file using the :func:`os.open` function, which returns a file descriptor directly (the file still needs to be closed when done)." @@ -68,7 +70,9 @@ msgstr "**(نسخه‌ی یونیکس)** *length* بایت از پرونده م msgid "*flags* specifies the nature of the mapping. :const:`MAP_PRIVATE` creates a private copy-on-write mapping, so changes to the contents of the mmap object will be private to this process, and :const:`MAP_SHARED` creates a mapping that's shared with all other processes mapping the same areas of the file. The default value is :const:`MAP_SHARED`. Some systems have additional possible flags with the full list specified in :ref:`MAP_* constants `." msgstr "*flags* ماهیت نگاشت را مشخص می‌کند. :const:`MAP_PRIVATE` یک نگاشت خصوصی با کپی-در-نوشتن (copy-on-write) ایجاد می‌کند، بنابراین تغییرات در محتوای شیء mmap برای این فرایند خصوصی خواهد بود و :const:`MAP_SHARED` نگاشتی ایجاد می‌کند که با تمام فرایندهای دیگری که ناحیه‌های یکسانی از پرونده را نگاشت می‌کنند، به اشتراک گذاشته می‌شود. مقدار پیش‌فرض :const:`MAP_SHARED` است. برخی سیستم‌ها پرچم‌های ممکن بیشتری دارند که فهرست کامل آن‌ها در :ref:`MAP_* constants ` مشخص شده است." -msgid "*prot*, if specified, gives the desired memory protection; the two most useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify that the pages may be read or written. *prot* defaults to :const:`PROT_READ \\| PROT_WRITE`." +#, fuzzy +#| msgid "*prot*, if specified, gives the desired memory protection; the two most useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify that the pages may be read or written. *prot* defaults to :const:`PROT_READ \\| PROT_WRITE`." +msgid "*prot*, if specified, gives the desired memory protection; the two most useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify that the pages may be read or written. *prot* defaults to :const:`PROT_READ` \\| :const:`PROT_WRITE`." msgstr "*prot*، در صورت مشخص شدن، محافظت دلخواه از حافظه را تعیین می‌کند؛ دو مقدار از مفیدترین مقادیر عبارتند از :const:`PROT_READ` و :const:`PROT_WRITE`، برای مشخص کردن اینکه صفحه‌ها می‌توانند خوانده یا نوشته شوند. *prot* به‌طور پیش‌فرض :const:`PROT_READ \\| PROT_WRITE` است." msgid "*access* may be specified in lieu of *flags* and *prot* as an optional keyword parameter. It is an error to specify both *flags*, *prot* and *access*. See the description of *access* above for information on how to use this parameter." @@ -267,7 +271,31 @@ msgstr "تعداد بایت‌های نوشته‌شده اکنون برگردا msgid "Write the integer *byte* into memory at the current position of the file pointer; the file position is advanced by ``1``. If the mmap was created with :const:`ACCESS_READ`, then writing to it will raise a :exc:`TypeError` exception." msgstr "عدد صحیح *byte* را در حافظه، در موقعیت فعلی اشاره‌گر پرونده می‌نویسد؛ موقعیت پرونده به اندازه ``1`` پیش می‌رود. اگر mmap با :const:`ACCESS_READ` ایجاد شده باشد، نوشتن در آن باعث پرتاب استثنای :exc:`TypeError` می‌شود." -msgid "MADV_* Constants" +#, fuzzy +#| msgid "MAP_* Constants" +msgid "ACCESS_* constants" +msgstr "ثابت‌های MAP_*" + +msgid "These constants specify the access mode for a memory mapping. :const:`ACCESS_READ` provides read-only access, :const:`ACCESS_WRITE` provides write-through access, and :const:`ACCESS_COPY` provides copy-on-write access. :const:`ACCESS_DEFAULT` defers to the *prot* argument of :class:`mmap`." +msgstr "" + +msgid "Page size constants" +msgstr "" + +msgid ":const:`PAGESIZE` is the system memory page size in bytes. :const:`ALLOCATIONGRANULARITY` is the minimum alignment in bytes required for the *offset* argument of :class:`mmap`. On Unix, :const:`ALLOCATIONGRANULARITY` is equal to :const:`PAGESIZE`." +msgstr "" + +#, fuzzy +#| msgid "MAP_* Constants" +msgid "PROT_* constants" +msgstr "ثابت‌های MAP_*" + +msgid "Memory protection flags accepted by the *prot* argument of :class:`mmap`. :const:`PROT_READ` allows pages to be read, :const:`PROT_WRITE` allows pages to be written, and :const:`PROT_EXEC` allows pages to be executed. Values can be combined using the bitwise OR operator. Not every option is present on every system." +msgstr "" + +#, fuzzy +#| msgid "MADV_* Constants" +msgid "MADV_* constants" msgstr "ثابت‌های MADV_*" msgid "These options can be passed to :meth:`mmap.madvise`. Not every option will be present on every system." @@ -276,7 +304,9 @@ msgstr "این گزینه‌ها را می‌توان به :meth:`mmap.madvise` msgid "Availability: Systems with the madvise() system call." msgstr "دسترس‌پذیری: سیستم‌های دارای فراخوان سیستمی madvise()." -msgid "MAP_* Constants" +#, fuzzy +#| msgid "MAP_* Constants" +msgid "MAP_* constants" msgstr "ثابت‌های MAP_*" msgid "These are the various flags that can be passed to :meth:`mmap.mmap`. :data:`MAP_ALIGNED_SUPER` is only available at FreeBSD and :data:`MAP_CONCEAL` is only available at OpenBSD. Note that some options might not be present on some systems." diff --git a/library/multiprocessing.po b/library/multiprocessing.po index 020bc2695..b148c746a 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 15:53+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -187,12 +187,17 @@ msgstr "*forkserver*" msgid "When the program starts and selects the *forkserver* start method, a server process is spawned. From then on, whenever a new process is needed, the parent process connects to the server and requests that it fork a new process. The fork server process is single threaded unless system libraries or preloaded imports spawn threads as a side-effect so it is generally safe for it to use :func:`os.fork`. No unnecessary resources are inherited." msgstr "هنگامی که برنامه شروع می‌شود و متد شروع *forkserver* را انتخاب می‌کند، یک فرایند سرور ایجاد می‌شود. از آن پس، هر زمان که به یک فرایند جدید نیاز باشد، فرایند والد به سرور متصل می‌شود و از آن درخواست می‌کند که یک فرایند جدید را fork کند. فرایند سرور fork تک‌نخی است، مگر اینکه کتابخانه‌های سیستمی یا ایمپورت‌های از پیش بارگذاری‌شده به‌عنوان یک اثر جانبی نخ‌هایی را ایجاد کنند؛ بنابراین استفاده از :func:`os.fork` برای آن عموماً امن است. هیچ منبع غیرضروری به ارث برده نمی‌شود." -msgid "Available on POSIX platforms which support passing file descriptors over Unix pipes such as Linux. The default on those." +#, fuzzy +#| msgid "Available on POSIX platforms which support passing file descriptors over Unix pipes such as Linux. The default on those." +msgid "Available on POSIX platforms which support passing file descriptors over Unix pipes such as Linux. The default on those, unless there is no writable temporary directory (see :func:`tempfile.gettempdir`), which the fork server requires; *spawn* is the default in that case." msgstr "در پلتفرم‌های POSIX مانند لینوکس که از انتقال توصیف‌گرهای پرونده از طریق پایپ یونیکس پشتیبانی می‌کنند، در دسترس است. پیش‌فرض در آن‌ها." msgid "This became the default start method on POSIX platforms." msgstr "این به روش شروع پیش‌فرض در سکوهای POSIX تبدیل شد." +msgid "*spawn* is now the default start method when there is no writable temporary directory, for example on a read-only file system. Previously *forkserver* remained the default there and starting a process failed with an :exc:`OSError`. The default is determined when it is first needed rather than when :mod:`!multiprocessing` is imported. See :gh:`155717`." +msgstr "" + msgid "*spawn* added on all POSIX platforms, and *forkserver* added for some POSIX platforms. Child processes no longer inherit all of the parents inheritable handles on Windows." msgstr "*spawn* در همه‌ی پلتفرم‌های POSIX اضافه شد، و *forkserver* برای برخی پلتفرم‌های POSIX افزوده شد. فرآیندهای فرزند دیگر همه‌ی دسته‌های قابل ارث‌بری والد را در ویندوز به ارث نمی‌برند." diff --git a/library/os.po b/library/os.po index 4786b8449..416440b32 100644 --- a/library/os.po +++ b/library/os.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-12 15:04+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -1534,6 +1534,9 @@ msgstr "*path* می‌تواند یک :term:`شیء شبه‌مسیر ` ``os.scandir`` with argument ``path``." msgstr "یک :ref:`رویداد حسابرسی ` ``os.scandir`` را با آرگومان ``path`` پرتاب می‌کند." +msgid "Sharing a :func:`scandir` iterator between threads will not corrupt the iterator, but it is subject to :term:`race conditions `: which entries each thread receives is unspecified, and closing the iterator while another thread is iterating ends that iteration early." +msgstr "" + msgid "The :func:`scandir` iterator supports the :term:`context manager` protocol and has the following method:" msgstr "پیمایش‌گر :func:`scandir` از پروتکل :term:`context manager` پشتیبانی می‌کند و متد زیر را دارد:" diff --git a/library/pathlib.po b/library/pathlib.po index 40eb154df..d2783ad71 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-23 06:56+0330\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 17:37+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -424,6 +424,21 @@ msgstr "(توجه کنید که چگونه درایو و ریشه‌ی محلی msgid "Methods and properties" msgstr "متدها و ویژگی‌ها" +msgid "The :attr:`~PurePath.parent`, :attr:`~PurePath.name`, :attr:`~PurePath.stem`, and :attr:`~PurePath.suffix` properties describe different parts of a path. For example, given::" +msgstr "" + +msgid ">>> p = PurePosixPath('/srv/holy/grail.tar.gz')" +msgstr "" + +msgid "" +"For p = PurePosixPath('/srv/holy/grail.tar.gz'), p.parent is\n" +"PurePosixPath('/srv/holy'), p.name is 'grail.tar.gz',\n" +"p.stem is 'grail.tar', and p.suffix is '.gz'." +msgstr "" + +msgid "The stem excludes only the final suffix: in this example, it includes ``.tar``." +msgstr "" + msgid "Pure paths provide the following methods and properties:" msgstr "مسیرهای خالص، متدها و ویژگی‌های زیر را ارائه می‌دهند:" @@ -775,14 +790,24 @@ msgstr "" msgid "Match this path against the provided glob-style pattern. Return ``True`` if matching is successful, ``False`` otherwise. For example::" msgstr "این مسیر را با الگوی به‌سبک glob ارائه‌شده تطبیق می‌دهد. اگر تطبیق موفقیت‌آمیز باشد، ``True`` و در غیر این صورت ``False`` برمی‌گرداند. برای مثال::" +#, fuzzy +#| msgid "" +#| ">>> PurePath('a/b.py').full_match('a/*.py')\n" +#| "True\n" +#| ">>> PurePath('a/b.py').full_match('*.py')\n" +#| "False\n" +#| ">>> PurePath('/a/b/c.py').full_match('/a/**')\n" +#| "True\n" +#| ">>> PurePath('/a/b/c.py').full_match('**/*.py')\n" +#| "True" msgid "" ">>> PurePath('a/b.py').full_match('a/*.py')\n" "True\n" ">>> PurePath('a/b.py').full_match('*.py')\n" "False\n" -">>> PurePath('/a/b/c.py').full_match('/a/**')\n" -"True\n" ">>> PurePath('/a/b/c.py').full_match('**/*.py')\n" +"True\n" +">>> PurePath('/a/b/c.py').full_match('/a/**')\n" "True" msgstr "" ">>> PurePath('a/b.py').full_match('a/*.py')\n" @@ -794,6 +819,26 @@ msgstr "" ">>> PurePath('/a/b/c.py').full_match('**/*.py')\n" "True" +msgid "Patterns ending in \"``/**``\", as in the example above, may surprise when passed to ``full_match``. Even though \"``**``\" can match 0 segments, \"``.../**``\" requires a separator to match. Hence \"``/a/**``\" does not match path \"``/a``\". Since :class:`PurePath` drops trailing slashes, this pattern also does not match \"``/a/``\"." +msgstr "" + +#, fuzzy +#| msgid "" +#| ">>> PurePosixPath('b.py').full_match('*.PY')\n" +#| "False\n" +#| ">>> PureWindowsPath('b.py').full_match('*.PY')\n" +#| "True" +msgid "" +">>> PurePath('/a').full_match('/a/**')\n" +"False\n" +">>> PurePath('/a/').full_match('/a/**')\n" +"False" +msgstr "" +">>> PurePosixPath('b.py').full_match('*.PY')\n" +"False\n" +">>> PureWindowsPath('b.py').full_match('*.PY')\n" +"True" + msgid ":ref:`pathlib-pattern-language` documentation." msgstr "مستندات :ref:`pathlib-pattern-language`." @@ -1881,8 +1926,8 @@ msgstr "وایلدکارد زیر در الگوهای :meth:`~PurePath.full_matc msgid "``**`` (entire segment)" msgstr "``**`` (کل بخش)" -msgid "Matches any number of file or directory segments, including zero." -msgstr "با هر تعداد بخش پرونده یا پوشه، از جمله صفر، مطابقت دارد." +msgid "Matches any number of file or directory segments, including zero. Note that in :meth:`~PurePath.full_match`, \"``a/**``\" does not match \"``a``\", whereas :meth:`~Path.glob` yields \"``a``\" for that pattern." +msgstr "" msgid "``*`` (entire segment)" msgstr "``*`` (کل بخش)" @@ -2262,6 +2307,9 @@ msgstr "مسیر" msgid "operations" msgstr "عملیات" +#~ msgid "Matches any number of file or directory segments, including zero." +#~ msgstr "با هر تعداد بخش پرونده یا پوشه، از جمله صفر، مطابقت دارد." + #~ msgid "" #~ ">>> PurePath()\n" #~ "PurePosixPath('.')" diff --git a/library/tempfile.po b/library/tempfile.po index d9a86c700..fb7707bb5 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 15:36+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -141,6 +141,12 @@ msgstr "پوشه را می‌توان با فراخوانی متد :meth:`!clean msgid "The *delete* parameter can be used to disable cleanup of the directory tree upon exiting the context. While it may seem unusual for a context manager to disable the action taken when exiting the context, it can be useful during debugging or when you need your cleanup behavior to be conditional based on other logic." msgstr "می‌توان از پارامتر *delete* برای غیرفعال کردن پاک‌سازی درخت پوشه‌ها هنگام خروج از زمینه استفاده کرد. اگرچه ممکن است غیرعادی به نظر برسد که یک مدیر زمینه عملیات انجام‌شده هنگام خروج از زمینه را غیرفعال کند، اما این کار می‌تواند در حین اشکال‌زدایی یا زمانی که نیاز دارید رفتار پاک‌سازی شما بر اساس منطق دیگری مشروط باشد، مفید باشد." +msgid "Cleanup is not robust against the tree being modified while it is removed. Files outside of the tree may have their permissions and file flags reset." +msgstr "" + +msgid "On systems where :data:`shutil.rmtree.avoids_symlink_attacks` is false, manipulating symbolic links during cleanup may cause files outside of the tree to be removed." +msgstr "" + msgid "Raises an :ref:`auditing event ` ``tempfile.mkdtemp`` with argument ``fullpath``." msgstr "یک :ref:`رویداد حسابرسی ` ``tempfile.mkdtemp`` را با آرگومان ``fullpath`` پرتاب می‌کند." diff --git a/library/test.po b/library/test.po index cdf8bf989..50675e7ab 100644 --- a/library/test.po +++ b/library/test.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-13 13:15+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -197,7 +197,9 @@ msgstr "کتابی از کنت بک درباره‌ی نوشتن آزمون‌ه msgid "Running tests using the command-line interface" msgstr "اجرای آزمون‌ها با استفاده از رابط خط فرمان" -msgid "The :mod:`!test` package can be run as a script to drive Python's regression test suite, thanks to the :option:`-m` option: :program:`python -m test`. Under the hood, it uses :mod:`!test.regrtest`; the call :program:`python -m test.regrtest` used in previous Python versions still works. Running the script by itself automatically starts running all regression tests in the :mod:`!test` package. It does this by finding all modules in the package whose name starts with ``test_``, importing them, and executing the function :func:`test_main` if present or loading the tests via unittest.TestLoader.loadTestsFromModule if ``test_main`` does not exist. The names of tests to execute may also be passed to the script. Specifying a single regression test (:program:`python -m test test_spam`) will minimize output and only print whether the test passed or failed." +#, fuzzy +#| msgid "The :mod:`!test` package can be run as a script to drive Python's regression test suite, thanks to the :option:`-m` option: :program:`python -m test`. Under the hood, it uses :mod:`!test.regrtest`; the call :program:`python -m test.regrtest` used in previous Python versions still works. Running the script by itself automatically starts running all regression tests in the :mod:`!test` package. It does this by finding all modules in the package whose name starts with ``test_``, importing them, and executing the function :func:`test_main` if present or loading the tests via unittest.TestLoader.loadTestsFromModule if ``test_main`` does not exist. The names of tests to execute may also be passed to the script. Specifying a single regression test (:program:`python -m test test_spam`) will minimize output and only print whether the test passed or failed." +msgid "The :mod:`!test` package can be run as a script to drive Python's regression test suite, thanks to the :option:`-m` option: :program:`python -m test`. Under the hood, it uses :mod:`!test.regrtest`; the call :program:`python -m test.regrtest` used in previous Python versions still works. Running the script by itself automatically starts running all regression tests in the :mod:`!test` package. It does this by finding modules and packages whose names start with ``test_``, importing each one, and loading its tests with :meth:`unittest.TestLoader.loadTestsFromModule`. See the :ref:`load_tests protocol ` for how a module or package can customize what is loaded. Defining a module-level ``test_main()`` function is not supported and causes the test to fail. The names of tests to execute may also be passed to the script. Specifying a single regression test (:program:`python -m test test_spam`) will minimize output and only print whether the test passed or failed." msgstr "بسته‌ی :mod:`!test` را می‌توان به‌کمک گزینه‌ی :option:`-m` به‌صورت یک اسکریپت برای اجرای بدنه‌ی آزمون‌های رگرسیون پایتون اجرا کرد: :program:`python -m test`. در پشت صحنه، این بسته از :mod:`!test.regrtest` استفاده می‌کند؛ فراخوانی :program:`python -m test.regrtest` که در نسخه‌های پیشین پایتون استفاده می‌شد، همچنان کار می‌کند. اجرای اسکریپت به‌تنهایی به‌طور خودکار اجرای همه‌ی آزمون‌های رگرسیون موجود در بسته‌ی :mod:`!test` را آغاز می‌کند. این کار با یافتن همه‌ی ماژول‌های موجود در بسته که نامشان با ``test_`` شروع می‌شود، ایمپورت کردن آن‌ها، و اجرای تابع :func:`test_main` در صورت وجود، یا بارگذاری آزمون‌ها از طریق unittest.TestLoader.loadTestsFromModule در صورت نبود ``test_main`` انجام می‌شود. نام آزمون‌های مورد نظر برای اجرا نیز می‌تواند به اسکریپت داده شود. مشخص کردن یک آزمون رگرسیون به‌صورت تکی (:program:`python -m test test_spam`) خروجی را به حداقل می‌رساند و فقط چاپ می‌کند که آزمون موفقیت‌آمیز بوده یا شکست خورده است." msgid "Running :mod:`!test` directly allows what resources are available for tests to use to be set. You do this by using the ``-u`` command-line option. Specifying ``all`` as the value for the ``-u`` option enables all possible resources: :program:`python -m test -uall`. If all but one resource is desired (a more common case), a comma-separated list of resources that are not desired may be listed after ``all``. The command :program:`python -m test -uall,-audio,-largefile` will run :mod:`!test` with all resources except the ``audio`` and ``largefile`` resources. For a list of all resources and more command-line options, run :program:`python -m test -h`." @@ -445,8 +447,8 @@ msgstr "مقدار مشخص‌شده برای *resource* را برمی‌گرد msgid "Return ``True`` if Python was not built with ``-O0`` or ``-Og``." msgstr "اگر پایتون با ``-O0`` یا ``-Og`` ساخته نشده باشد، ``True`` را برمی‌گرداند." -msgid "Return :const:`_testcapi.WITH_PYMALLOC`." -msgstr ":const:`_testcapi.WITH_PYMALLOC` را برمی‌گرداند." +msgid "Return ``True`` if Python was built with :ref:`pymalloc ` enabled and is not a :term:`free-threaded build`." +msgstr "" msgid "Raise :exc:`ResourceDenied` if *resource* is not available. *msg* is the argument to :exc:`ResourceDenied` if it is raised. Always returns ``True`` if called by a function whose ``__name__`` is ``'__main__'``. Used when tests are executed by :mod:`test.regrtest`." msgstr "اگر *resource* در دسترس نباشد، :exc:`ResourceDenied` را پرتاب می‌کند. اگر این استثنا پرتاب شود، *msg* آرگومان :exc:`ResourceDenied` خواهد بود. اگر توسط تابعی فراخوانی شود که ``__name__`` آن ``'__main__'`` است، همیشه ``True`` را برمی‌گرداند. هنگامی که آزمون‌ها توسط :mod:`test.regrtest` اجرا می‌شوند، استفاده می‌شود." @@ -679,7 +681,9 @@ msgstr "آزمون خطاهای سینتکسی در *statement* با تلاش ب msgid "Open *url*. If open fails, raises :exc:`TestFailed`." msgstr "*url* را باز می‌کند. اگر باز کردن ناموفق باشد، :exc:`TestFailed` را پرتاب می‌کند." -msgid "Use this at the end of ``test_main`` whenever sub-processes are started. This will help ensure that no extra children (zombies) stick around to hog resources and create problems when looking for refleaks." +#, fuzzy +#| msgid "Use this at the end of ``test_main`` whenever sub-processes are started. This will help ensure that no extra children (zombies) stick around to hog resources and create problems when looking for refleaks." +msgid "Call this from :meth:`~unittest.TestCase.setUp`, :meth:`~unittest.TestCase.tearDown`, or ``tearDownModule()`` in tests that start subprocesses. This will help ensure that no extra children (zombies) stick around to hog resources and create problems when looking for refleaks." msgstr "هر زمان که زیرفرایندها آغاز می‌شوند، از این در پایان ``test_main`` استفاده کنید. این کار کمک می‌کند تا اطمینان حاصل شود که هیچ‌کدام از فرزندان اضافی (زامبی‌ها) باقی نمی‌مانند که منابع را اشغال کنند و هنگام جست‌وجو برای نشت‌های مرجع (refleaks) مشکل ایجاد کنند." msgid "Get an attribute, raising :exc:`unittest.SkipTest` if :exc:`AttributeError` is raised." @@ -826,7 +830,9 @@ msgstr "" " support.check__all__(self, bar, ('bar', '_bar'),\n" " extra=extra, not_exported=not_exported)" -msgid "Skip tests if the :mod:`multiprocessing.synchronize` module is missing, if there is no available semaphore implementation, or if creating a lock raises an :exc:`OSError`." +#, fuzzy +#| msgid "Skip tests if the :mod:`multiprocessing.synchronize` module is missing, if there is no available semaphore implementation, or if creating a lock raises an :exc:`OSError`." +msgid "Skip tests if the :mod:`!multiprocessing.synchronize` module is missing, if there is no available semaphore implementation, or if creating a lock raises an :exc:`OSError`." msgstr "در صورتی که ماژول :mod:`multiprocessing.synchronize` موجود نبود، هیچ پیاده‌سازی سمافور در دسترس نبود، یا ایجاد یک قفل باعث پرتاب :exc:`OSError` شد، از آزمون‌ها صرف‌نظر کنید." msgid "Assert that type *tp* cannot be instantiated using *args* and *kwds*." @@ -910,7 +916,9 @@ msgstr "این برای استفاده با ``@unittest.skipIf()`` طراحی ش msgid "A normal build & test does not run into this situation but it can happen when trying to run the standard library test suite from an interpreter that doesn't have an obvious home with Python's current home finding logic." msgstr "یک ساخت و آزمون عادی با این موقعیت مواجه نمی‌شود، اما این حالت ممکن است هنگامی رخ دهد که تلاش می‌کنید بدنه‌ی آزمون‌های کتابخانه استاندارد را از مفسری اجرا کنید که با منطق فعلی پایتون در یافتن خانه (home)، خانه‌ی مشخصی ندارد." -msgid "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are other common environment variables that might impact whether or not the interpreter can start." +#, fuzzy +#| msgid "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are other common environment variables that might impact whether or not the interpreter can start." +msgid "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONNOUSERSITE` are other common environment variables that might impact whether or not the interpreter can start." msgstr "تنظیم :envvar:`PYTHONHOME` یکی از راه‌ها برای اجرای بیشتر مجموعه‌آزمون در آن شرایط است. :envvar:`PYTHONPATH` یا :envvar:`PYTHONUSERSITE` متغیرهای محیطی رایج دیگری هستند که ممکن است بر اینکه مفسر بتواند آغاز شود یا نه تأثیر بگذارند." msgid "Set up the environment based on *env_vars* for running the interpreter in a subprocess. The values can include ``__isolated``, ``__cleanenv``, ``__cwd``, and ``TERM``." @@ -1163,7 +1171,9 @@ msgstr "ماژول :mod:`!test.support.import_helper` پشتیبانی برای msgid "Remove the module named *module_name* from ``sys.modules`` and delete any byte-compiled files of the module." msgstr "ماژول با نام *module_name* را از ``sys.modules`` حذف کنید و هرگونه پرونده کامپایل‌شده به بایت آن ماژول را پاک کنید." -msgid "This function imports and returns a fresh copy of the named Python module by removing the named module from ``sys.modules`` before doing the import. Note that unlike :func:`reload`, the original module is not affected by this operation." +#, fuzzy +#| msgid "This function imports and returns a fresh copy of the named Python module by removing the named module from ``sys.modules`` before doing the import. Note that unlike :func:`reload`, the original module is not affected by this operation." +msgid "This function imports and returns a fresh copy of the named Python module by removing the named module from ``sys.modules`` before doing the import. Note that unlike :func:`importlib.reload`, the original module is not affected by this operation." msgstr "این تابع با حذف ماژول نام‌برده‌شده از ``sys.modules`` پیش از انجام ایمپورت، یک نسخه‌ی تازه از ماژول پایتون نام‌برده‌شده را ایمپورت می‌کند و برمی‌گرداند. توجه داشته باشید که برخلاف :func:`reload`، ماژول اصلی تحت تأثیر این عملیات قرار نمی‌گیرد." msgid "*fresh* is an iterable of additional module names that are also removed from the ``sys.modules`` cache before doing the import." @@ -1272,11 +1282,8 @@ msgstr "check_warnings((\"\", Warning), quiet=True)" msgid "In this case all warnings are caught and no errors are raised." msgstr "در این حالت، همه‌ی هشدارها گرفته می‌شوند و هیچ خطایی پرتاب نمی‌شود." -msgid "On entry to the context manager, a :class:`WarningRecorder` instance is returned. The underlying warnings list from :func:`~warnings.catch_warnings` is available via the recorder object's :attr:`warnings` attribute. As a convenience, the attributes of the object representing the most recent warning can also be accessed directly through the recorder object (see example below). If no warning has been raised, then any of the attributes that would otherwise be expected on an object representing a warning will return ``None``." -msgstr "در هنگام ورود به مدیر زمینه، یک نمونه از :class:`WarningRecorder` بازگردانده می‌شود. فهرست هشدارهای زیربنایی حاصل از :func:`~warnings.catch_warnings` از طریق ویژگی :attr:`warnings` شیء ضبط‌کننده در دسترس است. برای سهولت، می‌توان به ویژگی‌های شیء نمایانگر آخرین هشدار نیز مستقیماً از طریق شیء ضبط‌کننده دسترسی پیدا کرد (مثال زیر را ببینید). اگر هیچ هشداری پرتاب نشده باشد، هر یک از ویژگی‌هایی که در حالت عادی انتظار می‌رود در شیء نمایانگر هشدار وجود داشته باشد، ``None`` را برمی‌گرداند." - -msgid "The recorder object also has a :meth:`reset` method, which clears the warnings list." -msgstr "شیء ضبط‌کننده همچنین یک متد :meth:`reset` دارد که فهرست هشدارها را پاک می‌کند." +msgid "On entry to the context manager, a :class:`WarningsRecorder` instance is returned. The recorded warnings are available via its :attr:`~WarningsRecorder.warnings` attribute, and its :meth:`~WarningsRecorder.reset` method discards previously recorded warnings." +msgstr "" msgid "The context manager is designed to be used like this::" msgstr "این مدیر زمینه به‌گونه‌ای طراحی شده است که به این شکل استفاده شود::" @@ -1298,14 +1305,25 @@ msgstr "در این حالت، اگر هر یک از هشدارها پرتاب msgid "When a test needs to look more deeply into the warnings, rather than just checking whether or not they occurred, code like this can be used::" msgstr "هنگامی که یک آزمون نیاز دارد به‌جای بررسی صرف اینکه هشدارها رخ داده‌اند یا خیر، آن‌ها را عمیق‌تر بررسی کند، می‌توان از کدی مانند این استفاده کرد::" +#, fuzzy +#| msgid "" +#| "with check_warnings(quiet=True) as w:\n" +#| " warnings.warn(\"foo\")\n" +#| " assert str(w.args[0]) == \"foo\"\n" +#| " warnings.warn(\"bar\")\n" +#| " assert str(w.args[0]) == \"bar\"\n" +#| " assert str(w.warnings[0].args[0]) == \"foo\"\n" +#| " assert str(w.warnings[1].args[0]) == \"bar\"\n" +#| " w.reset()\n" +#| " assert len(w.warnings) == 0" msgid "" "with check_warnings(quiet=True) as w:\n" " warnings.warn(\"foo\")\n" -" assert str(w.args[0]) == \"foo\"\n" +" assert str(w.message) == \"foo\"\n" " warnings.warn(\"bar\")\n" -" assert str(w.args[0]) == \"bar\"\n" -" assert str(w.warnings[0].args[0]) == \"foo\"\n" -" assert str(w.warnings[1].args[0]) == \"bar\"\n" +" assert str(w.message) == \"bar\"\n" +" assert str(w.warnings[0].message) == \"foo\"\n" +" assert str(w.warnings[1].message) == \"bar\"\n" " w.reset()\n" " assert len(w.warnings) == 0" msgstr "" @@ -1325,8 +1343,29 @@ msgstr "در اینجا تمام هشدارها گرفته خواهند شد و msgid "New optional arguments *filters* and *quiet*." msgstr "آرگومان‌های اختیاری جدید *filters* و *quiet*." -msgid "Class used to record warnings for unit tests. See documentation of :func:`check_warnings` above for more details." -msgstr "کلاسی که برای ثبت هشدارها در آزمون واحد‌ها استفاده می‌شود. برای جزئیات بیشتر، مستندات :func:`check_warnings` در بالا را ببینید." +msgid "Class used to record warnings for unit tests. Wraps the warnings list returned by :func:`warnings.catch_warnings` when recording is enabled. :func:`check_warnings` returns an instance of this class." +msgstr "" + +msgid "As a convenience, the attributes of the object representing the most recent warning can also be accessed directly through the recorder object. If no warning has been raised since the recorder was created or last reset, these attributes return ``None``." +msgstr "" + +msgid "A list of warnings recorded since the recorder was created or last reset." +msgstr "" + +msgid "Discard previously recorded warnings from the recorder's view. The underlying warnings list is not modified." +msgstr "" + +#~ msgid "Return :const:`_testcapi.WITH_PYMALLOC`." +#~ msgstr ":const:`_testcapi.WITH_PYMALLOC` را برمی‌گرداند." + +#~ msgid "On entry to the context manager, a :class:`WarningRecorder` instance is returned. The underlying warnings list from :func:`~warnings.catch_warnings` is available via the recorder object's :attr:`warnings` attribute. As a convenience, the attributes of the object representing the most recent warning can also be accessed directly through the recorder object (see example below). If no warning has been raised, then any of the attributes that would otherwise be expected on an object representing a warning will return ``None``." +#~ msgstr "در هنگام ورود به مدیر زمینه، یک نمونه از :class:`WarningRecorder` بازگردانده می‌شود. فهرست هشدارهای زیربنایی حاصل از :func:`~warnings.catch_warnings` از طریق ویژگی :attr:`warnings` شیء ضبط‌کننده در دسترس است. برای سهولت، می‌توان به ویژگی‌های شیء نمایانگر آخرین هشدار نیز مستقیماً از طریق شیء ضبط‌کننده دسترسی پیدا کرد (مثال زیر را ببینید). اگر هیچ هشداری پرتاب نشده باشد، هر یک از ویژگی‌هایی که در حالت عادی انتظار می‌رود در شیء نمایانگر هشدار وجود داشته باشد، ``None`` را برمی‌گرداند." + +#~ msgid "The recorder object also has a :meth:`reset` method, which clears the warnings list." +#~ msgstr "شیء ضبط‌کننده همچنین یک متد :meth:`reset` دارد که فهرست هشدارها را پاک می‌کند." + +#~ msgid "Class used to record warnings for unit tests. See documentation of :func:`check_warnings` above for more details." +#~ msgstr "کلاسی که برای ثبت هشدارها در آزمون واحد‌ها استفاده می‌شود. برای جزئیات بیشتر، مستندات :func:`check_warnings` در بالا را ببینید." #~ msgid "Its default value is 5 seconds." #~ msgstr "مقدار پیش‌فرض آن ۵ ثانیه است." diff --git a/library/tkinter.po b/library/tkinter.po index 41ebabeb0..04fda098c 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-12 14:18+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -760,31 +760,37 @@ msgstr "برای مجموعه کامل متدهای مدیر پنجره، :class msgid "Tk option data types" msgstr "انواع داده‌ی گزینه‌های Tk" -msgid "Many widget options documented in the reference accept values of a small number of common types, described here." +#, fuzzy +#| msgid "Many widget options documented in the reference accept values of a small number of common types, described here." +msgid "Many widget options documented in the reference accept values of a small number of common types, described here. The standard options and their types are described in the :manpage:`options(3tk)` manual page." msgstr "بسیاری از گزینه‌های ابزارک که در مرجع مستند شده‌اند، مقادیری از تعداد اندکی از انواع رایج را می‌پذیرند که در اینجا توضیح داده شده‌اند." msgid "anchor" msgstr "لنگر" -msgid "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, ``\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center\"``." -msgstr "مقادیر مجاز، جهت‌های قطب‌نما هستند: ``\"n\"``، ``\"ne\"``، ``\"e\"``، ``\"se\"``، ``\"s\"``، ``\"sw\"``، ``\"w\"``، ``\"nw\"`` و همچنین ``\"center\"``." +msgid "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, ``\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center\"``. The *labelanchor* option of :class:`LabelFrame` and :class:`ttk.LabelFrame ` accepts also ``\"en\"``, ``\"es\"``, ``\"wn\"`` and ``\"ws\"``. The *sticky* option of the grid geometry manager accepts a combination of the compass directions, such as ``\"nsew\"``, or an empty string." +msgstr "" msgid "bitmap" msgstr "بیت‌مپ" -msgid "There are ten built-in, named bitmaps: ``'error'``, ``'gray12'``, ``'gray25'``, ``'gray50'``, ``'gray75'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, ``'warning'``. To specify an X bitmap filename, give the full path to the file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." +#, fuzzy +#| msgid "There are ten built-in, named bitmaps: ``'error'``, ``'gray12'``, ``'gray25'``, ``'gray50'``, ``'gray75'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, ``'warning'``. To specify an X bitmap filename, give the full path to the file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." +msgid "There are ten built-in, named bitmaps: ``'error'``, ``'gray12'``, ``'gray25'``, ``'gray50'``, ``'gray75'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, ``'warning'``. On macOS the following bitmaps are available as well: ``'application'``, ``'accessory'``, ``'folder'``, ``'pfolder'``, ``'trash'``, ``'floppy'``, ``'ramdisk'``, ``'cdrom'``, ``'preferences'``, ``'querydoc'``, ``'stop'``, ``'note'`` and ``'caution'``. To specify an X bitmap file, give the full path to the file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgstr "ده بیت‌مپ توکار نام‌دار وجود دارد: ``'error'``، ``'gray12'``، ``'gray25'``، ``'gray50'``، ``'gray75'``، ``'hourglass'``، ``'info'``، ``'questhead'``، ``'question'``، ``'warning'``. برای مشخص کردن نام پرونده یک بیت‌مپ X، مسیر کامل پرونده را با یک ``@`` پیش از آن وارد کنید، مانند ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgid "boolean" msgstr "بولی" -msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." -msgstr "می‌توانید اعداد صحیح 0 یا 1 یا رشته‌های ``\"yes\"`` یا ``\"no\"`` را ارسال کنید." +msgid "You can pass the integers 0 or 1, ``True`` or ``False``, or the strings ``\"0\"``, ``\"1\"``, ``\"yes\"``, ``\"no\"``, ``\"true\"``, ``\"false\"``, ``\"on\"`` or ``\"off\"``. The strings are matched ignoring case, and an unambiguous prefix, such as ``\"t\"``, is enough. Any non-zero integer means true." +msgstr "" msgid "callback" msgstr "کال‌بک" -msgid "This is any Python function that takes no arguments. For example::" +#, fuzzy +#| msgid "This is any Python function that takes no arguments. For example::" +msgid "This is any callable object. Most callbacks take no arguments. For example::" msgstr "این هر تابع پایتونی است که هیچ آرگومانی نمی‌گیرد. برای مثال::" msgid "" @@ -796,11 +802,22 @@ msgstr "" " print(\"hi there\")\n" "fred[\"command\"] = print_it" +msgid "Some options call it with arguments, such as the *command* option of :class:`Scale`, which is called with the new value." +msgstr "" + msgid "color" msgstr "رنگ" -msgid "Colors can be given as the names of X colors in the rgb.txt file, or as strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB\"``, 12 bit: ``\"#RRRGGGBBB\"``, or 16 bit: ``\"#RRRRGGGGBBBB\"`` ranges, where R,G,B here represent any legal hex digit. See the :manpage:`colors(3tk)` man page for the list of named colors." -msgstr "می‌توان رنگ‌ها را به‌صورت نام رنگ‌های X در پرونده rgb.txt، یا به‌صورت رشته‌هایی که نشان‌دهنده مقادیر RGB در بازه‌های ۴ بیتی: ``\"#RGB\"``، ۸ بیتی: ``\"#RRGGBB\"``، ۱۲ بیتی: ``\"#RRRGGGBBB\"`` یا ۱۶ بیتی: ``\"#RRRRGGGGBBBB\"`` هستند، مشخص کرد؛ در اینجا R، G و B نماینده هر رقم مبنای شانزده معتبر هستند. برای فهرست رنگ‌های نام‌گذاری‌شده، صفحه راهنمای :manpage:`colors(3tk)` را ببینید." +msgid "Colors can be given as symbolic names, such as ``\"red\"`` or ``\"light blue\"``, or as strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB\"``, 12 bit: ``\"#RRRGGGBBB\"``, or 16 bit: ``\"#RRRRGGGGBBBB\"`` ranges, where R,G,B here represent any legal hex digit. Tk provides a portable set of symbolic names available on all platforms; they are matched ignoring case and spaces, so ``\"light blue\"``, ``\"Light Blue\"`` and ``\"lightblue\"`` are the same color. The full list of names, including the platform-specific names of the current system colors (for example ``\"systemButtonFace\"`` on Windows or ``\"systemWindowBody\"`` on macOS), is given in the :manpage:`colors(3tk)` manual page. :meth:`~tkinter.Misc.winfo_rgb` returns the red, green and blue components of a color." +msgstr "" + +#, fuzzy +#| msgid "*compound*" +msgid "compound" +msgstr "*compound*" + +msgid "Determines how to combine an image and a text displayed in a widget. Legal values are ``\"none\"`` (display the image if there is one, otherwise the text), ``\"text\"``, ``\"image\"``, ``\"center\"`` (display the text in the center of the image) and ``\"top\"``, ``\"bottom\"``, ``\"left\"``, ``\"right\"`` (display the image above, below, to the left of or to the right of the text). The themed widgets accept all these values, the classic widgets accept all except ``\"text\"`` and ``\"image\"``." +msgstr "" msgid "cursor" msgstr "مکان‌نما" @@ -817,25 +834,37 @@ msgstr "فاصله‌های صفحه را می‌توان به‌صورت پیک msgid "font" msgstr "قلم" -msgid "Tk uses a font description such as ``{courier 10 bold}``; in :mod:`!tkinter` this is most naturally passed as a tuple of ``(family, size, *styles)`` (or as the equivalent string ``\"Courier 10 bold\"``). Font sizes with positive numbers are measured in points; sizes with negative numbers are measured in pixels." +#, fuzzy +#| msgid "Tk uses a font description such as ``{courier 10 bold}``; in :mod:`!tkinter` this is most naturally passed as a tuple of ``(family, size, *styles)`` (or as the equivalent string ``\"Courier 10 bold\"``). Font sizes with positive numbers are measured in points; sizes with negative numbers are measured in pixels." +msgid "Tk uses a font description such as ``{courier 10 bold}``; in :mod:`!tkinter` this is most naturally passed as a tuple of ``(family, size, *styles)`` (or as the equivalent string ``\"Courier 10 bold\"``). Font sizes with positive numbers are measured in points; sizes with negative numbers are measured in pixels. The name of a named font, such as ``\"TkDefaultFont\"``, a :class:`tkinter.font.Font` instance, or, on X11, an XLFD font name can be used as well." msgstr "Tk از یک توصیف قلم مانند ``{courier 10 bold}`` استفاده می‌کند؛ در :mod:`!tkinter` این مورد به‌طور طبیعی به‌صورت تاپلی از ``(family, size, *styles)`` (یا به‌صورت رشته‌ی معادل ``\"Courier 10 bold\"``) ارسال می‌شود. اندازه‌های قلم با اعداد مثبت بر حسب نقطه اندازه‌گیری می‌شوند؛ اندازه‌ها با اعداد منفی بر حسب پیکسل اندازه‌گیری می‌شوند." -msgid "geometry" -msgstr "هندسه" - -msgid "This is a string of the form ``widthxheight``, where width and height are measured in pixels for most widgets (in characters for widgets displaying text). For example: ``fred[\"geometry\"] = \"200x100\"``." -msgstr "این یک رشته به شکل ``widthxheight`` است، که در آن عرض و ارتفاع برای بیشتر ابزارک‌ها بر حسب پیکسل اندازه‌گیری می‌شوند (برای ابزارک‌هایی که متن نمایش می‌دهند، بر حسب نویسه). برای مثال: ``fred[\"geometry\"] = \"200x100\"``." - msgid "justify" msgstr "تراز کردن" msgid "Legal values are the strings: ``\"left\"``, ``\"center\"``, and ``\"right\"``." msgstr "مقادیر مجاز، رشته‌های زیر هستند: ``\"left\"``، ``\"center\"`` و ``\"right\"``." +msgid "orient" +msgstr "" + +#, fuzzy +#| msgid "Legal values are the strings: ``\"left\"``, ``\"center\"``, and ``\"right\"``." +msgid "Legal values are ``\"horizontal\"`` and ``\"vertical\"``." +msgstr "مقادیر مجاز، رشته‌های زیر هستند: ``\"left\"``، ``\"center\"`` و ``\"right\"``." + +msgid "padding" +msgstr "" + +msgid "This is a legal distance (see above), applied on all sides, or a sequence of up to four distances specifying the left, top, right and bottom padding. If fewer than four are specified, the bottom padding defaults to the top one, the right one to the left one, and the top one to the left one. It is only supported by the themed widgets." +msgstr "" + msgid "region" msgstr "ناحیه" -msgid "This is a string with four space-delimited elements, each of which is a legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i 2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." +#, fuzzy +#| msgid "This is a string with four space-delimited elements, each of which is a legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i 2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." +msgid "Used for the *scrollregion* option of :class:`Canvas`. This is a string with four space-delimited elements, each of which is a legal distance (see above), or a sequence of four such elements. For example: ``\"2 3 4 5\"``, ``(2, 3, 4, 5)``, ``\"3i 2i 4.5i 2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." msgstr "این یک رشته با چهار عنصر جداشده با فاصله است که هر کدام یک فاصله‌ی معتبر است (بالا را ببینید). برای مثال: ``\"2 3 4 5\"`` و ``\"3i 2i 4.5i 2i\"`` و ``\"3c 2c 4c 10.43c\"`` همگی ناحیه‌های معتبر هستند." msgid "relief" @@ -850,11 +879,17 @@ msgstr "scrollcommand" msgid "This is almost always the :meth:`!set` method of some scrollbar widget, but can be any widget method that takes a single argument." msgstr "این تقریباً همیشه متد :meth:`!set`\\ یک ابزارک نوار پیمایش است، اما می‌تواند هر متدی از یک ابزارک باشد که یک آرگومان می‌پذیرد." +msgid "state" +msgstr "وضعیت" + +msgid "Legal values are ``\"normal\"``, ``\"disabled\"`` and, depending on the widget, also ``\"active\"``, ``\"hidden\"`` (for :class:`Canvas` items) or ``\"readonly\"`` (for :class:`Entry`, :class:`Spinbox` and the themed widgets). The themed widgets have in addition a more general set of states, which is manipulated with :meth:`ttk.Widget.state `." +msgstr "" + msgid "wrap" msgstr "دربرگرفتن" -msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." -msgstr "باید یکی از موارد زیر باشد: ``\"none\"``، ``\"char\"`` یا ``\"word\"``." +msgid "Must be one of ``\"none\"``, ``\"char\"`` or ``\"word\"`` for the :class:`Text` widget and its tags; for a tag an empty string means to use the widget's value." +msgstr "" msgid "Bindings and events" msgstr "اتصال‌ها و رویدادها" @@ -942,9 +977,6 @@ msgstr "keysym" msgid "%s" msgstr "%s" -msgid "state" -msgstr "وضعیت" - msgid "%N" msgstr "%N" @@ -1140,7 +1172,9 @@ msgstr ":meth:`config` نام مستعار :meth:`!configure` است." msgid "Return a list of the names of all configuration options of this widget." msgstr "فهرستی از نام‌های تمام گزینه‌های پیکربندی این ابزارک را برمی‌گرداند." -msgid "Interpret the string *s* as a Tcl boolean and return the corresponding :class:`bool`. Tcl accepts values such as ``'1'``, ``'0'``, ``'yes'``, ``'no'``, ``'true'`` and ``'false'``. Raise :exc:`ValueError` if *s* is not a valid boolean." +#, fuzzy +#| msgid "Interpret the string *s* as a Tcl boolean and return the corresponding :class:`bool`. Tcl accepts values such as ``'1'``, ``'0'``, ``'yes'``, ``'no'``, ``'true'`` and ``'false'``. Raise :exc:`ValueError` if *s* is not a valid boolean." +msgid "Interpret the string *s* as a Tcl boolean and return the corresponding :class:`bool`. Tcl accepts values such as ``'1'``, ``'0'``, ``'yes'``, ``'no'``, ``'true'``, ``'false'``, ``'on'`` and ``'off'``. Raise :exc:`ValueError` if *s* is not a valid boolean." msgstr "رشته *s* را به‌عنوان یک بولی Tcl تفسیر می‌کند و :class:`bool` متناظر را برمی‌گرداند. Tcl مقادیری مانند ``'1'``، ``'0'``، ``'yes'``، ``'no'``، ``'true'`` و ``'false'`` را می‌پذیرد. اگر *s* یک بولی معتبر نباشد، :exc:`ValueError` را پرتاب می‌کند." msgid "Interpret the string *s* as a Tcl floating-point number and return it as a :class:`float`. Raise :exc:`ValueError` if *s* is not a valid number." @@ -1582,7 +1616,9 @@ msgstr "اگر ابزارک وجود داشته باشد، مقدار true و د msgid "Return a floating-point value giving the number of pixels in the widget corresponding to the screen distance *number* (for example, ``\"2.0c\"`` or ``\"1i\"``). The result may be fractional; for a rounded integer value use :meth:`winfo_pixels`." msgstr "یک مقدار ممیز شناور برمی‌گرداند که تعداد پیکسل‌های ابزارک معادل فاصله‌ی صفحه‌نمایش *number* را نشان می‌دهد (برای مثال، ``\"2.0c\"`` یا ``\"1i\"``). نتیجه ممکن است کسری باشد؛ برای یک مقدار عدد صحیح گرد شده از :meth:`winfo_pixels` استفاده کنید." -msgid "Return the geometry of the widget, in the form ``widthxheight+x+y``. All dimensions are in pixels. An offset can be negative; see :meth:`~Wm.geometry`." +#, fuzzy +#| msgid "Return the geometry of the widget, in the form ``widthxheight+x+y``. All dimensions are in pixels. An offset can be negative; see :meth:`~Wm.geometry`." +msgid "Return the geometry of the widget, in the form ``widthxheight+x+y``. All dimensions are in pixels. The position is relative to the parent widget; use :meth:`winfo_rootx` and :meth:`winfo_rooty` for the position on the screen. An offset can be negative; see :meth:`~Wm.geometry`." msgstr "هندسه‌ی ابزارک را به‌صورت ``widthxheight+x+y`` برمی‌گرداند. تمام ابعاد بر حسب پیکسل هستند. یک آفست می‌تواند منفی باشد؛ به :meth:`~Wm.geometry` مراجعه کنید." msgid "Return the height of the widget in pixels. When a window is first created its height is 1 pixel; it is eventually changed by a geometry manager. See also :meth:`winfo_reqheight`." @@ -2143,7 +2179,9 @@ msgstr "موقعیت افقی نما را دریافت یا تغییر می‌د msgid "Adjust the view so that *fraction* of the total width of the document is off-screen to the left. *fraction* is a number between 0 and 1." msgstr "نما را به‌گونه‌ای تنظیم کنید که *fraction* از عرض کل سند در سمت چپ، خارج از صفحه قرار گیرد. *fraction* عددی بین ۰ و ۱ است." -msgid "Shift the view left or right by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls left and a positive one scrolls right." +#, fuzzy +#| msgid "Shift the view left or right by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls left and a positive one scrolls right." +msgid "Shift the view left or right by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls left and a positive one scrolls right. The :class:`Text` widget accepts also ``'pixels'``, and then *number* can be a screen distance, such as ``'1i'``." msgstr "نما را به اندازه‌ی *number* واحد به چپ یا راست جابه‌جا کنید. *what* می‌تواند ``'units'`` یا ``'pages'`` باشد؛ *number* منفی باعث پیمایش به چپ و *number* مثبت باعث پیمایش به راست می‌شود." msgid "Mix-in providing the vertical-scrolling interface shared by widgets such as :class:`Canvas`, :class:`Listbox` and :class:`Text`. A widget's :meth:`yview` method is registered as the *command* of a vertical :class:`Scrollbar`." @@ -2155,7 +2193,9 @@ msgstr "موقعیت عمودی نما را پرس‌وجو می‌کند یا msgid "Adjust the view so that *fraction* of the total height of the document is off-screen above the top. *fraction* is a number between 0 and 1." msgstr "نما را طوری تنظیم کنید که *fraction* از ارتفاع کل سند در بالای صفحه خارج از دید باشد. *fraction* عددی بین ۰ و ۱ است." -msgid "Shift the view up or down by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls up and a positive one scrolls down." +#, fuzzy +#| msgid "Shift the view up or down by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls up and a positive one scrolls down." +msgid "Shift the view up or down by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls up and a positive one scrolls down. The :class:`Text` widget accepts also ``'pixels'``, and then *number* can be a screen distance, such as ``'1i'``." msgstr "نما را به اندازه‌ی *number* واحد به بالا یا پایین جابه‌جا کنید. *what* یکی از ``'units'`` یا ``'pages'`` است؛ *number* منفی به بالا پیمایش می‌کند و مقدار مثبت به پایین پیمایش می‌کند." msgid "Internal base class for all widgets. It inherits from :class:`Misc` and adds the machinery that creates the underlying Tk widget; application code normally uses :class:`Widget` or a concrete widget class rather than instantiating :class:`!BaseWidget` directly." @@ -2503,7 +2543,9 @@ msgstr "اندازه‌ای که باید به پنجره اختصاص داده msgid "``oval`` and ``rectangle`` items have no type-specific options; they use only the standard item options." msgstr "آیتم‌های ``oval`` و ``rectangle`` گزینه‌های مختص نوع ندارند؛ آن‌ها فقط از گزینه‌های استاندارد آیتم استفاده می‌کنند." -msgid "Tk 8.6 added the *angle* option and Tk 9.0 added the *underline* option for ``text`` items." +#, fuzzy +#| msgid "Tk 8.6 added the *angle* option and Tk 9.0 added the *underline* option for ``text`` items." +msgid "Tk 8.6 added the *angle* option for ``text`` items." msgstr "گزینه‌ی *angle* در Tk 8.6 و گزینه‌ی *underline* در Tk 9.0 برای آیتم‌های ``text`` افزوده شدند." msgid "Query or modify the coordinates of an item. With only *tagOrId*, return a list of the floating-point coordinates of the item given by *tagOrId* (the first matching item if it matches several). Given new coordinates, replace the coordinates of that item with them; like the ``create_*`` methods, the coordinates may be given as separate numbers, as a single sequence, or as coordinate pairs. The returned coordinates are always in pixels, regardless of the units used to specify them; for rectangles, ovals and arcs they are ordered left, top, right, bottom." @@ -3106,7 +3148,9 @@ msgstr "یک float بین ۰ و ۱ برمی‌گرداند که نشان می‌ msgid "Return the name of the element under the pixel coordinates *x*, *y* (such as ``'arrow1'``), or an empty string if the point does not lie in any element of the scrollbar." msgstr "نام عنصر واقع در مختصات پیکسلی *x*، *y* (مانند ``'arrow1'``) را برمی‌گرداند، یا اگر نقطه در هیچ عنصری از نوار پیمایش قرار نداشته باشد، یک رشته خالی برمی‌گرداند." -msgid "A :class:`!Spinbox` widget is an :class:`Entry`-like widget with a pair of up/down arrow buttons that let the user step through a range of values in addition to editing the value directly. The set of values may be a numeric range given by the *from_*, *to* and *increment* options, or an explicit list of strings given by the *values* option (which takes precedence over the range). Each time an arrow is invoked the *command* callback, if any, is called; the *wrap* option controls whether stepping past either end of the range wraps around to the other end; the *format* option specifies how numeric values are formatted; and the *validate* option enables validation of the entered text. Inherits from :class:`Widget` and :class:`XView`." +#, fuzzy +#| msgid "A :class:`!Spinbox` widget is an :class:`Entry`-like widget with a pair of up/down arrow buttons that let the user step through a range of values in addition to editing the value directly. The set of values may be a numeric range given by the *from_*, *to* and *increment* options, or an explicit list of strings given by the *values* option (which takes precedence over the range). Each time an arrow is invoked the *command* callback, if any, is called; the *wrap* option controls whether stepping past either end of the range wraps around to the other end; the *format* option specifies how numeric values are formatted; and the *validate* option enables validation of the entered text. Inherits from :class:`Widget` and :class:`XView`." +msgid "A :class:`!Spinbox` widget is an :class:`Entry`-like widget with a pair of up/down arrow buttons that let the user step through a range of values in addition to editing the value directly. The set of values may be a numeric range given by the *from_*, *to* and *increment* options, or an explicit list of strings given by the *values* option (which takes precedence over the range). Each time an arrow is invoked the *command* callback, if any, is called; the boolean *wrap* option controls whether stepping past either end of the range wraps around to the other end; the *format* option specifies how numeric values are formatted; and the *validate* option enables validation of the entered text. Inherits from :class:`Widget` and :class:`XView`." msgstr "ابزارک :class:`!Spinbox` یک ابزارک شبیه :class:`Entry` با یک جفت دکمه‌ی پیکان بالا/پایین است که به کاربر امکان می‌دهد علاوه بر ویرایش مستقیم مقدار، یک بازه از مقادیر را گام‌به‌گام بپیماید. مجموعه‌ی مقادیر ممکن است یک بازه عددی تعیین‌شده با گزینه‌های *from_*، *to* و *increment* یا فهرست صریحی از رشته‌ها تعیین‌شده با گزینه *values* باشد (که بر بازه مقدم است). هر بار که یکی از پیکان‌ها فراخوانی شود، کال‌بک *command*، در صورت وجود، فراخوانی می‌شود؛ گزینه *wrap* کنترل می‌کند که آیا با گام برداشتن از فراتر از هر یک از دو سر بازه، مقدار به سر دیگر می‌پیچد یا خیر؛ گزینه *format* مشخص می‌کند که مقادیر عددی چگونه قالب‌بندی می‌شوند؛ و گزینه *validate* اعتبارسنجی متن واردشده را فعال می‌کند. این ابزارک از :class:`Widget` و :class:`XView` ارث می‌برد." msgid "With a non-integer *increment*, see :ref:`numeric values and the locale `." @@ -3280,7 +3324,9 @@ msgstr "*offset*" msgid "How far the text is raised above (or, if negative, lowered below) the baseline, for superscripts and subscripts." msgstr "میزانی که متن بالاتر از خط کرسی (یا، اگر منفی باشد، پایین‌تر از آن) قرار می‌گیرد، برای بالانویس‌ها و زیرنویس‌ها." -msgid "Whether to underline the text." +#, fuzzy +#| msgid "Whether to underline the text." +msgid "Whether to underline the text (a boolean)." msgstr "اینکه آیا متن زیرخط‌دار شود یا خیر." msgid "*underlinefg*" @@ -3412,7 +3458,9 @@ msgstr "یک تاپل از نام‌های همه‌ی تصاویر تعبیه msgid "This shadows the inherited :meth:`Misc.image_names`, which returns the names of all images in the Tcl interpreter; that method is not available on a :class:`Text`." msgstr "این، متد موروثی :meth:`Misc.image_names` را می‌پوشاند، که نام تمام تصاویر در مفسر Tcl را برمی‌گرداند؛ آن متد برای یک :class:`Text` در دسترس نیست." -msgid "Embed a window (any widget) at *index*. The options, given in *cnf* and *kw*, include *window* (the widget to embed), *create* (a callback that creates the widget on demand), *align*, *stretch*, *padx* and *pady*. The embedded widget must be a descendant of the text widget's parent." +#, fuzzy +#| msgid "Embed a window (any widget) at *index*. The options, given in *cnf* and *kw*, include *window* (the widget to embed), *create* (a callback that creates the widget on demand), *align*, *stretch*, *padx* and *pady*. The embedded widget must be a descendant of the text widget's parent." +msgid "Embed a window (any widget) at *index*. The options, given in *cnf* and *kw*, include *window* (the widget to embed), *create* (a callback that creates the widget on demand), *align*, the boolean *stretch* (whether the widget is stretched vertically to the height of the line), *padx* and *pady*. The embedded widget must be a descendant of the text widget's parent." msgstr "یک پنجره (هر ابزارکی) را در *index* تعبیه کنید. گزینه‌های داده‌شده در *cnf* و *kw* شامل *window* (ابزارکی که باید تعبیه شود)، *create* (یک کال‌بک که ابزارک را در صورت نیاز ایجاد می‌کند)، *align*، *stretch*، *padx* و *pady* می‌شوند. ابزارک تعبیه‌شده باید زیرمجموعه‌ای از والد ابزارک متنی باشد." msgid "Return the current value of the configuration option *option* for the embedded window at *index*." @@ -3763,7 +3811,9 @@ msgstr "از ایجاد یک پنجره‌ی ریشه‌ی پیش‌فرض ضم msgid "Run the Tk main event loop on the default root window until all windows are destroyed. Equivalent to calling :meth:`Misc.mainloop` on the default root." msgstr "حلقه اصلی رویداد Tk را روی پنجره ریشه پیش‌فرض اجرا کنید تا همه پنجره‌ها نابود شوند. معادل فراخوانی :meth:`Misc.mainloop` روی ریشه پیش‌فرض است." -msgid "Convert the Tcl boolean string *s* (one of ``'1'``, ``'true'``, ``'yes'``, ``'on'`` and similar, or their false counterparts) to a Python :class:`bool`. Raise :exc:`TclError` for an invalid value." +#, fuzzy +#| msgid "Convert the Tcl boolean string *s* (one of ``'1'``, ``'true'``, ``'yes'``, ``'on'`` and similar, or their false counterparts) to a Python :class:`bool`. Raise :exc:`TclError` for an invalid value." +msgid "Convert the Tcl boolean string *s* (one of ``'1'``, ``'true'``, ``'yes'``, ``'on'`` and similar, or their false counterparts) to a Python :class:`bool`. Raise :exc:`ValueError` for an invalid value." msgstr "رشته‌ی بولی Tcl *s* (یکی از ``'1'``، ``'true'``، ``'yes'``، ``'on'`` و مشابه آن‌ها، یا معادل‌های نادرست آن‌ها) را به :class:`bool` پایتون تبدیل می‌کند. برای یک مقدار نامعتبر، :exc:`TclError` را پرتاب می‌کند." msgid "Convert *s* to a floating-point number. This is the built-in :class:`float`." @@ -3903,3 +3953,21 @@ msgstr "اتصال (ابزارک‌ها)" msgid "events (widgets)" msgstr "رویدادها (ابزارک‌ها)" + +#~ msgid "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, ``\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center\"``." +#~ msgstr "مقادیر مجاز، جهت‌های قطب‌نما هستند: ``\"n\"``، ``\"ne\"``، ``\"e\"``، ``\"se\"``، ``\"s\"``، ``\"sw\"``، ``\"w\"``، ``\"nw\"`` و همچنین ``\"center\"``." + +#~ msgid "You can pass integers 0 or 1 or the strings ``\"yes\"`` or ``\"no\"``." +#~ msgstr "می‌توانید اعداد صحیح 0 یا 1 یا رشته‌های ``\"yes\"`` یا ``\"no\"`` را ارسال کنید." + +#~ msgid "Colors can be given as the names of X colors in the rgb.txt file, or as strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB\"``, 12 bit: ``\"#RRRGGGBBB\"``, or 16 bit: ``\"#RRRRGGGGBBBB\"`` ranges, where R,G,B here represent any legal hex digit. See the :manpage:`colors(3tk)` man page for the list of named colors." +#~ msgstr "می‌توان رنگ‌ها را به‌صورت نام رنگ‌های X در پرونده rgb.txt، یا به‌صورت رشته‌هایی که نشان‌دهنده مقادیر RGB در بازه‌های ۴ بیتی: ``\"#RGB\"``، ۸ بیتی: ``\"#RRGGBB\"``، ۱۲ بیتی: ``\"#RRRGGGBBB\"`` یا ۱۶ بیتی: ``\"#RRRRGGGGBBBB\"`` هستند، مشخص کرد؛ در اینجا R، G و B نماینده هر رقم مبنای شانزده معتبر هستند. برای فهرست رنگ‌های نام‌گذاری‌شده، صفحه راهنمای :manpage:`colors(3tk)` را ببینید." + +#~ msgid "geometry" +#~ msgstr "هندسه" + +#~ msgid "This is a string of the form ``widthxheight``, where width and height are measured in pixels for most widgets (in characters for widgets displaying text). For example: ``fred[\"geometry\"] = \"200x100\"``." +#~ msgstr "این یک رشته به شکل ``widthxheight`` است، که در آن عرض و ارتفاع برای بیشتر ابزارک‌ها بر حسب پیکسل اندازه‌گیری می‌شوند (برای ابزارک‌هایی که متن نمایش می‌دهند، بر حسب نویسه). برای مثال: ``fred[\"geometry\"] = \"200x100\"``." + +#~ msgid "Must be one of: ``\"none\"``, ``\"char\"``, or ``\"word\"``." +#~ msgstr "باید یکی از موارد زیر باشد: ``\"none\"``، ``\"char\"`` یا ``\"word\"``." diff --git a/library/tokenize.po b/library/tokenize.po index 40d9e49d5..3d2daf7ef 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 08:31+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -34,7 +34,9 @@ msgstr "**کد منبع:** :source:`Lib/tokenize.py`" msgid "The :mod:`!tokenize` module provides a lexical scanner for Python source code, implemented in Python. The scanner in this module returns comments as tokens as well, making it useful for implementing \"pretty-printers\", including colorizers for on-screen displays." msgstr "ماژول :mod:`!tokenize` یک پویشگر واژگانی برای کد منبع پایتون فراهم می‌کند که با پایتون پیاده‌سازی شده است. پویشگر این ماژول کامنت‌ها را نیز به‌صورت توکن برمی‌گرداند و به همین دلیل برای پیاده‌سازی «زیبانویس»ها، از جمله رنگ‌آمیزکننده‌های نمایش روی صفحه، مفید است." -msgid "To simplify token stream handling, all :ref:`operator ` and :ref:`delimiter ` tokens and :data:`Ellipsis` are returned using the generic :data:`~token.OP` token type. The exact type can be determined by checking the ``exact_type`` property on the :term:`named tuple` returned from :func:`tokenize.tokenize`." +#, fuzzy +#| msgid "To simplify token stream handling, all :ref:`operator ` and :ref:`delimiter ` tokens and :data:`Ellipsis` are returned using the generic :data:`~token.OP` token type. The exact type can be determined by checking the ``exact_type`` property on the :term:`named tuple` returned from :func:`tokenize.tokenize`." +msgid "To simplify token stream handling, all :ref:`operator ` and :ref:`delimiter ` tokens and :data:`Ellipsis` are returned using the generic :data:`~token.OP` token type. The :attr:`TokenInfo.exact_type` property gives the exact token type." msgstr "برای ساده‌سازی مدیریت جریان توکن، تمام توکن‌های :ref:`عملگر ` و :ref:`جداکننده ` و :data:`Ellipsis` با استفاده از نوع توکن عام :data:`~token.OP` برگردانده می‌شوند. نوع دقیق را می‌توان با بررسی ویژگی ``exact_type`` روی :term:`named tuple` برگشتی از :func:`tokenize.tokenize` تعیین کرد." msgid "Note that the functions in this module are only designed to parse syntactically valid Python code (code that does not raise when parsed using :func:`ast.parse`). The behavior of the functions in this module is **undefined** when providing invalid Python code and it can change at any point." @@ -49,17 +51,11 @@ msgstr "نقطه ورود اصلی یک :term:`تولیدگر ` اس msgid "The :func:`.tokenize` generator requires one argument, *readline*, which must be a callable object which provides the same interface as the :meth:`io.IOBase.readline` method of file objects. Each call to the function should return one line of input as bytes." msgstr "تولیدگر :func:`.tokenize` به یک آرگومان، *readline*، نیاز دارد که باید یک شیء فراخوانی‌پذیر باشد و همان رابط متد :meth:`io.IOBase.readline` اشیای پرونده را فراهم کند. هر فراخوانی این تابع باید یک سطر از ورودی را به‌صورت بایت برگرداند." -msgid "The generator produces 5-tuples with these members: the token type; the token string; a 2-tuple ``(srow, scol)`` of ints specifying the row and column where the token begins in the source; a 2-tuple ``(erow, ecol)`` of ints specifying the row and column where the token ends in the source; and the line on which the token was found. The line passed (the last tuple item) is the *physical* line. The 5 tuple is returned as a :term:`named tuple` with the field names: ``type string start end line``." -msgstr "این تولیدگر، تاپل‌های ۵تایی را با این اعضا تولید می‌کند: نوع توکن؛ رشته‌ی توکن؛ یک تاپل ۲تایی ``(srow, scol)`` از اعداد صحیح که ردیف و ستون آغاز توکن در منبع را مشخص می‌کند؛ یک تاپل ۲تایی ``(erow, ecol)`` از اعداد صحیح که ردیف و ستون پایان توکن در منبع را مشخص می‌کند؛ و سطری که توکن در آن یافت شد. سطر ارسال‌شده (آخرین آیتم تاپل) خط *فیزیکی* است. این تاپل ۵تایی به‌صورت یک :term:`named tuple` با نام فیلدها: ``type string start end line`` بازگشت داده می‌شود." - -msgid "The returned :term:`named tuple` has an additional property named ``exact_type`` that contains the exact operator type for :data:`~token.OP` tokens. For all other token types ``exact_type`` equals the named tuple ``type`` field." -msgstr ":term:`named tuple` برگردانده‌شده یک ویژگی اضافی به نام ``exact_type`` دارد که شامل نوع دقیق عملگر برای توکن‌های :data:`~token.OP` است. برای همه‌ی انواع دیگر توکن، ``exact_type`` برابر با فیلد ``type`` در named tuple است." - -msgid "Added support for named tuples." -msgstr "پشتیبانی از تاپل‌های نام‌دار (named tuples) اضافه شد." +msgid "The generator produces :class:`TokenInfo` objects." +msgstr "" -msgid "Added support for ``exact_type``." -msgstr "پشتیبانی از ``exact_type`` افزوده شد." +msgid "Changed to yield :class:`TokenInfo` objects instead of plain tuples." +msgstr "" msgid ":func:`.tokenize` determines the source encoding of the file by looking for a UTF-8 BOM or encoding cookie, according to :pep:`263`." msgstr ":func:`.tokenize` کدگذاری منبع پرونده را با جست‌وجوی BOM UTF-8 یا کوکی کدگذاری، طبق :pep:`263` تعیین می‌کند." @@ -70,9 +66,44 @@ msgstr "یک منبع را با خواندن رشته‌های یونیکد به msgid "Like :func:`.tokenize`, the *readline* argument is a callable returning a single line of input. However, :func:`generate_tokens` expects *readline* to return a str object rather than bytes." msgstr "مانند :func:`.tokenize`، آرگومان *readline* یک شیء فراخوانی‌پذیر است که یک سطر ورودی را برمی‌گرداند. با این حال، :func:`generate_tokens` انتظار دارد که *readline* به‌جای bytes یک شیء str برگرداند." -msgid "The result is an iterator yielding named tuples, exactly like :func:`.tokenize`. It does not yield an :data:`~token.ENCODING` token." +#, fuzzy +#| msgid "The result is an iterator yielding named tuples, exactly like :func:`.tokenize`. It does not yield an :data:`~token.ENCODING` token." +msgid "The result is an iterator yielding :class:`TokenInfo` objects, exactly like :func:`.tokenize`. It does not yield an :data:`~token.ENCODING` token." msgstr "نتیجه یک پیمایش‌گر است که تاپل‌های نام‌دار تولید می‌کند، دقیقاً مانند :func:`.tokenize`. این پیمایش‌گر توکن :data:`~token.ENCODING` را تولید نمی‌کند." +msgid "A :term:`named tuple` describing a token. It has five fields and an additional :attr:`exact_type` property." +msgstr "" + +msgid "An integer identifying the token type, as defined by the constants in :mod:`token`, such as :data:`~token.NAME` and :data:`~token.STRING`. Operators and delimiters have type :data:`~token.OP`; use :attr:`exact_type` for their specific token type." +msgstr "" + +msgid "The token text as a :class:`str`. For :data:`~token.STRING` tokens, this includes the quotes, any prefix, and escape sequences, without evaluating them." +msgstr "" + +msgid "For an :data:`~token.ENCODING` token, this is the encoding name. Tokens inserted without corresponding source text can have an empty string. In :data:`~token.FSTRING_MIDDLE` and :data:`~token.TSTRING_MIDDLE` tokens, doubled braces are replaced by single braces." +msgstr "" + +msgid "A 2-tuple ``(srow, scol)`` of ints specifying the inclusive start position of the token in the source. Rows are numbered from 1 and columns from 0. Columns count Unicode code points; a tab counts as one column, without expanding it to a tab stop." +msgstr "" + +msgid "For an :data:`~token.ENCODING` token, this is ``(0, 0)``." +msgstr "" + +msgid "A 2-tuple ``(erow, ecol)`` of ints specifying the exclusive end position of the token. Rows are numbered from 1 and columns from 0. For a token spanning multiple lines, *erow* is the final row and *ecol* is the column on that row." +msgstr "" + +msgid "For example, the name ``spam`` at the beginning of the first line has :attr:`start` equal to ``(1, 0)`` and :attr:`end` equal to ``(1, 4)``." +msgstr "" + +msgid "For an :data:`~token.ENCODING` token, this is ``(0, 0)``. A :data:`~token.NEWLINE` or :data:`~token.NL` token inserted at the end of input without a final newline can have an end column one beyond the source text." +msgstr "" + +msgid "A :class:`str` containing the full source line on which the token was found, including surrounding text and the line terminator if present. For a token spanning multiple lines, this can contain several source lines. It is empty for :data:`~token.ENCODING` and :data:`~token.ENDMARKER` tokens." +msgstr "" + +msgid "An integer identifying the specific operator type for :data:`~token.OP` tokens, as defined by the constants in :mod:`token`. For all other token types, this equals :attr:`type`. For example, a ``+`` token has :attr:`type` equal to :data:`~token.OP` and :attr:`exact_type` equal to :data:`~token.PLUS`." +msgstr "" + msgid "All constants from the :mod:`token` module are also exported from :mod:`!tokenize`." msgstr "تمام ثابت‌های ماژول :mod:`token` نیز از :mod:`!tokenize` اکسپورت می‌شوند." @@ -382,3 +413,15 @@ msgstr "" " tokens = tokenize.tokenize(f.readline)\n" " for token in tokens:\n" " print(token)" + +#~ msgid "The generator produces 5-tuples with these members: the token type; the token string; a 2-tuple ``(srow, scol)`` of ints specifying the row and column where the token begins in the source; a 2-tuple ``(erow, ecol)`` of ints specifying the row and column where the token ends in the source; and the line on which the token was found. The line passed (the last tuple item) is the *physical* line. The 5 tuple is returned as a :term:`named tuple` with the field names: ``type string start end line``." +#~ msgstr "این تولیدگر، تاپل‌های ۵تایی را با این اعضا تولید می‌کند: نوع توکن؛ رشته‌ی توکن؛ یک تاپل ۲تایی ``(srow, scol)`` از اعداد صحیح که ردیف و ستون آغاز توکن در منبع را مشخص می‌کند؛ یک تاپل ۲تایی ``(erow, ecol)`` از اعداد صحیح که ردیف و ستون پایان توکن در منبع را مشخص می‌کند؛ و سطری که توکن در آن یافت شد. سطر ارسال‌شده (آخرین آیتم تاپل) خط *فیزیکی* است. این تاپل ۵تایی به‌صورت یک :term:`named tuple` با نام فیلدها: ``type string start end line`` بازگشت داده می‌شود." + +#~ msgid "The returned :term:`named tuple` has an additional property named ``exact_type`` that contains the exact operator type for :data:`~token.OP` tokens. For all other token types ``exact_type`` equals the named tuple ``type`` field." +#~ msgstr ":term:`named tuple` برگردانده‌شده یک ویژگی اضافی به نام ``exact_type`` دارد که شامل نوع دقیق عملگر برای توکن‌های :data:`~token.OP` است. برای همه‌ی انواع دیگر توکن، ``exact_type`` برابر با فیلد ``type`` در named tuple است." + +#~ msgid "Added support for named tuples." +#~ msgstr "پشتیبانی از تاپل‌های نام‌دار (named tuples) اضافه شد." + +#~ msgid "Added support for ``exact_type``." +#~ msgstr "پشتیبانی از ``exact_type`` افزوده شد." diff --git a/library/traceback.po b/library/traceback.po index 85e823be8..18b650c80 100644 --- a/library/traceback.po +++ b/library/traceback.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 13:06+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -56,9 +56,6 @@ msgstr "توابع سطح ماژول که عملکرد پایه‌ای ارائ msgid ":class:`TracebackException` class and its helper classes :class:`StackSummary` and :class:`FrameSummary`. These offer both more flexibility in the output generated and the ability to store the information necessary for later formatting without holding references to actual exception and traceback objects." msgstr "کلاس :class:`TracebackException` و کلاس‌های کمکی آن :class:`StackSummary` و :class:`FrameSummary`. این کلاس‌ها هم انعطاف‌پذیری بیشتر در خروجی تولیدشده و هم توانایی ذخیره‌ی اطلاعات لازم برای قالب‌بندی بعدی را بدون نگه‌داشتن ارجاع به اشیاء واقعی استثنا و ردگیری پشته ارائه می‌دهند." -msgid "Output is colorized by default and can be :ref:`controlled using environment variables `." -msgstr "خروجی به‌طور پیش‌فرض رنگی است و می‌توان آن را :ref:`با استفاده از متغیرهای محیطی کنترل کرد `." - msgid "Module-Level Functions" msgstr "توابع سطح ماژول" @@ -752,3 +749,6 @@ msgstr "^ (نشانک)" msgid "marker" msgstr "نشانگر" + +#~ msgid "Output is colorized by default and can be :ref:`controlled using environment variables `." +#~ msgstr "خروجی به‌طور پیش‌فرض رنگی است و می‌توان آن را :ref:`با استفاده از متغیرهای محیطی کنترل کرد `." diff --git a/library/turtle.po b/library/turtle.po index 8b9f51bab..8180cd798 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-29 04:09+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-21 13:27+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -79,6 +79,17 @@ msgstr "from turtle import *" msgid "If you run into a ``No module named '_tkinter'`` error, you'll have to install the :mod:`Tk interface package ` on your system." msgstr "اگر با خطای ``No module named '_tkinter'`` مواجه شدید، باید :mod:`بسته‌ی رابط Tk ` را روی سیستم خود نصب کنید." +msgid "Nothing appears yet. To open the turtle window, make the turtle visible::" +msgstr "" + +#, fuzzy +#| msgid ">>> turtle.showturtle()" +msgid "showturtle()" +msgstr ">>> turtle.showturtle()" + +msgid "A new window opens, with the turtle in the middle, shown as an arrow heading East." +msgstr "" + msgid "Basic drawing" msgstr "ترسیم مقدماتی" @@ -88,7 +99,9 @@ msgstr "لاک‌پشت را ۱۰۰ گام به جلو بفرستید::" msgid "forward(100)" msgstr "forward(100)" -msgid "You should see (most likely, in a new window on your display) a line drawn by the turtle, heading East. Change the direction of the turtle, so that it turns 120 degrees left (anti-clockwise)::" +#, fuzzy +#| msgid "You should see (most likely, in a new window on your display) a line drawn by the turtle, heading East. Change the direction of the turtle, so that it turns 120 degrees left (anti-clockwise)::" +msgid "You should see a line drawn by the turtle, heading East. Change the direction of the turtle, so that it turns 120 degrees left (anti-clockwise)::" msgstr "باید (به‌احتمال زیاد، در یک پنجره‌ی جدید روی نمایشگر شما) سطری را ببینید که لاک‌پشت آن را رو به شرق رسم کرده است. جهت لاک‌پشت را تغییر دهید تا ۱۲۰ درجه به چپ (خلاف جهت عقربه‌های ساعت) بچرخد::" msgid "left(120)" @@ -342,8 +355,11 @@ msgstr "" msgid "a boolean" msgstr "یک بولی" -msgid "Move turtle to an absolute position. Unlike goto(x, y), a line will not be drawn. The turtle's orientation does not change. If currently filling, the polygon(s) teleported from will be filled after leaving, and filling will begin again after teleporting. This can be disabled with fill_gap=True, which makes the imaginary line traveled during teleporting act as a fill barrier like in goto(x, y)." -msgstr "لاک‌پشت را به یک موقعیت مطلق منتقل می‌کند. برخلاف goto(x, y)، سطری رسم نخواهد شد. جهت لاک‌پشت تغییر نمی‌کند. اگر در حال حاضر در حال پر کردن باشید، چندضلعی(هایی) که انتقال فوری از آن‌ها انجام شده است پس از ترک آن‌ها پر خواهند شد، و پر کردن پس از انتقال فوری دوباره آغاز می‌شود. این رفتار را می‌توان با fill_gap=True غیرفعال کرد، که باعث می‌شود خط فرضی طی‌شده در حین انتقال فوری مانند goto(x, y) به‌عنوان سد پر کردن عمل کند." +msgid "Teleport, or instantly move, the turtle to an absolute position. Unlike :func:`goto`, no line is drawn. If *x* or *y* is not given, that coordinate is kept as it is. The turtle's heading does not change." +msgstr "" + +msgid "If the turtle is filling a shape, the shape drawn so far is finished and filled before teleporting, and filling starts again at the new position. Pass ``fill_gap=True`` to keep filling one shape instead. The teleport then counts as an edge of the shape, as it would with :func:`goto`." +msgstr "" msgid "" ">>> tp = turtle.pos()\n" @@ -512,13 +528,17 @@ msgstr "" ">>> turtle.heading()\n" "180.0" -msgid "an integer >= 1 (if given)" -msgstr "یک عدد صحیح بزرگ‌تر یا مساوی ۱ (در صورت داده شدن)" +#, fuzzy +#| msgid "an integer or ``None``" +msgid "a positive integer or ``None``" +msgstr "یک عدد صحیح یا ``None``" msgid "a colorstring or a numeric color tuple" msgstr "یک رشته‌ی رنگ یا یک تاپل عددی رنگ" -msgid "Draw a circular dot with diameter *size*, using *color*. If *size* is not given, the maximum of ``pensize+4`` and ``2*pensize`` is used." +#, fuzzy +#| msgid "Draw a circular dot with diameter *size*, using *color*. If *size* is not given, the maximum of ``pensize+4`` and ``2*pensize`` is used." +msgid "Draw a circular dot with diameter *size*, using *color*. If *size* is not given, the larger of ``pensize + 4`` and ``2 * pensize`` is used. If *color* is not given, the current pencolor is used." msgstr "با استفاده از *color*، یک نقطه‌ی دایره‌ای به قطر *size* رسم کنید. اگر *size* داده نشود، از بیشینه‌ی ``pensize+4`` و ``2*pensize`` استفاده می‌شود." msgid "" @@ -616,34 +636,42 @@ msgstr "" ">>> for i in range(8):\n" "... turtle.undo()" -msgid "an integer in the range 0..10 or a speedstring (see below)" -msgstr "یک عدد صحیح در بازه‌ی ۰..۱۰ یا یک رشته‌ی سرعت (speedstring) (در زیر ببینید)" - -msgid "Set the turtle's speed to an integer value in the range 0..10. If no argument is given, return current speed." -msgstr "سرعت لاک‌پشت را روی یک مقدار عدد صحیح در بازه‌ی ۰ تا ۱۰ تنظیم می‌کند. اگر آرگومانی داده نشود، سرعت فعلی را برمی‌گرداند." +#, fuzzy +#| msgid "an integer or ``None``" +msgid "an integer, a string or ``None``" +msgstr "یک عدد صحیح یا ``None``" -msgid "If input is a number greater than 10 or smaller than 0.5, speed is set to 0. Speedstrings are mapped to speedvalues as follows:" -msgstr "اگر ورودی عددی بزرگ‌تر از ۱۰ یا کوچک‌تر از ۰٫۵ باشد، سرعت روی ۰ تنظیم می‌شود. رشته‌های سرعت به مقدارهای سرعت به‌صورت زیر نگاشت می‌شوند:" +msgid "Return or set the turtle's speed. If *speed* is not given, return the current speed. Otherwise set the turtle's speed to an integer from 0 to 10. If *speed* is a number greater than 10 or smaller than 0.5, the speed is set to 0. You can also use these names instead of numbers:" +msgstr "" -msgid "\"fastest\": 0" +#, fuzzy +#| msgid "\"fastest\": 0" +msgid "\"fastest\": 0" msgstr "\"fastest\": 0" -msgid "\"fast\": 10" +#, fuzzy +#| msgid "\"fast\": 10" +msgid "\"fast\": 10" msgstr "\"fast\": 10" -msgid "\"normal\": 6" +#, fuzzy +#| msgid "\"normal\": 6" +msgid "\"normal\": 6" msgstr "\"normal\": 6" -msgid "\"slow\": 3" +#, fuzzy +#| msgid "\"slow\": 3" +msgid "\"slow\": 3" msgstr "\"slow\": 3" -msgid "\"slowest\": 1" +#, fuzzy +#| msgid "\"slowest\": 1" +msgid "\"slowest\": 1" msgstr "\"slowest\": 1" -msgid "Speeds from 1 to 10 enforce increasingly faster animation of line drawing and turtle turning." -msgstr "سرعت‌های ۱ تا ۱۰، پویانمایی رسم خط و چرخش لاک‌پشت را به‌طور فزاینده‌ای سریع‌تر می‌کنند." - -msgid "Attention: *speed* = 0 means that *no* animation takes place. forward/back makes turtle jump and likewise left/right make the turtle turn instantly." +#, fuzzy +#| msgid "Attention: *speed* = 0 means that *no* animation takes place. forward/back makes turtle jump and likewise left/right make the turtle turn instantly." +msgid "Speeds from 1 to 10 give increasingly faster animation of line drawing and turtle turning. A speed of 0 means that no animation takes place: :func:`forward` and :func:`back` make the turtle jump, and likewise :func:`left` and :func:`right` make the turtle turn instantly." msgstr "توجه: *speed* = ۰ به این معناست که *هیچ* پویانمایی‌ای رخ نمی‌دهد. forward/back باعث پرش لاک‌پشت می‌شود و به همین ترتیب left/right باعث چرخش آنی لاک‌پشت می‌شود." msgid "" @@ -832,16 +860,22 @@ msgstr "" msgid "Drawing state" msgstr "وضعیت ترسیم" -msgid "Pull the pen down -- drawing when moving." -msgstr "قلم را پایین بکشید -- هنگام حرکت ترسیم می‌کند." +msgid "Lower the pen. The turtle draws a line when it moves." +msgstr "" -msgid "Pull the pen up -- no drawing when moving." +#, fuzzy +#| msgid "Pull the pen up -- no drawing when moving." +msgid "Lift the pen. The turtle does not draw when it moves." msgstr "قلم را بالا بکشید — هنگام حرکت، ترسیمی انجام نمی‌شود." -msgid "a positive number" -msgstr "یک عدد مثبت" +#, fuzzy +#| msgid "a number or ``None``" +msgid "a positive number or ``None``" +msgstr "یک عدد یا ``None``" -msgid "Set the line thickness to *width* or return it. If resizemode is set to \"auto\" and turtleshape is a polygon, that polygon is drawn with the same line thickness. If no argument is given, the current pensize is returned." +#, fuzzy +#| msgid "Set the line thickness to *width* or return it. If resizemode is set to \"auto\" and turtleshape is a polygon, that polygon is drawn with the same line thickness. If no argument is given, the current pensize is returned." +msgid "Return or set the line thickness. If *width* is not given, return the current pensize. If resizemode is set to \"auto\" and the turtle shape is a polygon, that polygon is drawn with the same line thickness." msgstr "ضخامت خط را روی *width* تنظیم می‌کند یا آن را بازمی‌گرداند. اگر resizemode روی \"auto\" تنظیم شده باشد و turtleshape یک چندضلعی باشد، آن چندضلعی با همان ضخامت خط رسم می‌شود. اگر آرگومانی داده نشود، pensize فعلی بازگردانده می‌شود." msgid "" @@ -926,7 +960,9 @@ msgstr "" ">>> sorted(turtle.pen().items())[:3]\n" "[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]" -msgid "Return ``True`` if pen is down, ``False`` if it's up." +#, fuzzy +#| msgid "Return ``True`` if pen is down, ``False`` if it's up." +msgid "Return ``True`` if the pen is down, ``False`` if it's up." msgstr "اگر قلم پایین باشد، ``True`` و اگر بالا باشد، ``False`` برمی‌گرداند." msgid "" @@ -956,28 +992,38 @@ msgstr "۴ قالب ورودی مجاز است:" msgid "``pencolor()``" msgstr "``pencolor()``" -msgid "Return the current pencolor as color specification string or as a tuple (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." +#, fuzzy +#| msgid "Return the current pencolor as color specification string or as a tuple (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." +msgid "Return the current pencolor as color specification string or as a tuple (see example). May be used as input to another :func:`color`, :func:`pencolor`, :func:`fillcolor` or :func:`bgcolor` call." msgstr "رنگ قلم فعلی را به‌صورت رشته مشخصه رنگ یا تاپل برمی‌گرداند (مثال را ببینید). می‌تواند به‌عنوان ورودی برای فراخوانی دیگری از color/pencolor/fillcolor/bgcolor استفاده شود." msgid "``pencolor(colorstring)``" msgstr "``pencolor(colorstring)``" -msgid "Set pencolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +#, fuzzy +#| msgid "Set pencolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +msgid "Set the pencolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "pencolor را به *colorstring* تنظیم می‌کند، که یک رشته‌ی مشخصه‌ی رنگ Tk است، مانند ``\"red\"``، ``\"yellow\"``، یا ``\"#33cc8c\"``." msgid "``pencolor((r, g, b))``" msgstr "``pencolor((r, g, b))``" -msgid "Set pencolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." +#, fuzzy +#| msgid "Set pencolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." +msgid "Set the pencolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "رنگ قلم (pencolor) را به رنگ RGB نشان‌داده‌شده با تاپل *r*، *g* و *b* تنظیم می‌کند. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشند، که در آن colormode برابر با 1.0 یا 255 است (به :func:`colormode` مراجعه کنید)." msgid "``pencolor(r, g, b)``" msgstr "``pencolor(r, g, b)``" -msgid "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." +#, fuzzy +#| msgid "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." +msgid "Set the pencolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode." msgstr "pencolor را روی رنگ RGB متناظر با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشند." -msgid "If turtleshape is a polygon, the outline of that polygon is drawn with the newly set pencolor." +#, fuzzy +#| msgid "If turtleshape is a polygon, the outline of that polygon is drawn with the newly set pencolor." +msgid "If the turtle shape is a polygon, the outline of that polygon is drawn with the newly set pencolor." msgstr "اگر turtleshape یک چندضلعی باشد، خط دور آن چندضلعی با pencolor تازه تنظیم‌شده رسم می‌شود." msgid "" @@ -1023,28 +1069,38 @@ msgstr "fillcolor را برمی‌گرداند یا تنظیم می‌کند." msgid "``fillcolor()``" msgstr "``fillcolor()``" -msgid "Return the current fillcolor as color specification string, possibly in tuple format (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." +#, fuzzy +#| msgid "Return the current fillcolor as color specification string, possibly in tuple format (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." +msgid "Return the current fillcolor as color specification string, possibly in tuple format (see example). May be used as input to another :func:`color`, :func:`pencolor`, :func:`fillcolor` or :func:`bgcolor` call." msgstr "fillcolor فعلی را به‌عنوان رشته مشخصات رنگ برمی‌گرداند، احتمالاً در قالب تاپل (به مثال مراجعه کنید). ممکن است به‌عنوان ورودی برای فراخوانی دیگری از color/pencolor/fillcolor/bgcolor استفاده شود." msgid "``fillcolor(colorstring)``" msgstr "``fillcolor(colorstring)``" -msgid "Set fillcolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +#, fuzzy +#| msgid "Set fillcolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." +msgid "Set the fillcolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgstr "fillcolor را روی *colorstring* تنظیم کنید، که یک رشته مشخص‌کننده رنگ Tk است، مانند ``\"red\"``، ``\"yellow\"`` یا ``\"#33cc8c\"``." msgid "``fillcolor((r, g, b))``" msgstr "``fillcolor((r, g, b))``" -msgid "Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." +#, fuzzy +#| msgid "Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." +msgid "Set the fillcolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "fillcolor را روی رنگ RGB نشان‌داده‌شده با تاپلِ *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشد، که colormode برابر 1.0 یا 255 است (به :func:`colormode` مراجعه کنید)." msgid "``fillcolor(r, g, b)``" msgstr "``fillcolor(r, g, b)``" -msgid "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." +#, fuzzy +#| msgid "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." +msgid "Set the fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode." msgstr "fillcolor را روی رنگ RGB متناظر با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشد." -msgid "If turtleshape is a polygon, the interior of that polygon is drawn with the newly set fillcolor." +#, fuzzy +#| msgid "If turtleshape is a polygon, the interior of that polygon is drawn with the newly set fillcolor." +msgid "If the turtle shape is a polygon, the interior of that polygon is drawn with the newly set fillcolor." msgstr "اگر شکل لاک‌پشت یک چندضلعی باشد، فضای داخلی آن چندضلعی با fillcolor به‌تازگی تنظیم‌شده رسم می‌شود." msgid "" @@ -1072,10 +1128,14 @@ msgstr "" ">>> turtle.fillcolor()\n" "(255.0, 255.0, 255.0)" -msgid "Return or set pencolor and fillcolor." +#, fuzzy +#| msgid "Return or set pencolor and fillcolor." +msgid "Return or set the pencolor and fillcolor." msgstr "pencolor و fillcolor را برمی‌گرداند یا تنظیم می‌کند." -msgid "Several input formats are allowed. They use 0 to 3 arguments as follows:" +#, fuzzy +#| msgid "Several input formats are allowed. They use 0 to 3 arguments as follows:" +msgid "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "چندین قالب ورودی مجاز است. آن‌ها از ۰ تا ۳ آرگومان به‌صورت زیر استفاده می‌کنند:" msgid "``color()``" @@ -1087,7 +1147,9 @@ msgstr "رنگ قلم فعلی و رنگ پر کردن فعلی را به‌صو msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -msgid "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the given value." +#, fuzzy +#| msgid "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the given value." +msgid "Inputs as in :func:`pencolor`. Set both the pencolor and the fillcolor to the given value." msgstr "ورودی‌ها مانند :func:`pencolor`، هر دو، fillcolor و pencolor، به مقدار داده‌شده تنظیم می‌شوند." msgid "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" @@ -1096,7 +1158,9 @@ msgstr "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))`` msgid "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and analogously if the other input format is used." msgstr "معادل ``pencolor(colorstring1)`` و ``fillcolor(colorstring2)`` است و اگر از قالب ورودی دیگر استفاده شود، به‌طور مشابه عمل می‌کند." -msgid "If turtleshape is a polygon, outline and interior of that polygon is drawn with the newly set colors." +#, fuzzy +#| msgid "If turtleshape is a polygon, outline and interior of that polygon is drawn with the newly set colors." +msgid "If the turtle shape is a polygon, the outline and interior of that polygon are drawn with the newly set colors." msgstr "اگر turtleshape یک چندضلعی باشد، خط دور و داخل آن چندضلعی با رنگ‌های تازه‌تنظیم‌شده رسم می‌شود." msgid "" @@ -1120,8 +1184,10 @@ msgstr "همچنین ببینید: متد Screen به نام :func:`colormode`." msgid "Filling" msgstr "پر کردن" -msgid "Return fillstate (``True`` if filling, ``False`` else)." -msgstr "وضعیت پر کردن را برمی‌گرداند (اگر در حال پر کردن باشد ``True``، در غیر این صورت ``False``)." +#, fuzzy +#| msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." +msgid "Return ``True`` if the turtle is filling, ``False`` otherwise." +msgstr "اگر Turtle نمایش داده شده باشد، ``True`` و اگر پنهان باشد، ``False`` را برمی‌گرداند." msgid "" ">>> turtle.begin_fill()\n" @@ -1174,7 +1240,9 @@ msgstr "پر شدن یا پر نشدن ناحیه‌های هم‌پوشانی msgid "More drawing control" msgstr "کنترل بیشتر ترسیم" -msgid "Delete the turtle's drawings from the screen, re-center the turtle and set variables to the default values." +#, fuzzy +#| msgid "Delete the turtle's drawings from the screen, re-center the turtle and set variables to the default values." +msgid "Delete the turtle's drawings and re-center the turtle. The turtle's settings are restored to their default values." msgstr "نقاشی‌های لاک‌پشت را از صفحه پاک می‌کند، لاک‌پشت را دوباره در مرکز قرار می‌دهد و متغیرها را روی مقادیر پیش‌فرض تنظیم می‌کند." msgid "" @@ -1202,7 +1270,9 @@ msgstr "" ">>> turtle.heading()\n" "0.0" -msgid "Delete the turtle's drawings from the screen. Do not move turtle. State and position of the turtle as well as drawings of other turtles are not affected." +#, fuzzy +#| msgid "Delete the turtle's drawings from the screen. Do not move turtle. State and position of the turtle as well as drawings of other turtles are not affected." +msgid "Delete the turtle's drawings from the screen. The state and position of the turtle as well as the drawings of other turtles are not affected." msgstr "ترسیمات لاک‌پشت را از صفحه حذف می‌کند. لاک‌پشت را حرکت نمی‌دهد. وضعیت و موقعیت لاک‌پشت و همچنین ترسیمات سایر لاک‌پشت‌ها تحت تأثیر قرار نمی‌گیرند." msgid "object to be written to the TurtleScreen" @@ -1233,19 +1303,15 @@ msgstr "وضعیت Turtle" msgid "Visibility" msgstr "قابلیت مشاهده" -msgid "Make the turtle invisible. It's a good idea to do this while you're in the middle of doing some complex drawing, because hiding the turtle speeds up the drawing observably." -msgstr "لاک‌پشت را نامرئی کنید. بهتر است این کار را هنگامی که در میانه‌ی انجام یک ترسیم پیچیده هستید انجام دهید، زیرا پنهان کردن لاک‌پشت سرعت ترسیم را به‌طور محسوسی افزایش می‌دهد." - -msgid ">>> turtle.hideturtle()" -msgstr ">>> turtle.hideturtle()" +msgid "Make the turtle invisible. If the pen is down, movement still draws." +msgstr "" msgid "Make the turtle visible." msgstr "لاک‌پشت را نمایان کنید." -msgid ">>> turtle.showturtle()" -msgstr ">>> turtle.showturtle()" - -msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." +#, fuzzy +#| msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." +msgid "Return ``True`` if the turtle is visible, ``False`` if it's hidden." msgstr "اگر Turtle نمایش داده شده باشد، ``True`` و اگر پنهان باشد، ``False`` را برمی‌گرداند." msgid "" @@ -1266,10 +1332,14 @@ msgstr "" msgid "Appearance" msgstr "ظاهر" -msgid "a string which is a valid shapename" -msgstr "رشته‌ای که یک نام شکل (shapename) معتبر باشد" +#, fuzzy +#| msgid "an integer or ``None``" +msgid "a string or ``None``" +msgstr "یک عدد صحیح یا ``None``" -msgid "Set turtle shape to shape with given *name* or, if name is not given, return name of current shape. Shape with *name* must exist in the TurtleScreen's shape dictionary. Initially there are the following polygon shapes: \"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn about how to deal with shapes see Screen method :func:`register_shape`." +#, fuzzy +#| msgid "Set turtle shape to shape with given *name* or, if name is not given, return name of current shape. Shape with *name* must exist in the TurtleScreen's shape dictionary. Initially there are the following polygon shapes: \"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn about how to deal with shapes see Screen method :func:`register_shape`." +msgid "Set the turtle shape to the named shape. If *name* is not given, return the name of the current shape. The shape must exist in the :class:`TurtleScreen`'s shape dictionary. Initially there are the following shapes: \"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\" and \"classic\". To add shapes, see the :class:`Screen` method :func:`register_shape`." msgstr "شکل لاک‌پشت را به شکل با *name* داده‌شده تنظیم می‌کند یا اگر name داده نشده باشد، نام شکل جاری را برمی‌گرداند. شکل با *name* باید در دیکشنری شکل‌های TurtleScreen وجود داشته باشد. در ابتدا، شکل‌های چندضلعی زیر وجود دارند: \"arrow\"، \"turtle\"، \"circle\"، \"square\"، \"triangle\"، \"classic\". برای آشنایی با نحوه‌ی کار با شکل‌ها، متد :func:`register_shape` از Screen را ببینید." msgid "" @@ -1285,20 +1355,23 @@ msgstr "" ">>> turtle.shape()\n" "'turtle'" -msgid "one of the strings \"auto\", \"user\", \"noresize\"" -msgstr "یکی از رشته‌های \"auto\"، \"user\"، \"noresize\"" - -msgid "Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If *rmode* is not given, return current resizemode. Different resizemodes have the following effects:" +#, fuzzy +#| msgid "Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If *rmode* is not given, return current resizemode. Different resizemodes have the following effects:" +msgid "Set the resizemode to \"auto\", \"user\" or \"noresize\". If *rmode* is not given, return the current resizemode. The different resizemodes have the following effects:" msgstr "resizemode را روی یکی از مقادیر زیر تنظیم کنید: \"auto\"، \"user\"، \"noresize\". اگر *rmode* داده نشود، resizemode فعلی برگردانده می‌شود. حالت‌های مختلف resizemode پیامدهای زیر را دارند:" -msgid "\"auto\": adapts the appearance of the turtle corresponding to the value of pensize." +#, fuzzy +#| msgid "\"auto\": adapts the appearance of the turtle corresponding to the value of pensize." +msgid "\"auto\": the turtle is resized according to the value of :func:`pensize`." msgstr "\"auto\": ظاهر لاک‌پشت را متناسب با مقدار pensize تطبیق می‌دهد." -msgid "\"user\": adapts the appearance of the turtle according to the values of stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." +#, fuzzy +#| msgid "\"user\": adapts the appearance of the turtle according to the values of stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." +msgid "\"user\": the turtle is resized according to the stretch factors and outline width, which are set by :func:`shapesize`." msgstr "\"user\": ظاهر لاک‌پشت را مطابق با مقادیر stretchfactor و outlinewidth (outline)، که توسط :func:`shapesize` تنظیم می‌شوند، تطبیق می‌دهد." -msgid "\"noresize\": no adaption of the turtle's appearance takes place." -msgstr "\"noresize\": هیچ سازگاری‌ای برای ظاهر لاک‌پشت انجام نمی‌شود." +msgid "\"noresize\": the turtle is not resized." +msgstr "" msgid "``resizemode(\"user\")`` is called by :func:`shapesize` when used with arguments." msgstr "``resizemode(\"user\")`` توسط :func:`shapesize` در صورتی که با آرگومان‌ها استفاده شود، فراخوانی می‌شود." @@ -1316,11 +1389,22 @@ msgstr "" ">>> turtle.resizemode()\n" "'auto'" -msgid "positive number" -msgstr "عدد مثبت" +msgid "Return or set the turtle's stretch factors and outline width. If no arguments are given, return the current values. Otherwise set resizemode to \"user\", so that the turtle is displayed stretched according to its stretch factors:" +msgstr "" -msgid "Return or set the pen's attributes x/y-stretchfactors and/or outline. Set resizemode to \"user\". If and only if resizemode is set to \"user\", the turtle will be displayed stretched according to its stretchfactors: *stretch_wid* is stretchfactor perpendicular to its orientation, *stretch_len* is stretchfactor in direction of its orientation, *outline* determines the width of the shape's outline." -msgstr "ویژگی‌های قلم، یعنی ضریب‌های کشیدگی x/y (x/y-stretchfactors) و/یا خط دور (outline)، را برمی‌گرداند یا تنظیم می‌کند. resizemode را روی \"user\" تنظیم می‌کند. اگر و فقط اگر resizemode روی \"user\" تنظیم شده باشد، لاک‌پشت بر اساس ضریب‌های کشیدگی خود به‌صورت کشیده‌شده نمایش داده می‌شود: *stretch_wid* ضریب کشیدگی عمود بر جهت آن است، *stretch_len* ضریب کشیدگی در راستای جهت آن است، و *outline* عرض خط دور شکل را تعیین می‌کند." +msgid "*stretch_wid*: the stretch factor perpendicular to the turtle's heading" +msgstr "" + +#, fuzzy +#| msgid "Move the turtle forward by the specified *distance*, in the direction the turtle is headed." +msgid "*stretch_len*: the stretch factor in the direction of the turtle's heading" +msgstr "لاکی‌پشت را به اندازه‌ی *distance* مشخص‌شده، در جهتی که لاکی‌پشت رو به آن دارد، به جلو حرکت می‌دهد." + +msgid "*outline*: the width of the shape's outline" +msgstr "" + +msgid "For example, ``shapesize(2, 1)`` makes the turtle twice as wide without changing its length. If only *stretch_wid* is given, *stretch_len* is set to the same value." +msgstr "" msgid "" ">>> turtle.shapesize()\n" @@ -1441,17 +1525,23 @@ msgstr "" msgid "Using events" msgstr "استفاده از رویدادها" -msgid "a function with two arguments which will be called with the coordinates of the clicked point on the canvas" -msgstr "تابعی با دو آرگومان که با مختصات نقطه‌ی کلیک‌شده روی بوم فراخوانی خواهد شد" +#, fuzzy +#| msgid "a function with no arguments or ``None``" +msgid "a function with two arguments or ``None``" +msgstr "تابعی بدون آرگومان یا ``None``" -msgid "number of the mouse-button, defaults to 1 (left mouse button)" -msgstr "شماره‌ی دکمه‌ی ماوس، پیش‌فرض ۱ (دکمه‌ی چپ ماوس)" +#, fuzzy +#| msgid "an integer or ``None``" +msgid "an integer" +msgstr "یک عدد صحیح یا ``None``" -msgid "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise it will replace a former binding" -msgstr "``True`` یا ``False`` — اگر ``True`` باشد، یک اتصال جدید افزوده خواهد شد، در غیر این صورت جایگزین یک اتصال پیشین خواهد شد" +#, fuzzy +#| msgid "a number or ``None``" +msgid "a boolean or ``None``" +msgstr "یک عدد یا ``None``" -msgid "Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, existing bindings are removed. Example for the anonymous turtle, i.e. the procedural way:" -msgstr "*fun* را به رویدادهای کلیک ماوس روی این لاک‌پشت متصل می‌کند. اگر *fun* برابر ``None`` باشد، اتصالات موجود حذف می‌شوند. مثال برای لاک‌پشت ناشناس، یعنی روش رویه‌ای:" +msgid "Bind *fun* to mouse-click events on this turtle. *fun* is called with the coordinates of the clicked point on the canvas. If *fun* is ``None``, existing bindings are removed. *btn* is the number of the mouse button and defaults to 1, the left mouse button. If *add* is ``True``, a new binding is added, otherwise it replaces a former binding. Example for the anonymous turtle, that is, the procedural way:" +msgstr "" msgid "" ">>> def turn(x, y):\n" @@ -1466,6 +1556,15 @@ msgstr "" ">>> onclick(turn) # Now clicking into the turtle will turn it.\n" ">>> onclick(None) # event-binding will be removed" +msgid "a function with two arguments which will be called with the coordinates of the clicked point on the canvas" +msgstr "تابعی با دو آرگومان که با مختصات نقطه‌ی کلیک‌شده روی بوم فراخوانی خواهد شد" + +msgid "number of the mouse-button, defaults to 1 (left mouse button)" +msgstr "شماره‌ی دکمه‌ی ماوس، پیش‌فرض ۱ (دکمه‌ی چپ ماوس)" + +msgid "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise it will replace a former binding" +msgstr "``True`` یا ``False`` — اگر ``True`` باشد، یک اتصال جدید افزوده خواهد شد، در غیر این صورت جایگزین یک اتصال پیشین خواهد شد" + msgid "Bind *fun* to mouse-button-release events on this turtle. If *fun* is ``None``, existing bindings are removed." msgstr "*fun* را به رویدادهای رها کردن دکمه ماوس روی این لاک‌پشت متصل کنید. اگر *fun* برابر ``None`` باشد، اتصال‌های موجود حذف می‌شوند." @@ -1519,10 +1618,14 @@ msgstr "" "... turtle.right(60)\n" "... turtle.forward(100)" -msgid "Start recording the vertices of a polygon. Current turtle position is first vertex of polygon." +#, fuzzy +#| msgid "Start recording the vertices of a polygon. Current turtle position is first vertex of polygon." +msgid "Start recording the vertices of a polygon. The current turtle position is the first vertex of the polygon." msgstr "ثبت رأس‌های یک چندضلعی را آغاز کنید. موقعیت فعلی لاک‌پشت، اولین رأس چندضلعی است." -msgid "Stop recording the vertices of a polygon. Current turtle position is last vertex of polygon. This will be connected with the first vertex." +#, fuzzy +#| msgid "Stop recording the vertices of a polygon. Current turtle position is last vertex of polygon. This will be connected with the first vertex." +msgid "Stop recording the vertices of a polygon. The current turtle position is the last vertex of the polygon. This will be connected with the first vertex." msgstr "ثبت رأس‌های یک چندضلعی را متوقف می‌کند. موقعیت فعلی لاک‌پشت آخرین رأس چندضلعی است. این به اولین رأس متصل خواهد شد." msgid "Return the last recorded polygon." @@ -1551,18 +1654,29 @@ msgstr "" ">>> p = turtle.get_poly()\n" ">>> register_shape(\"myFavouriteShape\", p)" -msgid "Create and return a clone of the turtle with same position, heading and turtle properties." +#, fuzzy +#| msgid "Create and return a clone of the turtle with same position, heading and turtle properties." +msgid "Create and return a clone of the turtle. The clone has the same position, heading and turtle properties." msgstr "یک رونوشت (clone) از لاک‌پشت با همان موقعیت، جهت و ویژگی‌های لاک‌پشت ایجاد کرده و بازمی‌گرداند." +#, fuzzy +#| msgid "" +#| ">>> mick = Turtle()\n" +#| ">>> joe = mick.clone()" msgid "" -">>> mick = Turtle()\n" -">>> joe = mick.clone()" +">>> leonel = Turtle()\n" +">>> marco = leonel.clone()" msgstr "" ">>> mick = Turtle()\n" ">>> joe = mick.clone()" -msgid "Return the Turtle object itself. Only reasonable use: as a function to return the \"anonymous turtle\":" -msgstr "خود شیء Turtle را برمی‌گرداند. تنها استفاده معقول: به‌عنوان تابعی برای برگرداندن «لاک‌پشت ناشناس»:" +#, fuzzy +#| msgid "Return the turtle's x coordinate." +msgid "Return the Turtle object itself." +msgstr "مختصات x لاک‌پشت را برمی‌گرداند." + +msgid "Call ``getturtle()`` to get the turtle used by functions such as :func:`forward` and :func:`left`:" +msgstr "" msgid "" ">>> pet = getturtle()\n" @@ -1589,13 +1703,17 @@ msgstr "" "\n" ">>> ts.bgcolor(\"pink\")" -msgid "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of given size is installed. *size* gives the maximum number of turtle actions that can be undone by the :func:`undo` method/function. If *size* is ``None``, the undobuffer is disabled." +#, fuzzy +#| msgid "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of given size is installed. *size* gives the maximum number of turtle actions that can be undone by the :func:`undo` method/function. If *size* is ``None``, the undobuffer is disabled." +msgid "Set or disable the undo buffer. If *size* is an integer, an empty undo buffer of the given size is installed. *size* is the maximum number of turtle actions that can be undone by :func:`undo`. If *size* is ``None``, the undo buffer is disabled." msgstr "بافر لغو (undobuffer) را تنظیم یا غیرفعال کنید. اگر *size* یک عدد صحیح باشد، یک بافر لغو (undobuffer) خالی با اندازه‌ی داده‌شده نصب می‌شود. *size* حداکثر تعداد کنش‌های لاک‌پشت را که می‌توان با متد/تابع :func:`undo` آن‌ها را واگرد کرد، مشخص می‌کند. اگر *size* برابر ``None`` باشد، بافر لغو (undobuffer) غیرفعال می‌شود." msgid ">>> turtle.setundobuffer(42)" msgstr ">>> turtle.setundobuffer(42)" -msgid "Return number of entries in the undobuffer." +#, fuzzy +#| msgid "Return number of entries in the undobuffer." +msgid "Return the number of entries in the undo buffer." msgstr "تعداد ورودی‌های موجود در بافر لغو (undobuffer) را برمی‌گرداند." msgid "" @@ -1605,47 +1723,6 @@ msgstr "" ">>> while undobufferentries():\n" "... undo()" -msgid "Compound shapes" -msgstr "شکل‌های ترکیبی" - -msgid "To use compound turtle shapes, which consist of several polygons of different color, you must use the helper class :class:`Shape` explicitly as described below:" -msgstr "برای استفاده از شکل‌های ترکیبی turtle، که از چندین چندضلعی با رنگ‌های متفاوت تشکیل شده‌اند، باید به‌صراحت از کلاس کمکی :class:`Shape` استفاده کنید، همان‌طور که در زیر توضیح داده شده است:" - -msgid "Create an empty Shape object of type \"compound\"." -msgstr "یک شیء Shape خالی از نوع \"compound\" ایجاد کنید." - -msgid "Add as many components to this object as desired, using the :meth:`~Shape.addcomponent` method." -msgstr "هر تعداد کامپوننت که بخواهید، با استفاده از متد :meth:`~Shape.addcomponent` به این شیء اضافه کنید." - -msgid "For example:" -msgstr "برای مثال:" - -msgid "" -">>> s = Shape(\"compound\")\n" -">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" -">>> s.addcomponent(poly1, \"red\", \"blue\")\n" -">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" -">>> s.addcomponent(poly2, \"blue\", \"red\")" -msgstr "" -">>> s = Shape(\"compound\")\n" -">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" -">>> s.addcomponent(poly1, \"red\", \"blue\")\n" -">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" -">>> s.addcomponent(poly2, \"blue\", \"red\")" - -msgid "Now add the Shape to the Screen's shapelist and use it:" -msgstr "اکنون Shape را به shapelistِ Screen اضافه کنید و از آن استفاده کنید:" - -msgid "" -">>> register_shape(\"myshape\", s)\n" -">>> shape(\"myshape\")" -msgstr "" -">>> register_shape(\"myshape\", s)\n" -">>> shape(\"myshape\")" - -msgid "The :class:`Shape` class is used internally by the :func:`register_shape` method in different ways. The application programmer has to deal with the Shape class *only* when using compound shapes like shown above!" -msgstr "کلاس :class:`Shape` به‌صورت داخلی توسط متد :func:`register_shape` به روش‌های مختلفی استفاده می‌شود. برنامه‌نویس برنامه *فقط* هنگام استفاده از شکل‌های ترکیبی مانند آنچه در بالا نشان داده شد، باید با کلاس Shape سروکار داشته باشد!" - msgid "Screen methods and functions" msgstr "متدها و توابع Screen" @@ -1661,7 +1738,9 @@ msgstr "رنگ پس‌زمینه‌ی TurtleScreen را برمی‌گرداند msgid "``bgcolor()``" msgstr "``bgcolor()``" -msgid "Return the current background color as color specification string or as a tuple (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." +#, fuzzy +#| msgid "Return the current background color as color specification string or as a tuple (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." +msgid "Return the current background color as a color specification string or as a tuple (see example). May be used as input to another :func:`color`, :func:`pencolor`, :func:`fillcolor` or :func:`bgcolor` call." msgstr "رنگ پس‌زمینه‌ی جاری را به‌صورت یک رشته‌ی مشخصه‌ی رنگ یا یک تاپل برمی‌گرداند (مثال را ببینید). می‌تواند به‌عنوان ورودی در فراخوانی دیگری از color/pencolor/fillcolor/bgcolor استفاده شود." msgid "``bgcolor(colorstring)``" @@ -1673,13 +1752,17 @@ msgstr "رنگ پس‌زمینه را روی *colorstring* تنظیم کنید، msgid "``bgcolor((r, g, b))``" msgstr "``bgcolor((r, g, b))``" -msgid "Set the background color to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." +#, fuzzy +#| msgid "Set the background color to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." +msgid "Set the background color to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." msgstr "رنگ پس‌زمینه را روی رنگ RGB بیان‌شده با تاپل *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی ۰..colormode باشند، که colormode می‌تواند ۱.۰ یا ۲۵۵ باشد (به :func:`colormode` مراجعه کنید)." msgid "``bgcolor(r, g, b)``" msgstr "``bgcolor(r, g, b)``" -msgid "Set the background color to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." +#, fuzzy +#| msgid "Set the background color to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." +msgid "Set the background color to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode." msgstr "رنگ پس‌زمینه را روی رنگ RGB نشان‌داده‌شده با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشد." msgid "" @@ -1725,7 +1808,9 @@ msgstr "تمام ترسیم‌ها و تمام لاک‌پشت‌ها را از msgid "This TurtleScreen method is available as a global function only under the name ``resetscreen``. The global function ``reset`` is another one derived from the Turtle method ``reset``." msgstr "این متد TurtleScreen فقط با نام ``resetscreen`` به‌عنوان یک تابع سراسری در دسترس است. تابع سراسری ``reset`` تابع دیگری است که از متد ``reset`` در Turtle مشتق شده است." -msgid "Reset all Turtles on the Screen to their initial state." +#, fuzzy +#| msgid "Reset all Turtles on the Screen to their initial state." +msgid "Reset all turtles on the screen to their initial state." msgstr "بازنشانی همه‌ی لاک‌پشت‌های روی صفحه به وضعیت اولیه‌شان." msgid "positive integer, new width of canvas in pixels" @@ -1756,23 +1841,8 @@ msgstr "" msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "مثلاً برای جستجوی لاک‌پشتی که به‌اشتباه فرار کرده است ;-)" -msgid "a number, x-coordinate of lower left corner of canvas" -msgstr "یک عدد، مختصات x گوشه‌ی پایین سمت چپ بوم" - -msgid "a number, y-coordinate of lower left corner of canvas" -msgstr "یک عدد، مختصات y گوشه‌ی پایین سمت چپ بوم" - -msgid "a number, x-coordinate of upper right corner of canvas" -msgstr "یک عدد، مختصات x گوشه‌ی بالا سمت راست بوم" - -msgid "a number, y-coordinate of upper right corner of canvas" -msgstr "یک عدد، مختصات y گوشه‌ی بالا سمت راست بوم" - -msgid "Set up user-defined coordinate system and switch to mode \"world\" if necessary. This performs a ``screen.reset()``. If mode \"world\" is already active, all drawings are redrawn according to the new coordinates." -msgstr "دستگاه مختصات تعریف‌شده توسط کاربر را تنظیم می‌کند و در صورت لزوم به حالت \"world\" تغییر می‌کند. این کار ``screen.reset()`` را انجام می‌دهد. اگر حالت \"world\" از قبل فعال باشد، همه ترسیم‌ها بر اساس مختصات جدید دوباره ترسیم می‌شوند." - -msgid "**ATTENTION**: in user-defined coordinate systems angles may appear distorted." -msgstr "**توجه**: در دستگاه‌های مختصات تعریف‌شده توسط کاربر، ممکن است زاویه‌ها تحریف‌شده به نظر برسند." +msgid "Set up a user-defined coordinate system. *llx* and *lly* are the x and y coordinates of the lower left corner of the canvas. *urx* and *ury* are the x and y coordinates of the upper right corner. Switch to mode \"world\" if necessary, which performs a reset. If mode \"world\" is already active, all drawings are redrawn according to the new coordinates. In user-defined coordinate systems, angles may appear distorted, see :func:`mode`." +msgstr "" msgid "" ">>> screen.reset()\n" @@ -1794,7 +1864,9 @@ msgstr "" msgid "Animation control" msgstr "کنترل پویانمایی" -msgid "Temporarily disable turtle animation. The code written inside the ``no_animation`` block will not be animated; once the code block is exited, the drawing will appear." +#, fuzzy +#| msgid "Temporarily disable turtle animation. The code written inside the ``no_animation`` block will not be animated; once the code block is exited, the drawing will appear." +msgid "Temporarily turn off turtle animation. The code inside the :keyword:`with` block is not animated. Once the block is exited, the drawing appears. This is useful for drawing complex shapes where even the fastest speed setting is too slow." msgstr "پویانمایی turtle را به‌طور موقت غیرفعال می‌کند. کد نوشته‌شده درون بلوک ``no_animation`` پویانمایی نخواهد شد؛ پس از خروج از بلوک کد، ترسیم ظاهر می‌شود." msgid "" @@ -1808,15 +1880,16 @@ msgstr "" "... fd(dist)\n" "... rt(90)" -msgid "positive integer" -msgstr "عدد صحیح مثبت" +#, fuzzy +#| msgid "an integer or ``None``" +msgid "a nonnegative integer or ``None``" +msgstr "یک عدد صحیح یا ``None``" -msgid "Set or return the drawing *delay* in milliseconds. (This is approximately the time interval between two consecutive canvas updates.) The longer the drawing delay, the slower the animation." +#, fuzzy +#| msgid "Set or return the drawing *delay* in milliseconds. (This is approximately the time interval between two consecutive canvas updates.) The longer the drawing delay, the slower the animation." +msgid "Return or set the drawing delay in milliseconds. This is approximately the time interval between two consecutive canvas updates. The longer the drawing delay, the slower the animation." msgstr "*تأخیر* ترسیم را بر حسب میلی‌ثانیه تنظیم می‌کند یا برمی‌گرداند. (این مقدار تقریباً بازه‌ی زمانی بین دو به‌روزرسانی متوالی بوم است.) هرچه تأخیر ترسیم طولانی‌تر باشد، پویانمایی کندتر خواهد بود." -msgid "Optional argument:" -msgstr "آرگومان اختیاری:" - msgid "" ">>> screen.delay()\n" "10\n" @@ -1830,10 +1903,9 @@ msgstr "" ">>> screen.delay()\n" "5" -msgid "nonnegative integer" -msgstr "عدد صحیح نامنفی" - -msgid "Turn turtle animation on/off and set delay for update drawings. If *n* is given, only each n-th regular screen update is really performed. (Can be used to accelerate the drawing of complex graphics.) When called without arguments, returns the currently stored value of n. Second argument sets delay value (see :func:`delay`)." +#, fuzzy +#| msgid "Turn turtle animation on/off and set delay for update drawings. If *n* is given, only each n-th regular screen update is really performed. (Can be used to accelerate the drawing of complex graphics.) When called without arguments, returns the currently stored value of n. Second argument sets delay value (see :func:`delay`)." +msgid "Turn turtle animation on or off and set the drawing delay. If *n* is given, only every n-th regular screen update is performed, which can be used to speed up the drawing of complex graphics. If *n* is 0, animation is turned off and the screen is only updated by calling :func:`update`. If *delay* is given, it sets the drawing delay, see :func:`delay`. When called without arguments, return the current value of *n*." msgstr "روشن/خاموش کردن پویانمایی turtle و تنظیم تأخیر برای به‌روزرسانی ترسیم‌ها. اگر *n* داده شود، تنها هر n-امین به‌روزرسانی منظم صفحه واقعاً انجام می‌شود. (می‌تواند برای تسریع ترسیم گرافیک‌های پیچیده استفاده شود.) هنگامی که بدون آرگومان فراخوانی شود، مقدار ذخیره‌شده‌ی کنونی n را برمی‌گرداند. آرگومان دوم مقدار تأخیر را تنظیم می‌کند (به :func:`delay` مراجعه کنید)." msgid "" @@ -1903,8 +1975,8 @@ msgstr "" ">>> screen.onkey(f, \"Up\")\n" ">>> screen.listen()" -msgid "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, existing bindings are removed." -msgstr "*fun* را به رویدادهای کلیک ماوس روی این صفحه متصل کنید. اگر *fun* برابر ``None`` باشد، اتصالات موجود حذف می‌شوند." +msgid "Bind *fun* to mouse-click events on this screen. *fun* is called with the coordinates of the clicked point on the canvas. If *fun* is ``None``, existing bindings are removed. *btn* is the number of the mouse button and defaults to 1, the left mouse button. If *add* is ``True``, a new binding is added, otherwise it replaces a former binding." +msgstr "" msgid "Example for a TurtleScreen instance named ``screen`` and a Turtle instance named ``turtle``:" msgstr "مثالی برای نمونه‌ای از TurtleScreen به نام ``screen`` و نمونه‌ای از Turtle به نام ``turtle``:" @@ -1949,25 +2021,30 @@ msgstr "" ">>> f() ### makes the turtle march around\n" ">>> running = False" -msgid "Starts event loop - calling Tkinter's mainloop function. Must be the last statement in a turtle graphics program. Must *not* be used if a script is run from within IDLE in -n mode (No subprocess) - for interactive use of turtle graphics. ::" +#, fuzzy +#| msgid "Starts event loop - calling Tkinter's mainloop function. Must be the last statement in a turtle graphics program. Must *not* be used if a script is run from within IDLE in -n mode (No subprocess) - for interactive use of turtle graphics. ::" +msgid "Start the event loop by calling Tkinter's :meth:`~tkinter.Misc.mainloop` method. Must be the last statement in a turtle graphics program. Must *not* be used if a script is run from within IDLE in -n mode (see :ref:`idle-no-subprocess`)." msgstr "حلقه‌ی رویداد را با فراخوانی تابع mainloop از Tkinter آغاز می‌کند. باید آخرین دستور در یک برنامه‌ی گرافیک turtle باشد. برای استفاده‌ی تعاملی از گرافیک turtle، اگر یک اسکریپت از داخل IDLE در حالت -n (بدون subprocess) اجرا شود، *نباید* از آن استفاده شود. ::" -msgid ">>> screen.mainloop()" -msgstr ">>> screen.mainloop()" - msgid "Input methods" msgstr "متدهای ورودی" -msgid "string" +#, fuzzy +#| msgid "string" +msgid "a string" msgstr "رشته" -msgid "Pop up a dialog window for input of a string. Parameter title is the title of the dialog window, prompt is a text mostly describing what information to input. Return the string input. If the dialog is canceled, return ``None``. ::" +#, fuzzy +#| msgid "Pop up a dialog window for input of a string. Parameter title is the title of the dialog window, prompt is a text mostly describing what information to input. Return the string input. If the dialog is canceled, return ``None``. ::" +msgid "Pop up a dialog window for input of a string. *title* is the title of the dialog window and *prompt* is a text describing what information to input. Return the string entered. If the dialog is canceled, return ``None``. ::" msgstr "یک پنجره‌ی محاوره برای دریافت یک رشته باز می‌کند. پارامتر title عنوان پنجره‌ی محاوره است و prompt متنی است که عمدتاً توضیح می‌دهد چه اطلاعاتی باید وارد شود. رشته‌ی ورودی را برمی‌گرداند. اگر پنجره‌ی محاوره لغو شود، ``None`` برمی‌گرداند. ::" msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" msgstr ">>> screen.textinput(\"NIM\", \"Name of first player:\")" -msgid "Pop up a dialog window for input of a number. title is the title of the dialog window, prompt is a text mostly describing what numerical information to input. default: default value, minval: minimum value for input, maxval: maximum value for input. The number input must be in the range minval .. maxval if these are given. If not, a hint is issued and the dialog remains open for correction. Return the number input. If the dialog is canceled, return ``None``. ::" +#, fuzzy +#| msgid "Pop up a dialog window for input of a number. title is the title of the dialog window, prompt is a text mostly describing what numerical information to input. default: default value, minval: minimum value for input, maxval: maximum value for input. The number input must be in the range minval .. maxval if these are given. If not, a hint is issued and the dialog remains open for correction. Return the number input. If the dialog is canceled, return ``None``. ::" +msgid "Pop up a dialog window for input of a number. *title* is the title of the dialog window and *prompt* is a text describing what numerical information to input. *default* is the default value, *minval* and *maxval* are the minimum and maximum values for input. If these are given, the number entered must be between *minval* and *maxval*. If not, a hint is issued and the dialog remains open for correction. Return the number entered. If the dialog is canceled, return ``None``. ::" msgstr "یک پنجره محاوره برای دریافت یک عدد باز می‌کند. title عنوان پنجره محاوره است، prompt متنی است که عمدتاً توضیح می‌دهد چه اطلاعات عددی باید وارد شود. default: مقدار پیش‌فرض، minval: حداقل مقدار برای ورودی، maxval: حداکثر مقدار برای ورودی. اگر این مقادیر داده شده باشند، عدد ورودی باید در بازه minval .. maxval باشد. در غیر این صورت، یک راهنمایی نمایش داده می‌شود و پنجره محاوره برای اصلاح باز می‌ماند. عدد ورودی را برمی‌گرداند. اگر پنجره محاوره لغو شود، ``None`` برگردانده می‌شود. ::" msgid ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, maxval=10000)" @@ -1976,13 +2053,14 @@ msgstr ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, maxval msgid "Settings and special methods" msgstr "تنظیمات و متدهای ویژه" -msgid "one of the strings \"standard\", \"logo\" or \"world\"" -msgstr "یکی از رشته‌های \"standard\"، \"logo\" یا \"world\"" - -msgid "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If mode is not given, current mode is returned." +#, fuzzy +#| msgid "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If mode is not given, current mode is returned." +msgid "Set the turtle mode and perform a reset. *mode* is one of the strings \"standard\", \"logo\" or \"world\". If *mode* is not given, return the current mode." msgstr "حالت turtle را (\"standard\"، \"logo\" یا \"world\") تنظیم کنید و بازنشانی را انجام دهید. اگر حالتی داده نشود، حالت کنونی برگردانده می‌شود." -msgid "Mode \"standard\" is compatible with old :mod:`!turtle`. Mode \"logo\" is compatible with most Logo turtle graphics. Mode \"world\" uses user-defined \"world coordinates\". **Attention**: in this mode angles appear distorted if ``x/y`` unit-ratio doesn't equal 1." +#, fuzzy +#| msgid "Mode \"standard\" is compatible with old :mod:`!turtle`. Mode \"logo\" is compatible with most Logo turtle graphics. Mode \"world\" uses user-defined \"world coordinates\". **Attention**: in this mode angles appear distorted if ``x/y`` unit-ratio doesn't equal 1." +msgid "Mode \"standard\" is compatible with the old :mod:`!turtle` module. Mode \"logo\" is compatible with most Logo turtle graphics. Mode \"world\" uses user-defined world coordinates, see :func:`setworldcoordinates`. In this mode, angles appear distorted if the x and y units are not of equal length." msgstr "حالت «standard» با ماژول قدیمی :mod:`!turtle` سازگار است. حالت «logo» با بیشتر گرافیک‌های لاک‌پشتی Logo سازگار است. حالت «world» از «مختصات جهان» تعریف‌شده توسط کاربر استفاده می‌کند. **توجه**: در این حالت، اگر نسبت واحد ``x/y`` برابر با ۱ نباشد، زاویه‌ها اعوجاج‌یافته به نظر می‌رسند." msgid "Mode" @@ -2012,8 +2090,13 @@ msgstr "رو به بالا (شمال)" msgid "clockwise" msgstr "در جهت عقربه‌های ساعت" +#, fuzzy +#| msgid "" +#| ">>> mode(\"logo\") # resets turtle heading to north\n" +#| ">>> mode()\n" +#| "'logo'" msgid "" -">>> mode(\"logo\") # resets turtle heading to north\n" +">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" msgstr "" @@ -2021,10 +2104,9 @@ msgstr "" ">>> mode()\n" "'logo'" -msgid "one of the values 1.0 or 255" -msgstr "یکی از مقدارهای ۱.۰ یا ۲۵۵" - -msgid "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* values of color triples have to be in the range 0..*cmode*." +#, fuzzy +#| msgid "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* values of color triples have to be in the range 0..*cmode*." +msgid "Return the colormode or set it to 1.0 or 255. After setting it, the *r*, *g* and *b* values of color triples have to be between 0 and *cmode*." msgstr "colormode را برمی‌گرداند یا آن را روی 1.0 یا 255 تنظیم می‌کند. پس از آن، مقادیر *r*، *g* و *b* در سه‌تایی‌های رنگ باید در بازه‌ی 0..*cmode* باشند." msgid "" @@ -2074,8 +2156,13 @@ msgstr "" ">>> screen.getshapes()\n" "['arrow', 'blank', 'circle', ..., 'turtle']" -msgid "There are four different ways to call this function:" -msgstr "چهار روش مختلف برای فراخوانی این تابع وجود دارد:" +msgid "a string, a tuple of pairs of numbers, a :class:`Shape` object or ``None``" +msgstr "" + +#, fuzzy +#| msgid "Now add the Shape to the Screen's shapelist and use it:" +msgid "Add a turtle shape to the TurtleScreen's shape list. It can be called in four different ways:" +msgstr "اکنون Shape را به shapelistِ Screen اضافه کنید و از آن استفاده کنید:" msgid "*name* is the name of an image file (PNG, GIF, PGM, and PPM) and *shape* is ``None``: Install the corresponding image shape. ::" msgstr "*name* نام یک پرونده تصویری (PNG، GIF، PGM و PPM) است و *shape* برابر ``None`` است: شکل تصویری متناظر نصب می‌شود. ::" @@ -2083,9 +2170,6 @@ msgstr "*name* نام یک پرونده تصویری (PNG، GIF، PGM و PPM) ا msgid ">>> screen.register_shape(\"turtle.gif\")" msgstr ">>> screen.register_shape(\"turtle.gif\")" -msgid "Image shapes *do not* rotate when turning the turtle, so they do not display the heading of the turtle!" -msgstr "شکل‌های تصویری هنگام چرخاندن لاک‌پشت *نمی‌چرخند*، بنابراین جهت لاک‌پشت را نمایش نمی‌دهند!" - msgid "*name* is an arbitrary string and *shape* is the name of an image file (PNG, GIF, PGM, and PPM): Install the corresponding image shape. ::" msgstr "*name* یک رشته دلخواه است و *shape* نام یک پرونده تصویری (PNG، GIF، PGM و PPM) است: شکل تصویری متناظر را نصب کنید. ::" @@ -2101,8 +2185,10 @@ msgstr ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" msgid "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` object: Install the corresponding compound shape." msgstr "*name* یک رشته دلخواه است و *shape* یک شیء :class:`Shape` (مرکب) است: شکل مرکب متناظر نصب می‌شود." -msgid "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered shapes can be used by issuing the command ``shape(shapename)``." -msgstr "یک شکل لاک‌پشت را به فهرست شکل‌های TurtleScreen اضافه می‌کند. تنها می‌توان از شکل‌های ثبت‌شده بدین‌ترتیب با صدور دستور ``shape(shapename)`` استفاده کرد." +#, fuzzy +#| msgid "Image shapes *do not* rotate when turning the turtle, so they do not display the heading of the turtle!" +msgid "Image shapes do not rotate when turning the turtle, so they do not display the heading of the turtle. To use a registered shape, call :func:`shape` with its name." +msgstr "شکل‌های تصویری هنگام چرخاندن لاک‌پشت *نمی‌چرخند*، بنابراین جهت لاک‌پشت را نمایش نمی‌دهند!" msgid "Added support for PNG, PGM, and PPM image formats. Both a shape name and an image file name can be specified." msgstr "پشتیبانی از قالب‌های تصویری PNG، PGM و PPM افزوده شد. می‌توان هم نام شکل و هم نام پرونده تصویر را مشخص کرد." @@ -2140,7 +2226,9 @@ msgstr "" msgid "Screen-only methods" msgstr "متدهای مختص Screen" -msgid "Shut the turtlegraphics window." +#, fuzzy +#| msgid "Shut the turtlegraphics window." +msgid "Close the turtle graphics window." msgstr "پنجره‌ی گرافیک لاک‌پشتی را ببندید." msgid "Bind ``bye()`` method to mouse clicks on the Screen." @@ -2191,12 +2279,11 @@ msgstr "" ">>> screen.setup(width=.75, height=0.5, startx=None, starty=None)\n" ">>> # sets window to 75% of screen by 50% of screen and centers" -msgid "a string that is shown in the titlebar of the turtle graphics window" +#, fuzzy +#| msgid "a string that is shown in the titlebar of the turtle graphics window" +msgid "Set the title of the turtle window to *titlestring*. The title is shown in the title bar of the turtle graphics window." msgstr "رشته‌ای که در نوار عنوان پنجره‌ی گرافیک لاک‌پشتی نمایش داده می‌شود" -msgid "Set title of turtle window to *titlestring*." -msgstr "عنوان پنجره‌ی turtle را به *titlestring* تنظیم می‌کند." - msgid ">>> screen.title(\"Welcome to the turtle zoo!\")" msgstr ">>> screen.title(\"Welcome to the turtle zoo!\")" @@ -2218,8 +2305,8 @@ msgstr "یک :class:`!tkinter.Canvas`" msgid "Provides screen oriented methods like :func:`bgcolor` etc. that are described above." msgstr "متدهای صفحه‌محوری مانند :func:`bgcolor` و غیره را فراهم می‌کند که در بالا توضیح داده شده‌اند." -msgid "Subclass of TurtleScreen, with :ref:`four methods added `." -msgstr "زیرکلاسی از TurtleScreen، با :ref:`چهار متد افزوده‌شده `." +msgid "Subclass of :class:`TurtleScreen`, with :ref:`four methods added `. Calling ``Screen()`` returns the single screen object. If it does not exist yet, it is created. Otherwise the existing one is returned." +msgstr "" msgid "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas with scrollbars added" msgstr "یک ابزارک Tkinter برای دربرگرفتن ScrolledCanvas، یعنی یک بوم Tkinter با نوارهای پیمایش افزوده‌شده" @@ -2227,50 +2314,39 @@ msgstr "یک ابزارک Tkinter برای دربرگرفتن ScrolledCanvas، msgid "Used by class Screen, which thus automatically provides a ScrolledCanvas as playground for the turtles." msgstr "توسط کلاس Screen استفاده می‌شود، که بنابراین به‌طور خودکار یک ScrolledCanvas را به‌عنوان زمین بازی برای لاک‌پشت‌ها فراهم می‌کند." -msgid "one of the strings \"polygon\", \"image\", \"compound\"" -msgstr "یکی از رشته‌های \"polygon\"، \"image\"، \"compound\"" - -msgid "Data structure modeling shapes. The pair ``(type_, data)`` must follow this specification:" -msgstr "ساختار داده‌ای برای مدل‌سازی شکل‌ها. جفت ``(type_, data)`` باید این مشخصات را رعایت کند:" - -msgid "*type_*" -msgstr "*type_*" - -msgid "*data*" -msgstr "*data*" - -msgid "\"polygon\"" -msgstr "\"چندضلعی\"" - -msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" -msgstr "یک تاپل چندضلعی، یعنی یک تاپل از جفت‌های مختصات" - -msgid "\"image\"" -msgstr "\"image\"" - -msgid "an image (in this form only used internally!)" -msgstr "یک تصویر (در این قالب فقط به‌صورت داخلی استفاده می‌شود!)" - -msgid "\"compound\"" -msgstr "\"compound\"" +msgid "depends on *type_*" +msgstr "" -msgid "``None`` (a compound shape has to be constructed using the :meth:`addcomponent` method)" -msgstr "``None`` (یک شکل ترکیبی باید با استفاده از متد :meth:`addcomponent` ساخته شود)" +msgid "Data structure modeling shapes. *type_* is one of the strings \"polygon\", \"image\" or \"compound\". What *data* must be depends on *type_*: for \"polygon\" a tuple of pairs of coordinates, for \"image\" an image (only used internally), and for \"compound\" ``None``, as a compound shape is built up using the :meth:`addcomponent` method." +msgstr "" -msgid "a polygon, i.e. a tuple of pairs of numbers" +#, fuzzy +#| msgid "a polygon, i.e. a tuple of pairs of numbers" +msgid "a tuple of pairs of numbers" msgstr "یک چندضلعی، یعنی یک تاپل از جفت‌های عددی" -msgid "a color the *poly* will be filled with" -msgstr "رنگی که *poly* با آن پر خواهد شد" +msgid "a color" +msgstr "" -msgid "a color for the poly's outline (if given)" -msgstr "رنگی برای خط دور poly (در صورت داده‌شدن)" +#, fuzzy +#| msgid "a number or ``None``" +msgid "a color or ``None``" +msgstr "یک عدد یا ``None``" + +msgid "Add a component to a shape of type \"compound\". *poly* is a polygon, a tuple of pairs of numbers. *fill* is the color the polygon is filled with and *outline* is the color of its outline. If *outline* is not given, *fill* is used for it as well." +msgstr "" msgid "Example:" msgstr "مثال:" +#, fuzzy +#| msgid "" +#| ">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" +#| ">>> s = Shape(\"compound\")\n" +#| ">>> s.addcomponent(poly, \"red\", \"blue\")\n" +#| ">>> # ... add more components and then use register_shape()" msgid "" -">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" +">>> poly = ((0,0), (10,-5), (0,10), (-10,-5))\n" ">>> s = Shape(\"compound\")\n" ">>> s.addcomponent(poly, \"red\", \"blue\")\n" ">>> # ... add more components and then use register_shape()" @@ -2333,7 +2409,9 @@ msgstr "راهنماهای عملی" msgid "This section covers some typical turtle use-cases and approaches." msgstr "این بخش برخی از موارد استفاده و رویکردهای رایج turtle را پوشش می‌دهد." -msgid "Automatically begin and end filling" +#, fuzzy +#| msgid "Automatically begin and end filling" +msgid "How to automatically begin and end filling" msgstr "آغاز و پایان پر کردن به‌صورت خودکار" msgid "Starting with Python 3.14, you can use the :func:`fill` :term:`context manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically begin and end fill. Here is an example::" @@ -2374,7 +2452,58 @@ msgstr "" "\n" "forward(200)" -msgid "Use the ``turtle`` module namespace" +#, fuzzy +#| msgid "Compound shapes" +msgid "How to use compound shapes" +msgstr "شکل‌های ترکیبی" + +msgid "To use compound turtle shapes, which consist of several polygons of different color, you must use the helper class :class:`Shape` explicitly as described below:" +msgstr "برای استفاده از شکل‌های ترکیبی turtle، که از چندین چندضلعی با رنگ‌های متفاوت تشکیل شده‌اند، باید به‌صراحت از کلاس کمکی :class:`Shape` استفاده کنید، همان‌طور که در زیر توضیح داده شده است:" + +#, fuzzy +#| msgid "Create an empty Shape object of type \"compound\"." +msgid "Create an empty :class:`Shape` object of type \"compound\"." +msgstr "یک شیء Shape خالی از نوع \"compound\" ایجاد کنید." + +msgid "Add as many components to this object as desired, using the :meth:`~Shape.addcomponent` method." +msgstr "هر تعداد کامپوننت که بخواهید، با استفاده از متد :meth:`~Shape.addcomponent` به این شیء اضافه کنید." + +msgid "For example:" +msgstr "برای مثال:" + +#, fuzzy +#| msgid "" +#| ">>> s = Shape(\"compound\")\n" +#| ">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" +#| ">>> s.addcomponent(poly1, \"red\", \"blue\")\n" +#| ">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" +#| ">>> s.addcomponent(poly2, \"blue\", \"red\")" +msgid "" +">>> s = Shape(\"compound\")\n" +">>> poly1 = ((0,0), (10,-5), (0,10), (-10,-5))\n" +">>> s.addcomponent(poly1, \"red\", \"blue\")\n" +">>> poly2 = ((0,0), (10,-5), (-10,-5))\n" +">>> s.addcomponent(poly2, \"blue\", \"red\")" +msgstr "" +">>> s = Shape(\"compound\")\n" +">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" +">>> s.addcomponent(poly1, \"red\", \"blue\")\n" +">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" +">>> s.addcomponent(poly2, \"blue\", \"red\")" + +msgid "Now add the Shape to the Screen's shapelist and use it:" +msgstr "اکنون Shape را به shapelistِ Screen اضافه کنید و از آن استفاده کنید:" + +msgid "" +">>> register_shape(\"myshape\", s)\n" +">>> shape(\"myshape\")" +msgstr "" +">>> register_shape(\"myshape\", s)\n" +">>> shape(\"myshape\")" + +#, fuzzy +#| msgid "Use the ``turtle`` module namespace" +msgid "How to use the ``turtle`` module namespace" msgstr "از فضای نام ماژول ``turtle`` استفاده کنید" msgid "Using ``from turtle import *`` is convenient - but be warned that it imports a rather large collection of objects, and if you're doing anything but turtle graphics you run the risk of a name conflict (this becomes even more an issue if you're using turtle graphics in a script where other modules might be imported)." @@ -2383,7 +2512,9 @@ msgstr "استفاده از ``from turtle import *`` مناسب است، اما msgid "The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, ``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over and over again becomes tedious, use for example ``import turtle as t`` instead.)" msgstr "راه‌حل استفاده از ``import turtle`` است - ``fd()`` به ``turtle.fd()`` تبدیل می‌شود، ``width()`` به ``turtle.width()`` تبدیل می‌شود و به همین ترتیب. (اگر تایپ کردن مکرر \"turtle\" خسته‌کننده شد، برای مثال به‌جای آن از ``import turtle as t`` استفاده کنید.)" -msgid "Use turtle graphics in a script" +#, fuzzy +#| msgid "Use turtle graphics in a script" +msgid "How to use turtle graphics in a script" msgstr "استفاده از گرافیک لاک‌پشتی (turtle graphics) در یک اسکریپت" msgid "It's recommended to use the ``turtle`` module namespace as described immediately above, for example::" @@ -2417,7 +2548,9 @@ msgstr "t.mainloop()" msgid "to the end of the script. The script will now wait to be dismissed and will not exit until it is terminated, for example by closing the turtle graphics window." msgstr "به انتهای اسکریپت. اسکریپت اکنون منتظر می‌ماند تا بسته شود و تا زمانی که پایان داده نشود، خارج نخواهد شد، برای مثال با بستن پنجره‌ی گرافیک turtle." -msgid "Use object-oriented turtle graphics" +#, fuzzy +#| msgid "Use object-oriented turtle graphics" +msgid "How to use object-oriented turtle graphics" msgstr "استفاده از گرافیک لاک‌پشتی شیءگرا" msgid ":ref:`Explanation of the object-oriented interface `" @@ -2470,7 +2603,9 @@ msgstr "" "t.screen.title('Object-oriented turtle demo')\n" "t.screen.bgcolor(\"orange\")" -msgid "How to use help" +#, fuzzy +#| msgid "How to use help" +msgid "How to use :func:`!help`" msgstr "نحوه استفاده از help" msgid "The public methods of the Screen and Turtle classes are documented extensively via docstrings. So these can be used as online-help via the Python help facilities:" @@ -2953,6 +3088,150 @@ msgstr ":func:`circle`" msgid "Have fun!" msgstr "لذت ببرید!" +#~ msgid "Move turtle to an absolute position. Unlike goto(x, y), a line will not be drawn. The turtle's orientation does not change. If currently filling, the polygon(s) teleported from will be filled after leaving, and filling will begin again after teleporting. This can be disabled with fill_gap=True, which makes the imaginary line traveled during teleporting act as a fill barrier like in goto(x, y)." +#~ msgstr "لاک‌پشت را به یک موقعیت مطلق منتقل می‌کند. برخلاف goto(x, y)، سطری رسم نخواهد شد. جهت لاک‌پشت تغییر نمی‌کند. اگر در حال حاضر در حال پر کردن باشید، چندضلعی(هایی) که انتقال فوری از آن‌ها انجام شده است پس از ترک آن‌ها پر خواهند شد، و پر کردن پس از انتقال فوری دوباره آغاز می‌شود. این رفتار را می‌توان با fill_gap=True غیرفعال کرد، که باعث می‌شود خط فرضی طی‌شده در حین انتقال فوری مانند goto(x, y) به‌عنوان سد پر کردن عمل کند." + +#~ msgid "an integer >= 1 (if given)" +#~ msgstr "یک عدد صحیح بزرگ‌تر یا مساوی ۱ (در صورت داده شدن)" + +#~ msgid "an integer in the range 0..10 or a speedstring (see below)" +#~ msgstr "یک عدد صحیح در بازه‌ی ۰..۱۰ یا یک رشته‌ی سرعت (speedstring) (در زیر ببینید)" + +#~ msgid "Set the turtle's speed to an integer value in the range 0..10. If no argument is given, return current speed." +#~ msgstr "سرعت لاک‌پشت را روی یک مقدار عدد صحیح در بازه‌ی ۰ تا ۱۰ تنظیم می‌کند. اگر آرگومانی داده نشود، سرعت فعلی را برمی‌گرداند." + +#~ msgid "If input is a number greater than 10 or smaller than 0.5, speed is set to 0. Speedstrings are mapped to speedvalues as follows:" +#~ msgstr "اگر ورودی عددی بزرگ‌تر از ۱۰ یا کوچک‌تر از ۰٫۵ باشد، سرعت روی ۰ تنظیم می‌شود. رشته‌های سرعت به مقدارهای سرعت به‌صورت زیر نگاشت می‌شوند:" + +#~ msgid "Speeds from 1 to 10 enforce increasingly faster animation of line drawing and turtle turning." +#~ msgstr "سرعت‌های ۱ تا ۱۰، پویانمایی رسم خط و چرخش لاک‌پشت را به‌طور فزاینده‌ای سریع‌تر می‌کنند." + +#~ msgid "Pull the pen down -- drawing when moving." +#~ msgstr "قلم را پایین بکشید -- هنگام حرکت ترسیم می‌کند." + +#~ msgid "a positive number" +#~ msgstr "یک عدد مثبت" + +#~ msgid "Return fillstate (``True`` if filling, ``False`` else)." +#~ msgstr "وضعیت پر کردن را برمی‌گرداند (اگر در حال پر کردن باشد ``True``، در غیر این صورت ``False``)." + +#~ msgid "Make the turtle invisible. It's a good idea to do this while you're in the middle of doing some complex drawing, because hiding the turtle speeds up the drawing observably." +#~ msgstr "لاک‌پشت را نامرئی کنید. بهتر است این کار را هنگامی که در میانه‌ی انجام یک ترسیم پیچیده هستید انجام دهید، زیرا پنهان کردن لاک‌پشت سرعت ترسیم را به‌طور محسوسی افزایش می‌دهد." + +#~ msgid ">>> turtle.hideturtle()" +#~ msgstr ">>> turtle.hideturtle()" + +#~ msgid "a string which is a valid shapename" +#~ msgstr "رشته‌ای که یک نام شکل (shapename) معتبر باشد" + +#~ msgid "one of the strings \"auto\", \"user\", \"noresize\"" +#~ msgstr "یکی از رشته‌های \"auto\"، \"user\"، \"noresize\"" + +#~ msgid "\"noresize\": no adaption of the turtle's appearance takes place." +#~ msgstr "\"noresize\": هیچ سازگاری‌ای برای ظاهر لاک‌پشت انجام نمی‌شود." + +#~ msgid "positive number" +#~ msgstr "عدد مثبت" + +#~ msgid "Return or set the pen's attributes x/y-stretchfactors and/or outline. Set resizemode to \"user\". If and only if resizemode is set to \"user\", the turtle will be displayed stretched according to its stretchfactors: *stretch_wid* is stretchfactor perpendicular to its orientation, *stretch_len* is stretchfactor in direction of its orientation, *outline* determines the width of the shape's outline." +#~ msgstr "ویژگی‌های قلم، یعنی ضریب‌های کشیدگی x/y (x/y-stretchfactors) و/یا خط دور (outline)، را برمی‌گرداند یا تنظیم می‌کند. resizemode را روی \"user\" تنظیم می‌کند. اگر و فقط اگر resizemode روی \"user\" تنظیم شده باشد، لاک‌پشت بر اساس ضریب‌های کشیدگی خود به‌صورت کشیده‌شده نمایش داده می‌شود: *stretch_wid* ضریب کشیدگی عمود بر جهت آن است، *stretch_len* ضریب کشیدگی در راستای جهت آن است، و *outline* عرض خط دور شکل را تعیین می‌کند." + +#~ msgid "Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, existing bindings are removed. Example for the anonymous turtle, i.e. the procedural way:" +#~ msgstr "*fun* را به رویدادهای کلیک ماوس روی این لاک‌پشت متصل می‌کند. اگر *fun* برابر ``None`` باشد، اتصالات موجود حذف می‌شوند. مثال برای لاک‌پشت ناشناس، یعنی روش رویه‌ای:" + +#~ msgid "Return the Turtle object itself. Only reasonable use: as a function to return the \"anonymous turtle\":" +#~ msgstr "خود شیء Turtle را برمی‌گرداند. تنها استفاده معقول: به‌عنوان تابعی برای برگرداندن «لاک‌پشت ناشناس»:" + +#~ msgid "The :class:`Shape` class is used internally by the :func:`register_shape` method in different ways. The application programmer has to deal with the Shape class *only* when using compound shapes like shown above!" +#~ msgstr "کلاس :class:`Shape` به‌صورت داخلی توسط متد :func:`register_shape` به روش‌های مختلفی استفاده می‌شود. برنامه‌نویس برنامه *فقط* هنگام استفاده از شکل‌های ترکیبی مانند آنچه در بالا نشان داده شد، باید با کلاس Shape سروکار داشته باشد!" + +#~ msgid "a number, x-coordinate of lower left corner of canvas" +#~ msgstr "یک عدد، مختصات x گوشه‌ی پایین سمت چپ بوم" + +#~ msgid "a number, y-coordinate of lower left corner of canvas" +#~ msgstr "یک عدد، مختصات y گوشه‌ی پایین سمت چپ بوم" + +#~ msgid "a number, x-coordinate of upper right corner of canvas" +#~ msgstr "یک عدد، مختصات x گوشه‌ی بالا سمت راست بوم" + +#~ msgid "a number, y-coordinate of upper right corner of canvas" +#~ msgstr "یک عدد، مختصات y گوشه‌ی بالا سمت راست بوم" + +#~ msgid "Set up user-defined coordinate system and switch to mode \"world\" if necessary. This performs a ``screen.reset()``. If mode \"world\" is already active, all drawings are redrawn according to the new coordinates." +#~ msgstr "دستگاه مختصات تعریف‌شده توسط کاربر را تنظیم می‌کند و در صورت لزوم به حالت \"world\" تغییر می‌کند. این کار ``screen.reset()`` را انجام می‌دهد. اگر حالت \"world\" از قبل فعال باشد، همه ترسیم‌ها بر اساس مختصات جدید دوباره ترسیم می‌شوند." + +#~ msgid "**ATTENTION**: in user-defined coordinate systems angles may appear distorted." +#~ msgstr "**توجه**: در دستگاه‌های مختصات تعریف‌شده توسط کاربر، ممکن است زاویه‌ها تحریف‌شده به نظر برسند." + +#~ msgid "positive integer" +#~ msgstr "عدد صحیح مثبت" + +#~ msgid "Optional argument:" +#~ msgstr "آرگومان اختیاری:" + +#~ msgid "nonnegative integer" +#~ msgstr "عدد صحیح نامنفی" + +#~ msgid "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, existing bindings are removed." +#~ msgstr "*fun* را به رویدادهای کلیک ماوس روی این صفحه متصل کنید. اگر *fun* برابر ``None`` باشد، اتصالات موجود حذف می‌شوند." + +#~ msgid ">>> screen.mainloop()" +#~ msgstr ">>> screen.mainloop()" + +#~ msgid "one of the strings \"standard\", \"logo\" or \"world\"" +#~ msgstr "یکی از رشته‌های \"standard\"، \"logo\" یا \"world\"" + +#~ msgid "one of the values 1.0 or 255" +#~ msgstr "یکی از مقدارهای ۱.۰ یا ۲۵۵" + +#~ msgid "There are four different ways to call this function:" +#~ msgstr "چهار روش مختلف برای فراخوانی این تابع وجود دارد:" + +#~ msgid "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered shapes can be used by issuing the command ``shape(shapename)``." +#~ msgstr "یک شکل لاک‌پشت را به فهرست شکل‌های TurtleScreen اضافه می‌کند. تنها می‌توان از شکل‌های ثبت‌شده بدین‌ترتیب با صدور دستور ``shape(shapename)`` استفاده کرد." + +#~ msgid "Set title of turtle window to *titlestring*." +#~ msgstr "عنوان پنجره‌ی turtle را به *titlestring* تنظیم می‌کند." + +#~ msgid "Subclass of TurtleScreen, with :ref:`four methods added `." +#~ msgstr "زیرکلاسی از TurtleScreen، با :ref:`چهار متد افزوده‌شده `." + +#~ msgid "one of the strings \"polygon\", \"image\", \"compound\"" +#~ msgstr "یکی از رشته‌های \"polygon\"، \"image\"، \"compound\"" + +#~ msgid "Data structure modeling shapes. The pair ``(type_, data)`` must follow this specification:" +#~ msgstr "ساختار داده‌ای برای مدل‌سازی شکل‌ها. جفت ``(type_, data)`` باید این مشخصات را رعایت کند:" + +#~ msgid "*type_*" +#~ msgstr "*type_*" + +#~ msgid "*data*" +#~ msgstr "*data*" + +#~ msgid "\"polygon\"" +#~ msgstr "\"چندضلعی\"" + +#~ msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" +#~ msgstr "یک تاپل چندضلعی، یعنی یک تاپل از جفت‌های مختصات" + +#~ msgid "\"image\"" +#~ msgstr "\"image\"" + +#~ msgid "an image (in this form only used internally!)" +#~ msgstr "یک تصویر (در این قالب فقط به‌صورت داخلی استفاده می‌شود!)" + +#~ msgid "\"compound\"" +#~ msgstr "\"compound\"" + +#~ msgid "``None`` (a compound shape has to be constructed using the :meth:`addcomponent` method)" +#~ msgstr "``None`` (یک شکل ترکیبی باید با استفاده از متد :meth:`addcomponent` ساخته شود)" + +#~ msgid "a color the *poly* will be filled with" +#~ msgstr "رنگی که *poly* با آن پر خواهد شد" + +#~ msgid "a color for the poly's outline (if given)" +#~ msgstr "رنگی برای خط دور poly (در صورت داده‌شدن)" + #~ msgid "In the following documentation the argument list for functions is given. Methods, of course, have the additional first argument *self* which is omitted here." #~ msgstr "در مستندات زیر، فهرست آرگومان‌های توابع داده شده است. متدها، البته، آرگومان اول اضافه‌ای به نام *self* دارند که در اینجا حذف شده است." diff --git a/reference/datamodel.po b/reference/datamodel.po index b77fcbdaf..d3ebff15b 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-24 04:09+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-12 16:43+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -453,8 +453,10 @@ msgstr ":attr:`!__doc__` رشته‌ی مستندسازی تابع است، یا msgid ":attr:`!__name__` is the function's name. See :attr:`function.__name__`." msgstr ":attr:`!__name__` نام تابع است. :attr:`function.__name__` را ببینید." -msgid ":attr:`!__self__` is set to ``None`` (but see the next item)." -msgstr ":attr:`!__self__` روی ``None`` تنظیم می‌شود (اما آیتم بعدی را ببینید)." +#, fuzzy +#| msgid "The name of the module the function was defined in, or ``None`` if unavailable." +msgid ":attr:`!__self__` is the module object the function was defined in or ``None`` if unavailable." +msgstr "نام ماژولی که تابع در آن تعریف شده است، یا ``None`` اگر در دسترس نباشد." msgid ":attr:`!__module__` is the name of the module the function was defined in or ``None`` if unavailable. See :attr:`function.__module__`." msgstr ":attr:`!__module__` نام ماژولی است که تابع در آن تعریف شده است، یا اگر در دسترس نباشد ``None`` است. :attr:`function.__module__` را ببینید." @@ -3079,3 +3081,6 @@ msgstr "with" msgid "context manager" msgstr "مدیر زمینه" + +#~ msgid ":attr:`!__self__` is set to ``None`` (but see the next item)." +#~ msgstr ":attr:`!__self__` روی ``None`` تنظیم می‌شود (اما آیتم بعدی را ببینید)." diff --git a/using/android.po b/using/android.po index 3259bbce8..39a2b4979 100644 --- a/using/android.po +++ b/using/android.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2024-09-27 14:19+0000\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -51,6 +51,11 @@ msgstr "`Buildozer `__، از پروژه‌ی msgid "`Chaquopy `__" msgstr "`Chaquopy `__" +#, fuzzy +#| msgid "`Termux `__" +msgid "`Flet `__" +msgstr "`Termux `__" + msgid "`pyqtdeploy `__" msgstr "`pyqtdeploy `__" diff --git a/using/cmdline.po b/using/cmdline.po index 2abb22d55..1bb656c69 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-21 13:26+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -462,7 +462,9 @@ msgstr "گزینه ``-X perf`` پشتیبانی از پروفایل‌گیر ``p msgid "``-X perf_jit`` enables support for the Linux ``perf`` profiler with DWARF support. When this option is provided, the ``perf`` profiler will be able to report Python calls using DWARF information. This option is only available on some platforms and will do nothing if is not supported on the current system. The default value is \"off\". See also :envvar:`PYTHON_PERF_JIT_SUPPORT` and :ref:`perf_profiling`." msgstr "گزینه‌ی ``-X perf_jit`` پشتیبانی از پروفایل‌گیر ``perf`` لینوکس را همراه با پشتیبانی DWARF فعال می‌کند. هنگامی که این گزینه ارائه شود، پروفایل‌گیر ``perf`` می‌تواند فراخوانی‌های پایتون را با استفاده از اطلاعات DWARF گزارش کند. این گزینه تنها روی برخی پلتفرم‌ها در دسترس است و اگر در سیستم فعلی پشتیبانی نشده باشد، هیچ کاری انجام نمی‌دهد. مقدار پیش‌فرض «off» است. همچنین :envvar:`PYTHON_PERF_JIT_SUPPORT` و :ref:`perf_profiling` را ببینید." -msgid "``-X disable_remote_debug`` disables the remote debugging support as described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." +#, fuzzy +#| msgid "``-X disable_remote_debug`` disables the remote debugging support as described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." +msgid "``-X disable-remote-debug`` disables the remote debugging support as described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." msgstr "``-X disable_remote_debug`` پشتیبانی از اشکال‌زدایی از راه دور را که در :pep:`768` شرح داده شده است، غیرفعال می‌کند. این شامل هم قابلیت زمان‌بندی کد برای اجرا در فرایندی دیگر و هم قابلیت دریافت کد برای اجرا در فرایند جاری است." msgid "This option is only available on some platforms and will do nothing if is not supported on the current system. See also :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` and :pep:`768`." @@ -797,7 +799,9 @@ msgstr "همچنین گزینه‌ی خط فرمان :option:`-X perf_jit <-X>` msgid "If this variable is set to a non-empty string, it disables the remote debugging feature described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." msgstr "اگر این متغیر به رشته‌ای غیرخالی تنظیم شده باشد، قابلیت اشکال‌زدایی از راه دورِ توصیف‌شده در :pep:`768` را غیرفعال می‌کند. این شامل هر دو کارکرد زمان‌بندی کد برای اجرا در فرایندی دیگر و کارکرد دریافت کد برای اجرا در فرایند جاری است." -msgid "See also the :option:`-X disable_remote_debug` command-line option." +#, fuzzy +#| msgid "See also the :option:`-X disable_remote_debug` command-line option." +msgid "See also the :option:`-X disable-remote-debug` command-line option." msgstr "همچنین گزینه‌ی خط فرمان :option:`-X disable_remote_debug` را ببینید." msgid "If this variable is set to a positive integer, it overrides the return values of :func:`os.cpu_count` and :func:`os.process_cpu_count`." diff --git a/using/configure.po b/using/configure.po index 71157ae71..771b89bba 100644 --- a/using/configure.po +++ b/using/configure.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-06 04:10+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 10:31+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -295,7 +295,9 @@ msgstr "اندازه‌ی رقم‌های :class:`int` پایتون را بر ح msgid "By default, the digit size is 30." msgstr "به‌طور پیش‌فرض، اندازه رقم ۳۰ است." -msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." +#, fuzzy +#| msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." +msgid "Define :c:macro:`PYLONG_BITS_IN_DIGIT` to ``15`` or ``30``." msgstr "مقدار ``PYLONG_BITS_IN_DIGIT`` را برابر ``15`` یا ``30`` تعریف کنید." msgid "See :data:`sys.int_info.bits_per_digit `." @@ -736,9 +738,14 @@ msgstr "غیرفعال کردن تخصیص‌دهنده حافظه‌ی تخصص msgid "Disable static documentation strings to reduce the memory footprint (enabled by default). Documentation strings defined in Python are not affected." msgstr "غیرفعال‌سازی رشته‌های مستند ایستا برای کاهش مصرف حافظه (به‌صورت پیش‌فرض فعال است). رشته‌های مستند تعریف‌شده در پایتون تحت تأثیر قرار نمی‌گیرند." -msgid "Don't define the ``WITH_DOC_STRINGS`` macro." +#, fuzzy +#| msgid "Don't define the ``WITH_DOC_STRINGS`` macro." +msgid "Don't define the :c:macro:`WITH_DOC_STRINGS` macro." msgstr "ماکروی ``WITH_DOC_STRINGS`` را تعریف نکنید." +msgid "Define this macro to include static documentation strings in the build. It is defined by default, unless :option:`--without-doc-strings` is used." +msgstr "" + msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "ماکرو ``PyDoc_STRVAR()`` را ببینید." diff --git a/using/ios.po b/using/ios.po index 9a6a618e2..1497ba8d1 100644 --- a/using/ios.po +++ b/using/ios.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-15 07:49+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -41,7 +41,9 @@ msgstr "در iOS، مفهوم نصب به‌عنوان یک منبع سیستم msgid "As a result, the only way you can use Python on iOS is in embedded mode - that is, by writing a native iOS application, and embedding a Python interpreter using ``libPython``, and invoking Python code using the :ref:`Python embedding API `. The full Python interpreter, the standard library, and all your Python code is then packaged as a standalone bundle that can be distributed via the iOS App Store." msgstr "در نتیجه، تنها راهی که می‌توانید از پایتون روی iOS استفاده کنید، حالت تعبیه‌شده است؛ یعنی با نوشتن یک برنامه‌ی بومی iOS، تعبیه کردن یک مفسر پایتون با استفاده از ``libPython`` و فراخواندن کد پایتون با استفاده از :ref:`API تعبیه پایتون `. سپس مفسر کامل پایتون، کتابخانه‌ی استاندارد و تمام کد پایتون شما به‌صورت یک بسته‌ی مستقل بسته‌بندی می‌شود که می‌توان آن را از طریق iOS App Store توزیع کرد." -msgid "If you're looking to experiment for the first time with writing an iOS app in Python, projects such as `BeeWare `__ and `Kivy `__ will provide a much more approachable user experience. These projects manage the complexities associated with getting an iOS project running, so you only need to deal with the Python code itself." +#, fuzzy +#| msgid "If you're looking to experiment for the first time with writing an iOS app in Python, projects such as `BeeWare `__ and `Kivy `__ will provide a much more approachable user experience. These projects manage the complexities associated with getting an iOS project running, so you only need to deal with the Python code itself." +msgid "If you're looking to experiment for the first time with writing an iOS app in Python, projects such as `BeeWare `__, `Kivy `__, and `Flet `__ will provide a much more approachable user experience. These projects manage the complexities associated with getting an iOS project running, so you only need to deal with the Python code itself." msgstr "اگر می‌خواهید برای نخستین بار نوشتن یک اپلیکیشن iOS با پایتون را تجربه کنید، پروژه‌هایی مانند `BeeWare `__ و `Kivy `__ تجربه‌ی کاربری بسیار در دسترس‌تری فراهم می‌کنند. این پروژه‌ها پیچیدگی‌های مرتبط با راه‌اندازی یک پروژه iOS را مدیریت می‌کنند، بنابراین تنها لازم است با خودِ کد پایتون سروکار داشته باشید." msgid "Python at runtime on iOS" diff --git a/using/mac.po b/using/mac.po index 99978434f..912bea736 100644 --- a/using/mac.po +++ b/using/mac.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-16 12:56+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 10:40+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -185,6 +185,9 @@ msgstr "`Toga `_: بخشی از `پروژه BeeWare msgid "`wxPython `_: A cross-platform toolkit that supports desktop operating systems." msgstr "`wxPython `_: مجموعه ابزار چندسکویی که از سیستم‌عامل‌های دسکتاپ پشتیبانی می‌کند." +msgid "`Flet `_: A framework for building cross-platform desktop, mobile, and web applications in Python." +msgstr "" + msgid "Advanced Topics" msgstr "مباحث پیشرفته" diff --git a/using/windows.po b/using/windows.po index 9f4580d9c..78ae00320 100644 --- a/using/windows.po +++ b/using/windows.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-21 11:59+0000\n" +"POT-Creation-Date: 2026-10-22 14:54+0000\n" "PO-Revision-Date: 2026-09-14 13:35+0330\n" "Last-Translator: Sepehr Rasouli , 2026\n" "Language-Team: Persian (https://github.com/python/python-docs-fa/)\n" @@ -209,7 +209,9 @@ msgstr "گزینه‌ی ``--source=`` اجازه می‌دهد تا نما msgid "Passing ``--force`` will ignore any cached files and remove any existing install to replace it with the specified one." msgstr "با ارسال ``--force``، پرونده‌های ذخیره‌شده در نهانگاه نادیده گرفته می‌شوند و هر نصب موجود حذف می‌شود تا با نصب مشخص‌شده جایگزین شود." -msgid "Passing ``--update`` will replace existing installs if the new version is newer. Otherwise, they will be left. If no tags are provided with ``--update``, all installs managed by the Python install manager will be updated if newer versions are available. Updates will remove any modifications made to the install, including globally installed packages, but virtual environments will continue to work." +#, fuzzy +#| msgid "Passing ``--update`` will replace existing installs if the new version is newer. Otherwise, they will be left. If no tags are provided with ``--update``, all installs managed by the Python install manager will be updated if newer versions are available. Updates will remove any modifications made to the install, including globally installed packages, but virtual environments will continue to work." +msgid "Passing ``--update`` will replace existing installs if the new version is newer. Otherwise, they will be left. If no tags are provided with ``--update``, all installs managed by the Python install manager will be updated if newer versions are available. Updates will remove any modifications made to the install, including globally installed packages, but will leave ``site-packages`` and ``Scripts`` directories as is. Virtual environments are also unaffected." msgstr "با ارسال ``--update``، در صورتی که نسخه جدید جدیدتر باشد، نصب‌های موجود جایگزین می‌شوند. در غیر این صورت، دست‌نخورده باقی می‌مانند. اگر هیچ برچسبی همراه ``--update`` ارائه نشود، تمام نصب‌های مدیریت‌شده توسط مدیر نصب پایتون، در صورت وجود نسخه‌های جدیدتر، به‌روزرسانی می‌شوند. به‌روزرسانی‌ها هرگونه تغییرات اعمال‌شده روی نصب، از جمله بسته‌های نصب‌شده به صورت سراسری، را حذف می‌کنند، اما محیط‌های مجازی به کار خود ادامه خواهند داد." msgid "Passing ``--dry-run`` will generate output and logs, but will not modify any installs." @@ -281,7 +283,9 @@ msgstr "مدیر نصب پایتون با یک سلسله‌مراتب از پر msgid "This section will describe the defaults, but be aware that modified or overridden installs may resolve settings differently." msgstr "این بخش پیش‌فرض‌ها را توصیف می‌کند، اما آگاه باشید که ممکن است نصب‌های تغییر داده‌شده یا بازنویسی‌شده، تنظیمات را به شکل متفاوتی حل کنند." -msgid "A global configuration file may be configured by an administrator, and would be read first. The user configuration file is stored at :file:`%AppData%\\\\Python\\\\pymanager.json` (note that this location is under ``Roaming``, not ``Local``) and is read next, overwriting any settings from earlier files. An additional configuration file may be specified as the ``PYTHON_MANAGER_CONFIG`` environment variable or the ``--config`` command line option (but not both). These locations may be modified by administrative customization options listed later." +#, fuzzy +#| msgid "A global configuration file may be configured by an administrator, and would be read first. The user configuration file is stored at :file:`%AppData%\\\\Python\\\\pymanager.json` (note that this location is under ``Roaming``, not ``Local``) and is read next, overwriting any settings from earlier files. An additional configuration file may be specified as the ``PYTHON_MANAGER_CONFIG`` environment variable or the ``--config`` command line option (but not both). These locations may be modified by administrative customization options listed later." +msgid "A global configuration file may be configured by an :ref:`administrator ` and would be read first. The user configuration file is stored at :file:`%AppData%\\\\Python\\\\pymanager.json` (note that this location is under ``Roaming``, not ``Local``) and is read next, overwriting any settings from earlier files. An additional configuration file may be specified as the ``PYTHON_MANAGER_CONFIG`` environment variable or the ``--config`` command line option (but not both). These locations may be modified by administrative customization options listed later." msgstr "ممکن است یک پرونده پیکربندی سراسری توسط مدیر سیستم پیکربندی شود و ابتدا خوانده می‌شود. پرونده پیکربندی کاربر در :file:`%AppData%\\\\Python\\\\pymanager.json` ذخیره می‌شود (توجه داشته باشید که این مکان زیر ``Roaming`` است، نه ``Local``) و در مرحله بعد خوانده می‌شود و هر تنظیمی از پرونده‌های قبلی را بازنویسی می‌کند. می‌توان یک پرونده پیکربندی اضافی را از طریق متغیر محیطی ``PYTHON_MANAGER_CONFIG`` یا گزینه خط فرمان ``--config`` مشخص کرد (اما نه هر دو). این مکان‌ها ممکن است توسط گزینه‌های سفارشی‌سازی مدیریتی که در ادامه فهرست شده‌اند تغییر یابند." msgid "The following settings are those that are considered likely to be modified in normal use. Later sections list those that are intended for administrative customization." From 509ae3afce178595daaf0da049c2be87c7199867 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 14:44:26 +0000 Subject: [PATCH 13/15] chore: merge translations from 3.15 into 3.14 423 string(s) in 53 file(s), matched by (msgctxt, msgid). Source: 3.15 @ bf9c048c --- c-api/code.po | 2 +- c-api/conversion.po | 6 +- c-api/descriptor.po | 20 +- c-api/dict.po | 2 +- c-api/exceptions.po | 6 +- c-api/file.po | 10 +- c-api/float.po | 8 +- c-api/function.po | 2 +- c-api/hash.po | 14 +- c-api/import.po | 20 +- c-api/init_config.po | 2 +- c-api/interp-lifecycle.po | 12 +- c-api/intro.po | 12 +- c-api/long.po | 6 +- c-api/marshal.po | 4 +- c-api/monitoring.po | 6 +- c-api/profiling.po | 6 +- c-api/pyexpat.po | 28 +-- c-api/structures.po | 16 +- c-api/synchronization.po | 6 +- c-api/unicode.po | 22 +- c-api/veryhigh.po | 18 +- c-api/weakref.po | 4 +- extending/newtypes.po | 11 +- howto/remote_debugging.po | 8 +- library/asyncio-eventloop.po | 2 +- library/asyncio-stream.po | 2 +- library/calendar.po | 4 +- library/concurrent.interpreters.po | 45 ++-- library/ctypes.po | 390 ++++++++++------------------- library/curses.po | 18 +- library/datetime.po | 6 +- library/gc.po | 4 +- library/gzip.po | 4 +- library/http.client.po | 4 +- library/inspect.po | 4 +- library/mailbox.po | 2 +- library/mmap.po | 28 +-- library/multiprocessing.po | 6 +- library/os.po | 2 +- library/pathlib.po | 39 +-- library/ssl.po | 8 +- library/tempfile.po | 4 +- library/test.po | 51 ++-- library/tkinter.po | 84 ++----- library/turtle.po | 374 ++++++++------------------- reference/datamodel.po | 4 +- using/android.po | 4 +- using/cmdline.po | 8 +- using/configure.po | 12 +- using/ios.po | 4 +- using/mac.po | 2 +- using/windows.po | 8 +- 53 files changed, 455 insertions(+), 919 deletions(-) diff --git a/c-api/code.po b/c-api/code.po index 320a757d1..ba7631650 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -113,7 +113,7 @@ msgid "Enumeration of possible code object watcher events: - ``PY_CODE_EVENT_CRE msgstr "شمارش رویدادهای ممکن دیده‌بان شیء کد: - ``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" msgid "Apply the macro *V* to each suffix of :c:type:`PyCodeEvent` constants. Currently expands to ``V(CREATE) V(DESTROY)``. The macro *V* must accept one event name and supply any punctuation needed between expansions." -msgstr "" +msgstr "ماکرو *V* را روی هر پسوند از ثاب‌ت‌های :c:type:`PyCodeEvent` اعمال کنید. در حال حاضر به صورت ``V(CREATE) V(DESTROY)`` گسترش می‌یابد. ماکرو *V* باید یک نام رویداد را بپذیرد و هرگونه علائم نگارشی مورد نیاز بین گسترش‌ها را فراهم کند." msgid "Type of a code object watcher callback function." msgstr "نوع تابع کال‌بک دیده‌بان شیء کد." diff --git a/c-api/conversion.po b/c-api/conversion.po index dc39a3294..d00170869 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -187,10 +187,10 @@ msgid "Return the uppercase equivalent of the character *c*." msgstr "معادل بزرگ‌نویسی نویسه‌ی *c* را برمی‌گرداند." msgid "Bit masks" -msgstr "" +msgstr "بیت‌ماسک‌ها" msgid "The following constants are bit masks used by the character classification macros above:" -msgstr "" +msgstr "ثابت‌های زیر بیت‌ماسک‌هایی هستند که توسط ماکروهای دسته‌بندی نویسه در بالا استفاده می‌شوند:" msgid "Values used internally by the ``Py_IS*`` classification macros above. Exposed for backwards compatibility only." -msgstr "" +msgstr "مقادیر استفاده‌شده‌ی داخلی توسط ماکروهای دسته‌بندی ``Py_IS*`` در بالا. فقط برای سازگاری با نسخه‌های قبلی در معرض دید قرار گرفته‌اند." diff --git a/c-api/descriptor.po b/c-api/descriptor.po index 47eace2c5..71dacb8af 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -62,21 +62,19 @@ msgid "The type object for method descriptor objects created from :c:type:`PyMet msgstr "شیء نوع برای اشیاء توصیف‌گر متد که از ساختارهای :c:type:`PyMethodDef` ایجاد شده‌اند. این توصیف‌گرها توابع C را به‌عنوان متدهایی روی یک نوع در دسترس قرار می‌دهند و معادل اشیاء :class:`types.MethodDescriptorType` در پایتون هستند." msgid "The type object for wrapper descriptor objects created by :c:func:`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`." -msgstr "" +msgstr "شیء نوع داده برای اشیای توصیف‌گر پوششی ایجادشده توسط :c:func:`PyDescr_NewWrapper` و :c:func:`PyWrapper_New`." -#, fuzzy -#| msgid "Wrapper descriptors expose special methods implemented by type slots. This is the same kind of descriptor that CPython creates for slot-based special methods such as ``__repr__`` or ``__add__``, and it appears in Python as a :class:`types.WrapperDescriptorType` object." msgid "Wrapper descriptors are used internally to expose special methods such as ``__repr__`` or ``__add__``, which are implemented by type slots. The type is exposed in Python as :class:`types.WrapperDescriptorType`." -msgstr "توصیف‌گرهای پوششی، متدهای ویژه‌ای را که توسط جایگاه‌های نوع پیاده‌سازی شده‌اند، در دسترس قرار می‌دهند. این همان نوع توصیف‌گری است که سی‌پایتون برای متدهای ویژه‌ی مبتنی بر جایگاه مانند ``__repr__`` یا ``__add__`` ایجاد می‌کند و در پایتون به‌صورت یک شیء :class:`types.WrapperDescriptorType` ظاهر می‌شود." +msgstr "توصیف‌گرهای پوششی به صورت داخلی برای نمایش متدهای ویژه‌ای مانند ``__repr__`` یا ``__add__`` استفاده می‌شوند که توسط جایگاه‌های نوع پیاده‌سازی شده‌اند. این نوع در پایتون به صورت :class:`types.WrapperDescriptorType` نمایش داده می‌شود." msgid "Create a new wrapper descriptor of type :c:var:`PyWrapperDescr_Type`." -msgstr "" +msgstr "یک توصیف‌گر پوششی جدید از نوع :c:var:`PyWrapperDescr_Type` ایجاد کنید." msgid "This function is meant for internal use only; it and related API (``struct wrapperbase`` and the ``PyWrapperFlag_KEYWORDS`` flag) are exposed publicly for backwards compatibility reasons." -msgstr "" +msgstr "این تابع فقط برای استفاده‌ی داخلی در نظر گرفته شده است؛ آن و APIهای مرتبط (``struct wrapperbase`` و پرچم ``PyWrapperFlag_KEYWORDS``) به دلایل سازگاری با نسخه‌های پیشین به صورت عمومی ارائه شده‌اند." msgid "See :c:func:`PyCMethod_New` for wrapping a C function." -msgstr "" +msgstr "برای بسته‌بندی یک تابع C به :c:func:`PyCMethod_New` مراجعه کنید." msgid "Create a new class method descriptor for extension type *type* from the :c:type:`PyMethodDef` structure *method*." msgstr "یک توصیف‌گر متد کلاس جدید برای نوع توسعه‌ای *type* از ساختار :c:type:`PyMethodDef` به نام *method* ایجاد می‌کند." @@ -97,16 +95,16 @@ msgid "On success, return a :term:`strong reference` to the wrapper object. Retu msgstr "در صورت موفقیت، یک :term:`ارجاع قوی ` به شیء پوششی برمی‌گرداند. در صورت شکل، ``NULL`` را همراه با یک استثنای تنظیم‌شده برمی‌گرداند." msgid "Return a :term:`borrowed reference` to the type that the descriptor *descr* belongs to. This is accessible as :attr:`~object.__objclass__` in Python." -msgstr "" +msgstr "یک :term:`ارجاع امانتی ` به نوعی که توصیف‌گر *descr* به آن تعلق دارد، برگردانید. این مقدار در پایتون به عنوان :attr:`~object.__objclass__` قابل دسترسی است." msgid "*descr* must be a descriptor object created by one of the ``PyDescr_New*`` functions (an instance of :c:var:`PyMethodDescr_Type`, :c:var:`PyClassMethodDescr_Type`, :c:var:`PyMemberDescr_Type`, :c:var:`PyGetSetDescr_Type`, or :c:var:`PyWrapperDescr_Type`). If the passed descriptor is not an instance of one of these types, the behavior is undefined." -msgstr "" +msgstr "*descr* باید یک شیء توصیف‌گر باشد که توسط یکی از توابع ``PyDescr_New*`` ایجاد شده است (یک نمونه از :c:var:`PyMethodDescr_Type`، :c:var:`PyClassMethodDescr_Type`، :c:var:`PyMemberDescr_Type`، :c:var:`PyGetSetDescr_Type` یا :c:var:`PyWrapperDescr_Type`). اگر توصیف‌گر ارسال‌شده نمونه‌ای از یکی از این نوع‌ها نباشد، رفتار نامشخص خواهد بود." msgid "Return the name of the descriptor *descr* as a :term:`borrowed reference` to a :class:`str` object. This is available as :attr:`~definition.__name__` in Python." -msgstr "" +msgstr "نام توصیف‌گر *descr* را به عنوان یک :term:`ارجاع امانتی ` به یک شیء :class:`str` برگردانید. این مقدار در پایتون به عنوان :attr:`~definition.__name__` در دسترس است." msgid "*descr* must be a descriptor object created by one of the ``PyDescr_New*`` functions. If not, the behavior is undefined." -msgstr "" +msgstr "*descr* باید یک شیء توصیف‌گر باشد که توسط یکی از توابع ``PyDescr_New*`` ایجاد شده است. در غیر این صورت، رفتار نامشخص خواهد بود." msgid "Built-in descriptors" msgstr "توصیف‌گرهای توکار" diff --git a/c-api/dict.po b/c-api/dict.po index 75400e7b4..e73cb2848 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -289,7 +289,7 @@ msgid "Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED`` msgstr "برشمردن رویدادهای ممکن دیده‌بان دیکشنری: ``PyDict_EVENT_ADDED``، ``PyDict_EVENT_MODIFIED``، ``PyDict_EVENT_DELETED``، ``PyDict_EVENT_CLONED``، ``PyDict_EVENT_CLEARED`` یا ``PyDict_EVENT_DEALLOCATED``." msgid "Apply the macro *V* to each suffix of :c:type:`PyDict_WatchEvent` constants. Currently expands to ``V(ADDED) V(MODIFIED) V(DELETED) V(CLONED) V(CLEARED) V(DEALLOCATED)``. The macro *V* must accept one event name and supply any punctuation needed between expansions." -msgstr "" +msgstr "ماکرو *V* را روی هر پسوند از ثابت‌های :c:type:`PyDict_WatchEvent` اعمال کنید. در حال حاضر به صورت ``V(ADDED) V(MODIFIED) V(DELETED) V(CLONED) V(CLEARED) V(DEALLOCATED)`` گسترش می‌یابد. ماکرو *V* باید یک نام رویداد را بپذیرد و هرگونه علائم نگارشی مورد نیاز بین گسترش‌ها را فراهم کند." msgid "Type of a dict watcher callback function." msgstr "نوع تابع کال‌بک ناظر دیکشنری." diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 75f6a4c19..60cedd5d0 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -202,7 +202,7 @@ msgid "For information about warning control, see the documentation for the :mod msgstr "برای کسب اطلاعات درباره‌ی کنترل هشدارها، به مستندات ماژول :mod:`warnings` و گزینه‌ی :option:`-W` در مستندات خط فرمان مراجعه کنید. برای کنترل هشدارها API زبان C وجود ندارد." msgid "Equivalent to :c:expr:`PyErr_WarnEx(category, message, 1)`." -msgstr "" +msgstr "معادل :c:expr:`PyErr_WarnEx(category, message, 1)`." msgid "Issue a warning message with explicit control over all warning attributes. This is a straightforward wrapper around the Python function :func:`warnings.warn_explicit`; see there for more information. The *module* and *registry* arguments may be set to ``NULL`` to get the default effect described there." msgstr "یک پیام هشدار با کنترل صریح بر تمام ویژگی‌های هشدار صادر می‌کند. این پوششی ساده در اطراف تابع پایتونی :func:`warnings.warn_explicit` است؛ برای اطلاعات بیشتر به آنجا مراجعه کنید. آرگومان‌های *module* و *registry* می‌توانند روی ``NULL`` تنظیم شوند تا اثر پیش‌فرضِ توصیف‌شده در آنجا به دست آید." @@ -544,7 +544,7 @@ msgid "The function then checks if the stack limit is reached. If this is the c msgstr "سپس تابع بررسی می‌کند که آیا به حد پشته رسیده است یا خیر. اگر چنین باشد، یک :exc:`RecursionError` تنظیم می‌شود و مقدار غیرصفر بازگردانده می‌شود. در غیر این صورت، صفر بازگردانده می‌شود." msgid "The check is based on the remaining C stack space of the current thread, not on a count of calls, so it is unaffected by :c:func:`Py_SetRecursionLimit` and :func:`sys.setrecursionlimit`." -msgstr "" +msgstr "این بررسی بر اساس فضای پشته‌ی C باقی‌مانده از نخ فعلی انجام می‌شود، نه بر اساس تعداد فراخوانی‌ها، بنابراین تحت‌تأثیر :c:func:`Py_SetRecursionLimit` و :func:`sys.setrecursionlimit` قرار نمی‌گیرد." msgid "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` to be concatenated to the :exc:`RecursionError` message caused by the recursion depth limit." msgstr "*where* باید یک رشته‌ی کدگذاری‌شده با UTF-8 مانند ``\" in instance check\"`` باشد تا به پیام :exc:`RecursionError` که ناشی از محدودیت عمق بازگشت است، الحاق شود." @@ -556,7 +556,7 @@ msgid "This function is now also available in the :ref:`limited API ` نیز در دسترس است." msgid "The check is based on the remaining C stack space. Previously, a separate counter of C-level calls was used." -msgstr "" +msgstr "این بررسی بر اساس فضای پشته‌ی C باقی‌مانده انجام می‌شود. پیش از این، از شمارنده‌ی مجزایی برای فراخوانی‌های سطح C استفاده می‌شد." msgid "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each *successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "یک :c:func:`Py_EnterRecursiveCall` را پایان می‌دهد. باید یک‌بار برای هر فراخوانی *موفق* :c:func:`Py_EnterRecursiveCall` فراخوانی شود." diff --git a/c-api/file.po b/c-api/file.po index 9c027dc72..f0266f78a 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -43,16 +43,16 @@ msgid "Equivalent to ``p.readline([n])``, this function reads one line from the msgstr "این تابع معادل ``p.readline([n])`` است و یک سطر از شیء *p* می‌خواند. *p* می‌تواند یک شیء پرونده یا هر شیء دارای متد :meth:`~io.IOBase.readline` باشد. اگر *n* برابر ``0`` باشد، دقیقاً یک سطر خوانده می‌شود، بدون توجه به طول سطر. اگر *n* بزرگ‌تر از ``0`` باشد، بیش از *n* بایت از پرونده خوانده نمی‌شود؛ ممکن است سطر ناقصی برگردانده شود. در هر دو حالت، اگر بلافاصله به پایان پرونده برسیم، رشته‌ای خالی برگردانده می‌شود. اما اگر *n* کوچک‌تر از ``0`` باشد، یک سطر بدون توجه به طول خوانده می‌شود، ولی اگر بلافاصله به پایان پرونده برسیم، :exc:`EOFError` پرتاب می‌شود." msgid "Read a line from the C stream *stream* into the buffer *buf*, like the C standard library function :c:func:`!fgets`, but treating all of ``\\n``, ``\\r`` and ``\\r\\n`` as line endings (see :term:`universal newlines`). Any ``\\r`` or ``\\r\\n`` read from the stream is stored in *buf* as a single ``\\n``." -msgstr "" +msgstr "یک سطر را از جریان (stream) C با نام *stream* در بافر *buf* بخوانید، درست مانند تابع کتابخانه‌ی استاندارد C یعنی :c:func:`!fgets`، با این تفاوت که تمام موارد ``\\n``، ``\\r`` و ``\\r\\n`` را به عنوان پایان‌دهنده‌های سطر در نظر می‌گیرد (به :term:`سطرهای جدید همگانی ` مراجعه کنید). هر ``\\r`` یا ``\\r\\n`` خوانده‌شده از جریان، به عنوان یک ``\\n`` واحد در *buf* ذخیره می‌شود." msgid "At most ``n - 1`` characters are stored in *buf*; reading stops after a newline has been stored or when the end of the file is reached. The result is always null-terminated. *stream* should be opened in binary mode, so that the C library does not perform its own newline translation." -msgstr "" +msgstr "حداکثر ``n - 1`` نویسه در *buf* ذخیره می‌شود؛ خواندن پس از ذخیره‌شدن یک نویسه‌ی سطر جدید یا رسیدن به انتهای پرونده متوقف می‌شود. نتیجه همیشه دارای پایان‌دهنده‌ی تهی (null-terminated) است. *stream* باید در حالت دودویی باز شود تا کتابخانه‌ی C ترجمه‌ی سطر جدید خود را انجام ندهد." msgid "Return *buf* on success. Return ``NULL`` if no characters could be read, because *stream* is at end of file, a read error occurred, or *n* is less than 2. Like :c:func:`!fgets`, this function does not distinguish between end of file and a read error, and it does not set an exception." -msgstr "" +msgstr "در صورت موفقیت، *buf* را برگردانید. اگر هیچ نویسه‌ای قابل خواندن نباشد، به این دلیل که *stream* در انتهای پرونده است، خطای خواندنی رخ داده است، یا *n* کمتر از ۲ است، ``NULL`` را برگردانید. درست مانند :c:func:`!fgets`، این تابع بین انتهای پرونده و خطای خواندن تمایز قائل نمی‌شود و استثنایی را تنظیم نمی‌کند." msgid "*fobj* exists only for backward compatibility and must be ``NULL``." -msgstr "" +msgstr "مورد *fobj* صرفاً برای سازگاری عقبگرد وجود دارد و باید ``NULL`` باشد." msgid "Overrides the normal behavior of :func:`io.open_code` to pass its parameter through the provided handler." msgstr "رفتار عادی :func:`io.open_code` را بازتعریف می‌کند تا پارامتر خود را از هندلر ارائه‌شده عبور دهد." @@ -115,7 +115,7 @@ msgid "Type of file-like objects used internally at Python startup when :py:mod: msgstr "نوع اشیای شبه‌پرونده‌ای که در زمان راه‌اندازی پایتون، هنگامی که :py:mod:`io` هنوز در دسترس نیست، به‌طور داخلی استفاده می‌شوند. به‌جای آن، برای ایجاد اشیای پرونده از :py:func:`open` پایتون یا :c:func:`PyFile_FromFd` استفاده کنید." msgid "The string literal ``\"b\"``, used to open files in binary mode. Exposed for backwards compatibility only." -msgstr "" +msgstr "رشته‌ی لفظی ``\"b\"``، که برای باز کردن پرونده‌ها در حالت دودویی استفاده می‌شود. صرفاً برای سازگاری عقبگرد آشکارسازی شده است." msgid "object" msgstr "شیء" diff --git a/c-api/float.po b/c-api/float.po index 78ba52d7f..06170b760 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -145,10 +145,8 @@ msgstr "در پلتفرم‌های غیر IEEE که دقتی بیشتر از آ msgid "Pack functions" msgstr "توابع بسته‌بندی" -#, fuzzy -#| msgid "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if you want the bytes string in little-endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if you want big-endian format (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal to ``1`` on big endian processor, or ``0`` on little endian processor." msgid "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if you want the bytes string in little-endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), zero if you want big-endian format (exponent first, at *p*). Use the :c:macro:`PY_LITTLE_ENDIAN` constant to select the native endian: it is equal to ``0`` on big endian processor, or ``1`` on little endian processor." -msgstr "روال‌های بسته‌بندی ۲، ۴ یا ۸ بایت را با شروع از *p* می‌نویسند. *le* یک آرگومان :c:expr:`int` است؛ اگر می‌خواهید رشته بایتی در قالب کوچک‌اندیان باشد، ناصفر است (توان در انتها، در ``p+1``، ``p+3``، یا ``p+6`` و ``p+7``)، و اگر قالب بزرگ‌اندیان را می‌خواهید، صفر است (توان در ابتدا، در *p*). برای استفاده از اندیان بومی می‌توان از ثابت :c:macro:`PY_BIG_ENDIAN` بهره گرفت: این ثابت روی پردازنده‌های بزرگ‌اندیان برابر ``1`` و روی پردازنده‌های کوچک‌اندیان برابر ``0`` است." +msgstr "روال‌های بسته‌بندی کردن ۲، ۴ یا ۸ بایت را از *p* به بعد می‌نویسند. *le* یک آرگومان :c:expr:`int` است، و اگر رشته‌ی بایت‌ها را در قالب کوچک‌اندیان (توان در انتها، در ``p+1``، ``p+3``، یا ``p+6`` و ``p+7``) بخواهید غیرصفر است، و اگر قالب بزرگ‌اندیان (توان در ابتدا، در *p*) را بخواهید صفر است. از ثابت :c:macro:`PY_LITTLE_ENDIAN` برای انتخاب اندیان بومی استفاده کنید: این ثابت روی پردازنده‌ی بزرگ‌اندیان برابر با ``0``، و روی پردازنده‌ی کوچک‌اندیان برابر با ``1`` است." msgid "Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, most likely :exc:`OverflowError`)." msgstr "مقدار بازگشتی: ``0`` در صورت موفقیت، ``-1`` در صورت خطا (و استثنا تنظیم‌شده است، به احتمال زیاد :exc:`OverflowError`)." @@ -174,10 +172,8 @@ msgstr "یک double زبان C را به قالب دقت مضاعف binary64 ا msgid "Unpack functions" msgstr "توابع واگشایی" -#, fuzzy -#| msgid "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if the bytes string is in little-endian format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal to ``1`` on big endian processor, or ``0`` on little endian processor." msgid "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:`int` argument, non-zero if the bytes string is in little-endian format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-endian (exponent first, at *p*). Use the :c:macro:`PY_LITTLE_ENDIAN` constant to select the native endian: it is equal to ``0`` on big endian processor, or ``1`` on little endian processor." -msgstr "روال‌های واگشایی ۲، ۴ یا ۸ بایت را با شروع از *p* می‌خوانند. *le* یک آرگومان :c:expr:`int` است؛ اگر رشته بایتی در قالب کوچک‌اندیان باشد، ناصفر است (نما در انتها، در ``p+1``، ``p+3`` یا ``p+6`` و ``p+7``)، و اگر بزرگ‌اندیان باشد، صفر است (نما در ابتدا، در *p*). می‌توان ثابت :c:macro:`PY_BIG_ENDIAN` را برای بهره‌گیری از اندیان بومی به کار برد: این ثابت روی پردازنده‌ی بزرگ‌اندیان برابر ``1``، یا روی پردازنده‌ی کوچک‌اندیان برابر ``0`` است." +msgstr "روال‌های بازکردن بسته ۲، ۴ یا ۸ بایت را با شروع از *p* می‌خوانند. آرگومان *le* یک آرگومان از نوع :c:expr:`int` است، و اگر رشته‌ی بایت‌ها در قالب کوچک‌اندیان باشد (توان در آخر، در ``p+1``، ``p+3`` یا ``p+6`` و ``p+7``) ناصفر، و اگر در قالب بزرگ‌اندیان باشد (توان در اول، در *p*) صفر است. از ثابت :c:macro:`PY_LITTLE_ENDIAN` برای انتخاب ترتیب بایت‌های بومی استفاده کنید: این ثابت روی پردازنده‌ی بزرگ‌اندیان برابر با ``0``، و روی پردازنده‌ی کوچک‌اندیان برابر با ``1`` است." msgid "Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:`PyErr_Occurred` is true (and an exception is set, most likely :exc:`OverflowError`)." msgstr "مقدار بازگشتی: ممیز شناور با دقت مضاعفِ واگشایی‌شده. در صورت خطا، این مقدار ``-1.0`` است و :c:func:`PyErr_Occurred` درست است (و استثنایی تنظیم‌شده است که به احتمال زیاد :exc:`OverflowError` است)." diff --git a/c-api/function.po b/c-api/function.po index f9a63abd1..a9cc9286d 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -122,7 +122,7 @@ msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" msgstr "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" msgid "Apply the macro *V* to each suffix of :c:type:`PyFunction_WatchEvent` constants. Currently expands to ``V(CREATE) V(DESTROY) V(MODIFY_CODE) V(MODIFY_DEFAULTS) V(MODIFY_KWDEFAULTS) V(MODIFY_QUALNAME)``. The macro *V* must accept one event name and supply any punctuation needed between expansions." -msgstr "" +msgstr "کلان‌دستور *V* را روی هر پسوند از ثابت‌های :c:type:`PyFunction_WatchEvent` اعمال کنید. در حال حاضر به ``V(CREATE) V(DESTROY) V(MODIFY_CODE) V(MODIFY_DEFAULTS) V(MODIFY_KWDEFAULTS) V(MODIFY_QUALNAME)`` گسترش می‌یابد. کلان‌دستور *V* باید یک نام رویداد را بپذیرد و هرگونه علائم نگارشی مورد نیاز بین گسترش‌ها را فراهم کند." msgid "Type of a function watcher callback function." msgstr "نوع تابع کال‌بک دیده‌بان (watcher) تابع." diff --git a/c-api/hash.po b/c-api/hash.po index b0f83c710..fd124beaf 100644 --- a/c-api/hash.po +++ b/c-api/hash.po @@ -39,18 +39,14 @@ msgstr "یک مقدار عددی که الگوریتم هش‌کردنِ :class: msgid "The algorithm name is exposed by :data:`sys.hash_info.algorithm`." msgstr "نام الگوریتم توسط :data:`sys.hash_info.algorithm` در دسترس قرار می‌گیرد." -#, fuzzy -#| msgid "Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine which algorithm is used for hashing. The hash algorithm can be configured via the configure :option:`--with-hash-algorithm` option." msgid "Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine which algorithm is used for hashing. The built-in hash algorithm can be configured via the configure :option:`--with-hash-algorithm` option." -msgstr "مقادیر عددی برای مقایسه با :c:macro:`Py_HASH_ALGORITHM` به‌منظور تعیین اینکه کدام الگوریتم برای هش‌کردن استفاده می‌شود. الگوریتم هش را می‌توان از طریق گزینه‌ی :option:`--with-hash-algorithm` در configure پیکربندی کرد." +msgstr "مقادیر عددی برای مقایسه با :c:macro:`Py_HASH_ALGORITHM` به منظور تعیین اینکه کدام الگوریتم برای هش کردن استفاده می‌شود. الگوریتم هش توکار را می‌توان از طریق گزینه‌ی پیکربندی :option:`--with-hash-algorithm` پیکربندی کرد." msgid ":c:macro:`!Py_HASH_EXTERNAL` has value ``0`` and indicates a hash implementation supplied by the application embedding Python; see :c:var:`PyHash_Func`." -msgstr "" +msgstr ":c:macro:`!Py_HASH_EXTERNAL` دارای مقدار ``0`` است و پیاده‌سازی هش ارائه‌شده توسط برنامه‌ای که پایتون را تعبیه کرده است نشان می‌دهد؛ نگاه کنید به :c:var:`PyHash_Func`." -#, fuzzy -#| msgid "Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`." msgid "Add :c:macro:`!Py_HASH_FNV`, :c:macro:`!Py_HASH_SIPHASH24`, and :c:macro:`!Py_HASH_EXTERNAL`." -msgstr "افزودن :c:macro:`!Py_HASH_FNV` و :c:macro:`!Py_HASH_SIPHASH24`." +msgstr "اضافه کردن :c:macro:`!Py_HASH_FNV`، :c:macro:`!Py_HASH_SIPHASH24`، و :c:macro:`!Py_HASH_EXTERNAL`." msgid "Add :c:macro:`!Py_HASH_SIPHASH13`." msgstr "افزودن :c:macro:`!Py_HASH_SIPHASH13`." @@ -119,10 +115,10 @@ msgid "This corresponds to the :data:`sys.hash_info.seed_bits` constant." msgstr "این با ثابت :data:`sys.hash_info.seed_bits` مطابق است." msgid "When Python is built with :c:macro:`Py_HASH_ALGORITHM` set to :c:macro:`Py_HASH_EXTERNAL`, the application embedding Python must define this variable to supply a hash implementation instead of using one of Python's built-in hash algorithms." -msgstr "" +msgstr "هنگامی که پایتون با :c:macro:`Py_HASH_ALGORITHM` تنظیم‌شده روی :c:macro:`Py_HASH_EXTERNAL` ساخته می‌شود، برنامه‌ای که پایتون را تعبیه کرده است باید این متغیر را تعریف کند تا به جای استفاده از یکی از الگوریتم‌های هش توکار پایتون، یک پیاده‌سازی هش را فراهم کند." msgid "Use one of the built-in hash algorithms instead." -msgstr "" +msgstr "به‌جای آن از یکی از الگوریتم‌های هش توکار استفاده کنید." msgid "Get the hash function definition." msgstr "گرفتن تعریف تابع هش." diff --git a/c-api/import.po b/c-api/import.po index 84dd6d512..72fbe4881 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -154,19 +154,9 @@ msgstr "ویژگی ``__file__`` دیگر بر روی ماژول تنظیم نم msgid "Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a UTF-8 encoded string instead of a Unicode object." msgstr "مشابه :c:func:`PyImport_ImportFrozenModuleObject` است، اما نام به جای شیء یونیکد، یک رشته کدگذاری‌شده با UTF-8 است." -#, fuzzy -#| msgid "This is the structure type definition for frozen module descriptors, as generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the Python source distribution). Its definition, found in :file:`Include/import.h`, is::" msgid "This is the structure type definition for frozen module descriptors, as generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the Python source distribution). Its definition, found in :file:`Include/import.h`, is:" -msgstr "این تعریف نوع ساختار برای توصیف‌گرهای ماژول فریزشده است، همان‌طور که توسط ابزار :program:`freeze` تولید می‌شود (به :file:`Tools/freeze/` در توزیع سورس پایتون مراجعه کنید). تعریف آن که در :file:`Include/import.h` آمده است، چنین است::" - -#, fuzzy -#| msgid "" -#| "struct _frozen {\n" -#| " const char *name;\n" -#| " const unsigned char *code;\n" -#| " int size;\n" -#| " bool is_package;\n" -#| "};" +msgstr "این تعریف نوع ساختار برای توصیف‌گرهای ماژول فریزشده است که توسط ابزار :program:`freeze` تولید می‌شود (نگاه کنید به :file:`Tools/freeze/` در توزیع سورس پایتون). تعریف آن، که در :file:`Include/import.h` یافت می‌شود، به شرح زیر است:" + msgid "" "struct _frozen {\n" " const char *name; /* ASCII encoded string */\n" @@ -176,11 +166,11 @@ msgid "" "};\n" msgstr "" "struct _frozen {\n" -" const char *name;\n" +" const char *name; /* ASCII encoded string */\n" " const unsigned char *code;\n" " int size;\n" -" bool is_package;\n" -"};" +" int is_package;\n" +"};\n" msgid "The new ``is_package`` field indicates whether the module is a package or not. This replaces setting the ``size`` field to a negative value." msgstr "فیلد جدید ``is_package`` نشان می‌دهد که ماژول یک بسته است یا خیر. این کار جایگزین تنظیم فیلد ``size`` به مقدار منفی می‌شود." diff --git a/c-api/init_config.po b/c-api/init_config.po index 5c45dd6a8..c82af9f15 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -1493,7 +1493,7 @@ msgid "See also the :c:member:`~PyConfig.filesystem_errors` member." msgstr "همچنین عضو :c:member:`~PyConfig.filesystem_errors` را ببینید." msgid "See also :c:func:`PyUnicode_EncodeFSDefault` and :ref:`related functions ` for encoding paths at runtime." -msgstr "" +msgstr "همچنین برای کدگذاری مسیرها در زمان اجرا، به :c:func:`PyUnicode_EncodeFSDefault` و :ref:`توابع مرتبط ` مراجعه کنید." msgid ":term:`Filesystem error handler `: :func:`sys.getfilesystemencodeerrors`." msgstr ":term:`هندلر خطای سامانه فایل‌بندی `: :func:`sys.getfilesystemencodeerrors`." diff --git a/c-api/interp-lifecycle.po b/c-api/interp-lifecycle.po index 122ea3daa..f1824277d 100644 --- a/c-api/interp-lifecycle.po +++ b/c-api/interp-lifecycle.po @@ -404,19 +404,19 @@ msgid "In normal usage, an embedding application will call this function *instea msgstr "در استفاده‌ی معمول، یک برنامه تعبیه‌کننده این تابع را *به‌جای* فراخوانی مستقیم :c:func:`Py_Initialize`، :c:func:`Py_InitializeEx` یا :c:func:`Py_InitializeFromConfig` فراخوانی می‌کند و تمام تنظیمات همان‌گونه که در جای دیگر این مستندات توضیح داده شده است، اعمال خواهند شد. اگر این تابع در عوض *پس از* یک فراخوانی قبلی از API مقداردهی اولیه‌ی ران‌تایم فراخوانی شود، دقیقاً اینکه کدام تنظیمات پیکربندی محیطی و خط فرمان به‌روزرسانی خواهند شد، وابسته به نسخه است (زیرا به این بستگی دارد که کدام تنظیمات به‌درستی از این پشتیبانی می‌کنند که پس از آن‌که یک‌بار در نخستین مقداردهی اولیه‌ی ران‌تایم تنظیم شده‌اند، تغییر کنند)." msgid "The main program for a \"frozen\" Python program (an executable that embeds the interpreter together with the bytecode of the program's modules, as produced by the :program:`freeze` utility; see :source:`Tools/freeze`)." -msgstr "" +msgstr "برنامه‌ی اصلی برای یک برنامه‌ی «فریزشده»ی پایتون (یک فایل اجرایی که مفسر را به همراه بایت‌کد ماژول‌های برنامه، آن‌طور که توسط ابزار :program:`freeze` تولید می‌شود، تعبیه می‌کند؛ رجوع کنید به :source:`Tools/freeze`)." msgid "This function initializes the interpreter, imports the frozen module named ``__main__``, and finalizes the interpreter. The frozen modules must have been registered in :c:var:`PyImport_FrozenModules` before calling this function; it is a fatal error if ``__main__`` is not among them." -msgstr "" +msgstr "این تابع مفسر را مقداردهی اولیه می‌کند، ماژول فریزشده‌ی با نام ``__main__`` را ایمپورت می‌کند، و مفسر را نهایی‌سازی می‌کند. ماژول‌های فریزشده باید قبل از فراخوانی این تابع در :c:var:`PyImport_FrozenModules` ثبت شده باشند؛ اگر ``__main__`` در میان آن‌ها نباشد، یک خطای مهلک رخ داده است." msgid "*argc* and *argv* are byte strings like the arguments of a C program's ``main`` function, and are passed to the interpreter with :c:func:`PyConfig_SetBytesArgv`. Unlike :c:func:`Py_Main`, the arguments are not parsed as Python command line options (:c:member:`PyConfig.parse_argv` is ``0``), so all of them are made available to the program in :data:`sys.argv`. Apart from that, the interpreter uses the :ref:`Python Configuration `, so environment variables such as :envvar:`PYTHONPATH` are honored. Warnings about the path configuration (:c:member:`PyConfig.pathconfig_warnings`) are suppressed. If :envvar:`PYTHONINSPECT` is set and standard input is a terminal, an interactive prompt is run after ``__main__`` has finished, as with the :option:`-i` option." -msgstr "" +msgstr "*argc* و *argv* رشته‌های بایتی مشابه آرگومان‌های تابع ``main`` یک برنامه‌ی C هستند و با :c:func:`PyConfig_SetBytesArgv` به مفسر ارسال می‌شوند. برخلاف :c:func:`Py_Main`، آرگومان‌ها به عنوان گزینه‌های خط فرمان پایتون تجزیه نمی‌شوند (:c:member:`PyConfig.parse_argv` برابر با ``0`` است)، بنابراین همه آن‌ها در :data:`sys.argv` در اختیار برنامه قرار می‌گیرند. جدا از آن، مفسر از :ref:`تنظیمات پایتون ` استفاده می‌کند، بنابراین متغیرهای محیطی مانند :envvar:`PYTHONPATH` لحاظ می‌شوند. هشدارهای مربوط به تنظیمات مسیر (:c:member:`PyConfig.pathconfig_warnings`) سرکوب می‌شوند. اگر :envvar:`PYTHONINSPECT` تنظیم شده باشد و ورودی استاندارد یک پایانه باشد، پس از اتمام ``__main__``، یک اعلان تعاملی اجرا می‌شود، درست مانند گزینه‌ی :option:`-i`." msgid "Return ``0`` if ``__main__`` ran without an unhandled exception, ``1`` otherwise, and ``120`` if finalizing the interpreter failed (see :c:func:`Py_FinalizeEx`). An unhandled :exc:`SystemExit` terminates the process. If the interpreter cannot be initialized, the process exits via :c:func:`Py_ExitStatusException`." -msgstr "" +msgstr "اگر ``__main__`` بدون استثنای مدیریت‌نشده اجرا شود، ``0`` را برمی‌گرداند، در غیر این صورت ``1``، و اگر نهایی‌سازی مفسر با شکست مواجه شود ``120`` (رجوع کنید به :c:func:`Py_FinalizeEx`). یک :exc:`SystemExit` مدیریت‌نشده فرایند را خاتمه می‌دهد. اگر مفسر نتواند مقداردهی اولیه شود، فرایند از طریق :c:func:`Py_ExitStatusException` خارج می‌شود." msgid "On Windows, this function is not exported by the Python DLL. The :program:`freeze` utility compiles :file:`Python/frozenmain.c` into the frozen program instead, together with the Windows-specific hooks that the function requires." -msgstr "" +msgstr "در ویندوز، این تابع توسط DLL پایتون صادر نمی‌شود. در عوض، ابزار :program:`freeze` پرونده‌ی :file:`Python/frozenmain.c` را به همراه قلاب‌های مختص ویندوز که تابع به آن‌ها نیاز دارد، در برنامه‌ی فریزشده کامپایل می‌کند." msgid "Executes the main module in a fully configured CPython runtime." msgstr "ماژول اصلی را در یک ران‌تایم سی‌پایتون کاملاً پیکربندی‌شده اجرا می‌کند." @@ -629,7 +629,7 @@ msgid "Py_FinalizeEx (C function)" msgstr "Py_FinalizeEx (تابع C)" msgid "freeze utility" -msgstr "" +msgstr "ابزار freeze" msgid "Py_Initialize()" msgstr "Py_Initialize()" diff --git a/c-api/intro.po b/c-api/intro.po index c4bfe46dd..f3e1082aa 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -220,7 +220,7 @@ msgid "Argument must be a character or an integer in the range [-128, 127] or [0 msgstr "آرگومان باید یک نویسه یا یک عدد صحیح در محدوده‌ی [-128, 127] یا [0, 255] باشد. این ماکرو ``c`` را پس از تبدیل نوع به ``unsigned char`` برمی‌گرداند." msgid "Constants describing the byte order of the platform that Python was built for. Exactly one of them is ``1`` and the other is ``0``." -msgstr "" +msgstr "ثابت‌هایی که ترتیب بایت سکویی که پایتون برای آن ساخته شده است را توصیف می‌کنند. دقیقاً یکی از آن‌ها ``1`` و دیگری ``0`` است." msgid "Assertion utilities" msgstr "ابزارهای ادعا" @@ -652,19 +652,17 @@ msgstr "نوع‌ها" msgid "There are few other data types that play a significant role in the Python/C API; most are simple C types such as :c:expr:`int`, :c:expr:`long`, :c:expr:`double` and :c:expr:`char*`. A few structure types are used to describe static tables used to list the functions exported by a module or the data attributes of a new object type, and another is used to describe the value of a complex number. These will be discussed together with the functions that use them." msgstr "چند نوع داده‌ی دیگر نیز نقش مهمی در Python/C API ایفا می‌کنند؛ بیشتر آن‌ها نوع‌های ساده‌ی C مانند :c:expr:`int`، :c:expr:`long`، :c:expr:`double` و :c:expr:`char*` هستند. چند نوع ساختاری برای توصیف جدول‌های ایستایی که توابع اکسپورتشده توسط یک ماژول یا ویژگی‌های داده‌ی یک نوع شیء جدید را فهرست می‌کنند، به کار می‌روند، و نوع دیگری برای توصیف مقدار یک عدد مختلط استفاده می‌شود. این موارد همراه با توابعی که از آن‌ها استفاده می‌کنند بحث خواهند شد." -#, fuzzy -#| msgid "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. C99 doesn't define such a thing directly (size_t is an unsigned integral type). See :pep:`353` for details. ``PY_SSIZE_T_MAX`` is the largest positive value of type :c:type:`Py_ssize_t`." msgid "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. C99 doesn't define such a thing directly (size_t is an unsigned integral type). See :pep:`353` for details." -msgstr "یک نوع صحیح علامت‌دار به‌گونه‌ای که ``sizeof(Py_ssize_t) == sizeof(size_t)`` باشد. استاندارد C99 چنین چیزی را مستقیماً تعریف نمی‌کند (size_t یک نوع صحیح بدون علامت است). برای جزئیات به :pep:`353` مراجعه کنید. ``PY_SSIZE_T_MAX`` بزرگ‌ترین مقدار مثبت از نوع :c:type:`Py_ssize_t` است." +msgstr "یک نوع داده‌ی صحیح علامت‌دار به گونه‌ای که ``sizeof(Py_ssize_t) == sizeof(size_t)``. استاندارد C99 چنین چیزی را به طور مستقیم تعریف نمی‌کند (size_t یک نوع داده‌ی صحیح بدون علامت است). برای جزئیات به :pep:`353` مراجعه کنید." msgid "A constant of type :c:type:`Py_ssize_t` with value ``-1``, representing an invalid size." -msgstr "" +msgstr "یک ثابتی از نوع داده‌ی :c:type:`Py_ssize_t` با مقدار ``-1`` که نشان‌دهنده‌ی اندازه‌ی نامعتبر است." msgid "The limit values (largest positive one and smallest negative one, respecitvely) of type :c:type:`Py_ssize_t`." -msgstr "" +msgstr "مقادیر حد (به ترتیب بزرگ‌ترین مقدار مثبت و کوچک‌ترین مقدار منفی) از نوع داده‌ی :c:type:`Py_ssize_t`." msgid "The maximum value of the Windows ``DWORD`` type. Expands to ``0xffffffff`` on all platforms." -msgstr "" +msgstr "حداکثر مقدار نوع داده‌ی ``DWORD`` در ویندوز. در تمامی سکوها به ``0xffffffff`` گسترش می‌یابد." msgid "Exceptions" msgstr "استثناها" diff --git a/c-api/long.po b/c-api/long.po index ebd6ef76f..d59673132 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -456,13 +456,13 @@ msgid "Otherwise, the return value is undefined." msgstr "در غیر این صورت، مقدار بازگشتی تعریف‌نشده است." msgid "Build configuration" -msgstr "" +msgstr "تنظیمات ساخت" msgid "The number of bits in each digit of CPython's native representation of integers. The value can currently be either ``30`` (the default) or ``15``, selected with :option:`--enable-big-digits` when building Python." -msgstr "" +msgstr "تعداد بیت‌ها در هر رقم از بازنمایی بومی سی‌پایتون از اعداد صحیح. مقدار آن در حال حاضر می‌تواند یا ``30`` (پیش‌فرض) یا ``15`` باشد که هنگام ساخت پایتون با :option:`--enable-big-digits` انتخاب می‌شود." msgid "To access the native representation of integers, use :c:func:`PyLong_GetNativeLayout` and its :c:member:`~PyLongLayout.bits_per_digit` member instead." -msgstr "" +msgstr "برای دسترسی به بازنمایی بومی اعداد صحیح، به جای آن از :c:func:`PyLong_GetNativeLayout` و عضو :c:member:`~PyLongLayout.bits_per_digit` آن استفاده کنید." msgid "Export API" msgstr "API اکسپورت" diff --git a/c-api/marshal.po b/c-api/marshal.po index 24dbef101..e180c9dee 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -43,13 +43,13 @@ msgid "This function can fail, in which case it sets the error indicator. Use :c msgstr "این تابع می‌تواند شکست بخورد، که در این صورت نشانگر خطا را تنظیم می‌کند. برای بررسی این موضوع از :c:func:`PyErr_Occurred` استفاده کنید." msgid "In Python 3.15 and earlier, this function does not set the error indicator if writing to *file* fails. The same caveat applies as for :c:func:`PyMarshal_WriteObjectToFile`." -msgstr "" +msgstr "در پایتون ۳.۱۵ و قبل‌تر، این تابع نشانگری برای خطا تنظیم نمی‌کند، اگر نوشتن در *file* شکست بخورد، همان محدودیت مشابه برای :c:func:`PyMarshal_WriteObjectToFile` برقرار است." msgid "Marshal a Python object, *value*, to *file*. *version* indicates the file format." msgstr "یک شیء پایتون، *value*، را به *file* مارشال کنید. *version* قالب پرونده را مشخص می‌کند." msgid "In Python 3.15 and earlier, this function can write only part of the data to *file* and return without setting the error indicator, for example if *value* contains an object which cannot be marshalled or if writing to *file* fails (see :gh:`155907`). Code which has to support these versions cannot rely on :c:func:`PyErr_Occurred` alone to know that all the data was written. It can use :c:func:`PyMarshal_WriteObjectToString` and write the result itself, or validate what was written." -msgstr "" +msgstr "در پایتون ۳.۱۵ و قبلتر، این تابع فقط می‌تواند قسمتی از اطلاعات را در *پرونده* بنویسد و بدون تنظیم کردن نشانگر خطا برگرداند، برای مثال اگر *مقدار* شامل یک شیء‌ای که نمی‌تواند مارشال شود یا اگر نوشتن در *پرونده* شکست بخورد (به :gh:`155907` مراجعه کنید). کدی که باید این نسخه‌ها را پشتیبانی کند نمی‌تواند به تنهایی به :c:func:`PyErr_Occurred` تکیه کند تا بداند همه‌ی اطلاعات نوشته شده است. می‌تواند از :c:func:`PyMarshal_WriteObjectToString` استفاده کند و خودش نتیجه را بنویسد یا صحت‌سنجی کند آنچه نوشته شده است." msgid "Return a bytes object containing the marshalled representation of *value*. *version* indicates the file format." msgstr "یک شیء bytes حاوی نمایش مارشال‌شده‌ی *value* را برمی‌گرداند. *version* قالب پرونده را مشخص می‌کند." diff --git a/c-api/monitoring.po b/c-api/monitoring.po index c24765bc6..3b2c273e6 100644 --- a/c-api/monitoring.po +++ b/c-api/monitoring.po @@ -183,12 +183,10 @@ msgid ":monitoring-event:`STOP_ITERATION`" msgstr ":monitoring-event:`STOP_ITERATION`" msgid "Use :c:macro:`PY_MONITORING_EVENT_BRANCH_LEFT` and :c:macro:`PY_MONITORING_EVENT_BRANCH_RIGHT` instead." -msgstr "" +msgstr "به‌جای آن از :c:macro:`PY_MONITORING_EVENT_BRANCH_LEFT` و :c:macro:`PY_MONITORING_EVENT_BRANCH_RIGHT` استفاده کنید." -#, fuzzy -#| msgid ":monitoring-event:`BRANCH_RIGHT`" msgid ":monitoring-event:`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT`" -msgstr ":monitoring-event:`BRANCH_RIGHT`" +msgstr ":monitoring-event:`BRANCH_LEFT` و :monitoring-event:`BRANCH_RIGHT`" msgid "Exit the last scope that was entered with :c:func:`!PyMonitoring_EnterScope`." msgstr "از آخرین محدوده‌ای که با :c:func:`!PyMonitoring_EnterScope` وارد شده بود، خارج شوید." diff --git a/c-api/profiling.po b/c-api/profiling.po index 4ccdcebf4..6489693b3 100644 --- a/c-api/profiling.po +++ b/c-api/profiling.po @@ -159,10 +159,10 @@ msgid "Get the registered reference tracer function and the value of the opaque msgstr "تابع ردیاب ارجاع ثبت‌شده و مقدار اشاره‌گر داده‌ی مات را که هنگام فراخوانی :c:func:`PyRefTracer_SetTracer` ثبت شده بود، برمی‌گرداند. اگر هیچ ردیابی ثبت نشده باشد، این تابع NULL را برمی‌گرداند و اشاره‌گر **data** را برابر NULL قرار می‌دهد." msgid "Performance statistics" -msgstr "" +msgstr "آمارهای کارایی" msgid "Largest micro-operation identifier for which CPython allocates performance statistics counters. Available only in builds configured with :option:`--enable-pystats`." -msgstr "" +msgstr "بزرگ‌ترین شناسه‌ی ریزعملیات که سی‌پایتون برای آن شمارنده‌های آمارهای کارایی را تخصیص می‌دهد. فقط در ساخت‌هایی موجود است که با :option:`--enable-pystats` پیکربندی شده‌اند." msgid "This constant is intended for internal use only and is not useful to extension modules." -msgstr "" +msgstr "این ثابت صرفاً برای استفاده‌ی داخلی در نظر گرفته شده است و برای ماژول‌های توسعه‌ای کاربردی ندارد." diff --git a/c-api/pyexpat.po b/c-api/pyexpat.po index a81aeee6d..a9ae4054b 100644 --- a/c-api/pyexpat.po +++ b/c-api/pyexpat.po @@ -17,43 +17,43 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" msgid "Expat C API" -msgstr "" +msgstr "Expat C API" msgid "The :mod:`xml.parsers.expat` module exposes selected Expat functions through its ``expat_CAPI`` capsule. This allows extension modules to use the same Expat library as Python. The interface is declared in :file:`pyexpat.h`, which must be included after Expat's :file:`expat.h` header." -msgstr "" +msgstr "ماژول :mod:`xml.parsers.expat` توابع منتخب Expat را از طریق کپسول ``expat_CAPI`` خود در معرض نمایش می‌گذارد. این امر به ماژول‌های توسعه‌ای اجازه می‌دهد تا از همان کتابخانه‌ی Expat پایتون استفاده کنند. این رابط در :file:`pyexpat.h` اعلان می‌شود که باید پس از سرآیند :file:`expat.h` مربوط به Expat گنجانده شود." msgid "The name of the capsule containing the Expat C API: ``\"pyexpat.expat_CAPI\"``. Pass this to :c:func:`PyCapsule_Import` to obtain a pointer to a :c:struct:`PyExpat_CAPI`." -msgstr "" +msgstr "نام کپسول حاوی Expat C API: ``\"pyexpat.expat_CAPI\"``. این مقدار را به :c:func:`PyCapsule_Import` ارسال کنید تا اشاره‌گری به یک :c:struct:`PyExpat_CAPI` به دست آورید." msgid "The string identifying the layout of :c:struct:`PyExpat_CAPI`. Before using the function pointers in the structure, check that its ``magic`` member compares equal to this string using ``strcmp()`` and its ``size`` member is at least :c:expr:`sizeof(struct PyExpat_CAPI)`." -msgstr "" +msgstr "رشته‌ای که چیدمان :c:struct:`PyExpat_CAPI` را مشخص می‌کند. پیش از استفاده از اشاره‌گرهای تابع در ساختار، بررسی کنید که عضو ``magic`` آن با استفاده از ``strcmp()`` با این رشته برابر باشد و عضو ``size`` آن حداقل :c:expr:`sizeof(struct PyExpat_CAPI)` باشد." msgid "Table of function pointers exported by :mod:`xml.parsers.expat`. The capsule owns this structure: treat it as read-only and do not free it. Keep a strong reference to the capsule while using the table." -msgstr "" +msgstr "جدول اشاره‌گرهای تابع صادرشده توسط :mod:`xml.parsers.expat`. کپسول مالک این ساختار است: آن را به عنوان فقط‌خواندنی در نظر بگیرید و آزاد نکنید. در حالی که از جدول استفاده می‌کنید، یک ارجاع قوی به کپسول نگه دارید." msgid "Check the compatibility fields as described under :c:macro:`PyExpat_CAPI_MAGIC` before using the function pointers." -msgstr "" +msgstr "پیش از استفاده از اشاره‌گرهای تابع، فیلدهای سازگاری را همان‌طور که تحت :c:macro:`PyExpat_CAPI_MAGIC` توصیف شده است بررسی کنید." msgid "Interface identifier, set to :c:macro:`PyExpat_CAPI_MAGIC`." -msgstr "" +msgstr "شناسه‌ی رابط، روی :c:macro:`PyExpat_CAPI_MAGIC` تنظیم شده است." msgid "Size of the structure in bytes, set to ``sizeof(struct PyExpat_CAPI)`` by the :mod:`xml.parsers.expat` module that created the capsule." -msgstr "" +msgstr "اندازه‌ی ساختار بر حسب بایت، که توسط ماژول :mod:`xml.parsers.expat` که کپسول را ایجاد کرده است روی ``sizeof(struct PyExpat_CAPI)`` تنظیم شده است." msgid "Major, minor, and micro version numbers of the Expat library used by :mod:`xml.parsers.expat`." -msgstr "" +msgstr "شماره‌های نسخه‌ی اصلی، فرعی و ریز کتابخانه‌ی Expat که توسط :mod:`xml.parsers.expat` استفاده می‌شود." msgid "Pointer to `XML_SetUnknownEncodingHandler `_. The handler may set a Python exception on failure. The caller must check for a Python exception after parsing." -msgstr "" +msgstr "اشاره‌گر به `XML_SetUnknownEncodingHandler `_. هندلر ممکن است هنگام خطا یک استثنای پایتون تنظیم کند. فراخواننده باید پس از تجزیه، وجود استثنای پایتون را بررسی کند." msgid "Python's unknown-encoding handler for Expat, used with ``XML_SetUnknownEncodingHandler``. It uses Python's codec registry to fill *info*. The *encodingHandlerData* argument is unused. Calling this handler requires an :term:`attached thread state`." -msgstr "" +msgstr "هندلر کدگذاری نامشخص پایتون برای Expat، که با ``XML_SetUnknownEncodingHandler`` استفاده می‌شود. این هندلر از رجیستری کُدک پایتون برای پر کردن *info* استفاده می‌کند. آرگومان *encodingHandlerData* استفاده نمی‌شود. فراخوانی این هندلر نیازمند یک :term:`وضعیت نخ متصل ` است." msgid "Pointers to the corresponding Expat functions, or ``NULL`` if not available in the Expat version used by :mod:`xml.parsers.expat`, are listed below." -msgstr "" +msgstr "اشاره‌گرها به توابع متناظر Expat، یا ``NULL`` اگر در نسخه‌ی Expat مورد استفاده‌ی :mod:`xml.parsers.expat` موجود نباشند، در زیر فهرست شده‌اند." msgid "Member names omit the ``XML_`` prefix; for example, ``SetHashSalt`` exposes Expat's ``XML_SetHashSalt`` function. See the `Expat API reference `_ for their behavior and the minimum Expat version they appear in." -msgstr "" +msgstr "نام اعضا پیشوند ``XML_`` را حذف می‌کند؛ برای مثال، ``SetHashSalt`` تابع ``XML_SetHashSalt`` متعلق به Expat را در معرض نمایش می‌گذارد. برای اطلاع از رفتار آن‌ها و حداقل نسخه‌ی Expat که در آن ظاهر می‌شوند، به `مرجع API اکس‌پت `_ مراجعه کنید." msgid "See the `Expat API reference `_." -msgstr "" +msgstr "به `مرجع API اکس‌پت `_ مراجعه کنید." diff --git a/c-api/structures.po b/c-api/structures.po index 98f310b0e..0a456e131 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -378,10 +378,10 @@ msgid "This is the same as :c:func:`PyCFunction_GetSelf`, but without error or t msgstr "این همان :c:func:`PyCFunction_GetSelf` است، اما بدون بررسی خطا و نوع." msgid "Return a :term:`borrowed reference` to the defining class of *func* if its :c:member:`~PyMethodDef.ml_flags` includes :c:macro:`METH_METHOD`. Otherwise, return ``NULL`` without setting an exception." -msgstr "" +msgstr "اگر :c:member:`~PyMethodDef.ml_flags` تابع *func* شامل :c:macro:`METH_METHOD` باشد، یک :term:`ارجاع امانتی ` به کلاس تعریف‌کننده‌ی آن برگردانید. در غیر این صورت، بدون تنظیم یک استثنا، ``NULL`` را برگردانید." msgid "*func* must be a C function object and must not be ``NULL``. This function does not perform error or type checking." -msgstr "" +msgstr "*func* باید یک شیء تابع C باشد و نباید ``NULL`` باشد. این تابع بررسی خطا یا بررسی نوع را انجام نمی‌دهد." msgid "Accessing attributes of extension types" msgstr "دسترسی به ویژگی‌های نوع‌های توسعه‌ای" @@ -474,22 +474,20 @@ msgstr "هنگام ایجاد کلاس با استفاده از :c:member:`~PyTy msgid "The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are deprecated. :c:macro:`!READ_RESTRICTED` and :c:macro:`!RESTRICTED` are equivalent to :c:macro:`Py_AUDIT_READ`; :c:macro:`!WRITE_RESTRICTED` does nothing." msgstr "ماکروهای :c:macro:`!RESTRICTED`، :c:macro:`!READ_RESTRICTED` و :c:macro:`!WRITE_RESTRICTED` که با ``#include \"structmember.h\"`` در دسترس هستند، منسوخ شده‌اند. :c:macro:`!READ_RESTRICTED` و :c:macro:`!RESTRICTED` معادل :c:macro:`Py_AUDIT_READ` هستند؛ :c:macro:`!WRITE_RESTRICTED` هیچ کاری انجام نمی‌دهد." -#, fuzzy -#| msgid "The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new names are now always available. Previously, these required ``#include \"structmember.h\"``. The header is still available and it provides the old names." msgid "The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:macro:`PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new names are now always available. Previously, these required ``#include \"structmember.h\"``. The header is still available and it provides the old names." -msgstr "ماکروی :c:macro:`!READONLY` به :c:macro:`Py_READONLY` تغییر نام یافت. ماکروی :c:macro:`!PY_AUDIT_READ` با پیشوند ``Py_`` تغییر نام یافت. نام‌های جدید اکنون همیشه در دسترس هستند. پیش‌تر، این موارد نیازمند ``#include \"structmember.h\"`` بودند. سرآیند هنوز در دسترس است و نام‌های قدیمی را فراهم می‌کند." +msgstr "کلان‌دستور :c:macro:`!READONLY` به :c:macro:`Py_READONLY` تغییر نام یافت. کلان‌دستور :c:macro:`PY_AUDIT_READ` با پیشوند ``Py_`` تغییر نام یافت. نام‌های جدید اکنون همیشه در دسترس هستند. پیش از این، این موارد به ``#include \"structmember.h\"`` نیاز داشتند. سرآیند هنوز در دسترس است و نام‌های قدیمی را فراهم می‌کند." msgid "Soft-deprecated alias of :c:macro:`Py_AUDIT_READ` (note capitalization of the ``y``). Only available with ``#include \"structmember.h\"``." -msgstr "" +msgstr "نام مستعار منسوخِ نرمِ :c:macro:`Py_AUDIT_READ` (به بزرگ بودن حرف ``y`` توجه کنید). تنها با ``#include \"structmember.h\"`` در دسترس است." msgid "Use :c:macro:`Py_AUDIT_READ` instead." -msgstr "" +msgstr "به‌جای آن از :c:macro:`Py_AUDIT_READ` استفاده کنید." msgid "A member flag that has no effect, retained solely for backwards compatibility. This is only available with ``#include \"structmember.h\"``." -msgstr "" +msgstr "یک پرچم عضو (member flag) که هیچ اثری ندارد و صرفاً برای سازگاری با نسخه‌های قبلی حفظ شده است. این مورد تنها با ``#include \"structmember.h\"`` در دسترس است." msgid "Omit this flag instead." -msgstr "" +msgstr "به‌جای آن این پرچم را حذف کنید." msgid "Member types" msgstr "نوع‌های عضو" diff --git a/c-api/synchronization.po b/c-api/synchronization.po index 6b1db455e..f46404f93 100644 --- a/c-api/synchronization.po +++ b/c-api/synchronization.po @@ -192,13 +192,13 @@ msgid "A pointer to a mutual exclusion lock." msgstr "اشاره‌گری به قفل متقابل." msgid "A :term:`soft deprecated` alias to :c:expr:`long long`, the integer type used for the timeout argument of :c:func:`PyThread_acquire_lock_timed`." -msgstr "" +msgstr "یک نام مستعار :term:`منسوخ‌شده‌ی نرم ` برای :c:expr:`long long`، که نوع داده‌ی عدد صحیح استفاده‌شده برای آرگومان مهلت زمانی :c:func:`PyThread_acquire_lock_timed` است." msgid "The maximum timeout, in microseconds, supported by :c:func:`PyThread_acquire_lock_timed`." -msgstr "" +msgstr "بیشترین مهلت زمانی، بر حسب میکروثانیه، که توسط :c:func:`PyThread_acquire_lock_timed` پشتیبانی می‌شود." msgid "This differs from :data:`_thread.TIMEOUT_MAX`, which is expressed in seconds." -msgstr "" +msgstr "این با :data:`_thread.TIMEOUT_MAX` متفاوت است که بر حسب ثانیه بیان می‌شود." msgid "The result of acquiring a lock with a timeout." msgstr "نتیجه‌ی به‌دست آوردن یک قفل با مهلت زمانی." diff --git a/c-api/unicode.po b/c-api/unicode.po index ec44ff83f..7c1438a6d 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -37,7 +37,7 @@ msgid "UTF-8 representation is created on demand and cached in the Unicode objec msgstr "بازنمایی UTF-8 به‌هنگام نیاز ایجاد می‌شود و در نهانگاه شیء یونیکد ذخیره می‌شود." msgid "The internal buffer always includes an extra trailing null character for compatibility with null terminated C strings. This extra character is not counted in :c:func:`PyUnicode_GetLength` nor in the various *size* arguments of the functions below." -msgstr "" +msgstr "بافر داخلی همیشه شامل یک نویسه‌ی تهی پایانی اضافی برای سازگاری با رشته‌های C ختم‌شده با نویسه‌ی تهی است. این نویسه‌ی اضافی در :c:func:`PyUnicode_GetLength` و همچنین در آرگومان‌های *size* مختلف توابع زیر محاسبه نمی‌شود." msgid "The :c:type:`Py_UNICODE` representation has been removed since Python 3.12 with deprecated APIs. See :pep:`623` for more information." msgstr "نمایش :c:type:`Py_UNICODE` از پایتون 3.12 همراه با APIهای منسوخ حذف شده است. برای اطلاعات بیشتر به :pep:`623` مراجعه کنید." @@ -105,13 +105,11 @@ msgstr "مقدار *kind* و اشاره‌گر *data* باید به ترتیب msgid "The function performs no checks for any of its requirements, and is intended for usage in loops." msgstr "این تابع هیچ بررسی‌ای برای هیچ‌یک از نیازمندی‌های خود انجام نمی‌دهد و برای استفاده در حلقه‌ها در نظر گرفته شده است." -#, fuzzy -#| msgid "Read a code point from a canonical representation *data* (as obtained with :c:func:`PyUnicode_DATA`). No checks or ready calls are performed." msgid "Read a code point from a canonical representation *data* (as obtained with :c:func:`PyUnicode_DATA`). No checks are performed." -msgstr "یک نقطه‌کد را از نمایش کانونیکال *data* (که با :c:func:`PyUnicode_DATA` به دست آمده است) می‌خواند. هیچ بررسی یا فراخوانی ready انجام نمی‌شود." +msgstr "یک نقطه‌کد را از داده‌های بازنمایی کانونی *data* بخوانید (همان‌طور که با :c:func:`PyUnicode_DATA` به دست می‌آید). هیچ بررسی انجام نمی‌شود." msgid "Accept reading the trailing null character at index :c:func:`PyUnicode_GetLength`." -msgstr "" +msgstr "خواندن نویسه‌ی تهی پایانی در اندیس :c:func:`PyUnicode_GetLength` را بپذیرید." msgid "Read a character from a Unicode object *unicode*, which must be in the \"canonical\" representation. This is less efficient than :c:func:`PyUnicode_READ` if you do multiple consecutive reads." msgstr "یک نویسه از شیء یونیکد *unicode* می‌خواند که باید در نمایش «کانونیکال» باشد. اگر چندین خواندن متوالی انجام می‌دهید، این کارایی کمتری نسبت به :c:func:`PyUnicode_READ` دارد." @@ -249,7 +247,7 @@ msgid "If necessary, the input *buffer* is copied and transformed into the canon msgstr "در صورت نیاز، *بافر* ورودی کپی شده و به نمایش کانونیکال تبدیل می‌شود. برای مثال، اگر *بافر* یک رشته‌ی UCS4 باشد (:c:macro:`PyUnicode_4BYTE_KIND`) و تنها شامل نقطه‌کدهایی در محدوده‌ی UCS1 باشد، به UCS1 تبدیل می‌شود (:c:macro:`PyUnicode_1BYTE_KIND`)." msgid "All characters must be in range [U+0000; U+10ffff]. If *kind* is :c:macro:`PyUnicode_4BYTE_KIND` and the string contains invalid characters, the behavior is undefined." -msgstr "" +msgstr "تمام نویسه‌ها باید در محدوده‌ی [U+0000; U+10ffff] باشند. اگر *kind* برابر با :c:macro:`PyUnicode_4BYTE_KIND` باشد و رشته شامل نویسه‌های نامعتبر باشد، رفتار نامعلوم است." msgid "Create a Unicode object from the char buffer *str*. The bytes will be interpreted as being UTF-8 encoded. The buffer is copied into the new object. The return value might be a shared object, i.e. modification of the data is not allowed." msgstr "یک شیء یونیکد از بافر نویسه *str* ایجاد می‌کند. بایت‌ها به‌عنوان کدگذاری‌شده با UTF-8 تفسیر می‌شوند. بافر در شیء جدید کپی می‌شود. مقدار بازگشتی ممکن است یک شیء مشترک باشد، یعنی تغییر داده‌ها مجاز نیست." @@ -579,7 +577,7 @@ msgid "On error, set an exception and return ``-1``." msgstr "در صورت خطا، یک استثنا تنظیم شده و ``-1`` بازگردانده می‌شود." msgid "The length does not count the trailing null character." -msgstr "" +msgstr "طول، نویسه‌ی پایانی تهی را حساب نمی‌کند." msgid "Copy characters from one Unicode object into another. This function performs character conversion when necessary and falls back to :c:func:`!memcpy` if possible. Returns ``-1`` and sets an exception on error, otherwise returns the number of copied characters." msgstr "نویسه‌ها را از یک شیء یونیکد به شیء یونیکد دیگر کپی می‌کند. این تابع در صورت نیاز تبدیل نویسه‌ها را انجام می‌دهد و در صورت امکان به :c:func:`!memcpy` روی می‌آورد. در صورت خطا ``-1`` برمی‌گرداند و یک استثنا تنظیم می‌کند، در غیر این صورت تعداد نویسه‌های کپی‌شده را برمی‌گرداند." @@ -621,7 +619,7 @@ msgid "Return character on success, ``-1`` on error with an exception set." msgstr "در صورت موفقیت نویسه و در صورت خطا ``-1`` را همراه با استثنای تنظیم‌شده برمی‌گرداند." msgid "Do not accept reading the trailing null character at index :c:func:`PyUnicode_GetLength`." -msgstr "" +msgstr "خواندن نویسه‌ی پایانی تهی در اندیس :c:func:`PyUnicode_GetLength` پذیرفته نمی‌شود." msgid "Return a substring of *unicode*, from character index *start* (included) to character index *end* (excluded). Negative indices are not supported. On error, set an exception and return ``NULL``." msgstr "زیررشته‌ای از *unicode* را برمی‌گرداند که از اندیس نویسه‌ی *start* (شامل) تا اندیس نویسه‌ی *end* (بدون) است. اندیس‌های منفی پشتیبانی نمی‌شوند. در صورت خطا، یک استثنا تنظیم کرده و ``NULL`` را برمی‌گرداند." @@ -1173,7 +1171,7 @@ msgid "The instance must be destroyed by :c:func:`PyUnicodeWriter_Finish` on suc msgstr "نمونه باید در صورت موفقیت توسط :c:func:`PyUnicodeWriter_Finish` یا در صورت خطا توسط :c:func:`PyUnicodeWriter_Discard` نابود شود." msgid "The API is **not thread safe**. To share a writer with multiple threads, a critical section or a lock is needed." -msgstr "" +msgstr "این API **نخ‌امن (thread safe) نیست**. برای اشتراک‌گذاری یک نویسنده (writer) با چند نخ، به یک بخش بحرانی (critical section) یا قفل نیاز است." msgid "Create a Unicode writer instance." msgstr "یک نمونه از نویسنده یونیکد ایجاد کنید." @@ -1226,16 +1224,14 @@ msgstr "رشته پهن *str* را در *writer* می‌نویسد." msgid "*size* is a number of wide characters. If *size* is equal to ``-1``, call ``wcslen(str)`` to get the string length." msgstr "*size* تعداد نویسه‌های پهن است. اگر *size* برابر با ``-1`` باشد، برای به‌دست آوردن طول رشته، ``wcslen(str)`` را فراخوانی کنید." -#, fuzzy -#| msgid "Writer the UCS4 string *str* into *writer*." msgid "Write the UCS4 string *str* into *writer*." -msgstr "رشته UCS4 *str* را در *writer* می‌نویسد." +msgstr "رشته‌ی UCS4 با نام *str* را در *writer* بنویسید." msgid "*size* is a number of UCS4 characters." msgstr "*size* تعداد نویسه‌های UCS4 است." msgid "All characters must be in range [U+0000; U+10ffff]. If the string contains invalid characters, the behavior is undefined." -msgstr "" +msgstr "تمام نویسه‌ها باید در محدوده‌ی [U+0000; U+10ffff] باشند. اگر رشته شامل نویسه‌های نامعتبر باشد، رفتار نامعلوم است." msgid "Call :c:func:`PyObject_Str` on *obj* and write the output into *writer*." msgstr ":c:func:`PyObject_Str` را روی *obj* فراخوانی می‌کند و خروجی را در *writer* می‌نویسد." diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 596ba1fd3..aaa9e2bd7 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -88,35 +88,31 @@ msgid "Can be set to point to a function with the prototype ``int func(void)``. msgstr "می‌توان آن را طوری تنظیم کرد که به تابعی با پیش‌نمونه‌ی ``int func(void)`` اشاره کند. این تابع زمانی فراخوانی می‌شود که اعلان مفسر پایتون در شرف بی‌کار شدن و انتظار برای ورودی کاربر از پایانه باشد. مقدار بازگشتی نادیده گرفته می‌شود. از بازنویسی این قلاب می‌توان برای یکپارچه‌سازی اعلان مفسر با حلقه‌های رویداد دیگر استفاده کرد، همان‌گونه که در :file:`Modules/_tkinter.c` در کد منبع پایتون انجام شده است." msgid "The function is called without an :term:`attached thread state`." -msgstr "" +msgstr "این تابع بدون :term:`وضعیت نخ متصل ` فراخوانی می‌شود." msgid "This function is only called from the :ref:`main interpreter `." msgstr "این تابع فقط از :ref:`مفسر اصلی ` فراخوانی می‌شود." -#, fuzzy -#| msgid "Can be set to point to a function with the prototype ``char *func(FILE *stdin, FILE *stdout, char *prompt)``, overriding the default function used to read a single line of input at the interpreter's prompt. The function is expected to output the string *prompt* if it's not ``NULL``, and then read a line of input from the provided standard input file, returning the resulting string. For example, The :mod:`readline` module sets this hook to provide line-editing and tab-completion features." msgid "Can be set to point to a function with the prototype ``char *func(FILE *stdin, FILE *stdout, const char *prompt)``, overriding the default function used to read a single line of input at the interpreter's prompt. The function is expected to output the string *prompt* if it's not ``NULL``, and then read a line of input from the provided standard input file, returning the resulting string. For example, the :mod:`readline` module sets this hook to provide line-editing and tab-completion features." -msgstr "می‌تواند برای اشاره به تابعی با پیش‌نمونه‌ی ``char *func(FILE *stdin, FILE *stdout, char *prompt)`` تنظیم شود که تابع پیش‌فرضِ استفاده‌شده برای خواندن یک سطر ورودی در اعلان مفسر را بازنویسی می‌کند. انتظار می‌رود این تابع در صورت ``NULL`` نبودن *prompt*، رشته‌ی *prompt* را به خروجی بفرستد و سپس یک سطر ورودی از پرونده‌ی ورودی استانداردِ ارائه‌شده بخواند و رشته‌ی حاصل را برگرداند. برای مثال، ماژول :mod:`readline` این قلاب را برای فراهم کردن قابلیت‌های ویرایش سطر و تکمیل با کلید Tab تنظیم می‌کند." +msgstr "می‌تواند روی تابعی با پیش‌نمونه‌ی ``char *func(FILE *stdin, FILE *stdout, const char *prompt)`` تنظیم شود که تابع پیش‌فرض استفاده‌شده برای خواندن یک سطر ورودی در اعلان مفسر را بازنویسی می‌کند. انتظار می‌رود این تابع رشته‌ی *prompt* را (در صورتی که ``NULL`` نباشد) خروجی دهد، و سپس یک سطر ورودی از پرونده‌ی ورودی استاندارد فراهم‌شده بخواند و رشته‌ی حاصل را برگرداند. برای مثال، ماژول :mod:`readline` این قلاب را تنظیم می‌کند تا ویژگی‌های ویرایش سطر و تکمیل با کلید تب (tab-completion) را فراهم کند." msgid "If this pointer is ``NULL``, :c:func:`PyOS_Readline` sets it to the default implementation, :c:func:`PyOS_Readline`, before reading input." -msgstr "" +msgstr "اگر این اشاره‌گر ``NULL`` باشد، :c:func:`PyOS_Readline` آن را قبل از خواندن ورودی روی پیاده‌سازی پیش‌فرض، یعنی :c:func:`PyOS_Readline`، تنظیم می‌کند." msgid "The returned string must be null-terminated and include the trailing newline, if one was read. Return an empty string if the end of the file is reached before any characters are read. Return ``NULL`` on failure or interruption; a Python exception may be set." -msgstr "" +msgstr "رشته‌ی بازگردانده‌شده باید با نویسه‌ی ته (null-terminated) ختم شود و در صورت خوانده شدن، شامل کاراکتر خط جدید پایانی باشد. اگر انتهای پرونده قبل از خواندن هر نویسی فرا برسد، یک رشته‌ی خالی برگردانید. در صورت بروز خطا یا وقفه، ``NULL`` را برگردانید؛ ممکن است یک استثنای پایتون تنظیم شود." -#, fuzzy -#| msgid "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." msgid "A non-``NULL`` result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`." -msgstr "نتیجه باید رشته‌ای باشد که توسط :c:func:`PyMem_RawMalloc` یا :c:func:`PyMem_RawRealloc` تخصیص داده‌شده باشد، یا ``NULL`` در صورت وقوع خطا." +msgstr "یک نتیجه‌ی غیر-``NULL`` باید رشته‌ای باشد که توسط :c:func:`PyMem_RawMalloc` یا :c:func:`PyMem_RawRealloc` تخصیص یافته است." msgid "The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc`." msgstr "نتیجه باید توسط :c:func:`PyMem_RawMalloc` یا :c:func:`PyMem_RawRealloc` تخصیص داده شود، نه توسط :c:func:`PyMem_Malloc` یا :c:func:`PyMem_Realloc`." msgid "Display *prompt*, if it is not ``NULL``, and read a line from *sys_stdin*. If both streams are terminals and the call is made from the :ref:`main interpreter `, use :c:var:`PyOS_ReadlineFunctionPointer`. Otherwise, use the default implementation, which flushes *sys_stdout* and writes *prompt* to the C standard error stream." -msgstr "" +msgstr "اعلان *prompt* را (اگر ``NULL`` نباشد) نمایش دهید و یک سطر از *sys_stdin* بخوانید. اگر هر دو جریان پایانه (terminal) باشند و فراخوانی از :ref:`مفسر اصلی ` انجام شود، از :c:var:`PyOS_ReadlineFunctionPointer` استفاده کنید. در غیر این صورت، از پیاده‌سازی پیش‌فرض استفاده کنید که *sys_stdout* را تخلیه (flush) کرده و *prompt* را در جریان خطای استاندارد C می‌نویسد." msgid "The returned string follows the contract of :c:var:`PyOS_ReadlineFunctionPointer`, but the caller must free it with :c:func:`PyMem_Free`. Return ``NULL`` on failure or interruption; a Python exception may be set." -msgstr "" +msgstr "رشته‌ی بازگردانده‌شده از قرارداد :c:var:`PyOS_ReadlineFunctionPointer` پیروی می‌کند، اما فراخواننده باید آن را با :c:func:`PyMem_Free` آزاد کند. در صورت بروز خطا یا وقفه، ``NULL`` را برگردانید؛ ممکن است یک استثنای پایتون تنظیم شود." msgid "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving *flags* set to ``NULL``." msgstr "این یک رابط ساده‌شده برای :c:func:`PyRun_StringFlags` در ادامه است که در آن *flags* روی ``NULL`` تنظیم می‌شود." diff --git a/c-api/weakref.po b/c-api/weakref.po index 426b34986..f7ee328ab 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -83,10 +83,10 @@ msgid "This iterates through the weak references for *object* and calls callback msgstr "این تابع ارجاع‌های ضعیفِ *object* را پیمایش می‌کند و برای ارجاع‌هایی که کال‌بک دارند، کال‌بک‌هایشان را فراخوانی می‌کند. این تابع وقتی بازمی‌گردد که تلاش برای همه‌ی کال‌بک‌ها انجام شده باشد." msgid "Return a pointer to an internal linked list of weak references to *object*. *object* must support weak references and must not be ``NULL``." -msgstr "" +msgstr "یک اشاره‌گر به فهرست پیوندی داخلی ارجاعات ضعیف به *object* را برگردانید. *object* باید از ارجاعات ضعیف پشتیبانی کند و نباید ``NULL`` باشد." msgid "This function is intended for internal use only. Do not access or modify the weak reference list through the returned pointer." -msgstr "" +msgstr "این تابع صرفاً برای استفاده‌ی داخلی در نظر گرفته شده است. از طریق اشاره‌گر بازگردانده‌شده، به فهرست ارجاعات ضعیف دسترسی پیدا نکنید و آن را تغییر ندهید." msgid "Clears the weakrefs for *object* without calling the callbacks." msgstr "ارجاع‌های ضعیف مربوط به *object* را بدون فراخوانی کال‌بک‌ها پاک‌سازی می‌کند." diff --git a/extending/newtypes.po b/extending/newtypes.po index b7831ec37..d9e88aec8 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -510,15 +510,6 @@ msgstr "برای هر متدی که توسط نوع ارائه می‌شود، msgid "The second table is used to define attributes which map directly to data stored in the instance. A variety of primitive C types are supported, and access may be read-only or read-write. The structures in the table are defined as::" msgstr "از جدول دوم برای تعریف ویژگی‌هایی استفاده می‌شود که مستقیماً به داده‌های ذخیره‌شده در نمونه نگاشت می‌شوند. انواع مختلفی از نوع‌های اولیه‌ی C پشتیبانی می‌شوند و دسترسی می‌تواند فقط‌خواندنی یا خواندنی-نوشتنی باشد. ساختارهای موجود در جدول به صورت زیر تعریف می‌شوند::" -#, fuzzy -#| msgid "" -#| "typedef struct PyMemberDef {\n" -#| " const char *name;\n" -#| " int type;\n" -#| " int offset;\n" -#| " int flags;\n" -#| " const char *doc;\n" -#| "} PyMemberDef;" msgid "" "typedef struct PyMemberDef {\n" " const char *name;\n" @@ -531,7 +522,7 @@ msgstr "" "typedef struct PyMemberDef {\n" " const char *name;\n" " int type;\n" -" int offset;\n" +" Py_ssize_t offset;\n" " int flags;\n" " const char *doc;\n" "} PyMemberDef;" diff --git a/howto/remote_debugging.po b/howto/remote_debugging.po index 874e63365..53760365d 100644 --- a/howto/remote_debugging.po +++ b/howto/remote_debugging.po @@ -38,10 +38,8 @@ msgstr "برای غیرفعال کردن پشتیبانی از اشکال‌زد msgid "Set the :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` environment variable to ``1`` before starting the interpreter." msgstr "متغیر محیطی :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` را پیش از راه‌اندازی مفسر روی ``1`` تنظیم کنید." -#, fuzzy -#| msgid "Use the :option:`-X disable_remote_debug` command-line option." msgid "Use the :option:`-X disable-remote-debug` command-line option." -msgstr "از گزینه‌ی خط فرمان :option:`-X disable_remote_debug` استفاده کنید." +msgstr "از گزینه‌ی خط فرمان :option:`-X disable-remote-debug` استفاده کنید." msgid "Compile Python with the :option:`--without-remote-debug` build flag." msgstr "پایتون را با پرچم ساخت :option:`--without-remote-debug` کامپایل کنید." @@ -805,10 +803,8 @@ msgstr "اگر فرایند پایتونِ در حال اشکال‌زدایی msgid "When to use ``PYTHON_DISABLE_REMOTE_DEBUG``" msgstr "زمان استفاده از ``PYTHON_DISABLE_REMOTE_DEBUG``" -#, fuzzy -#| msgid "The environment variable :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (and the equivalent :option:`-X disable_remote_debug` flag) allows operators to disable the in-process side of the protocol as a **defence-in-depth** measure. This may be useful in hardened or sandboxed deployment environments where no debugging or profiling of the process is expected and reducing attack surface is a priority, even though the OS-level privilege checks already prevent unprivileged access." msgid "The environment variable :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (and the equivalent :option:`-X disable-remote-debug` flag) allows operators to disable the in-process side of the protocol as a **defence-in-depth** measure. This may be useful in hardened or sandboxed deployment environments where no debugging or profiling of the process is expected and reducing attack surface is a priority, even though the OS-level privilege checks already prevent unprivileged access." -msgstr "متغیر محیطی :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (و پرچم معادل :option:`-X disable_remote_debug`) به راهبران اجازه می‌دهد سمت درون‌فرایندی پروتکل را به‌عنوان تدبیری برای **دفاع در عمق** غیرفعال کنند. این ممکن است در محیط‌های استقرار ایمن‌سازی‌شده یا سندباکس‌شده مفید باشد؛ محیط‌هایی که انتظار نمی‌رود هیچ‌گونه اشکال‌زدایی یا پروفایل‌گیری از فرایند در آن‌ها انجام شود و کاهش سطح حمله اولویت دارد، حتی اگر بررسی‌های امتیاز در سطح سیستم‌عامل از پیش از دسترسی فاقد امتیاز جلوگیری کنند." +msgstr "متغیر محیطی :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (و پرچم معادل آن یعنی :option:`-X disable-remote-debug`) به عملگران اجازه می‌دهد تا سمت درون‌فرایندی پروتکل را به عنوان یک راهکار **دفاع در عمق (defence-in-depth)** غیرفعال کنند. این کار ممکن است در محیط‌های استقرار سخت‌سازی‌شده (hardened) یا ایزوله (sandboxed) که هیچ‌گونه اشکال‌زدایی یا پروفایل‌گیری از فرایند مورد انتظار نیست و کاهش سطح حمله اولویت دارد، مفید باشد؛ حتی اگر بررسی‌های دسترسی در سطح سیستم‌عامل از قبل مانع دسترسی‌های غیرمجاز شده باشند." msgid "Setting this variable does **not** affect other OS-level debugging interfaces (``ptrace``, ``/proc``, ``task_for_pid``, etc.), which remain available according to their own permission models." msgstr "تنظیم این متغیر بر سایر رابط‌های اشکال‌زدایی در سطح سیستم‌عامل تأثیر **نمی‌گذارد** (``ptrace``، ``/proc``، ``task_for_pid`` و غیره)، که بر اساس مدل‌های مجوز خود در دسترس باقی می‌مانند." diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 556956ef8..014f95b2c 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -446,7 +446,7 @@ msgid "*all_errors* was added." msgstr "*all_errors* افزوده شد." msgid "Raises a ``ValueError`` if ``ssl.check_hostname`` is ``True`` and ``server_hostname`` is not supplied." -msgstr "" +msgstr "اگر ``ssl.check_hostname`` برابر با ``True`` باشد و ``server_hostname`` فراهم نشده باشد، یک ``ValueError`` بالا می‌آورد." msgid "The :func:`open_connection` function is a high-level alternative API. It returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be used directly in async/await code." msgstr "تابع :func:`open_connection` یک API جایگزین سطح‌بالا است. این تابع یک جفت (:class:`StreamReader`، :class:`StreamWriter`) را برمی‌گرداند که می‌توان مستقیماً در کد async/await از آن‌ها استفاده کرد." diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 5bfc67806..8b36199e3 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -323,7 +323,7 @@ msgid "*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdow msgstr "*ssl_shutdown_timeout* زمان بر حسب ثانیه است که باید برای تکمیل خاموش‌سازی SSL پیش از قطع اتصال منتظر بمانید. اگر ``None`` باشد، ``30.0`` ثانیه است (پیش‌فرض)." msgid "Raises a ``ValueError`` if ``sslcontext.check_hostname`` is ``True`` and ``server_hostname`` is not supplied." -msgstr "" +msgstr "اگر ``sslcontext.check_hostname`` برابر با ``True`` باشد و ``server_hostname`` فراهم نشده باشد، یک ``ValueError`` بالا می‌آورد." msgid "Return ``True`` if the stream is closed or in the process of being closed." msgstr "اگر جریان بسته باشد یا در حال بسته شدن باشد، ``True`` را برمی‌گرداند." diff --git a/library/calendar.po b/library/calendar.po index 33f8549f3..b5fe3c567 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -107,10 +107,8 @@ msgstr "نمونه‌های :class:`TextCalendar` متدهای زیر را دا msgid "Return a string representing a single day formatted with the given *width*. If *theday* is ``0``, return a string of spaces of the specified width, representing an empty day. The *weekday* parameter is unused." msgstr "رشته‌ای را برمی‌گرداند که نمایانگر یک روز واحد است و با *width* داده‌شده قالب‌بندی شده است. اگر *theday* برابر ``0`` باشد، رشته‌ای از فاصله‌ها با عرض مشخص‌شده برمی‌گرداند که نمایانگر یک روز خالی است. پارامتر *weekday* استفاده نمی‌شود." -#, fuzzy -#| msgid "Return a single week in a string with no newline. If *w* is provided, it specifies the width of the date columns, which are centered. Depends on the first weekday as specified in the constructor or set by the :meth:`setfirstweekday` method." msgid "Return a single week in a string with no newline. *width* specifies the width of the date columns, which are centered. Depends on the first weekday as specified in the constructor or set by the :meth:`setfirstweekday` method." -msgstr "یک هفته واحد را به‌صورت یک رشته بدون خط جدید برمی‌گرداند. اگر *w* داده شود، عرض ستون‌های تاریخ را مشخص می‌کند؛ این ستون‌ها وسط‌چین هستند. به اولین روز هفته بستگی دارد، همان‌گونه که در سازنده تعیین‌شده است یا با متد :meth:`setfirstweekday` تنظیم‌شده است." +msgstr "بازگرداندن یک هفته‌ی منفرد در یک رشته بدون کاراکتر خط جدید. پارامتر *width* عرض ستون‌های تاریخ را تعیین می‌کند که وسط‌چین شده‌اند. این تابع به روز اول هفته بستگی دارد که در سازنده مشخص شده یا توسط متد :meth:`setfirstweekday` تنظیم شده است." msgid "Return a string representing the name of a single weekday formatted to the specified *width*. The *weekday* parameter is an integer representing the day of the week, where ``0`` is Monday and ``6`` is Sunday." msgstr "رشته‌ای را برمی‌گرداند که نشان‌دهنده نام یک روز هفته است و با عرض مشخص‌شده *width* قالب‌بندی‌شده است. پارامتر *weekday* یک عدد صحیح است که روز هفته را نشان می‌دهد، به‌طوری‌که ``0`` دوشنبه و ``6`` یکشنبه است." diff --git a/library/concurrent.interpreters.po b/library/concurrent.interpreters.po index 80dd283a0..c5f08ccec 100644 --- a/library/concurrent.interpreters.po +++ b/library/concurrent.interpreters.po @@ -200,7 +200,7 @@ msgid "Initialize a new cross-interpreter queue and return a :class:`Queue` obje msgstr "یک صف بین‌مفسری جدید را مقداردهی اولیه می‌کند و یک شیء :class:`Queue` برای آن برمی‌گرداند." msgid "*maxsize* is an integer that sets the upperbound limit on the number of items that can be placed in the queue. Insertion will be blocked once this size has been reached, until queue items are consumed. If *maxsize* is less than or equal to zero, the queue size is infinite." -msgstr "" +msgstr "پارامتر *maxsize* یک عدد صحیح است که حد بالایی تعداد آیتم‌هایی را که می‌توان در صف قرار داد، تعیین می‌کند. پس از رسیدن به این اندازه‌، درج متوقف خواهد شد تا زمانی که آیتم‌های صف مصرف شوند. اگر *maxsize* کمتر یا مساوی صفر باشد، اندازه‌ی صف نامحدود است." msgid "Interpreter objects" msgstr "اشیای مفسر" @@ -262,46 +262,38 @@ msgstr "این استثنا، که زیرکلاسی از :exc:`TypeError` است msgid "Communicating Between Interpreters" msgstr "ارتباط بین مفسرها" -#, fuzzy -#| msgid "A wrapper around a low-level, cross-interpreter queue, which implements the :class:`queue.Queue` interface. The underlying queue can only be created through :func:`create_queue`." msgid "A wrapper around a low-level, cross-interpreter queue, which implements all the methods of :class:`queue.Queue` except for :meth:`~queue.Queue.task_done`, :meth:`~queue.Queue.join` and :meth:`~queue.Queue.shutdown`. The underlying queue can only be created through :func:`create_queue`." -msgstr "پوششی برای یک صف بین‌مفسری سطح پایین، که رابط :class:`queue.Queue` را پیاده‌سازی می‌کند. صف زیرین فقط از طریق :func:`create_queue` قابل ایجاد است." +msgstr "پوششی دور یک صف سطح پایین و بین‌مفسری که تمام متدهای :class:`queue.Queue` به جز :meth:`~queue.Queue.task_done`، :meth:`~queue.Queue.join` و :meth:`~queue.Queue.shutdown` را پیاده‌سازی می‌کند. صف زیرین تنها از طریق :func:`create_queue` قابل ایجاد است." msgid "The queue's ID." msgstr "شناسه‌ی صف." msgid "Return the number of items in the queue." -msgstr "" +msgstr "تعداد آیتم‌های موجود در صف را برگردانید." msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "" +msgstr "اگر صف خالی باشد ``True`` و در غیر این صورت ``False`` را برگردانید." -#, fuzzy -#| msgid "Return ``True`` if the interpreter is currently executing code in its :mod:`!__main__` module and ``False`` otherwise." msgid "Return ``True`` if the queue is full, ``False`` otherwise." -msgstr "اگر مفسر هم‌اکنون در حال اجرای کد در ماژول :mod:`!__main__` خود باشد، ``True`` و در غیر این صورت ``False`` برمی‌گرداند." +msgstr "اگر صف پر باشد ``True`` و در غیر این صورت ``False`` را برگردانید." msgid "Put *obj* into the queue. If optional args *block* is true and *timeout* is ``None`` (the default), block if necessary until a free slot is available. If *timeout* is a positive number, it blocks at most *timeout* seconds and raises the :exc:`QueueFull` exception if no free slot was available within that time. Otherwise (*block* is false), put an object on the queue if a free slot is immediately available, else raise the :exc:`QueueFull` exception (*timeout* is ignored in that case)." -msgstr "" +msgstr "شیء *obj* را در صف قرار دهید. اگر آرگومان‌های اختیاری *block* برابر با درست و *timeout* برابر با ``None`` (پیش‌فرض) باشند، در صورت نیاز متوقف بمانید تا جایگاه خالی در دسترس قرار گیرد. اگر *timeout* یک عدد مثبت باشد، حداکثر به میزان *timeout* ثانیه متوقف می‌ماند و اگر در آن بازه زمانی هیچ جایگاه خالی در دسترس نباشد، استثنای :exc:`QueueFull` را بالا می‌آورد. در غیر این صورت (وقتی *block* نادرست باشد)، اگر یک جایگاه خالی بلافاصله در دسترس باشد، شیء را در صف قرار دهید، وگرنه استثنای :exc:`QueueFull` را بالا بیاورید (در این حالت *timeout* نادیده گرفته می‌شود)." msgid "Equivalent to ``put(obj, block=False)``." -msgstr "" +msgstr "معادل با ``put(obj, block=False)``." msgid "Remove and return an object from the queue. If optional args *block* is true and *timeout* is ``None`` (the default), block if necessary until an object is available. If *timeout* is a positive number, it blocks at most *timeout* seconds and raises the :exc:`QueueEmpty` exception if no object was available within that time. Otherwise (*block* is false), return an object if one is immediately available, else raise the :exc:`QueueEmpty` exception (*timeout* is ignored in that case)." -msgstr "" +msgstr "یک شیء را از صف حذف کرده و برگردانید. اگر آرگومان‌های اختیاری *block* برابر با درست و *timeout* برابر با ``None`` (پیش‌فرض) باشند، در صورت نیاز متوقف بمانید تا شیء در دسترس قرار گیرد. اگر *timeout* یک عدد مثبت باشد، حداکثر به میزان *timeout* ثانیه متوقف می‌ماند و اگر در آن بازه زمانی هیچ شیئی در دسترس نباشد، استثنای :exc:`QueueEmpty` را بالا می‌آورد. در غیر این صورت (وقتی *block* نادرست باشد)، اگر شیئی بلافاصله در دسترس باشد، آن را برگردانید، وگرنه استثنای :exc:`QueueEmpty` را بالا بیاورید (در این حالت *timeout* نادیده گرفته می‌شود)." msgid "Equivalent to ``get(block=False)``." -msgstr "" +msgstr "معادل با ``get(block=False)``." -#, fuzzy -#| msgid "This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`!Queue.get` and :meth:`!Queue.get_nowait` when the queue is empty." msgid "This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`Queue.get` and :meth:`Queue.get_nowait` when the queue is empty." -msgstr "این استثنا، زیرکلاسی از :exc:`queue.Empty`، زمانی از :meth:`!Queue.get` و :meth:`!Queue.get_nowait` پرتاب می‌شود که صف خالی باشد." +msgstr "این استثنا که زیرکلاسی از :exc:`queue.Empty` است، هنگام خالی بودن صف از :meth:`Queue.get` و :meth:`Queue.get_nowait` بالا آورده می‌شود." -#, fuzzy -#| msgid "This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`!Queue.put` and :meth:`!Queue.put_nowait` when the queue is full." msgid "This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`Queue.put` and :meth:`Queue.put_nowait` when the queue is full." -msgstr "این استثنا، زیرکلاسی از :exc:`queue.Full`، هنگامی از :meth:`!Queue.put` و :meth:`!Queue.put_nowait` پرتاب می‌شود که صف پر باشد." +msgstr "این استثنا، که زیرکلاسی از :exc:`queue.Full` است، زمانی از :meth:`Queue.put` و :meth:`Queue.put_nowait` بالا آورده می‌شود که صف پر باشد." msgid "Basic usage" msgstr "استفاده‌ی پایه" @@ -376,10 +368,8 @@ msgstr "" "t = interp.call_in_thread(run)\n" "t.join()" -#, fuzzy -#| msgid "Communicating Between Interpreters" msgid "Communicating between interpreters with a queue::" -msgstr "ارتباط بین مفسرها" +msgstr "ارتباط بین مفسرها با یک صف::" msgid "" "from concurrent import interpreters\n" @@ -394,3 +384,14 @@ msgid "" "print(queue.get())\n" "t.join()" msgstr "" +"from concurrent import interpreters\n" +"\n" +"interp = interpreters.create()\n" +"queue = interpreters.create_queue()\n" +"\n" +"def worker(queue):\n" +" queue.put('spam!')\n" +"\n" +"t = interp.call_in_thread(worker, queue)\n" +"print(queue.get())\n" +"t.join()" diff --git a/library/ctypes.po b/library/ctypes.po index 8f55a90c6..ba572b343 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -231,7 +231,7 @@ msgstr "" ">>>" msgid ":mod:`!ctypes` cannot determine a function's calling convention or signature. Consult the function's C header file or documentation to choose the correct calling convention and set the :attr:`~_CFuncPtr.argtypes` attribute, as described in :ref:`ctypes-specifying-required-argument-types`. Without :attr:`~_CFuncPtr.argtypes`, the number of arguments is not checked. Calling a function with an incorrect calling convention or with incorrect arguments can corrupt memory or crash Python." -msgstr "" +msgstr ":mod:`!ctypes` نمی‌تواند قرارداد فراخوانی یا امضای یک تابع را تعیین کند. برای انتخاب قرارداد فراخوانی صحیح و تنظیم ویژگی :attr:`~_CFuncPtr.argtypes`، همان‌طور که در :ref:`ctypes-specifying-required-argument-types` شرح داده شده است، به پرونده‌ی سرآیند C یا مستندات تابع مراجعه کنید. بدون :attr:`~_CFuncPtr.argtypes`، تعداد آرگومان‌ها بررسی نمی‌شود. فراخوانی یک تابع با قرارداد فراخوانی نادرست یا با آرگومان‌های نادرست می‌تواند حافظه را خراب کند یا باعث فروپاشی پایتون شود." msgid "On Windows, :mod:`!ctypes` uses win32 structured exception handling to prevent crashes from general protection faults when functions are called with invalid argument values::" msgstr "در ویندوز، :mod:`!ctypes` از مدیریت استثنای ساختاریافته win32 برای جلوگیری از فروپاشی ناشی از خطاهای حفاظت عمومی هنگام فراخوانی توابع با مقادیر نامعتبر آرگومان استفاده می‌کند::" @@ -865,29 +865,21 @@ msgstr "" ">>>" msgid "Setting :attr:`~_CFuncPtr.argtypes` also causes :mod:`!ctypes` to raise :exc:`TypeError` if too few arguments are passed::" -msgstr "" +msgstr "تنظیم ویژگی :attr:`~_CFuncPtr.argtypes` همچنین باعث می‌شود که اگر آرگومان‌های بسیار کمی ارسال شوند، :mod:`!ctypes` استثنای :exc:`TypeError` را بالا بیاورد:" -#, fuzzy -#| msgid "" -#| ">>> bar.values = (c_byte * 4)()\n" -#| "Traceback (most recent call last):\n" -#| " File \"\", line 1, in \n" -#| "TypeError: incompatible types, c_byte_Array_4 instance instead of LP_c_long instance\n" -#| ">>>" msgid "" ">>> printf(b\"%s %d %f\\n\", b\"X\", 2)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" "TypeError: this function takes at least 4 arguments (3 given)" msgstr "" -">>> bar.values = (c_byte * 4)()\n" +">>> printf(b\"%s %d %f\\n\", b\"X\", 2)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -"TypeError: incompatible types, c_byte_Array_4 instance instead of LP_c_long instance\n" -">>>" +"TypeError: this function takes at least 4 arguments (3 given)" msgid "Functions using the ``stdcall`` calling convention require exactly as many arguments as there are items in :attr:`~_CFuncPtr.argtypes`. Functions using the ``cdecl`` calling convention accept additional arguments, to support variadic functions. The declaration must match the function's actual signature; ctypes cannot verify this." -msgstr "" +msgstr "توابعی که از قرارداد فراخوانی ``stdcall`` استفاده می‌کنند، دقیقاً به همان تعداد آرگومان نیاز دارند که در ویژگی :attr:`~_CFuncPtr.argtypes` آیتم وجود دارد. توابعی که از قرارداد فراخوانی ``cdecl`` استفاده می‌کنند، برای پشتیبانی از توابع چندآرگومانی، آرگومان‌های اضافی را نیز می‌پذیرند. اعلان باید با امضای واقعی تابع مطابقت داشته باشد؛ ctypes نمی‌تواند این موضوع را تأیید کند." msgid "If you have defined your own classes which you pass to function calls, you have to implement a :meth:`~_CData.from_param` class method for them to be able to use them in the :attr:`~_CFuncPtr.argtypes` sequence. The :meth:`~_CData.from_param` class method receives the Python object passed to the function call, it should do a typecheck or whatever is needed to make sure this object is acceptable, and then return the object itself, its :attr:`!_as_parameter_` attribute, or whatever you want to pass as the C function argument in this case. Again, the result should be an integer, string, bytes, a :mod:`!ctypes` instance, or an object with an :attr:`!_as_parameter_` attribute." msgstr "اگر کلاس‌های خودتان را تعریف کرده‌اید و آن‌ها را به فراخوانی‌های تابع ارسال می‌کنید، باید برای آن‌ها یک متد کلاس :meth:`~_CData.from_param` پیاده‌سازی کنید تا بتوانید از آن‌ها در دنباله :attr:`~_CFuncPtr.argtypes` استفاده کنید. متد کلاس :meth:`~_CData.from_param` شیء پایتونی ارسال‌شده به فراخوانی تابع را دریافت می‌کند؛ این متد باید بررسی نوع یا هر کاری را که برای اطمینان از قابل‌قبول بودن این شیء لازم است انجام دهد و سپس خود شیء، ویژگی :attr:`!_as_parameter_` آن، یا هر چیزی را که می‌خواهید در این حالت به‌عنوان آرگومان تابع C ارسال کنید، برگرداند. باز هم، نتیجه باید یک عدد صحیح، رشته، بایت‌ها، یک نمونه از :mod:`!ctypes`، یا شیءای با ویژگی :attr:`!_as_parameter_` باشد." @@ -2207,10 +2199,8 @@ msgstr "اگر *handle* برابر ``None`` باشد، از تابع :manpage:`d msgid "*name* is the pathname of the shared library to open. If *name* does not contain a path separator, the library is found in a platform-specific way." msgstr "*name* مسیر کتابخانه اشتراکی برای باز کردن است. اگر *name* شامل جداکننده مسیر نباشد، کتابخانه به شیوه‌ای وابسته به پلتفرم یافت می‌شود." -#, fuzzy -#| msgid "On non-Windows systems, *name* can be ``None``. In this case, :c:func:`!dlopen` is called with ``NULL``, which opens the main program as a \"library\". (Some systems do the same is *name* is empty; ``None``/``NULL`` is more portable.)" msgid "On non-Windows systems, *name* can be ``None``. In this case, :c:func:`!dlopen` is called with ``NULL``, which opens the main program as a \"library\". (Some systems do the same if *name* is empty; ``None``/``NULL`` is more portable.)" -msgstr "در سیستم‌های غیرویندوزی، *name* می‌تواند ``None`` باشد. در این حالت، :c:func:`!dlopen` با ``NULL`` فراخوانی می‌شود، که برنامه‌ی اصلی را به‌عنوان یک «کتابخانه» باز می‌کند. (برخی سیستم‌ها اگر *name* خالی باشد نیز همین کار را انجام می‌دهند؛ ``None``/``NULL`` قابل‌حمل‌تر است.)" +msgstr "در سیستم‌های غیر ویندوزی، *name* می‌تواند ``None`` باشد. در این صورت، :c:func:`!dlopen` با ``NULL`` فراخوانی می‌شود، که برنامه‌ی اصلی را به عنوان یک «کتابخانه» باز می‌کند. (برخی سیستم‌ها اگر *name* خالی باشد همین کار را انجام می‌دهند؛ ``None``/``NULL`` قابلیت حمل بالاتری دارد.)" msgid "CPython implementation detail" msgstr "جزئیات پیاده‌سازی CPython" @@ -2237,10 +2227,8 @@ msgstr "برای دسترسی به Python C API، ترجیحاً از :py:data:` msgid "The *mode* parameter can be used to specify how the library is loaded. For details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is ignored. On posix systems, RTLD_NOW is always added, and is not configurable." msgstr "از پارامتر *mode* می‌توان برای مشخص کردن نحوه بارگذاری کتابخانه استفاده کرد. برای جزئیات، به صفحه راهنمای :manpage:`dlopen(3)` مراجعه کنید. در ویندوز، *mode* نادیده گرفته می‌شود. در سیستم‌های POSIX، RTLD_NOW همیشه اضافه می‌شود و قابل پیکربندی نیست." -#, fuzzy -#| msgid "The *use_errno* parameter, when set to true, enables a ctypes mechanism that allows accessing the system :data:`errno` error number in a safe way. :mod:`!ctypes` maintains a thread-local copy of the system's :data:`errno` variable; if you call foreign functions created with ``use_errno=True`` then the :data:`errno` value before the function call is swapped with the ctypes private copy, the same happens immediately after the function call." msgid "The *use_errno* parameter, when set to true, enables a ctypes mechanism that allows accessing the system :data:`errno` error number in a safe way. :mod:`!ctypes` maintains a thread-local copy of the system's :data:`errno` variable; if you call foreign functions created with ``use_errno=True`` then the :data:`errno` value before the function call is swapped with the ctypes private copy, the same happens immediately after the function call. This mechanism only works for libraries that use the same C runtime library as the interpreter itself. A library linked against a different C runtime (for example, a different CRT on Windows) has its own :data:`errno`, which :mod:`!ctypes` cannot observe." -msgstr "پارامتر *use_errno*، هنگامی که روی true تنظیم شود، سازوکاری در ctypes را فعال می‌کند که امکان دسترسی به شماره‌ی خطای سیستم :data:`errno` را به‌شکلی امن فراهم می‌کند. :mod:`!ctypes` یک نسخه‌ی محلی نخی (thread-local) از متغیر :data:`errno` سیستم را نگه می‌دارد؛ اگر توابع خارجی ساخته‌شده با ``use_errno=True`` را فراخوانی کنید، آنگاه مقدار :data:`errno` پیش از فراخوانی تابع با نسخه‌ی خصوصی ctypes مبادله می‌شود؛ همین مبادله بلافاصله پس از فراخوانی تابع نیز رخ می‌دهد." +msgstr "پارامتر *use_errno*، هنگامی که روی درست تنظیم شود، مکانیزمی از ctypes را فعال می‌کند که اجازه می‌دهد به شماره خطای :data:`errno` سیستمی به روشی امن دسترسی پیدا کنید. ماژول :mod:`!ctypes` یک کپی نخ‌محلی از متغیر :data:`errno` سیستم را نگهداری می‌کند؛ اگر توابع خارجی ایجادشده با ``use_errno=True`` را فراخوانی کنید، آنگاه مقدار :data:`errno` قبل از فراخوانی تابع با کپی خصوصی ctypes جابه‌جا می‌شود، و همین اتفاق بلافاصله پس از فراخوانی تابع نیز می‌افتد. این مکانیزم فقط برای کتابخانه‌هایی کار می‌کند که از همان کتابخانه‌ی زمان اجرای C (C runtime) خود مفسر استفاده می‌کنند. کتابخانه‌ای که به یک زمان اجرای C متفاوت (مثلاً یک CRT متفاوت در ویندوز) لینک شده باشد، :data:`errno` مخصوص به خود را دارد که :mod:`!ctypes` نمی‌تواند آن را مشاهده کند." msgid "The function :func:`ctypes.get_errno` returns the value of the ctypes private copy, and the function :func:`ctypes.set_errno` changes the ctypes private copy to a new value and returns the former value." msgstr "تابع :func:`ctypes.get_errno` مقدار نسخه خصوصی ctypes را برمی‌گرداند، و تابع :func:`ctypes.set_errno` نسخه خصوصی ctypes را به یک مقدار جدید تغییر می‌دهد و مقدار پیشین را برمی‌گرداند." @@ -2353,10 +2341,8 @@ msgstr "برای دسترسی مستقیم به API پایتون C، یک شیء msgid "An instance of :class:`PyDLL` that exposes Python C API functions as attributes. Note that all these functions are assumed to return C :c:expr:`int`, which is of course not always the truth, so you have to assign the correct :attr:`!restype` attribute to use these functions." msgstr "نمونه‌ای از :class:`PyDLL` که توابع Python C API را به‌عنوان ویژگی‌ها در دسترس قرار می‌دهد. توجه داشته باشید که فرض می‌شود همه‌ی این توابع مقداری از نوع C :c:expr:`int` را برمی‌گردانند، که البته همیشه درست نیست، بنابراین برای استفاده از این توابع باید ویژگی :attr:`!restype` صحیح را اختصاص دهید." -#, fuzzy -#| msgid "Note that if the Python interpreter is statically linked, this will be ``None``, as ``dlopen`` is not possible in this case." msgid "If the Python interpreter is statically linked, this may be ``None``." -msgstr "توجه داشته باشید که اگر مفسر پایتون به‌صورت ایستا پیوند شده باشد، این مقدار ``None`` خواهد بود، زیرا در این حالت ``dlopen`` ممکن نیست." +msgstr "اگر مفسر پایتون به‌صورت ایستا پیوند داده شده باشد، این مقدار ممکن است ``None`` باشد." msgid "Loading a library through any of these objects raises an :ref:`auditing event ` ``ctypes.dlopen`` with string argument ``name``, the name used to load the library." msgstr "بارگذاری یک کتابخانه از طریق هر یک از این اشیاء، یک :ref:`رویداد حسابرسی ` ``ctypes.dlopen`` را با آرگومان رشته‌ای ``name``، نام استفاده‌شده برای بارگذاری کتابخانه، پرتاب می‌کند." @@ -2406,10 +2392,8 @@ msgstr "برای مشخص کردن نوع نتیجه تابع خارجی، یک msgid "It is possible to assign a callable Python object that is not a ctypes type, in this case the function is assumed to return a C :c:expr:`int`, and the callable will be called with this integer, allowing further processing or error checking. Using this is deprecated, for more flexible post processing or error checking use a ctypes data type as :attr:`!restype` and assign a callable to the :attr:`errcheck` attribute." msgstr "می‌توان یک شیء پایتونی فراخوانی‌پذیر را که یک نوع ctypes نیست، انتساب داد؛ در این صورت فرض می‌شود که تابع یک :c:expr:`int` در C را برمی‌گرداند و شیء فراخوانی‌پذیر با این عدد صحیح فراخوانی می‌شود تا امکان پردازش بیشتر یا بررسی خطا فراهم شود. استفاده از این روش منسوخ است؛ برای پس‌پردازش یا بررسی خطای انعطاف‌پذیرتر، از یک نوع داده ctypes به‌عنوان :attr:`!restype` استفاده کنید و یک شیء فراخوانی‌پذیر را به ویژگی :attr:`errcheck` انتساب دهید." -#, fuzzy -#| msgid "Assign a tuple of ctypes types to specify the argument types that the function accepts. Functions using the ``stdcall`` calling convention can only be called with the same number of arguments as the length of this tuple; functions using the C calling convention accept additional, unspecified arguments as well." msgid "Assign a tuple of ctypes types to specify the argument types that the function accepts. :exc:`TypeError` is raised if the function is called with fewer arguments than the length of this tuple. Functions using the ``stdcall`` calling convention also raise :exc:`TypeError` if called with more arguments; functions using the ``cdecl`` calling convention accept additional, unspecified arguments as well." -msgstr "برای مشخص کردن انواع آرگومان‌هایی که تابع می‌پذیرد، یک تاپل از انواع ctypes را اختصاص دهید. توابعی که از قرارداد فراخوانی ``stdcall`` استفاده می‌کنند، فقط می‌توانند با همان تعداد آرگومانی که برابر با طول این تاپل است، فراخوانی شوند؛ توابعی که از قرارداد فراخوانی C استفاده می‌کنند، آرگومان‌های اضافی و مشخص‌نشده را نیز می‌پذیرند." +msgstr "یک تاپل از انواع داده‌ی ctypes را اختصاص دهید تا انواع آرگومان‌هایی که تابع می‌پذیرد مشخص شوند. اگر تابع با آرگومان‌های کمتری نسبت به طول این تاپل فراخوانی شود، استثنای :exc:`TypeError` بالا آورده می‌شود. توابعی که از قرارداد فراخوانی ``stdcall`` استفاده می‌کنند نیز اگر با آرگومان‌های بیشتری فراخوانی شوند استثنای :exc:`TypeError` را بالا می‌آورند؛ توابعی که از قرارداد فراخوانی ``cdecl`` استفاده می‌کنند، آرگومان‌های اضافی و مشخص‌نشده را نیز می‌پذیرند." msgid "When a foreign function is called, each actual argument is passed to the :meth:`~_CData.from_param` class method of the items in the :attr:`argtypes` tuple, this method allows adapting the actual argument to an object that the foreign function accepts. For example, a :class:`c_char_p` item in the :attr:`argtypes` tuple will convert a string passed as argument into a bytes object using ctypes conversion rules." msgstr "هنگامی که یک تابع خارجی فراخوانی می‌شود، هر آرگومان واقعی به متد کلاس :meth:`~_CData.from_param` آیتم‌های موجود در تاپل :attr:`argtypes` ارسال می‌شود؛ این متد امکان سازگار کردن آرگومان واقعی با شیءای را فراهم می‌کند که تابع خارجی می‌پذیرد. برای مثال، یک آیتم :class:`c_char_p` در تاپل :attr:`argtypes`، رشته‌ای را که به‌عنوان آرگومان ارسال‌شده است، با استفاده از قوانین تبدیل ctypes به یک شیء bytes تبدیل می‌کند." @@ -2426,47 +2410,35 @@ msgstr "*result* چیزی است که تابع خارجی برمی‌گردان msgid "*func* is the foreign function object itself, this allows reusing the same callable object to check or post process the results of several functions." msgstr "*func* خودِ شیء تابع خارجی است، این امکان را می‌دهد که از همان شیء فراخوانی‌پذیر برای بررسی یا پس‌پردازش نتایج چندین تابع مجدداً استفاده شود." -#, fuzzy -#| msgid "*arguments* is a tuple containing the parameters originally passed to the function call, this allows specializing the behavior on the arguments used." msgid "*arguments* is a tuple containing the parameters passed to the function call, including any output parameters that :mod:`!ctypes` created for the call; this allows specializing the behavior on the arguments used." -msgstr "*arguments* یک تاپل حاوی پارامترهایی است که در ابتدا به فراخوانی تابع ارسال‌شده‌اند؛ این امر امکان ویژه‌سازی رفتار بر اساس آرگومان‌های استفاده‌شده را فراهم می‌کند." +msgstr "پارامتر *arguments* یک تاپل است که شامل پارامترهای ارسال‌شده به فراخوانی تابع، از جمله هر پارامتر خروجی که :mod:`!ctypes` برای فراخوانی ایجاد کرده است، می‌شود؛ این امکان را فراهم می‌کند تا رفتار تابع روی آرگومان‌های استفاده‌شده تخصصی شود." msgid "If the callable returns the *arguments* tuple it received, unchanged, :mod:`!ctypes` continues its normal processing of the result, which includes returning output parameters (see :ref:`ctypes-function-prototypes`). Any other object returned by the callable is returned from the foreign function call instead. The callable can also check the result value and raise an exception if the foreign function call failed." -msgstr "" +msgstr "اگر شیء فراخوانی‌پذیر همان تاپل *arguments* دریافتی را بدون تغییر برگرداند، :mod:`!ctypes` پردازش عادی نتیجه‌ی خود را ادامه می‌دهد، که شامل بازگرداندن پارامترهای خروجی است (به :ref:`ctypes-function-prototypes` مراجعه کنید). هر شیء دیگری که توسط شیء فراخوانی‌پذیر برگردانده شود، به جای فراخوانی تابع خارجی بازگردانده می‌شود. شیء فراخوانی‌پذیر همچنین می‌تواند مقدار نتیجه را بررسی کرده و در صورت ناموفق بودن فراخوانی تابع خارجی، یک استثنا بالا بیاورد." msgid "For example, this callable raises an exception when the foreign function signals failure with a negative return value, and otherwise leaves the result to :mod:`!ctypes`::" -msgstr "" +msgstr "برای مثال، این شیء فراخوانی‌پذیر زمانی که تابع خارجی با یک مقدار بازگشتی منفی سیگنال شکست می‌دهد، یک استثنا بالا می‌آورد و در غیر این صورت نتیجه را به :mod:`!ctypes` واگذار می‌کند:" -#, fuzzy -#| msgid "" -#| ">>> def errcheck(result, func, args):\n" -#| "... if not result:\n" -#| "... raise WinError()\n" -#| "... return args\n" -#| "...\n" -#| ">>> GetWindowRect.errcheck = errcheck\n" -#| ">>>" msgid "" "def errcheck(result, func, arguments):\n" " if result < 0:\n" " raise RuntimeError(f\"call failed with error {result}\")\n" " return arguments" msgstr "" -">>> def errcheck(result, func, args):\n" -"... if not result:\n" -"... raise WinError()\n" -"... return args\n" -"...\n" -">>> GetWindowRect.errcheck = errcheck\n" -">>>" +"def errcheck(result, func, arguments):\n" +" if result < 0:\n" +" raise RuntimeError(f\"call failed with error {result}\")\n" +" return arguments" msgid "This one instead replaces the result, converting a C ``int`` used as a boolean into a :class:`bool`::" -msgstr "" +msgstr "این مورد به جای آن، نتیجه را جایگزین می‌کند و یک ``int`` زبان C را که به عنوان مقدار بولی استفاده شده است، به یک :class:`bool` تبدیل می‌کند:" msgid "" "def errcheck(result, func, arguments):\n" " return result != 0" msgstr "" +"def errcheck(result, func, arguments):\n" +" return result != 0" msgid "On Windows, when a foreign function call raises a system exception (for example, due to an access violation), it will be captured and replaced with a suitable Python exception. Further, an auditing event ``ctypes.set_exception`` with argument ``code`` will be raised, allowing an audit hook to replace the exception with its own." msgstr "در ویندوز، هنگامی که یک فراخوانی تابع خارجی یک استثنای سیستمی را پرتاب می‌کند (برای مثال، به‌دلیل نقض دسترسی)، آن استثنا گرفته می‌شود و با یک استثنای پایتون مناسب جایگزین می‌گردد. علاوه بر این، یک رویداد حسابرسی ``ctypes.set_exception`` با آرگومان ``code`` پرتاب می‌شود که به یک قلاب حسابرسی اجازه می‌دهد استثنا را با استثنای خود جایگزین کند." @@ -2487,7 +2459,7 @@ msgid "The returned function prototype creates functions that use the ``stdcall` msgstr "پیش‌نمونه تابع برگشتی، توابعی را ایجاد می‌کند که از قرارداد فراخوانی ``stdcall`` استفاده می‌کنند. تابع در حین فراخوانی، GIL را آزاد خواهد کرد. *use_errno* و *use_last_error* همان معنای بالا را دارند." msgid "The returned function prototype creates functions that use the Python calling convention. Unlike :func:`CFUNCTYPE` and :func:`WINFUNCTYPE`, ctypes does *not* release the GIL before calling the foreign function, so the function may safely use the Python C API. Note that this does not prevent the GIL from being released *during* the call." -msgstr "" +msgstr "پیش‌نمونه‌ی تابع بازگردانده‌شده توابعی را ایجاد می‌کند که از قرارداد فراخوانی پایتون استفاده می‌کنند. برخلاف :func:`CFUNCTYPE` و :func:`WINFUNCTYPE`، کتابخانه‌ی ctypes پیش از فراخوانی تابع خارجی، GIL را آزاد *نمی‌کند*، بنابراین تابع ممکن است با خیال راحت از API زبان C پایتون استفاده کند. توجه داشته باشید که این موضوع مانع از آزاد شدن GIL *در حین* فراخوانی نمی‌شود." msgid "Function prototypes created by these factory functions can be instantiated in different ways, depending on the type and number of the parameters in the call:" msgstr "می‌توان پیش‌نمونه‌های تابع ایجادشده توسط این توابع کارخانه‌ای را به روش‌های مختلف نمونه‌سازی کرد، بسته به نوع و تعداد پارامترها در فراخوانی:" @@ -3062,21 +3034,17 @@ msgstr "نشان‌دهنده‌ی نوع داده‌ی :c:expr:`PyObject *` د msgid ":class:`!py_object` is now a :term:`generic type`." msgstr ":class:`!py_object` اکنون یک :term:`generic type` است." -#, fuzzy -#| msgid "Fundamental data types" msgid "Windows data types" -msgstr "انواع داده بنیادی" +msgstr "انواع داده‌های ویندوز" -#, fuzzy -#| msgid "**Source code:** :source:`Lib/ctypes`" msgid "**Source code:** :source:`Lib/ctypes/wintypes.py`" -msgstr "**کد منبع:** :source:`Lib/ctypes`" +msgstr "**Source code:** :source:`Lib/ctypes/wintypes.py`" msgid "The :mod:`!ctypes.wintypes` module provides types for use with Windows APIs. Most are aliases for types defined in :mod:`ctypes`. See Microsoft's `Windows data types `_ documentation for the corresponding C definitions. On non-Windows platforms, the sizes and layouts of these types may differ from their Windows counterparts." -msgstr "" +msgstr "ماژول :mod:`!ctypes.wintypes` انواعی را برای استفاده با APIهای ویندوز فراهم می‌کند. بیشتر آن‌ها نام‌های مستعاری برای انواع تعریف‌شده در :mod:`ctypes` هستند. برای تعاریف متناظر C، به مستندات مایکروسافت `Windows data types `_ مراجعه کنید. در پلتفرم‌های غیر ویندوزی، اندازه‌ها و طرح‌بندی‌های این انواع ممکن است با همتایان ویندوزی خود متفاوت باشد." msgid "Added :class:`HCONV`, :class:`HCONVLIST`, :class:`HCURSOR`, :class:`HDDEDATA`, :class:`HDROP`, :class:`HFILE`, :class:`HRESULT`, and :class:`HSZ`." -msgstr "" +msgstr "اضافه شدن :class:`HCONV`، :class:`HCONVLIST`، :class:`HCURSOR`، :class:`HDDEDATA`، :class:`HDROP`، :class:`HFILE`، :class:`HRESULT` و :class:`HSZ`." msgid "" ">>> from ctypes import POINTER\n" @@ -3089,405 +3057,309 @@ msgid "" ">>> LPRECT is POINTER(RECT)\n" "True" msgstr "" +">>> from ctypes import POINTER\n" +">>> from ctypes.wintypes import LPRECT, RECT, SHORT\n" +">>> SHORT(-1).value\n" +"-1\n" +">>> rect = RECT(0, 0, 100, 50)\n" +">>> rect.right, rect.bottom\n" +"(100, 50)\n" +">>> LPRECT is POINTER(RECT)\n" +"True" -#, fuzzy -#| msgid "Incomplete Types" msgid "Simple types" -msgstr "انواع ناقص" +msgstr "انواع ساده" -#, fuzzy -#| msgid "These are the fundamental ctypes data types:" msgid "The following names are aliases for fundamental :mod:`ctypes` types:" -msgstr "این‌ها انواع داده‌ی بنیادی ctypes هستند:" +msgstr "نام‌های زیر نام‌های مستعاری برای انواع بنیادی :mod:`ctypes` هستند:" msgid "Windows types" -msgstr "" +msgstr "انواع ویندوز" -#, fuzzy -#| msgid "ctypes type" msgid ":mod:`ctypes` type" -msgstr "نوع ctypes" +msgstr "نوع :mod:`ctypes`" -#, fuzzy -#| msgid ":class:`c_ubyte`" msgid ":class:`~ctypes.c_ubyte`" -msgstr ":class:`c_ubyte`" +msgstr ":class:`~ctypes.c_ubyte`" -#, fuzzy -#| msgid ":class:`c_char`" msgid ":class:`~ctypes.c_char`" -msgstr ":class:`c_char`" +msgstr ":class:`~ctypes.c_char`" -#, fuzzy -#| msgid ":class:`c_wchar`" msgid ":class:`~ctypes.c_wchar`" -msgstr ":class:`c_wchar`" +msgstr ":class:`~ctypes.c_wchar`" -#, fuzzy -#| msgid ":class:`c_ushort`" msgid ":class:`~ctypes.c_ushort`" -msgstr ":class:`c_ushort`" +msgstr ":class:`~ctypes.c_ushort`" -#, fuzzy -#| msgid ":class:`c_ulong`" msgid ":class:`~ctypes.c_ulong`" -msgstr ":class:`c_ulong`" +msgstr ":class:`~ctypes.c_ulong`" -#, fuzzy -#| msgid ":class:`c_long`" msgid ":class:`~ctypes.c_long`" -msgstr ":class:`c_long`" +msgstr ":class:`~ctypes.c_long`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`~ctypes.c_int`" -msgstr ":class:`c_int`" +msgstr ":class:`~ctypes.c_int`" -#, fuzzy -#| msgid ":class:`c_uint`" msgid ":class:`~ctypes.c_uint`" -msgstr ":class:`c_uint`" +msgstr ":class:`~ctypes.c_uint`" -#, fuzzy -#| msgid ":class:`c_short`" msgid ":class:`~ctypes.c_short`" -msgstr ":class:`c_short`" +msgstr ":class:`~ctypes.c_short`" -#, fuzzy -#| msgid ":class:`c_double`" msgid ":class:`~ctypes.c_double`" -msgstr ":class:`c_double`" +msgstr ":class:`~ctypes.c_double`" -#, fuzzy -#| msgid ":class:`c_float`" msgid ":class:`~ctypes.c_float`" -msgstr ":class:`c_float`" +msgstr ":class:`~ctypes.c_float`" -#, fuzzy -#| msgid ":class:`c_longlong`" msgid ":class:`~ctypes.c_longlong`" -msgstr ":class:`c_longlong`" +msgstr ":class:`~ctypes.c_longlong`" -#, fuzzy -#| msgid ":class:`c_ulonglong`" msgid ":class:`~ctypes.c_ulonglong`" -msgstr ":class:`c_ulonglong`" +msgstr ":class:`~ctypes.c_ulonglong`" -#, fuzzy -#| msgid ":class:`c_char_p`" msgid ":class:`~ctypes.c_char_p`" -msgstr ":class:`c_char_p`" +msgstr ":class:`~ctypes.c_char_p`" -#, fuzzy -#| msgid ":class:`c_wchar_p`" msgid ":class:`~ctypes.c_wchar_p`" -msgstr ":class:`c_wchar_p`" +msgstr ":class:`~ctypes.c_wchar_p`" -#, fuzzy -#| msgid ":class:`c_void_p`" msgid ":class:`~ctypes.c_void_p`" -msgstr ":class:`c_void_p`" +msgstr ":class:`~ctypes.c_void_p`" msgid ":class:`LARGE_INTEGER` and :class:`ULARGE_INTEGER` expose an integer :attr:`!value` attribute, with no ``LowPart``, ``HighPart``, or ``QuadPart`` fields." -msgstr "" +msgstr "کلاس‌های :class:`LARGE_INTEGER` و :class:`ULARGE_INTEGER` یک ویژگی :attr:`!value` از نوع عدد صحیح را بدون فیلدهای ``LowPart``، ``HighPart`` یا ``QuadPart`` نمایش می‌دهند." msgid "An unsigned integer type with the same size as :class:`~ctypes.c_void_p`." -msgstr "" +msgstr "یک نوع داده‌ی عدد صحیح بدون علامت با اندازه‌ای یکسان با :class:`~ctypes.c_void_p`." msgid "A signed integer type with the same size as :class:`~ctypes.c_void_p`." -msgstr "" +msgstr "یک نوع داده‌ی عدد صحیح علامت‌دار با اندازه‌ای یکسان با :class:`~ctypes.c_void_p`." msgid "A 16-bit Boolean type whose :attr:`!value` attribute is a Python :class:`bool`. Assigning to :attr:`!value` stores ``-1`` for a true value and ``0`` for a false value." -msgstr "" +msgstr "یک نوع داده‌ی بولی ۱۶ بیتی که ویژگی :attr:`!value` آن یک :class:`bool` در پایتون است. انتساب به :attr:`!value` مقدار ``-1`` را برای مقدار درست و ``0`` را برای مقدار نادرست ذخیره می‌کند." -#, fuzzy -#| msgid "Data types" msgid "Handle types" -msgstr "انواع داده" +msgstr "انواع دسته‌ها" msgid "An alias for :class:`~ctypes.c_void_p`, used to represent Windows handles." -msgstr "" +msgstr "یک نام مستعار برای :class:`~ctypes.c_void_p` که برای نمایش دسته‌های ویندوز استفاده می‌شود." msgid "Aliases for :class:`HANDLE` for use with specific Windows APIs. :class:`HFILE` is an alias for :class:`INT` and is listed among the simple types above." -msgstr "" +msgstr "نام‌های مستعاری برای :class:`HANDLE` جهت استفاده با APIهای خاص ویندوز. :class:`HFILE` نام مستعاری برای :class:`INT` است و در میان انواع ساده‌ی بالا فهرست شده است." -#, fuzzy -#| msgid "Structures and unions" msgid "Structures" -msgstr "ساختارها و اجتماع‌ها (unions)" +msgstr "ساختارها" msgid "The following types are subclasses of :class:`ctypes.Structure`." -msgstr "" +msgstr "انواع داده‌ی زیر زیرکلاس‌هایی از :class:`ctypes.Structure` هستند." msgid "A rectangle with ``left``, ``top``, ``right``, and ``bottom`` fields, all of type :class:`LONG`." -msgstr "" +msgstr "یک مستطیل با فیلدهای ``left``، ``top``، ``right`` و ``bottom`` که همگی از نوع داده‌ی :class:`LONG` هستند." msgid "A rectangle with ``Left``, ``Top``, ``Right``, and ``Bottom`` fields, all of type :class:`SHORT`." -msgstr "" +msgstr "یک مستطیل با فیلدهای ``Left``، ``Top``، ``Right`` و ``Bottom`` که همگی از نوع داده‌ی :class:`SHORT` هستند." msgid "A point with ``x`` and ``y`` fields, both of type :class:`LONG`." -msgstr "" +msgstr "یک نقطه با فیلدهای ``x`` و ``y`` که هر دو از نوع داده‌ی :class:`LONG` هستند." msgid "Dimensions with ``cx`` and ``cy`` fields, both of type :class:`LONG`." -msgstr "" +msgstr "ابعاد با فیلدهای ``cx`` و ``cy`` که هر دو از نوع داده‌ی :class:`LONG` هستند." msgid "A file time with ``dwLowDateTime`` and ``dwHighDateTime`` fields, both of type :class:`DWORD`." -msgstr "" +msgstr "یک زمان پرونده با فیلدهای ``dwLowDateTime`` و ``dwHighDateTime`` که هر دو از نوع داده‌ی :class:`DWORD` هستند." msgid "A Windows message with the following fields:" -msgstr "" +msgstr "یک پیام ویندوز با فیلدهای زیر:" msgid "Field" -msgstr "" +msgstr "فیلد" msgid "Type" -msgstr "" +msgstr "نوع داده" msgid "``hWnd``" -msgstr "" +msgstr "``hWnd``" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`HWND`" -msgstr ":class:`c_int`" +msgstr ":class:`HWND`" msgid "``message``" -msgstr "" +msgstr "``message``" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`UINT`" -msgstr ":class:`c_int`" +msgstr ":class:`UINT`" msgid "``wParam``" -msgstr "" +msgstr "``wParam``" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`WPARAM`" -msgstr ":class:`c_int`" +msgstr ":class:`WPARAM`" msgid "``lParam``" -msgstr "" +msgstr "``lParam``" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`LPARAM`" -msgstr ":class:`c_int`" +msgstr ":class:`LPARAM`" msgid "``time``" -msgstr "" +msgstr "``time``" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`DWORD`" -msgstr ":class:`c_int`" +msgstr ":class:`DWORD`" msgid "``pt``" -msgstr "" +msgstr "``pt``" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`POINT`" -msgstr ":class:`c_int`" +msgstr ":class:`POINT`" msgid "Structures used by Windows file-search functions, with the following fields. :class:`WIN32_FIND_DATAA` uses :class:`CHAR` for its file names, and :class:`WIN32_FIND_DATAW` uses :class:`WCHAR`." -msgstr "" +msgstr "ساختارهای مورد استفاده توسط توابع جستجوی پرونده‌ی ویندوز، با فیلدهای زیر. کلاس :class:`WIN32_FIND_DATAA` برای نام‌های پرونده‌ی خود از :class:`CHAR` استفاده می‌کند و کلاس :class:`WIN32_FIND_DATAW` از :class:`WCHAR` بهره می‌برد." msgid "Fields" -msgstr "" +msgstr "فیلدها" msgid "``dwFileAttributes``" -msgstr "" +msgstr "``dwFileAttributes``" msgid "``ftCreationTime``, ``ftLastAccessTime``, ``ftLastWriteTime``" -msgstr "" +msgstr "``ftCreationTime``, ``ftLastAccessTime``, ``ftLastWriteTime``" msgid ":class:`FILETIME`" -msgstr "" +msgstr ":class:`FILETIME`" msgid "``nFileSizeHigh``, ``nFileSizeLow``" -msgstr "" +msgstr "``nFileSizeHigh``, ``nFileSizeLow``" msgid "``dwReserved0``, ``dwReserved1``" -msgstr "" +msgstr "``dwReserved0``, ``dwReserved1``" msgid "``cFileName``" -msgstr "" +msgstr "``cFileName``" msgid "An array of :data:`MAX_PATH` characters" -msgstr "" +msgstr "آرایه‌ای از نویسه‌های :data:`MAX_PATH`" msgid "``cAlternateFileName``" -msgstr "" +msgstr "``cAlternateFileName``" msgid "An array of 14 characters" -msgstr "" +msgstr "آرایه‌ای از ۱۴ نویسه" -#, fuzzy -#| msgid "Pointers" msgid "Pointer types" -msgstr "اشاره‌گرها" +msgstr "انواع اشاره‌گر" msgid "The following names are aliases for ``ctypes.POINTER(T)``, where *T* is the type in the second column:" -msgstr "" +msgstr "نام‌های زیر نام‌های مستعاری برای ``ctypes.POINTER(T)`` هستند که در آن *T* نوع در ستون دوم است:" -#, fuzzy -#| msgid "Return types" msgid "Referenced type" -msgstr "انواع بازگشتی" +msgstr "نوع ارجاع‌داده‌شده" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`BOOL`" -msgstr ":class:`c_int`" +msgstr ":class:`BOOL`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`BOOLEAN`" -msgstr ":class:`c_int`" +msgstr ":class:`BOOLEAN`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`BYTE`" -msgstr ":class:`c_int`" +msgstr ":class:`BYTE`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`CHAR`" -msgstr ":class:`c_int`" +msgstr ":class:`CHAR`" msgid ":class:`COLORREF`" -msgstr "" +msgstr ":class:`COLORREF`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`FLOAT`" -msgstr ":class:`c_int`" +msgstr ":class:`FLOAT`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`HANDLE`" -msgstr ":class:`c_int`" +msgstr ":class:`HANDLE`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`HKEY`" -msgstr ":class:`c_int`" +msgstr ":class:`HKEY`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`HKL`" -msgstr ":class:`c_int`" +msgstr ":class:`HKL`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`INT`" -msgstr ":class:`c_int`" +msgstr ":class:`INT`" msgid ":class:`LARGE_INTEGER`" -msgstr "" +msgstr ":class:`LARGE_INTEGER`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`LCID`" -msgstr ":class:`c_int`" +msgstr ":class:`LCID`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`LONG`" -msgstr ":class:`c_int`" +msgstr ":class:`LONG`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`MSG`" -msgstr ":class:`c_int`" +msgstr ":class:`MSG`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`POINTL`" -msgstr ":class:`c_int`" +msgstr ":class:`POINTL`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`RECT`" -msgstr ":class:`c_int`" +msgstr ":class:`RECT`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`RECTL`" -msgstr ":class:`c_int`" +msgstr ":class:`RECTL`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`SC_HANDLE`" -msgstr ":class:`c_int`" +msgstr ":class:`SC_HANDLE`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`SHORT`" -msgstr ":class:`c_int`" +msgstr ":class:`SHORT`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`SIZE`" -msgstr ":class:`c_int`" +msgstr ":class:`SIZE`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`SIZEL`" -msgstr ":class:`c_int`" +msgstr ":class:`SIZEL`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`SMALL_RECT`" -msgstr ":class:`c_int`" +msgstr ":class:`SMALL_RECT`" msgid ":class:`ULARGE_INTEGER`" -msgstr "" +msgstr ":class:`ULARGE_INTEGER`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`ULONG`" -msgstr ":class:`c_int`" +msgstr ":class:`ULONG`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`USHORT`" -msgstr ":class:`c_int`" +msgstr ":class:`USHORT`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`WCHAR`" -msgstr ":class:`c_int`" +msgstr ":class:`WCHAR`" msgid ":class:`WIN32_FIND_DATAA`" -msgstr "" +msgstr ":class:`WIN32_FIND_DATAA`" msgid ":class:`WIN32_FIND_DATAW`" -msgstr "" +msgstr ":class:`WIN32_FIND_DATAW`" -#, fuzzy -#| msgid ":class:`c_int`" msgid ":class:`WORD`" -msgstr ":class:`c_int`" +msgstr ":class:`WORD`" -#, fuzzy -#| msgid "Calling variadic functions" msgid "Constants and functions" -msgstr "فراخوانی توابع چندآرگومانی (variadic functions)" +msgstr "ثابت‌ها و توابع" msgid "The value ``260``, used as the size of the file-name arrays in :class:`WIN32_FIND_DATAA` and :class:`WIN32_FIND_DATAW`." -msgstr "" +msgstr "مقدار ``260`` که به‌عنوان اندازه آرایه‌های نام پرونده در :class:`WIN32_FIND_DATAA` و :class:`WIN32_FIND_DATAW` استفاده می‌شود." msgid "Return a :class:`COLORREF` value as a Python integer. The *red*, *green*, and *blue* arguments are integers from ``0`` to ``255``, specifying the intensity of each color component::" -msgstr "" +msgstr "یک مقدار :class:`COLORREF` را به‌عنوان یک عدد صحیح پایتون برمی‌گرداند. آرگومان‌های *red*، *green* و *blue* اعداد صحیحی از ``0`` تا ``255`` هستند که میزان شدت هر جزء رنگ را مشخص می‌کنند::" msgid "" ">>> from ctypes.wintypes import RGB\n" ">>> hex(RGB(255, 128, 0))\n" "'0x80ff'" msgstr "" +">>> from ctypes.wintypes import RGB\n" +">>> hex(RGB(255, 128, 0))\n" +"'0x80ff'" msgid "Structured data types" msgstr "انواع داده ساختاریافته" diff --git a/library/curses.po b/library/curses.po index 38822a82a..c5d640108 100644 --- a/library/curses.po +++ b/library/curses.po @@ -190,10 +190,8 @@ msgstr "اگر پایانه قابلیت‌های درج و حذف خط را د msgid "Take a key value *ch*, and return ``True`` if the current terminal type recognizes a key with that value." msgstr "مقدار کلید *ch* را می‌گیرد و اگر نوع پایانه‌ی جاری کلیدی با آن مقدار را بشناسد، ``True`` را برمی‌گرداند." -#, fuzzy -#| msgid "Used for half-delay mode, which is similar to cbreak mode in that characters typed by the user are immediately available to the program. However, after blocking for *tenths* tenths of seconds, raise an exception if nothing has been typed. The value of *tenths* must be a number between ``1`` and ``255``. Use :func:`nocbreak` to leave half-delay mode." msgid "Used for half-delay mode, which is similar to cbreak mode in that characters typed by the user are immediately available to the program. However, after blocking for *tenths* tenths of seconds, if nothing has been typed, :meth:`~window.getch` returns ``-1``, while :meth:`~window.getkey` and :meth:`~window.get_wch` raise :exc:`curses.error`. The value of *tenths* must be a number between ``1`` and ``255``. Use :func:`nocbreak` to leave half-delay mode." -msgstr "برای حالت نیمه‌تأخیر (half-delay) استفاده می‌شود؛ این حالت شبیه حالت cbreak است، بدین معنا که نویسه‌های تایپ‌شده توسط کاربر بلافاصله در دسترس برنامه قرار می‌گیرند. با این حال، پس از مسدود شدن به مدت *tenths* دهم ثانیه، اگر چیزی تایپ نشده باشد، یک استثنا پرتاب می‌شود. مقدار *tenths* باید عددی بین ``1`` و ``255`` باشد. برای خروج از حالت نیمه‌تأخیر از :func:`nocbreak` استفاده کنید." +msgstr "برای حالت تاخیر نیمه استفاده می‌شود که شبیه به حالت cbreak است؛ به این صورت که نویسه‌های تایپ‌شده توسط کاربر بلافاصله برای برنامه در دسترس هستند. با وجود این، پس از مسدود شدن به مدت *tenths* دهم ثانیه، اگر چیزی تایپ نشده باشد، :meth:`~window.getch` مقدار ``-1`` را برمی‌گرداند، در حالی که :meth:`~window.getkey` و :meth:`~window.get_wch` استثنای :exc:`curses.error` را بالا می‌آورند. مقدار *tenths* باید عددی بین ``1`` و ``255`` باشد. برای خروج از حالت تاخیر نیمه از :func:`nocbreak` استفاده کنید." msgid "Change the definition of a color, taking the number of the color to be changed followed by three RGB values (for the amounts of red, green, and blue components). The value of *color_number* must be between ``0`` and ``COLORS - 1``. Each of *r*, *g*, *b*, must be a value between ``0`` and ``1000``. When :func:`init_color` is used, all occurrences of that color on the screen immediately change to the new definition. This function is a no-op on most terminals; it is active only if :func:`can_change_color` returns ``True``." msgstr "تعریف یک رنگ را تغییر می‌دهد؛ شماره رنگی که باید تغییر کند و سپس سه مقدار RGB (برای میزان کامپوننت‌های قرمز، سبز و آبی) را دریافت می‌کند. مقدار *color_number* باید بین ``0`` و ``COLORS - 1`` باشد. هر یک از *r*، *g* و *b* باید مقداری بین ``0`` و ``1000`` باشد. هنگامی که از :func:`init_color` استفاده شود، تمام موارد آن رنگ روی صفحه بلافاصله به تعریف جدید تغییر می‌کنند. این تابع در بیشتر پایانه‌ها هیچ عملیاتی انجام نمی‌دهد؛ تنها زمانی فعال است که :func:`can_change_color` مقدار ``True`` را برگرداند." @@ -346,7 +344,7 @@ msgid "Return a logical OR of all video attributes supported by the terminal. T msgstr "یک OR منطقی از تمام ویژگی‌های ویدیویی مورد پشتیبانی پایانه را برمی‌گرداند. این اطلاعات زمانی مفید است که یک برنامه curses به کنترل کامل بر ظاهر صفحه نیاز داشته باشد." msgid "Return the name of the terminal in use, as a bytes object. This is the name passed to :func:`setupterm`, or the value of the :envvar:`TERM` environment variable if none was given. Some curses libraries truncate it to 14 characters." -msgstr "" +msgstr "نام ترمینال در حال استفاده را به‌عنوان یک شیء bytes برمی‌گرداند. این نامی است که به :func:`setupterm` فرستاده شده است، یا اگر چیزی داده نشده باشد، مقدار متغیر محیطی :envvar:`TERM` است. برخی کتابخانه‌های curses آن را به ۱۴ نویسه تقلیل می‌دهند." msgid "Return the value of the Boolean capability corresponding to the terminfo capability name *capname* as an integer. Return the value ``-1`` if *capname* is not a Boolean capability, or ``0`` if it is canceled or absent from the terminal description." msgstr "مقدار قابلیت بولی متناظر با نام قابلیت *capname* در terminfo را به‌صورت یک عدد صحیح برمی‌گرداند. اگر *capname* یک قابلیت بولی نباشد، مقدار ``-1`` و اگر لغو شده یا در توضیح پایانه وجود نداشته باشد، مقدار ``0`` را برمی‌گرداند." @@ -630,10 +628,8 @@ msgstr "اگر *flag* برابر ``True`` باشد، هر تغییری در تص msgid "Return the character at the given position in the window. The bottom 8 bits are the character proper and the upper bits are the attributes; extract them with the :data:`A_CHARTEXT` and :data:`A_ATTRIBUTES` bit-masks, and the color pair with :func:`pair_number`. The character byte is the locale-encoded byte of the cell's character, consistent with :meth:`instr`. On a wide-character build, a character that does not fit in a single byte in the current locale has a character byte of ``0``; use :meth:`instr` to read such characters." msgstr "نویسه را در موقعیت داده‌شده در پنجره برمی‌گرداند. ۸ بیت پایینی، خود نویسه است و بیت‌های بالایی، ویژگی‌ها هستند؛ آن‌ها را با نقاب‌های بیتی :data:`A_CHARTEXT` و :data:`A_ATTRIBUTES`، و جفت رنگ را با :func:`pair_number` استخراج کنید. بایت نویسه، بایت کدگذاری‌شده بر اساس تنظیمات locale برای نویسه‌ی سلول است و با :meth:`instr` سازگار است. در یک ساخت با نویسه‌های پهن (wide-character build)، نویسه‌ای که در تنظیمات locale فعلی در یک بایت جا نمی‌شود، بایت نویسه‌ی آن ``0`` است؛ برای خواندن چنین نویسه‌هایی از :meth:`instr` استفاده کنید." -#, fuzzy -#| msgid "Insert character *ch* with attributes *attr* before the character under the cursor, or at ``(y, x)`` if specified. All characters to the right of the cursor are shifted one position right, with the rightmost character on the line being lost. The cursor position does not change." msgid "Insert character *ch* with attributes *attr* before the character under the cursor, or at ``(y, x)`` if specified. All characters to the right of the cursor are shifted one position right, with the rightmost character on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." -msgstr "نویسه *ch* را با ویژگی‌های *attr* پیش از نویسه زیر مکان‌نما، یا در ``(y, x)`` در صورت مشخص بودن، درج می‌کند. تمام نویسه‌های سمت راست مکان‌نما یک موقعیت به راست جابه‌جا می‌شوند و راست‌ترین نویسه خط از بین می‌رود. موقعیت مکان‌نما تغییر نمی‌کند." +msgstr "نویسه *ch* را با ویژگی‌های *attr* پیش از نویسه زیر نشانگر، یا در صورت مشخص شدن در ``(y, x)`` درج می‌کند. تمام نویسه‌های سمت راست نشانگر یک موقعیت به سمت راست جابه‌جا می‌شوند و دورترین نویسه در سمت راست سطر از دست می‌رود. موقعیت نشانگر تغییر نمی‌کند (پس از انتقال به *y*، *x*، در صورت مشخص شدن)." msgid "Insert *nlines* lines into the specified window above the current line. The *nlines* bottom lines are lost. For negative *nlines*, delete *nlines* lines starting with the one under the cursor, and move the remaining lines up. The bottom *nlines* lines are cleared. The current cursor position remains the same." msgstr "*nlines* خط را در پنجره‌ی مشخص‌شده، بالای خط فعلی درج می‌کند. *nlines* خط پایینی از دست می‌روند. برای *nlines* منفی، *nlines* خط را شروع از خط زیر مکان‌نما حذف می‌کند و سطرهای باقی‌مانده را به بالا حرکت می‌دهد. *nlines* خط پایینی پاک می‌شوند. موقعیت فعلی مکان‌نما بدون تغییر باقی می‌ماند." @@ -641,10 +637,8 @@ msgstr "*nlines* خط را در پنجره‌ی مشخص‌شده، بالای msgid "Insert a blank line under the cursor. All following lines are moved down by one line." msgstr "یک خط خالی زیر مکان‌نما درج می‌کند. همه‌ی سطرهای بعدی یک خط به پایین جابه‌جا می‌شوند." -#, fuzzy -#| msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor, up to *n* characters. If *n* is zero or negative, the entire string is inserted. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor, up to *n* characters. If *n* is negative, the entire string is inserted. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." -msgstr "یک رشته از نویسه‌ها (هر تعداد نویسه که در خط جا شود) را پیش از نویسه‌ی زیر مکان‌نما، تا سقف *n* نویسه درج کنید. اگر *n* صفر یا منفی باشد، تمام رشته درج می‌شود. همه‌ی نویسه‌های سمت راست مکان‌نما به سمت راست جابه‌جا می‌شوند و راست‌ترین نویسه‌های خط از دست می‌روند. موقعیت مکان‌نما تغییر نمی‌کند (پس از حرکت به *y*، *x*، در صورت مشخص بودن)." +msgstr "یک رشته‌نویسه (به تعداد نویسه‌هایی که در سطر جا می‌شوند) را پیش از نویسه زیر نشانگر، تا *n* نویسه درج کنید. اگر *n* منفی باشد، کل رشته درج می‌شود. تمام نویسه‌های سمت راست نشانگر به سمت راست جابه‌جا می‌شوند و دورترین نویسه‌ها در سمت راست سطر از دست می‌روند. موقعیت نشانگر تغییر نمی‌کند (پس از انتقال به *y*، *x*، در صورت مشخص شدن)." msgid "Insert a character string (as many characters as will fit on the line) before the character under the cursor. All characters to the right of the cursor are shifted right, with the rightmost characters on the line being lost. The cursor position does not change (after moving to *y*, *x*, if specified)." msgstr "یک رشته‌ی نویسه‌ای (به تعداد نویسه‌هایی که در خط جا می‌شوند) پیش از نویسه‌ی زیر مکان‌نما درج می‌شود. همه‌ی نویسه‌های سمت راست مکان‌نما به سمت راست جابه‌جا می‌شوند و راست‌ترین نویسه‌های خط از دست می‌روند. موقعیت مکان‌نما تغییر نمی‌کند (پس از حرکت به *y*، *x*، در صورت مشخص بودن)." @@ -724,10 +718,8 @@ msgstr "این ۶ آرگومان فقط زمانی می‌توانند مشخص msgid "Reallocate storage for a curses window to adjust its dimensions to the specified values. If either dimension is larger than the current values, the window's data is filled with blanks that have the current background rendition (as set by :meth:`bkgdset`) merged into them." msgstr "فضای ذخیره‌سازی برای یک پنجره curses را دوباره تخصیص می‌دهد تا ابعاد آن با مقادیر مشخص‌شده تنظیم شود. اگر هر یک از ابعاد بزرگ‌تر از مقادیر فعلی باشد، داده‌های پنجره با نویسه‌های خالی پر می‌شوند که جلوه پس‌زمینه فعلی (که با :meth:`bkgdset` تنظیم شده است) در آن‌ها ادغام شده است." -#, fuzzy -#| msgid "Scroll the screen or scrolling region. Scroll upward by *lines* lines if *lines* is positive, or downward if it is negative. Scrolling has no effect unless it has been enabled for the window with :meth:`scrollok`." msgid "Scroll the screen or scrolling region. Scroll upward by *lines* lines if *lines* is positive, or downward if it is negative. Raise :exc:`curses.error` unless scrolling has been enabled for the window with :meth:`scrollok`." -msgstr "صفحه یا ناحیه‌ی پیمایش را پیمایش می‌کند. اگر *lines* مثبت باشد، به اندازه‌ی *lines* خط به بالا پیمایش می‌شود و اگر منفی باشد، به پایین پیمایش می‌شود. پیمایش هیچ اثری ندارد مگر اینکه با :meth:`scrollok` برای پنجره فعال شده باشد." +msgstr "صفحه نمایش یا ناحیه پیمایش را بپیمایید. اگر *lines* مثبت باشد، به اندازه *lines* سطر به سمت بالا و اگر منفی باشد به سمت پایین بپیمایید. استثنای :exc:`curses.error` را بالا بیاورید مگر اینکه پیمایش برای پنجره با :meth:`scrollok` فعال شده باشد." msgid "Control what happens when the cursor of a window is moved off the edge of the window or scrolling region, either as a result of a newline action on the bottom line, or typing the last character of the last line. If *flag* is ``False``, the cursor is left on the bottom line. If *flag* is ``True``, the window is scrolled up one line. Note that in order to get the physical scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." msgstr "کنترل کنید که وقتی مکان‌نمای یک پنجره از لبه‌ی پنجره یا ناحیه‌ی پیمایش خارج می‌شود، چه اتفاقی رخ می‌دهد؛ خواه در نتیجه‌ی یک عمل خط جدید روی خط پایین، خواه با تایپ آخرین نویسه‌ی خط آخر. اگر *flag* برابر ``False`` باشد، مکان‌نما روی خط پایین باقی می‌ماند. اگر *flag* برابر ``True`` باشد، پنجره یک خط به بالا پیمایش می‌شود. توجه داشته باشید که برای دریافت اثر پیمایش فیزیکی روی پایانه، لازم است :meth:`idlok` نیز فراخوانی شود." diff --git a/library/datetime.po b/library/datetime.po index 3bf201dc9..97a4bb10d 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -157,10 +157,10 @@ msgid "An object of type :class:`.time` or :class:`.datetime` may be aware or na msgstr "یک شیء از نوع :class:`.time` یا :class:`.datetime` ممکن است آگاه یا ساده باشد." msgid "A :class:`.datetime` object ``d`` is aware if :meth:`d.utcoffset() ` does not return ``None``. Otherwise, ``d`` is naive." -msgstr "" +msgstr "یک شیء :class:`.datetime` مانند ``d`` آگاه (aware) است اگر :meth:`d.utcoffset() ` مقدار ``None`` را برنگرداند. در غیر این صورت، ``d`` ساده (naive) است." msgid "A :class:`.time` object ``t`` is aware if :meth:`t.utcoffset() ` does not return ``None``. Otherwise, ``t`` is naive." -msgstr "" +msgstr "یک شیء :class:`.time` مانند ``t`` آگاه (aware) است اگر :meth:`t.utcoffset() ` مقدار ``None`` را برنگرداند. در غیر این صورت، ``t`` ساده (naive) است." msgid "The distinction between aware and naive doesn't apply to :class:`timedelta` objects." msgstr "تمایز میان آگاه و ساده برای اشیای :class:`timedelta` صدق نمی‌کند." @@ -3097,7 +3097,7 @@ msgid "When used to parse partial dates lacking a year, :meth:`.datetime.strptim msgstr "هنگامی که برای تجزیه‌ی تاریخ‌های ناقص فاقد سال استفاده شوند، :meth:`.datetime.strptime` و :meth:`.date.strptime` در صورت مواجهه با ۲۹ فوریه استثنا پرتاب می‌کنند، زیرا سال پیش‌فرض ۱۹۰۰ یک سال کبیسه *نیست*. همیشه پیش از تجزیه، یک سال کبیسه‌ی پیش‌فرض به رشته‌های تاریخ ناقص اضافه کنید." msgid "If a :meth:`~.datetime.strptime` format string contains more than one directive for the same field, for example both ``%Y`` and ``%y``, every directive must still match the input, but only the value of the last one is used. For example, parsing ``200099`` with ``%Y%y`` gives the year 1999. Repeating the same directive, like ``%Y%Y``, raises an error." -msgstr "" +msgstr "اگر یک رشته‌ی قالب :meth:`~.datetime.strptime` شامل بیش از یک دایرکتیو برای یک فیلد یکسان باشد، برای مثال هم ``%Y`` و هم ``%y``، هر دایرکتیو همچنان باید با ورودی مطابقت داشته باشد، اما تنها مقدار آخرین مورد استفاده می‌شود. برای مثال، تجزیه کردن ``200099`` با ``%Y%y`` سال ۱۹۹۹ را نتیجه می‌دهد. تکرار کردن همان دایرکتیو، مانند ``%Y%Y``، خطایی را ایجاد می‌کند." msgid "" ">>> import datetime as dt\n" diff --git a/library/gc.po b/library/gc.po index 839cc710b..1089e439a 100644 --- a/library/gc.po +++ b/library/gc.po @@ -64,10 +64,8 @@ msgstr "پرچم‌های اشکال‌زدایی را که در حال حاضر msgid "Returns a list of all objects tracked by the collector, excluding the list returned. If *generation* is not ``None``, return only the objects tracked by the collector that are in that generation." msgstr "فهرستی از تمام اشیای پیگیری‌شده توسط جمع‌کننده را بازمی‌گرداند، به‌جز فهرست برگردانده‌شده. اگر *generation* برابر ``None`` نباشد، فقط اشیای پیگیری‌شده توسط جمع‌کننده را که در آن نسل قرار دارند، بازمی‌گرداند." -#, fuzzy -#| msgid "Care must be taken when using objects returned by :func:`get_referrers` because some of them could still be under construction and hence in a temporarily invalid state. Avoid using :func:`get_referrers` for any purpose other than debugging." msgid "Care must be taken when using objects returned by :func:`get_objects` because some of them could still be under construction and hence in a temporarily invalid state. Avoid using :func:`get_objects` for any purpose other than debugging." -msgstr "هنگام استفاده از اشیای برگردانده‌شده توسط :func:`get_referrers` باید احتیاط کنید، زیرا برخی از آن‌ها ممکن است هنوز در حال ساخت باشند و بنابراین به‌طور موقت در وضعیت نامعتبری قرار داشته باشند. از استفاده از :func:`get_referrers` برای هر منظوری به‌جز اشکال‌زدایی خودداری کنید." +msgstr "هنگام استفاده از اشیاء بازگردانده‌شده توسط :func:`get_objects` باید دقت کنید زیرا برخی از آن‌ها ممکن است همچنان در حال ساخت باشند و در نتیجه در وضعیتی موقتاً نامعتبر قرار داشته باشند. از استفاده از :func:`get_objects` برای هر هدفی به جز اشکال‌زدایی خودداری کنید." msgid "New *generation* parameter." msgstr "پارامتر *generation* جدید." diff --git a/library/gzip.po b/library/gzip.po index 4e3987368..b090437da 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -94,10 +94,8 @@ msgstr "توجه داشته باشید که پرونده همیشه در حال msgid "The *compresslevel* argument is an integer from ``0`` to ``9`` controlling the level of compression; ``1`` is fastest and produces the least compression, and ``9`` is slowest and produces the most compression. ``0`` is no compression. The default is ``9``." msgstr "آرگومان *compresslevel* یک عدد صحیح از ``0`` تا ``9`` است که سطح فشرده‌سازی را کنترل می‌کند؛ ``1`` سریع‌ترین است و کمترین میزان فشرده‌سازی را تولید می‌کند، و ``9`` کندترین است و بیشترین میزان فشرده‌سازی را تولید می‌کند. ``0`` بدون فشرده‌سازی است. مقدار پیش‌فرض ``9`` است." -#, fuzzy -#| msgid "The optional *mtime* argument is the timestamp requested by gzip. The time is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. If *mtime* is omitted or ``None``, the current time is used. Use *mtime* = 0 to generate a compressed stream that does not depend on creation time." msgid "The optional *mtime* argument is the timestamp requested by gzip. The time is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. Set *mtime* to ``0`` to generate a compressed stream that does not depend on creation time. If *mtime* is omitted or ``None``, the current time is used; however, if the current time is outside the range 00:00:00 UTC, January 1, 1970 through 06:28:15 UTC, February 7, 2106, or explicitly passed *mtime* argument is outside the range ``0`` to ``2**32-1``, then the value ``0`` is used instead." -msgstr "آرگومان اختیاری *mtime* برچسب زمانی است که gzip درخواست می‌کند. این زمان در قالب Unix است، یعنی ثانیه‌های سپری‌شده از ۰۰:۰۰:۰۰ UTC، ۱ ژانویه ۱۹۷۰. اگر *mtime* حذف شود یا ``None`` باشد، از زمان جاری استفاده می‌شود. برای تولید یک جریان فشرده که به زمان ایجاد وابسته نباشد، از *mtime* = 0 استفاده کنید." +msgstr "آرگومان اختیاری *mtime* برچسب زمانی درخواست‌شده توسط gzip است. زمان در قالب یونیکس است، یعنی تعداد ثانیه‌های سپری‌شده از 00:00:00 UTC، ۱ ژانویه‌ی ۱۹۷۰. برای تولید یک جریان فشرده‌شده که به زمان ایجاد وابسته نباشد، *mtime* را روی ``0`` تنظیم کنید. اگر *mtime* حذف شود یا ``None`` باشد، از زمان فعلی استفاده می‌شود؛ با این حال، اگر زمان فعلی خارج از بازه‌ی 00:00:00 UTC، ۱ ژانویه‌ی ۱۹۷۰ تا 06:28:15 UTC، ۷ فوریه‌ی ۲۱۰۶ باشد، یا آرگومان *mtime* به‌طور صریح خارج از بازه‌ی ``0`` تا ``2**32-1`` داده شود، به‌جای آن از مقدار ``0`` استفاده می‌شود." msgid "See below for the :attr:`mtime` attribute that is set when decompressing." msgstr "در زیر ویژگی :attr:`mtime` را ببینید که هنگام از حالت فشرده خارج کردن تنظیم می‌شود." diff --git a/library/http.client.po b/library/http.client.po index 2b1dcbbe6..533664cc0 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -235,10 +235,8 @@ msgstr "میزبان و پورت را برای تونل‌زنی HTTP Connect ت msgid "The *host* and *port* arguments specify the endpoint of the tunneled connection (i.e. the address included in the CONNECT request, *not* the address of the proxy server)." msgstr "آرگومان‌های *host* و *port* پایانه‌ی اتصال تونل‌شده را مشخص می‌کنند (یعنی نشانی گنجانده‌شده در درخواست CONNECT، *نه* نشانی سرور پراکسی)." -#, fuzzy -#| msgid "The *headers* argument should be a mapping of extra HTTP headers to send with the CONNECT request." msgid "The *headers* argument should be a mapping of extra HTTP headers to send with the CONNECT request. Non-string header values are converted to strings via :func:`str`." -msgstr "آرگومان *headers* باید یک نگاشت از سرآیندهای HTTP اضافی برای ارسال به‌همراه درخواست CONNECT باشد." +msgstr "آرگومان *headers* باید نگاشتی از سرآیند‌های اضافی HTTP برای ارسال با درخواست CONNECT باشد. مقادیر سرآیند غیررشته‌ای از طریق :func:`str` به رشته تبدیل می‌شوند." msgid "As HTTP/1.1 is used for HTTP CONNECT tunnelling request, `as per the RFC `_, a HTTP ``Host:`` header must be provided, matching the authority-form of the request target provided as the destination for the CONNECT request. If a HTTP ``Host:`` header is not provided via the headers argument, one is generated and transmitted automatically." msgstr "از آن‌جا که برای درخواست تونل‌سازی HTTP CONNECT از HTTP/1.1 استفاده می‌شود، `طبق RFC `_، باید یک سرآیند HTTP ``Host:`` ارائه شود که با قالب authority (authority-form) هدف درخواستی که به‌عنوان مقصد درخواست CONNECT ارائه شده است مطابقت داشته باشد. اگر سرآیند HTTP ``Host:`` از طریق آرگومان headers ارائه نشود، یک سرآیند به‌طور خودکار تولید و ارسال می‌شود." diff --git a/library/inspect.po b/library/inspect.po index edbca8a5f..4c5d2eb03 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -459,10 +459,8 @@ msgstr "توکار" msgid "original name of this function or method" msgstr "نام اصلی این تابع یا متد" -#, fuzzy -#| msgid "instance to which a method is bound, or ``None``" msgid "instance to which a method is bound, or module object a function was defined in, or ``None``" -msgstr "نمونه‌ای که یک متد به آن مقید شده است، یا ``None``" +msgstr "نمونه‌ای که یک متد به آن کران شده است، یا شیء ماژولی که یک تابع در آن تعریف شده است، یا ``None``" msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." msgstr "افزودن ویژگی‌های ``__qualname__`` و ``gi_yieldfrom`` به تولیدگرها." diff --git a/library/mailbox.po b/library/mailbox.po index 83757d010..98dde850c 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -34,7 +34,7 @@ msgid "This module defines two classes, :class:`Mailbox` and :class:`Message`, f msgstr "این ماژول دو کلاس :class:`Mailbox` و :class:`Message` را برای دسترسی و دستکاری صندوق‌های پستی روی دیسک و پیام‌های موجود در آن‌ها تعریف می‌کند. :class:`!Mailbox` نگاشتی شبیه دیکشنری از کلیدها به پیام‌ها ارائه می‌دهد. :class:`!Message` کلاس :class:`~email.message.Message` در ماژول :mod:`email.message` را با وضعیت و رفتار خاص قالب گسترش می‌دهد. قالب‌های پشتیبانی‌شده صندوق پستی شامل Maildir، mbox، MH، Babyl و MMDF هستند." msgid "The :mod:`!mailbox` module is designed for use in trusted environments, where data from untrusted sources is never passed to the module's API calls and only trusted users have access to the filesystems accessible to the module." -msgstr "" +msgstr "ماژول :mod:`!mailbox` برای استفاده در محیط‌های مورد اعتماد طراحی شده است، جایی که داده‌های منابع نامطمئن هرگز به فراخوانی‌های API ماژول ارسال نمی‌شوند و فقط کاربران مورد اعتماد به سامانه‌های فایل‌بندی قابل دسترس برای ماژول دسترسی دارند." msgid "Module :mod:`email`" msgstr "ماژول :mod:`email`" diff --git a/library/mmap.po b/library/mmap.po index 90c6ea170..9897f9c82 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -32,10 +32,8 @@ msgstr "دسترس‌پذیری" msgid "This module does not work or is not available on WebAssembly. See :ref:`wasm-availability` for more information." msgstr "این ماژول روی WebAssembly کار نمی‌کند یا در دسترس نیست. برای اطلاعات بیشتر، :ref:`wasm-availability` را ببینید." -#, fuzzy -#| msgid "Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects `. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` module to search through a memory-mapped file. You can also change a single byte by doing ``obj[index] = 97``, or change a subsequence by assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write data starting at the current file position, and :meth:`seek` through the file to different positions." msgid "Memory-mapped file objects behave like both :class:`bytearray` and like :term:`file objects `. You can use mmap objects in most places where :class:`bytearray` are expected; for example, you can use the :mod:`re` module to search through a memory-mapped file. You can also change a single byte by doing ``obj[index] = 97``, or change a subsequence by assigning to a slice: ``obj[i1:i2] = b'...'``. You can also read and write data starting at the current file position, and :meth:`~mmap.mmap.seek` through the file to different positions." -msgstr "اشیای پرونده نگاشت‌شده به حافظه، هم مانند :class:`bytearray` و هم مانند :term:`اشیای پرونده ` رفتار می‌کنند. شما می‌توانید از اشیای mmap در بیشتر مواردی استفاده کنید که انتظار می‌رود یک :class:`bytearray` وجود داشته باشد؛ برای مثال، می‌توانید از ماژول :mod:`re` برای جستجو در یک پرونده نگاشت‌شده به حافظه استفاده کنید. همچنین می‌توانید یک بایت را با ``obj[index] = 97`` تغییر دهید، یا یک زیردنباله را با انتساب به یک اسلایس تغییر دهید: ``obj[i1:i2] = b'...'``. همچنین می‌توانید داده‌ها را از موقعیت فعلی پرونده بخوانید و بنویسید، و با :meth:`seek` در پرونده به موقعیت‌های مختلف حرکت کنید." +msgstr "اشیاء پرونده‌ی نگاشت‌شده در حافظه (Memory-mapped) هم مانند :class:`bytearray` و هم مانند :term:`اشیاء پرونده ` رفتار می‌کنند. می‌توانید از اشیاء mmap در بیشتر مکان‌هایی که :class:`bytearray` انتظار می‌رود استفاده کنید؛ برای مثال، می‌توانید از ماژول :mod:`re` برای جستجو در یک پرونده‌ی نگاشت‌شده در حافظه استفاده کنید. همچنین می‌توانید با انجام کار ``obj[index] = 97`` یک بایت منفرد را تغییر دهید، یا با انتساب به یک اسلایس، زیردنباله را تغییر دهید: ``obj[i1:i2] = b'...'``. همچنین می‌توانید خواندن و نوشتن داده‌ها را از موقعیت فعلی پرونده شروع کنید، و با استفاده از :meth:`~mmap.mmap.seek` در پرونده به موقعیت‌های مختلف جابه‌جا شوید." msgid "A memory-mapped file is created by the :class:`~mmap.mmap` constructor, which is different on Unix and on Windows. In either case you must provide a file descriptor for a file opened for update. If you wish to map an existing Python file object, use its :meth:`~io.IOBase.fileno` method to obtain the correct value for the *fileno* parameter. Otherwise, you can open the file using the :func:`os.open` function, which returns a file descriptor directly (the file still needs to be closed when done)." msgstr "یک پرونده نگاشت‌شده به حافظه (memory-mapped file) توسط سازنده‌ی :class:`~mmap.mmap` ایجاد می‌شود، که در یونیکس و ویندوز متفاوت است. در هر دو حالت، باید توصیف‌گر پرونده‌ای را که برای به‌روزرسانی باز شده است، فراهم کنید. اگر می‌خواهید یک شیء پرونده پایتون موجود را نگاشت کنید، از متد :meth:`~io.IOBase.fileno` آن برای به دست آوردن مقدار صحیح پارامتر *fileno* استفاده کنید. در غیر این صورت، می‌توانید پرونده را با استفاده از تابع :func:`os.open` باز کنید، که توصیف‌گر پرونده را مستقیماً برمی‌گرداند (پرونده همچنان باید پس از اتمام کار بسته شود)." @@ -70,10 +68,8 @@ msgstr "**(نسخه‌ی یونیکس)** *length* بایت از پرونده م msgid "*flags* specifies the nature of the mapping. :const:`MAP_PRIVATE` creates a private copy-on-write mapping, so changes to the contents of the mmap object will be private to this process, and :const:`MAP_SHARED` creates a mapping that's shared with all other processes mapping the same areas of the file. The default value is :const:`MAP_SHARED`. Some systems have additional possible flags with the full list specified in :ref:`MAP_* constants `." msgstr "*flags* ماهیت نگاشت را مشخص می‌کند. :const:`MAP_PRIVATE` یک نگاشت خصوصی با کپی-در-نوشتن (copy-on-write) ایجاد می‌کند، بنابراین تغییرات در محتوای شیء mmap برای این فرایند خصوصی خواهد بود و :const:`MAP_SHARED` نگاشتی ایجاد می‌کند که با تمام فرایندهای دیگری که ناحیه‌های یکسانی از پرونده را نگاشت می‌کنند، به اشتراک گذاشته می‌شود. مقدار پیش‌فرض :const:`MAP_SHARED` است. برخی سیستم‌ها پرچم‌های ممکن بیشتری دارند که فهرست کامل آن‌ها در :ref:`MAP_* constants ` مشخص شده است." -#, fuzzy -#| msgid "*prot*, if specified, gives the desired memory protection; the two most useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify that the pages may be read or written. *prot* defaults to :const:`PROT_READ \\| PROT_WRITE`." msgid "*prot*, if specified, gives the desired memory protection; the two most useful values are :const:`PROT_READ` and :const:`PROT_WRITE`, to specify that the pages may be read or written. *prot* defaults to :const:`PROT_READ` \\| :const:`PROT_WRITE`." -msgstr "*prot*، در صورت مشخص شدن، محافظت دلخواه از حافظه را تعیین می‌کند؛ دو مقدار از مفیدترین مقادیر عبارتند از :const:`PROT_READ` و :const:`PROT_WRITE`، برای مشخص کردن اینکه صفحه‌ها می‌توانند خوانده یا نوشته شوند. *prot* به‌طور پیش‌فرض :const:`PROT_READ \\| PROT_WRITE` است." +msgstr "*prot*، اگر مشخص شده باشد، حفاظت مطلوب حافظه را ارائه می‌دهد؛ دو مقداری که بیشترین کاربرد را دارند :const:`PROT_READ` و :const:`PROT_WRITE` هستند، تا مشخص کنند که صفحات می‌توانند خوانده یا نوشته شوند. مقدار پیش‌فرض *prot* برابر با :const:`PROT_READ` \\| :const:`PROT_WRITE` است." msgid "*access* may be specified in lieu of *flags* and *prot* as an optional keyword parameter. It is an error to specify both *flags*, *prot* and *access*. See the description of *access* above for information on how to use this parameter." msgstr "می‌توان *access* را به‌جای *flags* و *prot* به‌عنوان یک پارامتر کلیدواژه‌ای اختیاری مشخص کرد. مشخص کردن همزمان *flags*، *prot* و *access* خطا است. برای آگاهی از چگونگی استفاده از این پارامتر، توضیح *access* در بالا را ببینید." @@ -271,30 +267,24 @@ msgstr "تعداد بایت‌های نوشته‌شده اکنون برگردا msgid "Write the integer *byte* into memory at the current position of the file pointer; the file position is advanced by ``1``. If the mmap was created with :const:`ACCESS_READ`, then writing to it will raise a :exc:`TypeError` exception." msgstr "عدد صحیح *byte* را در حافظه، در موقعیت فعلی اشاره‌گر پرونده می‌نویسد؛ موقعیت پرونده به اندازه ``1`` پیش می‌رود. اگر mmap با :const:`ACCESS_READ` ایجاد شده باشد، نوشتن در آن باعث پرتاب استثنای :exc:`TypeError` می‌شود." -#, fuzzy -#| msgid "MAP_* Constants" msgid "ACCESS_* constants" -msgstr "ثابت‌های MAP_*" +msgstr "ثابت‌های ACCESS_*" msgid "These constants specify the access mode for a memory mapping. :const:`ACCESS_READ` provides read-only access, :const:`ACCESS_WRITE` provides write-through access, and :const:`ACCESS_COPY` provides copy-on-write access. :const:`ACCESS_DEFAULT` defers to the *prot* argument of :class:`mmap`." -msgstr "" +msgstr "این ثابت‌ها حالت دسترسی را برای یک نگاشت حافظه مشخص می‌کنند. :const:`ACCESS_READ` دسترسی فقط‌خواندنی، :const:`ACCESS_WRITE` دسترسی نوشتن‌همزمان (write-through)، و :const:`ACCESS_COPY` دسترسی کپی در هنگام نوشتن را فراهم می‌کند. :const:`ACCESS_DEFAULT` به آرگومان *prot* از :class:`mmap` ارجاع می‌دهد." msgid "Page size constants" -msgstr "" +msgstr "ثابت‌های اندازه‌ی صفحه" msgid ":const:`PAGESIZE` is the system memory page size in bytes. :const:`ALLOCATIONGRANULARITY` is the minimum alignment in bytes required for the *offset* argument of :class:`mmap`. On Unix, :const:`ALLOCATIONGRANULARITY` is equal to :const:`PAGESIZE`." -msgstr "" +msgstr ":const:`PAGESIZE` اندازه‌ی صفحه‌ی حافظه‌ی سیستم بر حسب بایت است. :const:`ALLOCATIONGRANULARITY` حداقل هم‌ترازی بر حسب بایت است که برای آرگومان *offset* از :class:`mmap` مورد نیاز است. در سیستم یونیکس، :const:`ALLOCATIONGRANULARITY` برابر با :const:`PAGESIZE` است." -#, fuzzy -#| msgid "MAP_* Constants" msgid "PROT_* constants" -msgstr "ثابت‌های MAP_*" +msgstr "ثابت‌های PROT_*" msgid "Memory protection flags accepted by the *prot* argument of :class:`mmap`. :const:`PROT_READ` allows pages to be read, :const:`PROT_WRITE` allows pages to be written, and :const:`PROT_EXEC` allows pages to be executed. Values can be combined using the bitwise OR operator. Not every option is present on every system." -msgstr "" +msgstr "پرچم‌های حفاظت حافظه که توسط آرگومان *prot* از :class:`mmap` پذیرفته می‌شوند. :const:`PROT_READ` اجازه می‌دهد صفحات خوانده شوند، :const:`PROT_WRITE` اجازه می‌دهد صفحات نوشته شوند، و :const:`PROT_EXEC` اجازه می‌دهد صفحات اجرا شوند. مقادیر را می‌توان با استفاده از عملگر بیتی OR ترکیب کرد. همه‌ی گزینه‌ها در هر سیستمی موجود نیستند." -#, fuzzy -#| msgid "MADV_* Constants" msgid "MADV_* constants" msgstr "ثابت‌های MADV_*" @@ -304,8 +294,6 @@ msgstr "این گزینه‌ها را می‌توان به :meth:`mmap.madvise` msgid "Availability: Systems with the madvise() system call." msgstr "دسترس‌پذیری: سیستم‌های دارای فراخوان سیستمی madvise()." -#, fuzzy -#| msgid "MAP_* Constants" msgid "MAP_* constants" msgstr "ثابت‌های MAP_*" diff --git a/library/multiprocessing.po b/library/multiprocessing.po index b148c746a..826725a5d 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -187,16 +187,14 @@ msgstr "*forkserver*" msgid "When the program starts and selects the *forkserver* start method, a server process is spawned. From then on, whenever a new process is needed, the parent process connects to the server and requests that it fork a new process. The fork server process is single threaded unless system libraries or preloaded imports spawn threads as a side-effect so it is generally safe for it to use :func:`os.fork`. No unnecessary resources are inherited." msgstr "هنگامی که برنامه شروع می‌شود و متد شروع *forkserver* را انتخاب می‌کند، یک فرایند سرور ایجاد می‌شود. از آن پس، هر زمان که به یک فرایند جدید نیاز باشد، فرایند والد به سرور متصل می‌شود و از آن درخواست می‌کند که یک فرایند جدید را fork کند. فرایند سرور fork تک‌نخی است، مگر اینکه کتابخانه‌های سیستمی یا ایمپورت‌های از پیش بارگذاری‌شده به‌عنوان یک اثر جانبی نخ‌هایی را ایجاد کنند؛ بنابراین استفاده از :func:`os.fork` برای آن عموماً امن است. هیچ منبع غیرضروری به ارث برده نمی‌شود." -#, fuzzy -#| msgid "Available on POSIX platforms which support passing file descriptors over Unix pipes such as Linux. The default on those." msgid "Available on POSIX platforms which support passing file descriptors over Unix pipes such as Linux. The default on those, unless there is no writable temporary directory (see :func:`tempfile.gettempdir`), which the fork server requires; *spawn* is the default in that case." -msgstr "در پلتفرم‌های POSIX مانند لینوکس که از انتقال توصیف‌گرهای پرونده از طریق پایپ یونیکس پشتیبانی می‌کنند، در دسترس است. پیش‌فرض در آن‌ها." +msgstr "روی سکوهای POSIX که از ارسال توصیف‌گرهای پرونده روی پایپ‌های یونیکس مانند لینوکس پشتیبانی می‌کنند، در دسترس است. گزینه‌ی پیش‌فرض روی آن‌ها، مگر اینکه پوشه‌ی موقت قابل‌نوشتنی وجود نداشته باشد (نگاه کنید به :func:`tempfile.gettempdir`) که سرور انشعاب به آن نیاز دارد؛ *spawn* در آن صورت پیش‌فرض است." msgid "This became the default start method on POSIX platforms." msgstr "این به روش شروع پیش‌فرض در سکوهای POSIX تبدیل شد." msgid "*spawn* is now the default start method when there is no writable temporary directory, for example on a read-only file system. Previously *forkserver* remained the default there and starting a process failed with an :exc:`OSError`. The default is determined when it is first needed rather than when :mod:`!multiprocessing` is imported. See :gh:`155717`." -msgstr "" +msgstr "*spawn* اکنون روش شروع پیش‌فرض است زمانی که پوشه‌ی موقت قابل‌نوشتنی وجود ندارد، برای مثال روی یک سیستم پرونده‌ی فقط‌خواندنی. پیش‌تر *forkserver* در آنجا پیش‌فرض باقی می‌ماند و شروع یک فرایند با یک :exc:`OSError` با شکست مواجه می‌شد. مقدار پیش‌فرض زمانی تعیین می‌شود که برای اولین بار مورد نیاز باشد، نه زمانی که ماژول :mod:`!multiprocessing` ایمپورت می‌شود. نگاه کنید به :gh:`155717`." msgid "*spawn* added on all POSIX platforms, and *forkserver* added for some POSIX platforms. Child processes no longer inherit all of the parents inheritable handles on Windows." msgstr "*spawn* در همه‌ی پلتفرم‌های POSIX اضافه شد، و *forkserver* برای برخی پلتفرم‌های POSIX افزوده شد. فرآیندهای فرزند دیگر همه‌ی دسته‌های قابل ارث‌بری والد را در ویندوز به ارث نمی‌برند." diff --git a/library/os.po b/library/os.po index 416440b32..5e9985c55 100644 --- a/library/os.po +++ b/library/os.po @@ -1535,7 +1535,7 @@ msgid "Raises an :ref:`auditing event ` ``os.scandir`` with argument ` msgstr "یک :ref:`رویداد حسابرسی ` ``os.scandir`` را با آرگومان ``path`` پرتاب می‌کند." msgid "Sharing a :func:`scandir` iterator between threads will not corrupt the iterator, but it is subject to :term:`race conditions `: which entries each thread receives is unspecified, and closing the iterator while another thread is iterating ends that iteration early." -msgstr "" +msgstr "به‌اشتراک‌گذاری یک پیمایش‌گر تابع :func:`scandir` بین نخ‌ها باعث خرابی پیمایش‌گر نمی‌شود، اما در معرض :term:`شرایط رقابتی ` قرار دارد: این که هر نخ چه ورودی‌هایی را دریافت می‌کند مشخص نیست، و بستن پیمایش‌گر در حالی که نخ دیگری در حال پیمایش است، آن پیمایش را زودتر به پایان می‌برد." msgid "The :func:`scandir` iterator supports the :term:`context manager` protocol and has the following method:" msgstr "پیمایش‌گر :func:`scandir` از پروتکل :term:`context manager` پشتیبانی می‌کند و متد زیر را دارد:" diff --git a/library/pathlib.po b/library/pathlib.po index d2783ad71..13d557c24 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -425,19 +425,22 @@ msgid "Methods and properties" msgstr "متدها و ویژگی‌ها" msgid "The :attr:`~PurePath.parent`, :attr:`~PurePath.name`, :attr:`~PurePath.stem`, and :attr:`~PurePath.suffix` properties describe different parts of a path. For example, given::" -msgstr "" +msgstr "خصوصیات :attr:`~PurePath.parent`، :attr:`~PurePath.name`، :attr:`~PurePath.stem` و :attr:`~PurePath.suffix` بخش‌های مختلف یک مسـیر را توصیف می‌کنند. برای مثال، با فرض::" msgid ">>> p = PurePosixPath('/srv/holy/grail.tar.gz')" -msgstr "" +msgstr ">>> p = PurePosixPath('/srv/holy/grail.tar.gz')" msgid "" "For p = PurePosixPath('/srv/holy/grail.tar.gz'), p.parent is\n" "PurePosixPath('/srv/holy'), p.name is 'grail.tar.gz',\n" "p.stem is 'grail.tar', and p.suffix is '.gz'." msgstr "" +"برای p = PurePosixPath('/srv/holy/grail.tar.gz')، مقدار p.parent برابر\n" +"با PurePosixPath('/srv/holy')، مقدار p.name برابر با 'grail.tar.gz'،\n" +"مقدار p.stem برابر با 'grail.tar' و مقدار p.suffix برابر با '.gz' است." msgid "The stem excludes only the final suffix: in this example, it includes ``.tar``." -msgstr "" +msgstr "بخش stem فقط پسوند نهایی را حذف می‌کند: در این مثال، شامل ``.tar`` می‌شود." msgid "Pure paths provide the following methods and properties:" msgstr "مسیرهای خالص، متدها و ویژگی‌های زیر را ارائه می‌دهند:" @@ -790,16 +793,6 @@ msgstr "" msgid "Match this path against the provided glob-style pattern. Return ``True`` if matching is successful, ``False`` otherwise. For example::" msgstr "این مسیر را با الگوی به‌سبک glob ارائه‌شده تطبیق می‌دهد. اگر تطبیق موفقیت‌آمیز باشد، ``True`` و در غیر این صورت ``False`` برمی‌گرداند. برای مثال::" -#, fuzzy -#| msgid "" -#| ">>> PurePath('a/b.py').full_match('a/*.py')\n" -#| "True\n" -#| ">>> PurePath('a/b.py').full_match('*.py')\n" -#| "False\n" -#| ">>> PurePath('/a/b/c.py').full_match('/a/**')\n" -#| "True\n" -#| ">>> PurePath('/a/b/c.py').full_match('**/*.py')\n" -#| "True" msgid "" ">>> PurePath('a/b.py').full_match('a/*.py')\n" "True\n" @@ -814,30 +807,24 @@ msgstr "" "True\n" ">>> PurePath('a/b.py').full_match('*.py')\n" "False\n" -">>> PurePath('/a/b/c.py').full_match('/a/**')\n" -"True\n" ">>> PurePath('/a/b/c.py').full_match('**/*.py')\n" +"True\n" +">>> PurePath('/a/b/c.py').full_match('/a/**')\n" "True" msgid "Patterns ending in \"``/**``\", as in the example above, may surprise when passed to ``full_match``. Even though \"``**``\" can match 0 segments, \"``.../**``\" requires a separator to match. Hence \"``/a/**``\" does not match path \"``/a``\". Since :class:`PurePath` drops trailing slashes, this pattern also does not match \"``/a/``\"." -msgstr "" +msgstr "الگوهایی که به \"``/**``\" ختم می‌شوند، همان‌طور که در مثال بالا دیدید، ممکن است هنگام ارسال به ``full_match`` تعجب‌برانگیز باشند. با اینکه \"``**``\" می‌تواند با صفر بخش مطابقت پیدا کند، اما \"``.../**``\" برای مطابقت به یک جداکننده نیاز دارد. از این رو، \"``/a/**``\" با مسیر \"``/a``\" مطابقت نمی‌کند. از آنجا که :class:`PurePath` اسلش‌های پایانی را حذف می‌کند، این الگو همچنین با \"``/a/``\" مطابقت ندارد." -#, fuzzy -#| msgid "" -#| ">>> PurePosixPath('b.py').full_match('*.PY')\n" -#| "False\n" -#| ">>> PureWindowsPath('b.py').full_match('*.PY')\n" -#| "True" msgid "" ">>> PurePath('/a').full_match('/a/**')\n" "False\n" ">>> PurePath('/a/').full_match('/a/**')\n" "False" msgstr "" -">>> PurePosixPath('b.py').full_match('*.PY')\n" +">>> PurePath('/a').full_match('/a/**')\n" "False\n" -">>> PureWindowsPath('b.py').full_match('*.PY')\n" -"True" +">>> PurePath('/a/').full_match('/a/**')\n" +"False" msgid ":ref:`pathlib-pattern-language` documentation." msgstr "مستندات :ref:`pathlib-pattern-language`." @@ -1927,7 +1914,7 @@ msgid "``**`` (entire segment)" msgstr "``**`` (کل بخش)" msgid "Matches any number of file or directory segments, including zero. Note that in :meth:`~PurePath.full_match`, \"``a/**``\" does not match \"``a``\", whereas :meth:`~Path.glob` yields \"``a``\" for that pattern." -msgstr "" +msgstr "با هر تعداد بخش پرونده یا پوشه، از جمله صفر، مطابقت می‌کند. توجه داشته باشید که در :meth:`~PurePath.full_match`، عبارت \"``a/**``\" با \"``a``\" مطابقت نمی‌کند، در حالی که :meth:`~Path.glob` برای آن الگو \"``a``\" را نتیجه می‌دهد." msgid "``*`` (entire segment)" msgstr "``*`` (کل بخش)" diff --git a/library/ssl.po b/library/ssl.po index d052fabb9..909794a2f 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -1176,7 +1176,7 @@ msgid "A typical use of this callback is to change the :class:`ssl.SSLSocket`'s msgstr "یک کاربرد رایج این کال‌بک، تغییر ویژگی :attr:`SSLSocket.context` مربوط به :class:`ssl.SSLSocket` به شیء جدیدی از نوع :class:`SSLContext` است که نشان‌دهنده‌ی زنجیره‌ی گواهی‌ای است که با نام سرور مطابقت دارد." msgid "If the callback assigns a new context to :attr:`SSLSocket.context`, any further ClientHello message on the same connection (for example after a TLS 1.3 HelloRetryRequest) is dispatched to the new context's *sni_callback*, if it has one; the original callback is not called again for that connection." -msgstr "" +msgstr "اگر کال‌بک یک زمینه‌ی جدید به :attr:`SSLSocket.context` اختصاص دهد، هرگونه پیام ClientHello بعدی روی همان اتصال (برای مثال پس از یک TLS 1.3 HelloRetryRequest) به *sni_callback* زمینه‌ی جدید فرستاده می‌شود، اگر زمینه‌ی مذکور آن را داشته باشد؛ کال‌بک اصلی دیگر برای آن اتصال فراخوانی نمی‌شود." msgid "Due to the early negotiation phase of the TLS connection, only limited methods and attributes are usable like :meth:`SSLSocket.selected_alpn_protocol` and :attr:`SSLSocket.context`. The :meth:`SSLSocket.getpeercert`, :meth:`SSLSocket.get_verified_chain`, :meth:`SSLSocket.get_unverified_chain` :meth:`SSLSocket.cipher` and :meth:`SSLSocket.compression` methods require that the TLS connection has progressed beyond the TLS Client Hello and therefore will not return meaningful values nor can they be called safely." msgstr "به دلیل مرحله‌ی اولیه‌ی مذاکره‌ی اتصال TLS، تنها متدها و ویژگی‌های محدودی قابل استفاده هستند، مانند :meth:`SSLSocket.selected_alpn_protocol` و :attr:`SSLSocket.context`. متدهای :meth:`SSLSocket.getpeercert`، :meth:`SSLSocket.get_verified_chain`، :meth:`SSLSocket.get_unverified_chain`، :meth:`SSLSocket.cipher` و :meth:`SSLSocket.compression` نیاز دارند که اتصال TLS از TLS Client Hello فراتر رفته باشد؛ بنابراین نه مقادیر معناداری برمی‌گردانند و نه می‌توان آن‌ها را به‌طور امن فراخوانی کرد." @@ -1191,7 +1191,7 @@ msgid "This method will raise :exc:`NotImplementedError` if the OpenSSL library msgstr "اگر OPENSSL_NO_TLSEXT هنگام ساخت کتابخانه OpenSSL تعریف‌شده باشد، این متد :exc:`NotImplementedError` را پرتاب خواهد کرد." msgid "After the callback assigns a new :attr:`SSLSocket.context`, later ClientHello messages on the connection are dispatched to the new context's *sni_callback*." -msgstr "" +msgstr "پس از اینکه کال‌بک یک :attr:`SSLSocket.context` جدید اختصاص داد، پیام‌های ClientHello بعدی روی اتصال به *sni_callback* زمینه‌ی جدید فرستاده می‌شوند." msgid "This is a legacy API retained for backwards compatibility. When possible, you should use :attr:`sni_callback` instead. The given *server_name_callback* is similar to *sni_callback*, except that when the server hostname is an IDN-encoded internationalized domain name, the *server_name_callback* receives a decoded U-label (``\"pythön.org\"``)." msgstr "این یک API قدیمی است که برای سازگاری با نسخه‌های قبلی حفظ شده است. در صورت امکان، باید به‌جای آن از :attr:`sni_callback` استفاده کنید. *server_name_callback* داده‌شده مشابه *sni_callback* است، با این تفاوت که وقتی نام میزبان سرور یک IDN کدگذاری‌شده با IDN باشد، *server_name_callback* یک U-label کدگشایی‌شده را دریافت می‌کند (``\"pythön.org\"``)." @@ -1260,13 +1260,13 @@ msgid "Wrap the BIO objects *incoming* and *outgoing* and return an instance of msgstr "اشیای BIO *incoming* و *outgoing* را دربرمی‌گیرد و نمونه‌ای از :attr:`SSLContext.sslobject_class` (پیش‌فرض :class:`SSLObject`) برمی‌گرداند. روال‌های SSL داده‌های ورودی را از BIO ورودی می‌خوانند و داده‌ها را در BIO خروجی می‌نویسند." msgid "The *server_side*, *server_hostname* and *session* parameters have the same meaning as in :meth:`SSLContext.wrap_socket`, and are validated in the same way: in particular a :exc:`ValueError` is raised when :attr:`~SSLContext.check_hostname` is enabled but no *server_hostname* is given, since there would be no name to match the peer's certificate against." -msgstr "" +msgstr "پارامترهای *server_side*، *server_hostname* و *session* معنایی مشابه با :meth:`SSLContext.wrap_socket` دارند و به همان شکل اعتبارسنجی می‌شوند: به‌ویژه هنگامی که :attr:`~SSLContext.check_hostname` فعال است اما هیچ *server_hostname*\\ ی داده نشده است، یک :exc:`ValueError` بالا آورده می‌شود، زیرا هیچ نامی برای مطابقت دادن با گواهی همتا وجود نخواهد داشت." msgid "The method returns an instance of :attr:`SSLContext.sslobject_class` instead of hard-coded :class:`SSLObject`." msgstr "این متد به‌جای :class:`SSLObject` سخت‌کد، نمونه‌ای از :attr:`SSLContext.sslobject_class` را برمی‌گرداند." msgid "The *server_side*, *server_hostname* and *session* parameters are now validated as :meth:`SSLContext.wrap_socket` validates them. Previously a context with :attr:`~SSLContext.check_hostname` enabled and no *server_hostname* was accepted, and verified the certificate chain but never the peer's identity." -msgstr "" +msgstr "پارامترهای *server_side*، *server_hostname* و *session* اکنون مانند روشی که :meth:`SSLContext.wrap_socket` آن‌ها را اعتبارسنجی می‌کند، اعتبارسنجی می‌شوند. پیش‌تر، یک زمینه با :attr:`~SSLContext.check_hostname` فعال و بدون *server_hostname* پذیرفته می‌شد و زنجیره‌ی گواهی را تأیید می‌کرد اما هرگز هویت همتا را بررسی نمی‌کرد." msgid "The return type of :meth:`SSLContext.wrap_bio`, defaults to :class:`SSLObject`. The attribute can be overridden on instance of class in order to return a custom subclass of :class:`SSLObject`." msgstr "نوع بازگشتی :meth:`SSLContext.wrap_bio`، به‌طور پیش‌فرض :class:`SSLObject` است. می‌توان این ویژگی را در نمونه‌ای از کلاس بازنویسی کرد تا یک زیرکلاس سفارشی از :class:`SSLObject` بازگردانده شود." diff --git a/library/tempfile.po b/library/tempfile.po index fb7707bb5..cf395f844 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -142,10 +142,10 @@ msgid "The *delete* parameter can be used to disable cleanup of the directory tr msgstr "می‌توان از پارامتر *delete* برای غیرفعال کردن پاک‌سازی درخت پوشه‌ها هنگام خروج از زمینه استفاده کرد. اگرچه ممکن است غیرعادی به نظر برسد که یک مدیر زمینه عملیات انجام‌شده هنگام خروج از زمینه را غیرفعال کند، اما این کار می‌تواند در حین اشکال‌زدایی یا زمانی که نیاز دارید رفتار پاک‌سازی شما بر اساس منطق دیگری مشروط باشد، مفید باشد." msgid "Cleanup is not robust against the tree being modified while it is removed. Files outside of the tree may have their permissions and file flags reset." -msgstr "" +msgstr "عملیات پاک‌سازی در برابر تغییر درخت در حین حذف شدن آن مقاوم نیست. ممکن است دسترسی‌ها و پرچم‌های پرونده‌های خارج از درخت بازنشانی شوند." msgid "On systems where :data:`shutil.rmtree.avoids_symlink_attacks` is false, manipulating symbolic links during cleanup may cause files outside of the tree to be removed." -msgstr "" +msgstr "در سیستم‌هایی که :data:`shutil.rmtree.avoids_symlink_attacks` در آن‌ها نادرست است، دستکاری پیوندهای نمادین در حین پاک‌سازی ممکن است باعث حذف پرونده‌های خارج از درخت شود." msgid "Raises an :ref:`auditing event ` ``tempfile.mkdtemp`` with argument ``fullpath``." msgstr "یک :ref:`رویداد حسابرسی ` ``tempfile.mkdtemp`` را با آرگومان ``fullpath`` پرتاب می‌کند." diff --git a/library/test.po b/library/test.po index 50675e7ab..2e9b9798a 100644 --- a/library/test.po +++ b/library/test.po @@ -197,10 +197,8 @@ msgstr "کتابی از کنت بک درباره‌ی نوشتن آزمون‌ه msgid "Running tests using the command-line interface" msgstr "اجرای آزمون‌ها با استفاده از رابط خط فرمان" -#, fuzzy -#| msgid "The :mod:`!test` package can be run as a script to drive Python's regression test suite, thanks to the :option:`-m` option: :program:`python -m test`. Under the hood, it uses :mod:`!test.regrtest`; the call :program:`python -m test.regrtest` used in previous Python versions still works. Running the script by itself automatically starts running all regression tests in the :mod:`!test` package. It does this by finding all modules in the package whose name starts with ``test_``, importing them, and executing the function :func:`test_main` if present or loading the tests via unittest.TestLoader.loadTestsFromModule if ``test_main`` does not exist. The names of tests to execute may also be passed to the script. Specifying a single regression test (:program:`python -m test test_spam`) will minimize output and only print whether the test passed or failed." msgid "The :mod:`!test` package can be run as a script to drive Python's regression test suite, thanks to the :option:`-m` option: :program:`python -m test`. Under the hood, it uses :mod:`!test.regrtest`; the call :program:`python -m test.regrtest` used in previous Python versions still works. Running the script by itself automatically starts running all regression tests in the :mod:`!test` package. It does this by finding modules and packages whose names start with ``test_``, importing each one, and loading its tests with :meth:`unittest.TestLoader.loadTestsFromModule`. See the :ref:`load_tests protocol ` for how a module or package can customize what is loaded. Defining a module-level ``test_main()`` function is not supported and causes the test to fail. The names of tests to execute may also be passed to the script. Specifying a single regression test (:program:`python -m test test_spam`) will minimize output and only print whether the test passed or failed." -msgstr "بسته‌ی :mod:`!test` را می‌توان به‌کمک گزینه‌ی :option:`-m` به‌صورت یک اسکریپت برای اجرای بدنه‌ی آزمون‌های رگرسیون پایتون اجرا کرد: :program:`python -m test`. در پشت صحنه، این بسته از :mod:`!test.regrtest` استفاده می‌کند؛ فراخوانی :program:`python -m test.regrtest` که در نسخه‌های پیشین پایتون استفاده می‌شد، همچنان کار می‌کند. اجرای اسکریپت به‌تنهایی به‌طور خودکار اجرای همه‌ی آزمون‌های رگرسیون موجود در بسته‌ی :mod:`!test` را آغاز می‌کند. این کار با یافتن همه‌ی ماژول‌های موجود در بسته که نامشان با ``test_`` شروع می‌شود، ایمپورت کردن آن‌ها، و اجرای تابع :func:`test_main` در صورت وجود، یا بارگذاری آزمون‌ها از طریق unittest.TestLoader.loadTestsFromModule در صورت نبود ``test_main`` انجام می‌شود. نام آزمون‌های مورد نظر برای اجرا نیز می‌تواند به اسکریپت داده شود. مشخص کردن یک آزمون رگرسیون به‌صورت تکی (:program:`python -m test test_spam`) خروجی را به حداقل می‌رساند و فقط چاپ می‌کند که آزمون موفقیت‌آمیز بوده یا شکست خورده است." +msgstr "بسته‌ی :mod:`!test` می‌تواند به عنوان یک اسکریپت برای هدایت مجموعه‌ی آزمون رگرسیون پایتون اجرا شود، به لطف گزینه‌ی :option:`-m`: :program:`python -m test`. در پس‌زمینه، از :mod:`!test.regrtest` استفاده می‌کند؛ فراخوانی :program:`python -m test.regrtest` که در نسخه‌های قبلی پایتون استفاده می‌شد همچنان کار می‌کند. اجرای اسکریپت به تنهایی به طور خودکار شروع به اجرای تمام آزمون‌های رگرسیون در بسته‌ی :mod:`!test` می‌کند. این کار را با یافتن ماژول‌ها و بسته‌هایی که نامشان با ``test_`` شروع می‌شود، ایمپورت کردن هر کدام، و بارگذاری آزمون‌های آن با :meth:`unittest.TestLoader.loadTestsFromModule` انجام می‌دهد. برای نحوه‌ی سفارشی‌سازی آنچه بارگذاری می‌شود توسط یک ماژول یا بسته، به :ref:`پروتکل load_tests ` نگاه کنید. تعریف یک تابع ``test_main()`` در سطح ماژول پشتیبانی نمی‌شود و باعث شکست آزمون می‌شود. نام آزمون‌هایی که باید اجرا شوند نیز ممکن است به اسکریپت پاس داده شود. مشخص کردن یک آزمون رگرسیون منفرد (:program:`python -m test test_spam`) خروجی را به حداقل می‌رساند و فقط چاپ می‌کند که آیا آزمون موفق بوده یا ناموفق." msgid "Running :mod:`!test` directly allows what resources are available for tests to use to be set. You do this by using the ``-u`` command-line option. Specifying ``all`` as the value for the ``-u`` option enables all possible resources: :program:`python -m test -uall`. If all but one resource is desired (a more common case), a comma-separated list of resources that are not desired may be listed after ``all``. The command :program:`python -m test -uall,-audio,-largefile` will run :mod:`!test` with all resources except the ``audio`` and ``largefile`` resources. For a list of all resources and more command-line options, run :program:`python -m test -h`." msgstr "اجرای مستقیم :mod:`!test` به شما امکان می‌دهد تعیین کنید چه منابعی برای استفاده در آزمون‌ها در دسترس باشند. این کار را با استفاده از گزینه ``-u`` خط فرمان انجام می‌دهید. مشخص کردن ``all`` به‌عنوان مقدار گزینه ``-u`` تمام منابع ممکن را فعال می‌کند: :program:`python -m test -uall`. اگر همه منابع به‌جز یک منبع مطلوب باشند (حالت رایج‌تر)، می‌توانید فهرستی جداشده با ویرگول از منابعی که مطلوب نیستند را پس از ``all`` ذکر کنید. فرمان :program:`python -m test -uall,-audio,-largefile`، :mod:`!test` را با همه منابع به‌جز منابع ``audio`` و ``largefile`` اجرا می‌کند. برای دریافت فهرستی از همه منابع و گزینه‌های بیشتر خط فرمان، :program:`python -m test -h` را اجرا کنید." @@ -448,7 +446,7 @@ msgid "Return ``True`` if Python was not built with ``-O0`` or ``-Og``." msgstr "اگر پایتون با ``-O0`` یا ``-Og`` ساخته نشده باشد، ``True`` را برمی‌گرداند." msgid "Return ``True`` if Python was built with :ref:`pymalloc ` enabled and is not a :term:`free-threaded build`." -msgstr "" +msgstr "اگر پایتون با :ref:`pymalloc ` فعال ساخته شده باشد و یک :term:`ساخت نخ‌آزاد ` نباشد، مقدار ``True`` را برمی‌گرداند." msgid "Raise :exc:`ResourceDenied` if *resource* is not available. *msg* is the argument to :exc:`ResourceDenied` if it is raised. Always returns ``True`` if called by a function whose ``__name__`` is ``'__main__'``. Used when tests are executed by :mod:`test.regrtest`." msgstr "اگر *resource* در دسترس نباشد، :exc:`ResourceDenied` را پرتاب می‌کند. اگر این استثنا پرتاب شود، *msg* آرگومان :exc:`ResourceDenied` خواهد بود. اگر توسط تابعی فراخوانی شود که ``__name__`` آن ``'__main__'`` است، همیشه ``True`` را برمی‌گرداند. هنگامی که آزمون‌ها توسط :mod:`test.regrtest` اجرا می‌شوند، استفاده می‌شود." @@ -681,10 +679,8 @@ msgstr "آزمون خطاهای سینتکسی در *statement* با تلاش ب msgid "Open *url*. If open fails, raises :exc:`TestFailed`." msgstr "*url* را باز می‌کند. اگر باز کردن ناموفق باشد، :exc:`TestFailed` را پرتاب می‌کند." -#, fuzzy -#| msgid "Use this at the end of ``test_main`` whenever sub-processes are started. This will help ensure that no extra children (zombies) stick around to hog resources and create problems when looking for refleaks." msgid "Call this from :meth:`~unittest.TestCase.setUp`, :meth:`~unittest.TestCase.tearDown`, or ``tearDownModule()`` in tests that start subprocesses. This will help ensure that no extra children (zombies) stick around to hog resources and create problems when looking for refleaks." -msgstr "هر زمان که زیرفرایندها آغاز می‌شوند، از این در پایان ``test_main`` استفاده کنید. این کار کمک می‌کند تا اطمینان حاصل شود که هیچ‌کدام از فرزندان اضافی (زامبی‌ها) باقی نمی‌مانند که منابع را اشغال کنند و هنگام جست‌وجو برای نشت‌های مرجع (refleaks) مشکل ایجاد کنند." +msgstr "این را از :meth:`~unittest.TestCase.setUp`، :meth:`~unittest.TestCase.tearDown`، یا ``tearDownModule()`` در آزمون‌هایی که زیرفرایندها را شروع می‌کنند، فراخوانی کنید. این کار کمک می‌کند اطمینان حاصل شود که هیچ فرزند اضافی (زامبی) باقی نمی‌ماند تا منابع را ببلعد و هنگام جستجوی نشتی‌های مرجع (refleaks) مشکل ایجاد کند." msgid "Get an attribute, raising :exc:`unittest.SkipTest` if :exc:`AttributeError` is raised." msgstr "یک ویژگی دریافت می‌کند؛ اگر :exc:`AttributeError` پرتاب شد، :exc:`unittest.SkipTest` را ایجاد میکند." @@ -830,10 +826,8 @@ msgstr "" " support.check__all__(self, bar, ('bar', '_bar'),\n" " extra=extra, not_exported=not_exported)" -#, fuzzy -#| msgid "Skip tests if the :mod:`multiprocessing.synchronize` module is missing, if there is no available semaphore implementation, or if creating a lock raises an :exc:`OSError`." msgid "Skip tests if the :mod:`!multiprocessing.synchronize` module is missing, if there is no available semaphore implementation, or if creating a lock raises an :exc:`OSError`." -msgstr "در صورتی که ماژول :mod:`multiprocessing.synchronize` موجود نبود، هیچ پیاده‌سازی سمافور در دسترس نبود، یا ایجاد یک قفل باعث پرتاب :exc:`OSError` شد، از آزمون‌ها صرف‌نظر کنید." +msgstr "اگر ماژول :mod:`!multiprocessing.synchronize` وجود نداشته باشد، هیچ پیاده‌سازی سمافوری در دسترسی نباشد، یا ایجاد یک قفل باعث بروز یک :exc:`OSError` شود، آزمون‌ها را رد کنید." msgid "Assert that type *tp* cannot be instantiated using *args* and *kwds*." msgstr "ادعا کنید که نوع *tp* نمی‌تواند با استفاده از *args* و *kwds* نمونه‌سازی شود." @@ -916,10 +910,8 @@ msgstr "این برای استفاده با ``@unittest.skipIf()`` طراحی ش msgid "A normal build & test does not run into this situation but it can happen when trying to run the standard library test suite from an interpreter that doesn't have an obvious home with Python's current home finding logic." msgstr "یک ساخت و آزمون عادی با این موقعیت مواجه نمی‌شود، اما این حالت ممکن است هنگامی رخ دهد که تلاش می‌کنید بدنه‌ی آزمون‌های کتابخانه استاندارد را از مفسری اجرا کنید که با منطق فعلی پایتون در یافتن خانه (home)، خانه‌ی مشخصی ندارد." -#, fuzzy -#| msgid "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are other common environment variables that might impact whether or not the interpreter can start." msgid "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONNOUSERSITE` are other common environment variables that might impact whether or not the interpreter can start." -msgstr "تنظیم :envvar:`PYTHONHOME` یکی از راه‌ها برای اجرای بیشتر مجموعه‌آزمون در آن شرایط است. :envvar:`PYTHONPATH` یا :envvar:`PYTHONUSERSITE` متغیرهای محیطی رایج دیگری هستند که ممکن است بر اینکه مفسر بتواند آغاز شود یا نه تأثیر بگذارند." +msgstr "تنظیم :envvar:`PYTHONHOME` یکی از راه‌هایی است که باعث می‌شود بیشتر مجموعه آزمون در آن وضعیت اجرا شود. :envvar:`PYTHONPATH` یا :envvar:`PYTHONNOUSERSITE` دیگر متغیرهای محیطی رایجی هستند که ممکن است روی توانایی مفسر در شروع به کار تأثیر بگذارند." msgid "Set up the environment based on *env_vars* for running the interpreter in a subprocess. The values can include ``__isolated``, ``__cleanenv``, ``__cwd``, and ``TERM``." msgstr "محیط را بر اساس *env_vars* برای اجرای مفسر در یک زیرفرایند تنظیم کنید. مقادیر می‌توانند شامل ``__isolated``، ``__cleanenv``، ``__cwd`` و ``TERM`` باشند." @@ -1171,10 +1163,8 @@ msgstr "ماژول :mod:`!test.support.import_helper` پشتیبانی برای msgid "Remove the module named *module_name* from ``sys.modules`` and delete any byte-compiled files of the module." msgstr "ماژول با نام *module_name* را از ``sys.modules`` حذف کنید و هرگونه پرونده کامپایل‌شده به بایت آن ماژول را پاک کنید." -#, fuzzy -#| msgid "This function imports and returns a fresh copy of the named Python module by removing the named module from ``sys.modules`` before doing the import. Note that unlike :func:`reload`, the original module is not affected by this operation." msgid "This function imports and returns a fresh copy of the named Python module by removing the named module from ``sys.modules`` before doing the import. Note that unlike :func:`importlib.reload`, the original module is not affected by this operation." -msgstr "این تابع با حذف ماژول نام‌برده‌شده از ``sys.modules`` پیش از انجام ایمپورت، یک نسخه‌ی تازه از ماژول پایتون نام‌برده‌شده را ایمپورت می‌کند و برمی‌گرداند. توجه داشته باشید که برخلاف :func:`reload`، ماژول اصلی تحت تأثیر این عملیات قرار نمی‌گیرد." +msgstr "این تابع با حذف کردن ماژول نام‌برده از ``sys.modules`` پیش از انجام عمل ایمپورت، یک نسخه‌ی تازه از آن ماژول نام‌برده را ایمپورت کرده و برمی‌گرداند. توجه داشته باشید که برخلاف :func:`importlib.reload`، ماژول اصلی تحت تأثیر این عملیات قرار نمی‌گیرد." msgid "*fresh* is an iterable of additional module names that are also removed from the ``sys.modules`` cache before doing the import." msgstr "*fresh* یک پیمایش‌پذیر از نام‌های ماژول اضافی است که همچنین پیش از انجام ایمپورت از نهانگاه ``sys.modules`` حذف می‌شوند." @@ -1283,7 +1273,7 @@ msgid "In this case all warnings are caught and no errors are raised." msgstr "در این حالت، همه‌ی هشدارها گرفته می‌شوند و هیچ خطایی پرتاب نمی‌شود." msgid "On entry to the context manager, a :class:`WarningsRecorder` instance is returned. The recorded warnings are available via its :attr:`~WarningsRecorder.warnings` attribute, and its :meth:`~WarningsRecorder.reset` method discards previously recorded warnings." -msgstr "" +msgstr "هنگام ورود به مدیر زمینه، یک نمونه از :class:`WarningsRecorder` برگردانده می‌شود. هشدارهای ضبط‌شده از طریق ویژگی :attr:`~WarningsRecorder.warnings` آن در دسترس هستند و متد :attr:`~WarningsRecorder.reset` آن هشدارهای ضبط‌شده‌ی قبلی را دور می‌اندازد." msgid "The context manager is designed to be used like this::" msgstr "این مدیر زمینه به‌گونه‌ای طراحی شده است که به این شکل استفاده شود::" @@ -1305,17 +1295,6 @@ msgstr "در این حالت، اگر هر یک از هشدارها پرتاب msgid "When a test needs to look more deeply into the warnings, rather than just checking whether or not they occurred, code like this can be used::" msgstr "هنگامی که یک آزمون نیاز دارد به‌جای بررسی صرف اینکه هشدارها رخ داده‌اند یا خیر، آن‌ها را عمیق‌تر بررسی کند، می‌توان از کدی مانند این استفاده کرد::" -#, fuzzy -#| msgid "" -#| "with check_warnings(quiet=True) as w:\n" -#| " warnings.warn(\"foo\")\n" -#| " assert str(w.args[0]) == \"foo\"\n" -#| " warnings.warn(\"bar\")\n" -#| " assert str(w.args[0]) == \"bar\"\n" -#| " assert str(w.warnings[0].args[0]) == \"foo\"\n" -#| " assert str(w.warnings[1].args[0]) == \"bar\"\n" -#| " w.reset()\n" -#| " assert len(w.warnings) == 0" msgid "" "with check_warnings(quiet=True) as w:\n" " warnings.warn(\"foo\")\n" @@ -1329,11 +1308,11 @@ msgid "" msgstr "" "with check_warnings(quiet=True) as w:\n" " warnings.warn(\"foo\")\n" -" assert str(w.args[0]) == \"foo\"\n" +" assert str(w.message) == \"foo\"\n" " warnings.warn(\"bar\")\n" -" assert str(w.args[0]) == \"bar\"\n" -" assert str(w.warnings[0].args[0]) == \"foo\"\n" -" assert str(w.warnings[1].args[0]) == \"bar\"\n" +" assert str(w.message) == \"bar\"\n" +" assert str(w.warnings[0].message) == \"foo\"\n" +" assert str(w.warnings[1].message) == \"bar\"\n" " w.reset()\n" " assert len(w.warnings) == 0" @@ -1344,16 +1323,16 @@ msgid "New optional arguments *filters* and *quiet*." msgstr "آرگومان‌های اختیاری جدید *filters* و *quiet*." msgid "Class used to record warnings for unit tests. Wraps the warnings list returned by :func:`warnings.catch_warnings` when recording is enabled. :func:`check_warnings` returns an instance of this class." -msgstr "" +msgstr "کلاسی که برای ثبت هشدارها برای آزمون‌های واحد استفاده می‌شود. هنگامی که ثبت هشدار فعال است، فهرست هشدارهای برگردانده‌شده توسط :func:`warnings.catch_warnings` را دربرمی‌گیرد. تابع :func:`check_warnings` نمونه‌ای از این کلاس را برمی‌گرداند." msgid "As a convenience, the attributes of the object representing the most recent warning can also be accessed directly through the recorder object. If no warning has been raised since the recorder was created or last reset, these attributes return ``None``." -msgstr "" +msgstr "به عنوان یک امکان رفاهی، ویژگی‌های شیء نماینده‌ی جدیدترین هشدار را نیز می‌توان مستقیماً از طریق شیء ثبت‌کننده (recorder) دسترسی داشت. اگر از زمان ایجاد یا آخرین بازنشانی ثبت‌کننده هیچ هشداری صادر نشده باشد، این ویژگی‌ها مقدار ``None`` را برمی‌گردانند." msgid "A list of warnings recorded since the recorder was created or last reset." -msgstr "" +msgstr "فهرستی از هشدارهای ثبت‌شده از زمان ایجاد یا آخرین بازنشانی ثبت‌کننده." msgid "Discard previously recorded warnings from the recorder's view. The underlying warnings list is not modified." -msgstr "" +msgstr "هشدار‌های ضبط‌شده‌ی قبلی را از نمای (view) recorder حذف کنید. فهرست (list) هشدار‌های زیرین تغییر نمی‌کند." #~ msgid "Return :const:`_testcapi.WITH_PYMALLOC`." #~ msgstr ":const:`_testcapi.WITH_PYMALLOC` را برمی‌گرداند." diff --git a/library/tkinter.po b/library/tkinter.po index 04fda098c..eb0690f73 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -760,38 +760,32 @@ msgstr "برای مجموعه کامل متدهای مدیر پنجره، :class msgid "Tk option data types" msgstr "انواع داده‌ی گزینه‌های Tk" -#, fuzzy -#| msgid "Many widget options documented in the reference accept values of a small number of common types, described here." msgid "Many widget options documented in the reference accept values of a small number of common types, described here. The standard options and their types are described in the :manpage:`options(3tk)` manual page." -msgstr "بسیاری از گزینه‌های ابزارک که در مرجع مستند شده‌اند، مقادیری از تعداد اندکی از انواع رایج را می‌پذیرند که در اینجا توضیح داده شده‌اند." +msgstr "بسیاری از گزینه‌های ابزارک مستندشده در بخش ارجاع، مقادیری از تعداد کمی از انواع متداول را می‌پذیرند که در اینجا توصیف شده‌اند. گزینه‌های استاندارد و انواع آن‌ها در صفحه‌ی راهنمای :manpage:`options(3tk)` شرح داده شده‌اند." msgid "anchor" msgstr "لنگر" msgid "Legal values are points of the compass: ``\"n\"``, ``\"ne\"``, ``\"e\"``, ``\"se\"``, ``\"s\"``, ``\"sw\"``, ``\"w\"``, ``\"nw\"``, and also ``\"center\"``. The *labelanchor* option of :class:`LabelFrame` and :class:`ttk.LabelFrame ` accepts also ``\"en\"``, ``\"es\"``, ``\"wn\"`` and ``\"ws\"``. The *sticky* option of the grid geometry manager accepts a combination of the compass directions, such as ``\"nsew\"``, or an empty string." -msgstr "" +msgstr "مقادیر مجاز جهات قطب‌نما هستند: ``\"n\"``، ``\"ne\"``، ``\"e\"``، ``\"se\"``، ``\"s\"``، ``\"sw\"``، ``\"w\"``، ``\"nw\"`` و همچنین ``\"center\"``. گزینه‌ی *labelanchor* در کلاس‌های :class:`LabelFrame` و :class:`ttk.LabelFrame ` مقادیر ``\"en\"``، ``\"es\"``، ``\"wn\"`` و ``\"ws\"`` را نیز می‌پذیرد. گزینه‌ی *sticky* در مدیر هندسه‌ی شبکه ترکیبی از جهت‌های قطب‌نما مانند ``\"nsew\"`` یا یک رشته‌ی خالی را می‌پذیرد." msgid "bitmap" msgstr "بیت‌مپ" -#, fuzzy -#| msgid "There are ten built-in, named bitmaps: ``'error'``, ``'gray12'``, ``'gray25'``, ``'gray50'``, ``'gray75'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, ``'warning'``. To specify an X bitmap filename, give the full path to the file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgid "There are ten built-in, named bitmaps: ``'error'``, ``'gray12'``, ``'gray25'``, ``'gray50'``, ``'gray75'``, ``'hourglass'``, ``'info'``, ``'questhead'``, ``'question'``, ``'warning'``. On macOS the following bitmaps are available as well: ``'application'``, ``'accessory'``, ``'folder'``, ``'pfolder'``, ``'trash'``, ``'floppy'``, ``'ramdisk'``, ``'cdrom'``, ``'preferences'``, ``'querydoc'``, ``'stop'``, ``'note'`` and ``'caution'``. To specify an X bitmap file, give the full path to the file, preceded with an ``@``, as in ``\"@/usr/contrib/bitmap/gumby.bit\"``." -msgstr "ده بیت‌مپ توکار نام‌دار وجود دارد: ``'error'``، ``'gray12'``، ``'gray25'``، ``'gray50'``، ``'gray75'``، ``'hourglass'``، ``'info'``، ``'questhead'``، ``'question'``، ``'warning'``. برای مشخص کردن نام پرونده یک بیت‌مپ X، مسیر کامل پرونده را با یک ``@`` پیش از آن وارد کنید، مانند ``\"@/usr/contrib/bitmap/gumby.bit\"``." +msgstr "ده بیت‌مپ توکار و نام‌گذاری‌شده وجود دارد: ``'error'``، ``'gray12'``، ``'gray25'``، ``'gray50'``، ``'gray75'``، ``'hourglass'``، ``'info'``، ``'questhead'``، ``'question'``، ``'warning'``. در سیستم‌عامل macOS نیز بیت‌مپ‌های زیر در دسترس هستند: ``'application'``، ``'accessory'``، ``'folder'``، ``'pfolder'``، ``'trash'``، ``'floppy'``، ``'ramdisk'``، ``'cdrom'``، ``'preferences'``، ``'querydoc'``، ``'stop'``، ``'note'`` و ``'caution'``. برای مشخص کردن یک پرونده‌ی بیت‌مپ X، مسیر کامل پرونده را بدهید که پیش از آن یک ``@`` قرار گرفته باشد، مانند ``\"@/usr/contrib/bitmap/gumby.bit\"``." msgid "boolean" msgstr "بولی" msgid "You can pass the integers 0 or 1, ``True`` or ``False``, or the strings ``\"0\"``, ``\"1\"``, ``\"yes\"``, ``\"no\"``, ``\"true\"``, ``\"false\"``, ``\"on\"`` or ``\"off\"``. The strings are matched ignoring case, and an unambiguous prefix, such as ``\"t\"``, is enough. Any non-zero integer means true." -msgstr "" +msgstr "می‌توانید اعداد صحیح ۰ یا ۱، ``True`` یا ``False``، یا رشته‌های ``\"0\"``، ``\"1\"``، ``\"yes\"``، ``\"no\"``، ``\"true\"``، ``\"false\"``، ``\"on\"`` یا ``\"off\"`` را ارسال کنید. تطبیق رشته‌ها با صرف‌نظر از بزرگ و کوچک بودن حروف انجام می‌شود و یک پیشوند غیرمبهم، مانند ``\"t\"``، کافی است. هر عدد صحیح غیرصفری به معنای درست است." msgid "callback" msgstr "کال‌بک" -#, fuzzy -#| msgid "This is any Python function that takes no arguments. For example::" msgid "This is any callable object. Most callbacks take no arguments. For example::" -msgstr "این هر تابع پایتونی است که هیچ آرگومانی نمی‌گیرد. برای مثال::" +msgstr "این هر شیء فراخوانی‌پذیری است. بیشتر کال‌بک‌ها هیچ آرگومانی نمی‌پذیرند. برای نمونه::" msgid "" "def print_it():\n" @@ -803,21 +797,19 @@ msgstr "" "fred[\"command\"] = print_it" msgid "Some options call it with arguments, such as the *command* option of :class:`Scale`, which is called with the new value." -msgstr "" +msgstr "برخی گزینه‌ها آن را با آرگومان‌هایی فراخوانی می‌کنند، مانند گزینه‌ی *command* در کلاس :class:`Scale` که با مقدار جدید فراخوانی می‌شود." msgid "color" msgstr "رنگ" msgid "Colors can be given as symbolic names, such as ``\"red\"`` or ``\"light blue\"``, or as strings representing RGB values in 4 bit: ``\"#RGB\"``, 8 bit: ``\"#RRGGBB\"``, 12 bit: ``\"#RRRGGGBBB\"``, or 16 bit: ``\"#RRRRGGGGBBBB\"`` ranges, where R,G,B here represent any legal hex digit. Tk provides a portable set of symbolic names available on all platforms; they are matched ignoring case and spaces, so ``\"light blue\"``, ``\"Light Blue\"`` and ``\"lightblue\"`` are the same color. The full list of names, including the platform-specific names of the current system colors (for example ``\"systemButtonFace\"`` on Windows or ``\"systemWindowBody\"`` on macOS), is given in the :manpage:`colors(3tk)` manual page. :meth:`~tkinter.Misc.winfo_rgb` returns the red, green and blue components of a color." -msgstr "" +msgstr "رنگ‌ها را می‌توان به صورت نام‌های نمادین، مانند ``\"red\"`` یا ``\"light blue\"``، یا به صورت رشته‌هایی که مقادیر RGB را در محدوده‌های ۴ بیتی: ``\"#RGB\"``، ۸ بیتی: ``\"#RRGGBB\"``، ۱۲ بیتی: ``\"#RRRGGGBBB\"`` یا ۱۶ بیتی: ``\"#RRRRGGGGBBBB\"`` نشان می‌دهند، ارائه کرد که در اینجا R ،G و B نمایانگر هر رقم هگز مجاز هستند. کتابخانه‌ی Tk مجموعه‌ی قابل‌حملی از نام‌های نمادین را فراهم می‌کند که در تمام پلتفرم‌ها در دسترس هستند؛ تطبیق آن‌ها با صرف‌نظر از بزرگی و کوچکی حروف و فاصله‌ها انجام می‌شود، بنابراین ``\"light blue\"``، ``\"Light Blue\"`` و ``\"lightblue\"`` یک رنگ هستند. فهرست کامل نام‌ها، از جمله نام‌های مختص پلتفرمِ رنگ‌های سیستم فعلی (برای نمونه ``\"systemButtonFace\"`` در ویندوز یا ``\"systemWindowBody\"`` در macOS)، در صفحه‌ی راهنمای :manpage:`colors(3tk)` آمده است. متد :meth:`~tkinter.Misc.winfo_rgb` اجزای قرمز، سبز و آبی یک رنگ را برمی‌گرداند." -#, fuzzy -#| msgid "*compound*" msgid "compound" -msgstr "*compound*" +msgstr "compound" msgid "Determines how to combine an image and a text displayed in a widget. Legal values are ``\"none\"`` (display the image if there is one, otherwise the text), ``\"text\"``, ``\"image\"``, ``\"center\"`` (display the text in the center of the image) and ``\"top\"``, ``\"bottom\"``, ``\"left\"``, ``\"right\"`` (display the image above, below, to the left of or to the right of the text). The themed widgets accept all these values, the classic widgets accept all except ``\"text\"`` and ``\"image\"``." -msgstr "" +msgstr "تعیین می‌کند که چگونه یک تصویر و یک متن نمایش‌داده‌شده در یک ابزارک با یکدیگر ترکیب شوند. مقادیر مجاز عبارتند از ``\"none\"`` (نمایش تصویر در صورت وجود، در غیر این صورت متن)، ``\"text\"``، ``\"image\"``، ``\"center\"`` (نمایش متن در مرکز تصویر) و ``\"top\"``، ``\"bottom\"``، ``\"left\"``، ``\"right\"`` (نمایش تصویر در بالا، پایین، سمت چپ یا سمت راست متن). ابزارک‌های پوسته‌ای تمام این مقادیر را می‌پذیرند، ابزارک‌های کلاسیک همه به جز ``\"text\"`` و ``\"image\"`` را می‌پذیرند." msgid "cursor" msgstr "مکان‌نما" @@ -834,10 +826,8 @@ msgstr "فاصله‌های صفحه را می‌توان به‌صورت پیک msgid "font" msgstr "قلم" -#, fuzzy -#| msgid "Tk uses a font description such as ``{courier 10 bold}``; in :mod:`!tkinter` this is most naturally passed as a tuple of ``(family, size, *styles)`` (or as the equivalent string ``\"Courier 10 bold\"``). Font sizes with positive numbers are measured in points; sizes with negative numbers are measured in pixels." msgid "Tk uses a font description such as ``{courier 10 bold}``; in :mod:`!tkinter` this is most naturally passed as a tuple of ``(family, size, *styles)`` (or as the equivalent string ``\"Courier 10 bold\"``). Font sizes with positive numbers are measured in points; sizes with negative numbers are measured in pixels. The name of a named font, such as ``\"TkDefaultFont\"``, a :class:`tkinter.font.Font` instance, or, on X11, an XLFD font name can be used as well." -msgstr "Tk از یک توصیف قلم مانند ``{courier 10 bold}`` استفاده می‌کند؛ در :mod:`!tkinter` این مورد به‌طور طبیعی به‌صورت تاپلی از ``(family, size, *styles)`` (یا به‌صورت رشته‌ی معادل ``\"Courier 10 bold\"``) ارسال می‌شود. اندازه‌های قلم با اعداد مثبت بر حسب نقطه اندازه‌گیری می‌شوند؛ اندازه‌ها با اعداد منفی بر حسب پیکسل اندازه‌گیری می‌شوند." +msgstr "کتابخانه‌ی Tk از توصیف قلمی مانند ``{courier 10 bold}`` استفاده می‌کند؛ در ماژول :mod:`!tkinter` این کار به‌طور طبیعی‌تر به صورت یک تاپل از ``(family, size, *styles)`` (یا به صورت رشته‌ی معادل ``\"Courier 10 bold\"``) ارسال می‌شود. اندازه‌های قلم با اعداد مثبت بر اساس نقطه (point) اندازه‌گیری می‌شوند؛ اندازه‌ها با اعداد منفی بر اساس پیکسل اندازه‌گیری می‌شوند. نام یک قلم نام‌گذاری‌شده، مانند ``\"TkDefaultFont\"``، یک نمونه از :class:`tkinter.font.Font`، یا در X11، نام یک قلم XLFD نیز می‌تواند استفاده شود." msgid "justify" msgstr "تراز کردن" @@ -846,26 +836,22 @@ msgid "Legal values are the strings: ``\"left\"``, ``\"center\"``, and ``\"right msgstr "مقادیر مجاز، رشته‌های زیر هستند: ``\"left\"``، ``\"center\"`` و ``\"right\"``." msgid "orient" -msgstr "" +msgstr "جهت" -#, fuzzy -#| msgid "Legal values are the strings: ``\"left\"``, ``\"center\"``, and ``\"right\"``." msgid "Legal values are ``\"horizontal\"`` and ``\"vertical\"``." -msgstr "مقادیر مجاز، رشته‌های زیر هستند: ``\"left\"``، ``\"center\"`` و ``\"right\"``." +msgstr "مقادیر مجاز عبارتند از ``\"horizontal\"`` و ``\"vertical\"``." msgid "padding" -msgstr "" +msgstr "پُرکننده" msgid "This is a legal distance (see above), applied on all sides, or a sequence of up to four distances specifying the left, top, right and bottom padding. If fewer than four are specified, the bottom padding defaults to the top one, the right one to the left one, and the top one to the left one. It is only supported by the themed widgets." -msgstr "" +msgstr "این یک فاصله‌ی مجاز (مشاهده در بالا) است که در تمام طرف‌ها اعمال می‌شود، یا دنباله‌ای از حداکثر چهار فاصله است که پُرکننده‌ی چپ، بالا، راست و پایین را مشخص می‌کند. اگر کمتر از چهار مقدار مشخص شود، پُرکننده‌ی پایین به صورت پیش‌فرض از مقدار بالایی، پُرکننده‌ی راست از چپ، و پُرکننده‌ی بالا از چپ پیروی می‌کند. این گزینه فقط توسط ابزارک‌های پوسته‌بندی‌شده پشتیبانی می‌شود." msgid "region" msgstr "ناحیه" -#, fuzzy -#| msgid "This is a string with four space-delimited elements, each of which is a legal distance (see above). For example: ``\"2 3 4 5\"`` and ``\"3i 2i 4.5i 2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." msgid "Used for the *scrollregion* option of :class:`Canvas`. This is a string with four space-delimited elements, each of which is a legal distance (see above), or a sequence of four such elements. For example: ``\"2 3 4 5\"``, ``(2, 3, 4, 5)``, ``\"3i 2i 4.5i 2i\"`` and ``\"3c 2c 4c 10.43c\"`` are all legal regions." -msgstr "این یک رشته با چهار عنصر جداشده با فاصله است که هر کدام یک فاصله‌ی معتبر است (بالا را ببینید). برای مثال: ``\"2 3 4 5\"`` و ``\"3i 2i 4.5i 2i\"`` و ``\"3c 2c 4c 10.43c\"`` همگی ناحیه‌های معتبر هستند." +msgstr "برای گزینه‌ی *scrollregion* در :class:`Canvas` استفاده می‌شود. این یک رشته با چهار عنصر جداشده با فاصله است که هر کدام یک فاصله‌ی مجاز (مشاهده در بالا) یا دنباله‌ای از چهار عنصر این‌چینی است. برای مثال: ``\"2 3 4 5\"``، ``(2, 3, 4, 5)``، ``\"3i 2i 4.5i 2i\"`` و ``\"3c 2c 4c 10.43c\"`` همگی ناحیه‌های مجازی هستند." msgid "relief" msgstr "برجستگی" @@ -883,13 +869,13 @@ msgid "state" msgstr "وضعیت" msgid "Legal values are ``\"normal\"``, ``\"disabled\"`` and, depending on the widget, also ``\"active\"``, ``\"hidden\"`` (for :class:`Canvas` items) or ``\"readonly\"`` (for :class:`Entry`, :class:`Spinbox` and the themed widgets). The themed widgets have in addition a more general set of states, which is manipulated with :meth:`ttk.Widget.state `." -msgstr "" +msgstr "مقادیر مجاز عبارتند از ``\"normal\"``، ``\"disabled\"`` و بسته به ابزارک، همچنین ``\"active\"``، ``\"hidden\"`` (برای آیتم‌های :class:`Canvas`) یا ``\"readonly\"`` (برای :class:`Entry`، :class:`Spinbox` و ابزارک‌های پوسته‌بندی‌شده). ابزارک‌های پوسته‌بندی‌شده علاوه بر این دارای مجموعه‌ی عمومی‌تری از وضعیت‌ها هستند که با :meth:`ttk.Widget.state ` دستکاری می‌شوند." msgid "wrap" msgstr "دربرگرفتن" msgid "Must be one of ``\"none\"``, ``\"char\"`` or ``\"word\"`` for the :class:`Text` widget and its tags; for a tag an empty string means to use the widget's value." -msgstr "" +msgstr "برای ابزارک :class:`Text` و برچسب‌های آن باید یکی از مقادیر ``\"none\"``، ``\"char\"`` یا ``\"word\"`` باشد؛ برای یک برچسب، رشته‌ی خالی به معنای استفاده از مقدار ابزارک است." msgid "Bindings and events" msgstr "اتصال‌ها و رویدادها" @@ -1172,10 +1158,8 @@ msgstr ":meth:`config` نام مستعار :meth:`!configure` است." msgid "Return a list of the names of all configuration options of this widget." msgstr "فهرستی از نام‌های تمام گزینه‌های پیکربندی این ابزارک را برمی‌گرداند." -#, fuzzy -#| msgid "Interpret the string *s* as a Tcl boolean and return the corresponding :class:`bool`. Tcl accepts values such as ``'1'``, ``'0'``, ``'yes'``, ``'no'``, ``'true'`` and ``'false'``. Raise :exc:`ValueError` if *s* is not a valid boolean." msgid "Interpret the string *s* as a Tcl boolean and return the corresponding :class:`bool`. Tcl accepts values such as ``'1'``, ``'0'``, ``'yes'``, ``'no'``, ``'true'``, ``'false'``, ``'on'`` and ``'off'``. Raise :exc:`ValueError` if *s* is not a valid boolean." -msgstr "رشته *s* را به‌عنوان یک بولی Tcl تفسیر می‌کند و :class:`bool` متناظر را برمی‌گرداند. Tcl مقادیری مانند ``'1'``، ``'0'``، ``'yes'``، ``'no'``، ``'true'`` و ``'false'`` را می‌پذیرد. اگر *s* یک بولی معتبر نباشد، :exc:`ValueError` را پرتاب می‌کند." +msgstr "رشته‌ی *s* را به عنوان یک مقدار بولی Tcl تفسیر کرده و :class:`bool` متناظر را برمی‌گرداند. Tcl مقادیری مانند ``'1'``، ``'0'``، ``'yes'``، ``'no'``، ``'true'``، ``'false'``، ``'on'`` و ``'off'`` را می‌پذیرد. اگر *s* یک مقدار بولی معتبر نباشد، استثنای :exc:`ValueError` را بالا بیاورید." msgid "Interpret the string *s* as a Tcl floating-point number and return it as a :class:`float`. Raise :exc:`ValueError` if *s* is not a valid number." msgstr "رشته‌ی *s* را به‌عنوان یک عدد ممیز شناور Tcl تفسیر می‌کند و آن را به‌صورت یک :class:`float` برمی‌گرداند. اگر *s* یک عدد معتبر نباشد، :exc:`ValueError` پرتاب می‌شود." @@ -1616,10 +1600,8 @@ msgstr "اگر ابزارک وجود داشته باشد، مقدار true و د msgid "Return a floating-point value giving the number of pixels in the widget corresponding to the screen distance *number* (for example, ``\"2.0c\"`` or ``\"1i\"``). The result may be fractional; for a rounded integer value use :meth:`winfo_pixels`." msgstr "یک مقدار ممیز شناور برمی‌گرداند که تعداد پیکسل‌های ابزارک معادل فاصله‌ی صفحه‌نمایش *number* را نشان می‌دهد (برای مثال، ``\"2.0c\"`` یا ``\"1i\"``). نتیجه ممکن است کسری باشد؛ برای یک مقدار عدد صحیح گرد شده از :meth:`winfo_pixels` استفاده کنید." -#, fuzzy -#| msgid "Return the geometry of the widget, in the form ``widthxheight+x+y``. All dimensions are in pixels. An offset can be negative; see :meth:`~Wm.geometry`." msgid "Return the geometry of the widget, in the form ``widthxheight+x+y``. All dimensions are in pixels. The position is relative to the parent widget; use :meth:`winfo_rootx` and :meth:`winfo_rooty` for the position on the screen. An offset can be negative; see :meth:`~Wm.geometry`." -msgstr "هندسه‌ی ابزارک را به‌صورت ``widthxheight+x+y`` برمی‌گرداند. تمام ابعاد بر حسب پیکسل هستند. یک آفست می‌تواند منفی باشد؛ به :meth:`~Wm.geometry` مراجعه کنید." +msgstr "هندسه‌ی ابزارک را در قالب ``widthxheight+x+y`` برمی‌گرداند. تمام ابعاد بر حسب پیکسل هستند. موقعیت نسبت به ابزارک والد است؛ برای موقعیت روی صفحه از :meth:`winfo_rootx` و :meth:`winfo_rooty` استفاده کنید. یک آفست می‌تواند منفی باشد؛ :meth:`~Wm.geometry` را ببینید." msgid "Return the height of the widget in pixels. When a window is first created its height is 1 pixel; it is eventually changed by a geometry manager. See also :meth:`winfo_reqheight`." msgstr "ارتفاع ابزارک را بر حسب پیکسل برمی‌گرداند. هنگامی که یک پنجره برای نخستین بار ایجاد می‌شود، ارتفاع آن ۱ پیکسل است؛ این مقدار در نهایت توسط یک مدیر چیدمان تغییر می‌کند. همچنین :meth:`winfo_reqheight` را ببینید." @@ -2179,10 +2161,8 @@ msgstr "موقعیت افقی نما را دریافت یا تغییر می‌د msgid "Adjust the view so that *fraction* of the total width of the document is off-screen to the left. *fraction* is a number between 0 and 1." msgstr "نما را به‌گونه‌ای تنظیم کنید که *fraction* از عرض کل سند در سمت چپ، خارج از صفحه قرار گیرد. *fraction* عددی بین ۰ و ۱ است." -#, fuzzy -#| msgid "Shift the view left or right by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls left and a positive one scrolls right." msgid "Shift the view left or right by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls left and a positive one scrolls right. The :class:`Text` widget accepts also ``'pixels'``, and then *number* can be a screen distance, such as ``'1i'``." -msgstr "نما را به اندازه‌ی *number* واحد به چپ یا راست جابه‌جا کنید. *what* می‌تواند ``'units'`` یا ``'pages'`` باشد؛ *number* منفی باعث پیمایش به چپ و *number* مثبت باعث پیمایش به راست می‌شود." +msgstr "نما را به اندازه‌ی *number* واحد به چپ یا راست جابه‌جا کنید. *what* یا ``'units'`` است یا ``'pages'``؛ مقدار منفی *number* به چپ اسکرول می‌کند و مقدار مثبت به راست اسکرول می‌کند. ابزارک :class:`Text` همچنین ``'pixels'`` را می‌پذیرد و در این صورت *number* می‌تواند یک فاصله‌ی روی صفحه مانند ``'1i'`` باشد." msgid "Mix-in providing the vertical-scrolling interface shared by widgets such as :class:`Canvas`, :class:`Listbox` and :class:`Text`. A widget's :meth:`yview` method is registered as the *command* of a vertical :class:`Scrollbar`." msgstr "میکس‌اینرابط پیمایش عمودی مشترک میان ابزارک‌هایی مانند :class:`Canvas`، :class:`Listbox` و :class:`Text` را فراهم می‌کند. متد :meth:`yview` یک ابزارک به‌عنوان *فرمان* یک :class:`Scrollbar` عمودی ثبت می‌شود." @@ -2193,10 +2173,8 @@ msgstr "موقعیت عمودی نما را پرس‌وجو می‌کند یا msgid "Adjust the view so that *fraction* of the total height of the document is off-screen above the top. *fraction* is a number between 0 and 1." msgstr "نما را طوری تنظیم کنید که *fraction* از ارتفاع کل سند در بالای صفحه خارج از دید باشد. *fraction* عددی بین ۰ و ۱ است." -#, fuzzy -#| msgid "Shift the view up or down by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls up and a positive one scrolls down." msgid "Shift the view up or down by *number* units. *what* is either ``'units'`` or ``'pages'``; a negative *number* scrolls up and a positive one scrolls down. The :class:`Text` widget accepts also ``'pixels'``, and then *number* can be a screen distance, such as ``'1i'``." -msgstr "نما را به اندازه‌ی *number* واحد به بالا یا پایین جابه‌جا کنید. *what* یکی از ``'units'`` یا ``'pages'`` است؛ *number* منفی به بالا پیمایش می‌کند و مقدار مثبت به پایین پیمایش می‌کند." +msgstr "نما را به اندازه‌ی *number* واحد به بالا یا پایین جابه‌جا کنید. *what* یا ``'units'`` است یا ``'pages'``؛ مقدار منفی *number* به بالا اسکرول می‌کند و مقدار مثبت به پایین اسکرول می‌کند. ابزارک :class:`Text` همچنین ``'pixels'`` را می‌پذیرد و در این صورت *number* می‌تواند یک فاصله‌ی روی صفحه مانند ``'1i'`` باشد." msgid "Internal base class for all widgets. It inherits from :class:`Misc` and adds the machinery that creates the underlying Tk widget; application code normally uses :class:`Widget` or a concrete widget class rather than instantiating :class:`!BaseWidget` directly." msgstr "کلاس پایه‌ی داخلی برای همه‌ی ابزارک‌ها. این کلاس از :class:`Misc` ارث‌بری می‌کند و سازوکار ایجاد ابزارک Tk زیربنایی را می‌افزاید؛ کد برنامه معمولاً به‌جای نمونه‌سازی مستقیم :class:`!BaseWidget` از :class:`Widget` یا یک کلاس ابزارک مشخص استفاده می‌کند." @@ -2543,10 +2521,8 @@ msgstr "اندازه‌ای که باید به پنجره اختصاص داده msgid "``oval`` and ``rectangle`` items have no type-specific options; they use only the standard item options." msgstr "آیتم‌های ``oval`` و ``rectangle`` گزینه‌های مختص نوع ندارند؛ آن‌ها فقط از گزینه‌های استاندارد آیتم استفاده می‌کنند." -#, fuzzy -#| msgid "Tk 8.6 added the *angle* option and Tk 9.0 added the *underline* option for ``text`` items." msgid "Tk 8.6 added the *angle* option for ``text`` items." -msgstr "گزینه‌ی *angle* در Tk 8.6 و گزینه‌ی *underline* در Tk 9.0 برای آیتم‌های ``text`` افزوده شدند." +msgstr "نسخه‌ی Tk 8.6 گزینه‌ی *angle* را برای آیتم‌های ``text`` اضافه کرد." msgid "Query or modify the coordinates of an item. With only *tagOrId*, return a list of the floating-point coordinates of the item given by *tagOrId* (the first matching item if it matches several). Given new coordinates, replace the coordinates of that item with them; like the ``create_*`` methods, the coordinates may be given as separate numbers, as a single sequence, or as coordinate pairs. The returned coordinates are always in pixels, regardless of the units used to specify them; for rectangles, ovals and arcs they are ordered left, top, right, bottom." msgstr "مختصات یک آیتم را بازیابی یا تغییر دهید. اگر تنها *tagOrId* داده شود، فهرستی از مختصات ممیز شناور آیتم مشخص‌شده با *tagOrId* برمی‌گرداند (اولین آیتم منطبق، اگر چندین آیتم منطبق وجود داشته باشد). اگر مختصات جدید داده شود، مختصات آن آیتم با آن‌ها جایگزین می‌شود؛ مانند متدهای ``create_*``، می‌توان مختصات را به‌صورت اعداد جداگانه، به‌صورت یک دنباله واحد، یا به‌صورت جفت‌های مختصات داد. مختصات برگردانده‌شده همیشه بر حسب پیکسل هستند، صرف‌نظر از واحدهای استفاده‌شده برای مشخص کردن آن‌ها؛ برای مستطیل‌ها، بیضی‌ها و کمان‌ها، به ترتیب چپ، بالا، راست، پایین مرتب شده‌اند." @@ -3148,10 +3124,8 @@ msgstr "یک float بین ۰ و ۱ برمی‌گرداند که نشان می‌ msgid "Return the name of the element under the pixel coordinates *x*, *y* (such as ``'arrow1'``), or an empty string if the point does not lie in any element of the scrollbar." msgstr "نام عنصر واقع در مختصات پیکسلی *x*، *y* (مانند ``'arrow1'``) را برمی‌گرداند، یا اگر نقطه در هیچ عنصری از نوار پیمایش قرار نداشته باشد، یک رشته خالی برمی‌گرداند." -#, fuzzy -#| msgid "A :class:`!Spinbox` widget is an :class:`Entry`-like widget with a pair of up/down arrow buttons that let the user step through a range of values in addition to editing the value directly. The set of values may be a numeric range given by the *from_*, *to* and *increment* options, or an explicit list of strings given by the *values* option (which takes precedence over the range). Each time an arrow is invoked the *command* callback, if any, is called; the *wrap* option controls whether stepping past either end of the range wraps around to the other end; the *format* option specifies how numeric values are formatted; and the *validate* option enables validation of the entered text. Inherits from :class:`Widget` and :class:`XView`." msgid "A :class:`!Spinbox` widget is an :class:`Entry`-like widget with a pair of up/down arrow buttons that let the user step through a range of values in addition to editing the value directly. The set of values may be a numeric range given by the *from_*, *to* and *increment* options, or an explicit list of strings given by the *values* option (which takes precedence over the range). Each time an arrow is invoked the *command* callback, if any, is called; the boolean *wrap* option controls whether stepping past either end of the range wraps around to the other end; the *format* option specifies how numeric values are formatted; and the *validate* option enables validation of the entered text. Inherits from :class:`Widget` and :class:`XView`." -msgstr "ابزارک :class:`!Spinbox` یک ابزارک شبیه :class:`Entry` با یک جفت دکمه‌ی پیکان بالا/پایین است که به کاربر امکان می‌دهد علاوه بر ویرایش مستقیم مقدار، یک بازه از مقادیر را گام‌به‌گام بپیماید. مجموعه‌ی مقادیر ممکن است یک بازه عددی تعیین‌شده با گزینه‌های *from_*، *to* و *increment* یا فهرست صریحی از رشته‌ها تعیین‌شده با گزینه *values* باشد (که بر بازه مقدم است). هر بار که یکی از پیکان‌ها فراخوانی شود، کال‌بک *command*، در صورت وجود، فراخوانی می‌شود؛ گزینه *wrap* کنترل می‌کند که آیا با گام برداشتن از فراتر از هر یک از دو سر بازه، مقدار به سر دیگر می‌پیچد یا خیر؛ گزینه *format* مشخص می‌کند که مقادیر عددی چگونه قالب‌بندی می‌شوند؛ و گزینه *validate* اعتبارسنجی متن واردشده را فعال می‌کند. این ابزارک از :class:`Widget` و :class:`XView` ارث می‌برد." +msgstr "یک ابزارک :class:`!Spinbox` ابزارکی شبیه به :class:`Entry` است که یک جفت دکمه‌ی پیکان بالا/پایین دارد و به کاربر اجازه می‌دهد علاوه بر ویرایش مستقیم مقدار، در محدوده‌ای از مقادیر گام بردارد. مجموعه‌ی مقادیر می‌تواند یک بازه‌ی عددی باشد که توسط گزینه‌های *from_*، *to* و *increment* داده شده است، یا یک فهرست صریح از رشته‌ها که توسط گزینه‌ی *values* ارائه شده است (که نسبت به بازه اولویت دارد). هر بار که یک پیکان فراخوانی می‌شود، تابع کال‌بک *command* (در صورت وجود) فراخوانی می‌شود؛ گزینه‌ی بولی *wrap* کنترل می‌کند که آیا عبور از هر انتهای بازه به انتهای دیگر می‌پیچد یا خیر؛ گزینه‌ی *format* نحوه قالب‌بندی مقادیر عددی را مشخص می‌کند؛ و گزینه‌ی *validate* اعتبارسنجی متن واردشده را فعال می‌کند. از :class:`Widget` و :class:`XView` ارث‌بری می‌کند." msgid "With a non-integer *increment*, see :ref:`numeric values and the locale `." msgstr "در صورت غیر عدد صحیح بودن *increment*، :ref:`numeric values and the locale ` را ببینید." @@ -3324,10 +3298,8 @@ msgstr "*offset*" msgid "How far the text is raised above (or, if negative, lowered below) the baseline, for superscripts and subscripts." msgstr "میزانی که متن بالاتر از خط کرسی (یا، اگر منفی باشد، پایین‌تر از آن) قرار می‌گیرد، برای بالانویس‌ها و زیرنویس‌ها." -#, fuzzy -#| msgid "Whether to underline the text." msgid "Whether to underline the text (a boolean)." -msgstr "اینکه آیا متن زیرخط‌دار شود یا خیر." +msgstr "اینکه آیا متن زیرخط‌دار شود (یک مقدار بولی)." msgid "*underlinefg*" msgstr "*underlinefg*" @@ -3458,10 +3430,8 @@ msgstr "یک تاپل از نام‌های همه‌ی تصاویر تعبیه msgid "This shadows the inherited :meth:`Misc.image_names`, which returns the names of all images in the Tcl interpreter; that method is not available on a :class:`Text`." msgstr "این، متد موروثی :meth:`Misc.image_names` را می‌پوشاند، که نام تمام تصاویر در مفسر Tcl را برمی‌گرداند؛ آن متد برای یک :class:`Text` در دسترس نیست." -#, fuzzy -#| msgid "Embed a window (any widget) at *index*. The options, given in *cnf* and *kw*, include *window* (the widget to embed), *create* (a callback that creates the widget on demand), *align*, *stretch*, *padx* and *pady*. The embedded widget must be a descendant of the text widget's parent." msgid "Embed a window (any widget) at *index*. The options, given in *cnf* and *kw*, include *window* (the widget to embed), *create* (a callback that creates the widget on demand), *align*, the boolean *stretch* (whether the widget is stretched vertically to the height of the line), *padx* and *pady*. The embedded widget must be a descendant of the text widget's parent." -msgstr "یک پنجره (هر ابزارکی) را در *index* تعبیه کنید. گزینه‌های داده‌شده در *cnf* و *kw* شامل *window* (ابزارکی که باید تعبیه شود)، *create* (یک کال‌بک که ابزارک را در صورت نیاز ایجاد می‌کند)، *align*، *stretch*، *padx* و *pady* می‌شوند. ابزارک تعبیه‌شده باید زیرمجموعه‌ای از والد ابزارک متنی باشد." +msgstr "یک پنجره (هر ابزارکی) را در *index* تعبیه کنید. گزینه‌های ارائه شده در *cnf* و *kw* عبارتند از *window* (ابزارکی که باید تعبیه شود)، *create* (یک کال‌بک که ابزارک را بر اساس تقاضا ایجاد می‌کند)، *align*، گزینه‌ی بولی *stretch* (اینکه آیا ابزارک به صورت عمودی به ارتفاع سطر کشیده می‌شود یا خیر)، *padx* و *pady*. ابزارک تعبیه‌شده باید فرزندی از والد ابزارک متن باشد." msgid "Return the current value of the configuration option *option* for the embedded window at *index*." msgstr "مقدار فعلی گزینه‌ی پیکربندی *option* را برای پنجره‌ی تعبیه‌شده در اندیس *index* برمی‌گرداند." @@ -3811,10 +3781,8 @@ msgstr "از ایجاد یک پنجره‌ی ریشه‌ی پیش‌فرض ضم msgid "Run the Tk main event loop on the default root window until all windows are destroyed. Equivalent to calling :meth:`Misc.mainloop` on the default root." msgstr "حلقه اصلی رویداد Tk را روی پنجره ریشه پیش‌فرض اجرا کنید تا همه پنجره‌ها نابود شوند. معادل فراخوانی :meth:`Misc.mainloop` روی ریشه پیش‌فرض است." -#, fuzzy -#| msgid "Convert the Tcl boolean string *s* (one of ``'1'``, ``'true'``, ``'yes'``, ``'on'`` and similar, or their false counterparts) to a Python :class:`bool`. Raise :exc:`TclError` for an invalid value." msgid "Convert the Tcl boolean string *s* (one of ``'1'``, ``'true'``, ``'yes'``, ``'on'`` and similar, or their false counterparts) to a Python :class:`bool`. Raise :exc:`ValueError` for an invalid value." -msgstr "رشته‌ی بولی Tcl *s* (یکی از ``'1'``، ``'true'``، ``'yes'``، ``'on'`` و مشابه آن‌ها، یا معادل‌های نادرست آن‌ها) را به :class:`bool` پایتون تبدیل می‌کند. برای یک مقدار نامعتبر، :exc:`TclError` را پرتاب می‌کند." +msgstr "رشته‌ی بولی Tcl یعنی *s* (یکی از ``'1'``، ``'true'``، ``'yes'``، ``'on'`` و موارد مشابه، یا معادل‌های نادرست آن‌ها) را به :class:`bool` پایتون تبدیل کنید. برای یک مقدار نامعتبر، استثنای :exc:`ValueError` را بالا بیاورید." msgid "Convert *s* to a floating-point number. This is the built-in :class:`float`." msgstr "*s* را به یک عدد ممیز شناور تبدیل می‌کند. این همان :class:`float` توکار است." diff --git a/library/turtle.po b/library/turtle.po index 8180cd798..3f2180dbb 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -80,15 +80,13 @@ msgid "If you run into a ``No module named '_tkinter'`` error, you'll have to in msgstr "اگر با خطای ``No module named '_tkinter'`` مواجه شدید، باید :mod:`بسته‌ی رابط Tk ` را روی سیستم خود نصب کنید." msgid "Nothing appears yet. To open the turtle window, make the turtle visible::" -msgstr "" +msgstr "هنوز هیچ چیزی ظاهر نشده است. برای باز کردن پنجره‌ی turtle، لاک‌پشت را نمایان کنید::" -#, fuzzy -#| msgid ">>> turtle.showturtle()" msgid "showturtle()" -msgstr ">>> turtle.showturtle()" +msgstr "showturtle()" msgid "A new window opens, with the turtle in the middle, shown as an arrow heading East." -msgstr "" +msgstr "یک پنجره‌ی جدید باز می‌شود، با یک لاک‌پشت در وسط، که به‌عنوان یک پیکان رو به شرق نمایش داده می‌شود." msgid "Basic drawing" msgstr "ترسیم مقدماتی" @@ -99,10 +97,8 @@ msgstr "لاک‌پشت را ۱۰۰ گام به جلو بفرستید::" msgid "forward(100)" msgstr "forward(100)" -#, fuzzy -#| msgid "You should see (most likely, in a new window on your display) a line drawn by the turtle, heading East. Change the direction of the turtle, so that it turns 120 degrees left (anti-clockwise)::" msgid "You should see a line drawn by the turtle, heading East. Change the direction of the turtle, so that it turns 120 degrees left (anti-clockwise)::" -msgstr "باید (به‌احتمال زیاد، در یک پنجره‌ی جدید روی نمایشگر شما) سطری را ببینید که لاک‌پشت آن را رو به شرق رسم کرده است. جهت لاک‌پشت را تغییر دهید تا ۱۲۰ درجه به چپ (خلاف جهت عقربه‌های ساعت) بچرخد::" +msgstr "باید سطری را ببینید که لاک‌پشت آن را رو به شرق رسم کرده است. جهت لاک‌پشت را تغییر دهید تا ۱۲۰ درجه به چپ (خلاف جهت عقربه‌های ساعت) بچرخد::" msgid "left(120)" msgstr "left(120)" @@ -356,10 +352,10 @@ msgid "a boolean" msgstr "یک بولی" msgid "Teleport, or instantly move, the turtle to an absolute position. Unlike :func:`goto`, no line is drawn. If *x* or *y* is not given, that coordinate is kept as it is. The turtle's heading does not change." -msgstr "" +msgstr "لاک‌پشت (turtle) را به یک موقعیت مطلق منتقل کنید، یا فوراً حرکت دهید. برخلاف :func:`goto`، هیچ خطی رسم نمی‌شود. اگر *x* یا *y* داده نشود، آن مختصات به همان صورت حفظ می‌شود. سردرِ لاک‌پشت (turtle) تغییر نمی‌کند." msgid "If the turtle is filling a shape, the shape drawn so far is finished and filled before teleporting, and filling starts again at the new position. Pass ``fill_gap=True`` to keep filling one shape instead. The teleport then counts as an edge of the shape, as it would with :func:`goto`." -msgstr "" +msgstr "اگر لاک‌پشت (turtle) در حال پر کردن یک شکل باشد، شکل رسم‌شده تا این لحظه، قبل از انتقال کامل شده و پر می‌شود و پر کردن دوباره در موقعیت جدید آغاز می‌شود. برای ادامه‌ی پر کردن یک شکل، ``fill_gap=True`` را ارسال کنید. سپس انتقال مانند :func:`goto` به عنوان یک ضلع از شکل محاسبه می‌شود." msgid "" ">>> tp = turtle.pos()\n" @@ -528,18 +524,14 @@ msgstr "" ">>> turtle.heading()\n" "180.0" -#, fuzzy -#| msgid "an integer or ``None``" msgid "a positive integer or ``None``" -msgstr "یک عدد صحیح یا ``None``" +msgstr "یک عدد صحیح (integer) مثبت یا ``None``" msgid "a colorstring or a numeric color tuple" msgstr "یک رشته‌ی رنگ یا یک تاپل عددی رنگ" -#, fuzzy -#| msgid "Draw a circular dot with diameter *size*, using *color*. If *size* is not given, the maximum of ``pensize+4`` and ``2*pensize`` is used." msgid "Draw a circular dot with diameter *size*, using *color*. If *size* is not given, the larger of ``pensize + 4`` and ``2 * pensize`` is used. If *color* is not given, the current pencolor is used." -msgstr "با استفاده از *color*، یک نقطه‌ی دایره‌ای به قطر *size* رسم کنید. اگر *size* داده نشود، از بیشینه‌ی ``pensize+4`` و ``2*pensize`` استفاده می‌شود." +msgstr "با استفاده از *color*، یک نقطه‌ی دایره‌ای با قطر *size* رسم کنید. اگر *size* داده نشود، بزرگ‌ترین مقدار بین ``pensize + 4`` و ``2 * pensize`` استفاده می‌شود. اگر *color* داده نشود، رنگ قلم فعلی به کار می‌رود." msgid "" ">>> turtle.home()\n" @@ -636,43 +628,29 @@ msgstr "" ">>> for i in range(8):\n" "... turtle.undo()" -#, fuzzy -#| msgid "an integer or ``None``" msgid "an integer, a string or ``None``" -msgstr "یک عدد صحیح یا ``None``" +msgstr "یک عدد صحیح (integer)، یک رشته (string) یا ``None``" msgid "Return or set the turtle's speed. If *speed* is not given, return the current speed. Otherwise set the turtle's speed to an integer from 0 to 10. If *speed* is a number greater than 10 or smaller than 0.5, the speed is set to 0. You can also use these names instead of numbers:" -msgstr "" +msgstr "سرعت لاک‌پشت (turtle) را برگردانید یا تنظیم کنید. اگر *speed* داده نشود، سرعت فعلی برگردانده می‌شود. در غیر این صورت، سرعت لاک‌پشت (turtle) را روی یک عدد صحیح (integer) از 0 تا 10 تنظیم کنید. اگر *speed* عددی بزرگ‌تر از 10 یا کوچک‌تر از 0.5 باشد، سرعت روی 0 تنظیم می‌شود. همچنین می‌توانید به‌جای اعداد از این نام‌ها استفاده کنید:" -#, fuzzy -#| msgid "\"fastest\": 0" msgid "\"fastest\": 0" -msgstr "\"fastest\": 0" +msgstr "\"fastest\": 0" -#, fuzzy -#| msgid "\"fast\": 10" msgid "\"fast\": 10" -msgstr "\"fast\": 10" +msgstr "\"fast\": 10" -#, fuzzy -#| msgid "\"normal\": 6" msgid "\"normal\": 6" -msgstr "\"normal\": 6" +msgstr "\"normal\": 6" -#, fuzzy -#| msgid "\"slow\": 3" msgid "\"slow\": 3" -msgstr "\"slow\": 3" +msgstr "\"slow\": 3" -#, fuzzy -#| msgid "\"slowest\": 1" msgid "\"slowest\": 1" -msgstr "\"slowest\": 1" +msgstr "\"slowest\": 1" -#, fuzzy -#| msgid "Attention: *speed* = 0 means that *no* animation takes place. forward/back makes turtle jump and likewise left/right make the turtle turn instantly." msgid "Speeds from 1 to 10 give increasingly faster animation of line drawing and turtle turning. A speed of 0 means that no animation takes place: :func:`forward` and :func:`back` make the turtle jump, and likewise :func:`left` and :func:`right` make the turtle turn instantly." -msgstr "توجه: *speed* = ۰ به این معناست که *هیچ* پویانمایی‌ای رخ نمی‌دهد. forward/back باعث پرش لاک‌پشت می‌شود و به همین ترتیب left/right باعث چرخش آنی لاک‌پشت می‌شود." +msgstr "سرعت‌های بین 1 تا 10 پویانمایی سریع‌تری برای رسم خط و چرخش لاک‌پشت (turtle) فراهم می‌کنند. سرعت 0 به این معناست که هیچ پویانمایی‌ای انجام نمی‌شود: :func:`forward` و :func:`back` باعث پرش لاک‌پشت (turtle) می‌شوند و به همین ترتیب :func:`left` و :func:`right` باعث چرخش آنی لاک‌پشت (turtle) می‌شوند." msgid "" ">>> turtle.speed()\n" @@ -861,22 +839,16 @@ msgid "Drawing state" msgstr "وضعیت ترسیم" msgid "Lower the pen. The turtle draws a line when it moves." -msgstr "" +msgstr "قلم را پایین بیاورید. لاک‌پشت (turtle) هنگام حرکت، یک خط رسم می‌کند." -#, fuzzy -#| msgid "Pull the pen up -- no drawing when moving." msgid "Lift the pen. The turtle does not draw when it moves." -msgstr "قلم را بالا بکشید — هنگام حرکت، ترسیمی انجام نمی‌شود." +msgstr "قلم را بالا ببرید. لاک‌پشت (turtle) هنگام حرکت چیزی رسم نمی‌کند." -#, fuzzy -#| msgid "a number or ``None``" msgid "a positive number or ``None``" -msgstr "یک عدد یا ``None``" +msgstr "یک عدد مثبت یا ``None``" -#, fuzzy -#| msgid "Set the line thickness to *width* or return it. If resizemode is set to \"auto\" and turtleshape is a polygon, that polygon is drawn with the same line thickness. If no argument is given, the current pensize is returned." msgid "Return or set the line thickness. If *width* is not given, return the current pensize. If resizemode is set to \"auto\" and the turtle shape is a polygon, that polygon is drawn with the same line thickness." -msgstr "ضخامت خط را روی *width* تنظیم می‌کند یا آن را بازمی‌گرداند. اگر resizemode روی \"auto\" تنظیم شده باشد و turtleshape یک چندضلعی باشد، آن چندضلعی با همان ضخامت خط رسم می‌شود. اگر آرگومانی داده نشود، pensize فعلی بازگردانده می‌شود." +msgstr "ضخامت خط را برگردانید یا تنظیم کنید. اگر *width* داده نشود، اندازه‌ی قلم فعلی برگردانده می‌شود. اگر resizemode روی «auto» تنظیم شده باشد و شکل لاک‌پشت (turtle) یک چندضلعی باشد، آن چندضلعی با همان ضخامت خط رسم می‌شود." msgid "" ">>> turtle.pensize()\n" @@ -960,10 +932,8 @@ msgstr "" ">>> sorted(turtle.pen().items())[:3]\n" "[('fillcolor', 'green'), ('outline', 1), ('pencolor', 'red')]" -#, fuzzy -#| msgid "Return ``True`` if pen is down, ``False`` if it's up." msgid "Return ``True`` if the pen is down, ``False`` if it's up." -msgstr "اگر قلم پایین باشد، ``True`` و اگر بالا باشد، ``False`` برمی‌گرداند." +msgstr "اگر قلم پایین باشد ``True`` و اگر بالا باشد ``False`` را برگردانید." msgid "" ">>> turtle.penup()\n" @@ -992,39 +962,29 @@ msgstr "۴ قالب ورودی مجاز است:" msgid "``pencolor()``" msgstr "``pencolor()``" -#, fuzzy -#| msgid "Return the current pencolor as color specification string or as a tuple (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." msgid "Return the current pencolor as color specification string or as a tuple (see example). May be used as input to another :func:`color`, :func:`pencolor`, :func:`fillcolor` or :func:`bgcolor` call." -msgstr "رنگ قلم فعلی را به‌صورت رشته مشخصه رنگ یا تاپل برمی‌گرداند (مثال را ببینید). می‌تواند به‌عنوان ورودی برای فراخوانی دیگری از color/pencolor/fillcolor/bgcolor استفاده شود." +msgstr "رنگ قلم فعلی را به‌صورت رشته مشخصه رنگ یا تاپل برمی‌گرداند (مثال را ببینید). می‌تواند به‌عنوان ورودی برای فراخوانی دیگری از :func:`color`، :func:`pencolor`، :func:`fillcolor` یا :func:`bgcolor` استفاده شود." msgid "``pencolor(colorstring)``" msgstr "``pencolor(colorstring)``" -#, fuzzy -#| msgid "Set pencolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgid "Set the pencolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." -msgstr "pencolor را به *colorstring* تنظیم می‌کند، که یک رشته‌ی مشخصه‌ی رنگ Tk است، مانند ``\"red\"``، ``\"yellow\"``، یا ``\"#33cc8c\"``." +msgstr "رنگ قلم را روی *colorstring* تنظیم کنید؛ که یک رشته‌ی (string) مشخصات رنگ Tk است، مانند ``\"red\"``، ``\"yellow\"``، یا ``\"#33cc8c\"``." msgid "``pencolor((r, g, b))``" msgstr "``pencolor((r, g, b))``" -#, fuzzy -#| msgid "Set pencolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." msgid "Set the pencolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." -msgstr "رنگ قلم (pencolor) را به رنگ RGB نشان‌داده‌شده با تاپل *r*، *g* و *b* تنظیم می‌کند. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشند، که در آن colormode برابر با 1.0 یا 255 است (به :func:`colormode` مراجعه کنید)." +msgstr "رنگ قلم را روی رنگ RGB نشان‌داده‌شده توسط تاپلِ *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید بین 0 و colormode باشند، که در آن colormode برابر با 1.0 یا 255 است (به :func:`colormode` مراجعه کنید)." msgid "``pencolor(r, g, b)``" msgstr "``pencolor(r, g, b)``" -#, fuzzy -#| msgid "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." msgid "Set the pencolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode." -msgstr "pencolor را روی رنگ RGB متناظر با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشند." +msgstr "رنگ قلم را روی رنگ RGB مشخص‌شده توسط *r*، *g* و *b* تنظیم کنید. هر کدام از *r*، *g* و *b* باید بین ۰ و colormode باشند." -#, fuzzy -#| msgid "If turtleshape is a polygon, the outline of that polygon is drawn with the newly set pencolor." msgid "If the turtle shape is a polygon, the outline of that polygon is drawn with the newly set pencolor." -msgstr "اگر turtleshape یک چندضلعی باشد، خط دور آن چندضلعی با pencolor تازه تنظیم‌شده رسم می‌شود." +msgstr "اگر شکل لاک‌پشت (turtle) یک چندضلعی باشد، حاشیه‌ی آن چندضلعی با رنگ قلم تازه‌تنظیم‌شده رسم می‌شود." msgid "" ">>> colormode()\n" @@ -1069,39 +1029,29 @@ msgstr "fillcolor را برمی‌گرداند یا تنظیم می‌کند." msgid "``fillcolor()``" msgstr "``fillcolor()``" -#, fuzzy -#| msgid "Return the current fillcolor as color specification string, possibly in tuple format (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." msgid "Return the current fillcolor as color specification string, possibly in tuple format (see example). May be used as input to another :func:`color`, :func:`pencolor`, :func:`fillcolor` or :func:`bgcolor` call." -msgstr "fillcolor فعلی را به‌عنوان رشته مشخصات رنگ برمی‌گرداند، احتمالاً در قالب تاپل (به مثال مراجعه کنید). ممکن است به‌عنوان ورودی برای فراخوانی دیگری از color/pencolor/fillcolor/bgcolor استفاده شود." +msgstr "fillcolor فعلی را به‌عنوان رشته مشخصات رنگ برمی‌گرداند، احتمالاً در قالب تاپل (به مثال مراجعه کنید). ممکن است به‌عنوان ورودی برای فراخوانی دیگری از :func:`color`، :func:`pencolor`، :func:`fillcolor` یا :func:`bgcolor` استفاده شود." msgid "``fillcolor(colorstring)``" msgstr "``fillcolor(colorstring)``" -#, fuzzy -#| msgid "Set fillcolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." msgid "Set the fillcolor to *colorstring*, which is a Tk color specification string, such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." -msgstr "fillcolor را روی *colorstring* تنظیم کنید، که یک رشته مشخص‌کننده رنگ Tk است، مانند ``\"red\"``، ``\"yellow\"`` یا ``\"#33cc8c\"``." +msgstr "رنگ پر کردن (fillcolor) را روی *colorstring* تنظیم کنید که یک رشته‌ی مشخصات رنگ Tk است، مانند ``\"red\"``، ``\"yellow\"``، یا ``\"#33cc8c\"``." msgid "``fillcolor((r, g, b))``" msgstr "``fillcolor((r, g, b))``" -#, fuzzy -#| msgid "Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." msgid "Set the fillcolor to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." -msgstr "fillcolor را روی رنگ RGB نشان‌داده‌شده با تاپلِ *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشد، که colormode برابر 1.0 یا 255 است (به :func:`colormode` مراجعه کنید)." +msgstr "رنگ پر کردن را روی رنگ RGB مشخص‌شده توسط تاپل *r*، *g* و *b* تنظیم کنید. هر کدام از *r*، *g* و *b* باید بین ۰ و colormode باشند، که در آن colormode برابر با ۱.۰ یا ۲۵۵ است (نگاه کنید به :func:`colormode`)." msgid "``fillcolor(r, g, b)``" msgstr "``fillcolor(r, g, b)``" -#, fuzzy -#| msgid "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." msgid "Set the fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode." -msgstr "fillcolor را روی رنگ RGB متناظر با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشد." +msgstr "رنگ پر کردن را روی رنگ RGB مشخص‌شده توسط *r*، *g* و *b* تنظیم کنید. هر کدام از *r*، *g* و *b* باید بین ۰ و colormode باشند." -#, fuzzy -#| msgid "If turtleshape is a polygon, the interior of that polygon is drawn with the newly set fillcolor." msgid "If the turtle shape is a polygon, the interior of that polygon is drawn with the newly set fillcolor." -msgstr "اگر شکل لاک‌پشت یک چندضلعی باشد، فضای داخلی آن چندضلعی با fillcolor به‌تازگی تنظیم‌شده رسم می‌شود." +msgstr "اگر شکل لاک‌پشت (turtle) یک چندضلعی باشد، درون آن چندضلعی با رنگ پر کردن تازه‌تنظیم‌شده رسم می‌شود." msgid "" ">>> turtle.fillcolor(\"violet\")\n" @@ -1128,15 +1078,11 @@ msgstr "" ">>> turtle.fillcolor()\n" "(255.0, 255.0, 255.0)" -#, fuzzy -#| msgid "Return or set pencolor and fillcolor." msgid "Return or set the pencolor and fillcolor." -msgstr "pencolor و fillcolor را برمی‌گرداند یا تنظیم می‌کند." +msgstr "رنگ قلم و رنگ پر کردن را برگردانید یا تنظیم کنید." -#, fuzzy -#| msgid "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgid "Several input formats are allowed. They use 0 to 3 arguments as follows:" -msgstr "چندین قالب ورودی مجاز است. آن‌ها از ۰ تا ۳ آرگومان به‌صورت زیر استفاده می‌کنند:" +msgstr "چندین قالب ورودی مجاز است. آن‌ها از ۰ تا ۳ آرگومان به شرح زیر استفاده می‌کنند:" msgid "``color()``" msgstr "``color()``" @@ -1147,10 +1093,8 @@ msgstr "رنگ قلم فعلی و رنگ پر کردن فعلی را به‌صو msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -#, fuzzy -#| msgid "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the given value." msgid "Inputs as in :func:`pencolor`. Set both the pencolor and the fillcolor to the given value." -msgstr "ورودی‌ها مانند :func:`pencolor`، هر دو، fillcolor و pencolor، به مقدار داده‌شده تنظیم می‌شوند." +msgstr "ورودی‌ها مانند :func:`pencolor` هستند. هم رنگ قلم و هم رنگ پر کردن را روی مقدار داده‌شده تنظیم کنید." msgid "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" @@ -1158,10 +1102,8 @@ msgstr "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))`` msgid "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and analogously if the other input format is used." msgstr "معادل ``pencolor(colorstring1)`` و ``fillcolor(colorstring2)`` است و اگر از قالب ورودی دیگر استفاده شود، به‌طور مشابه عمل می‌کند." -#, fuzzy -#| msgid "If turtleshape is a polygon, outline and interior of that polygon is drawn with the newly set colors." msgid "If the turtle shape is a polygon, the outline and interior of that polygon are drawn with the newly set colors." -msgstr "اگر turtleshape یک چندضلعی باشد، خط دور و داخل آن چندضلعی با رنگ‌های تازه‌تنظیم‌شده رسم می‌شود." +msgstr "اگر شکل لاک‌پشت (turtle) یک چندضلعی باشد، حاشیه و درون آن چندضلعی با رنگ‌های تازه‌تنظیم‌شده رسم می‌شوند." msgid "" ">>> turtle.color(\"red\", \"green\")\n" @@ -1184,10 +1126,8 @@ msgstr "همچنین ببینید: متد Screen به نام :func:`colormode`." msgid "Filling" msgstr "پر کردن" -#, fuzzy -#| msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgid "Return ``True`` if the turtle is filling, ``False`` otherwise." -msgstr "اگر Turtle نمایش داده شده باشد، ``True`` و اگر پنهان باشد، ``False`` را برمی‌گرداند." +msgstr "اگر لاک‌پشت (turtle) در حال پر کردن باشد، ``True`` را برگردانید، در غیر این صورت ``False`` را برگردانید." msgid "" ">>> turtle.begin_fill()\n" @@ -1240,10 +1180,8 @@ msgstr "پر شدن یا پر نشدن ناحیه‌های هم‌پوشانی msgid "More drawing control" msgstr "کنترل بیشتر ترسیم" -#, fuzzy -#| msgid "Delete the turtle's drawings from the screen, re-center the turtle and set variables to the default values." msgid "Delete the turtle's drawings and re-center the turtle. The turtle's settings are restored to their default values." -msgstr "نقاشی‌های لاک‌پشت را از صفحه پاک می‌کند، لاک‌پشت را دوباره در مرکز قرار می‌دهد و متغیرها را روی مقادیر پیش‌فرض تنظیم می‌کند." +msgstr "نقاشی‌های لاک‌پشت را از صفحه پاک می‌کند، لاک‌پشت را دوباره در مرکز قرار می‌دهد. تنظیمات لاک‌پشت به مقادیر پیش‌فرضش بازگردانده می‌شوند." msgid "" ">>> turtle.goto(0,-22)\n" @@ -1270,10 +1208,8 @@ msgstr "" ">>> turtle.heading()\n" "0.0" -#, fuzzy -#| msgid "Delete the turtle's drawings from the screen. Do not move turtle. State and position of the turtle as well as drawings of other turtles are not affected." msgid "Delete the turtle's drawings from the screen. The state and position of the turtle as well as the drawings of other turtles are not affected." -msgstr "ترسیمات لاک‌پشت را از صفحه حذف می‌کند. لاک‌پشت را حرکت نمی‌دهد. وضعیت و موقعیت لاک‌پشت و همچنین ترسیمات سایر لاک‌پشت‌ها تحت تأثیر قرار نمی‌گیرند." +msgstr "ترسیمات لاک‌پشت را از صفحه حذف می‌کند. وضعیت و موقعیت لاک‌پشت و همچنین ترسیمات سایر لاک‌پشت‌ها تحت تأثیر قرار نمی‌گیرند." msgid "object to be written to the TurtleScreen" msgstr "شیءای که باید در TurtleScreen نوشته شود" @@ -1304,15 +1240,13 @@ msgid "Visibility" msgstr "قابلیت مشاهده" msgid "Make the turtle invisible. If the pen is down, movement still draws." -msgstr "" +msgstr "لاک‌پشت را نامرئی کنید. اگر قلم پایین است، حرکت همچنان رسم می‌کند." msgid "Make the turtle visible." msgstr "لاک‌پشت را نمایان کنید." -#, fuzzy -#| msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgid "Return ``True`` if the turtle is visible, ``False`` if it's hidden." -msgstr "اگر Turtle نمایش داده شده باشد، ``True`` و اگر پنهان باشد، ``False`` را برمی‌گرداند." +msgstr "اگر لاک‌پشت (turtle) مرئی باشد ``True`` و اگر پنهان باشد ``False`` را برگردانید." msgid "" ">>> turtle.hideturtle()\n" @@ -1332,15 +1266,11 @@ msgstr "" msgid "Appearance" msgstr "ظاهر" -#, fuzzy -#| msgid "an integer or ``None``" msgid "a string or ``None``" -msgstr "یک عدد صحیح یا ``None``" +msgstr "یک رشته یا ``None``" -#, fuzzy -#| msgid "Set turtle shape to shape with given *name* or, if name is not given, return name of current shape. Shape with *name* must exist in the TurtleScreen's shape dictionary. Initially there are the following polygon shapes: \"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\", \"classic\". To learn about how to deal with shapes see Screen method :func:`register_shape`." msgid "Set the turtle shape to the named shape. If *name* is not given, return the name of the current shape. The shape must exist in the :class:`TurtleScreen`'s shape dictionary. Initially there are the following shapes: \"arrow\", \"turtle\", \"circle\", \"square\", \"triangle\" and \"classic\". To add shapes, see the :class:`Screen` method :func:`register_shape`." -msgstr "شکل لاک‌پشت را به شکل با *name* داده‌شده تنظیم می‌کند یا اگر name داده نشده باشد، نام شکل جاری را برمی‌گرداند. شکل با *name* باید در دیکشنری شکل‌های TurtleScreen وجود داشته باشد. در ابتدا، شکل‌های چندضلعی زیر وجود دارند: \"arrow\"، \"turtle\"، \"circle\"، \"square\"، \"triangle\"، \"classic\". برای آشنایی با نحوه‌ی کار با شکل‌ها، متد :func:`register_shape` از Screen را ببینید." +msgstr "شکل لاک‌پشت (turtle) را روی شکل نام‌گذاری‌شده تنظیم کنید. اگر *name* داده نشده باشد، نام شکل فعلی را برگردانید. شکل باید در دیکشنری (dictionary) شکل‌های :class:`TurtleScreen` وجود داشته باشد. در ابتدا شکل‌های زیر وجود دارند: \"arrow\"، \"turtle\"، \"circle\"، \"square\"، \"triangle\" و \"classic\". برای افزودن شکل‌ها، نگاه کنید به متد (method) :class:`Screen` یعنی :func:`register_shape`." msgid "" ">>> turtle.shape()\n" @@ -1355,23 +1285,17 @@ msgstr "" ">>> turtle.shape()\n" "'turtle'" -#, fuzzy -#| msgid "Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If *rmode* is not given, return current resizemode. Different resizemodes have the following effects:" msgid "Set the resizemode to \"auto\", \"user\" or \"noresize\". If *rmode* is not given, return the current resizemode. The different resizemodes have the following effects:" -msgstr "resizemode را روی یکی از مقادیر زیر تنظیم کنید: \"auto\"، \"user\"، \"noresize\". اگر *rmode* داده نشود، resizemode فعلی برگردانده می‌شود. حالت‌های مختلف resizemode پیامدهای زیر را دارند:" +msgstr "حالت تغییر اندازه (resizemode) را روی \"auto\"، \"user\" یا \"noresize\" تنظیم کنید. اگر *rmode* داده نشده باشد، حالت تغییر اندازه‌ی فعلی را برگردانید. حالت‌های مختلف تغییر اندازه تأثیرات زیر را دارند:" -#, fuzzy -#| msgid "\"auto\": adapts the appearance of the turtle corresponding to the value of pensize." msgid "\"auto\": the turtle is resized according to the value of :func:`pensize`." -msgstr "\"auto\": ظاهر لاک‌پشت را متناسب با مقدار pensize تطبیق می‌دهد." +msgstr "\"auto\": اندازه‌ی لاک‌پشت (turtle) بر اساس مقدار :func:`pensize` تغییر می‌کند." -#, fuzzy -#| msgid "\"user\": adapts the appearance of the turtle according to the values of stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." msgid "\"user\": the turtle is resized according to the stretch factors and outline width, which are set by :func:`shapesize`." -msgstr "\"user\": ظاهر لاک‌پشت را مطابق با مقادیر stretchfactor و outlinewidth (outline)، که توسط :func:`shapesize` تنظیم می‌شوند، تطبیق می‌دهد." +msgstr "\"user\": اندازه‌ی لاک‌پشت (turtle) بر اساس عوامل کشش و عرض حاشیه که توسط :func:`shapesize` تنظیم شده‌اند، تغییر می‌کند." msgid "\"noresize\": the turtle is not resized." -msgstr "" +msgstr "\"noresize\": اندازه‌ی لاک‌پشت (turtle) تغییر نمی‌کند." msgid "``resizemode(\"user\")`` is called by :func:`shapesize` when used with arguments." msgstr "``resizemode(\"user\")`` توسط :func:`shapesize` در صورتی که با آرگومان‌ها استفاده شود، فراخوانی می‌شود." @@ -1390,21 +1314,19 @@ msgstr "" "'auto'" msgid "Return or set the turtle's stretch factors and outline width. If no arguments are given, return the current values. Otherwise set resizemode to \"user\", so that the turtle is displayed stretched according to its stretch factors:" -msgstr "" +msgstr "عوامل کشش و عرض حاشیه‌ی لاک‌پشت (turtle) را برگردانید یا تنظیم کنید. اگر هیچ آرگومانی داده نشده باشد، مقادیر فعلی را برگردانید. در غیر این صورت، حالت تغییر اندازه را روی \"user\" تنظیم کنید تا لاک‌پشت بر اساس عوامل کشش خود به صورت کشیده نمایش داده شود:" msgid "*stretch_wid*: the stretch factor perpendicular to the turtle's heading" -msgstr "" +msgstr "*stretch_wid*: عامل کشش عمود بر جهت حرکت لاک‌پشت (turtle)" -#, fuzzy -#| msgid "Move the turtle forward by the specified *distance*, in the direction the turtle is headed." msgid "*stretch_len*: the stretch factor in the direction of the turtle's heading" -msgstr "لاکی‌پشت را به اندازه‌ی *distance* مشخص‌شده، در جهتی که لاکی‌پشت رو به آن دارد، به جلو حرکت می‌دهد." +msgstr "*stretch_len*: عامل کشش در راستای جهت حرکت لاک‌پشت (turtle)" msgid "*outline*: the width of the shape's outline" -msgstr "" +msgstr "*outline*: عرض حاشیه‌ی شکل" msgid "For example, ``shapesize(2, 1)`` makes the turtle twice as wide without changing its length. If only *stretch_wid* is given, *stretch_len* is set to the same value." -msgstr "" +msgstr "برای نمونه، ``shapesize(2, 1)`` لاک‌پشت را بدون تغییر طول، دو برابر پهن‌تر می‌کند. اگر تنها پارامتر *stretch_wid* داده شود، *stretch_len* روی همان مقدار تنظیم می‌شود." msgid "" ">>> turtle.shapesize()\n" @@ -1525,23 +1447,17 @@ msgstr "" msgid "Using events" msgstr "استفاده از رویدادها" -#, fuzzy -#| msgid "a function with no arguments or ``None``" msgid "a function with two arguments or ``None``" -msgstr "تابعی بدون آرگومان یا ``None``" +msgstr "تابعی با دو آرگومان یا ``None``" -#, fuzzy -#| msgid "an integer or ``None``" msgid "an integer" -msgstr "یک عدد صحیح یا ``None``" +msgstr "یک عدد صحیح" -#, fuzzy -#| msgid "a number or ``None``" msgid "a boolean or ``None``" -msgstr "یک عدد یا ``None``" +msgstr "یک بولین یا ``None``" msgid "Bind *fun* to mouse-click events on this turtle. *fun* is called with the coordinates of the clicked point on the canvas. If *fun* is ``None``, existing bindings are removed. *btn* is the number of the mouse button and defaults to 1, the left mouse button. If *add* is ``True``, a new binding is added, otherwise it replaces a former binding. Example for the anonymous turtle, that is, the procedural way:" -msgstr "" +msgstr "*fun* را به رویدادهای کلیک ماوس روی این لاک‌پشت متصل کنید. *fun* با مختصات نقطه‌ی کلیک‌شده روی بوم فراخوانی می‌شود. اگر *fun* ``None`` باشد، اتصال‌های موجود حذف می‌شوند. *btn* شماره‌ی دکمه‌ی ماوس است و به‌طور پیش‌فرض ۱ است، یعنی دکمه‌ی چپ ماوس. اگر *add* ``True`` باشد، یک اتصال جدید اضافه می‌شود، در غیر این صورت یک اتصال پیشین را جایگزین می‌کند. مثالی برای لاک‌پشت ناشناس، یعنی روش رویه‌ای:" msgid "" ">>> def turn(x, y):\n" @@ -1618,13 +1534,9 @@ msgstr "" "... turtle.right(60)\n" "... turtle.forward(100)" -#, fuzzy -#| msgid "Start recording the vertices of a polygon. Current turtle position is first vertex of polygon." msgid "Start recording the vertices of a polygon. The current turtle position is the first vertex of the polygon." msgstr "ثبت رأس‌های یک چندضلعی را آغاز کنید. موقعیت فعلی لاک‌پشت، اولین رأس چندضلعی است." -#, fuzzy -#| msgid "Stop recording the vertices of a polygon. Current turtle position is last vertex of polygon. This will be connected with the first vertex." msgid "Stop recording the vertices of a polygon. The current turtle position is the last vertex of the polygon. This will be connected with the first vertex." msgstr "ثبت رأس‌های یک چندضلعی را متوقف می‌کند. موقعیت فعلی لاک‌پشت آخرین رأس چندضلعی است. این به اولین رأس متصل خواهد شد." @@ -1654,29 +1566,21 @@ msgstr "" ">>> p = turtle.get_poly()\n" ">>> register_shape(\"myFavouriteShape\", p)" -#, fuzzy -#| msgid "Create and return a clone of the turtle with same position, heading and turtle properties." msgid "Create and return a clone of the turtle. The clone has the same position, heading and turtle properties." -msgstr "یک رونوشت (clone) از لاک‌پشت با همان موقعیت، جهت و ویژگی‌های لاک‌پشت ایجاد کرده و بازمی‌گرداند." +msgstr "یک رونوشت از لاک‌پشت ایجاد کرده و آن را برمی‌گرداند. رونوشت دارای همان موقعیت، جهت و ویژگی‌های لاک‌پشت است." -#, fuzzy -#| msgid "" -#| ">>> mick = Turtle()\n" -#| ">>> joe = mick.clone()" msgid "" ">>> leonel = Turtle()\n" ">>> marco = leonel.clone()" msgstr "" -">>> mick = Turtle()\n" -">>> joe = mick.clone()" +">>> leonel = Turtle()\n" +">>> marco = leonel.clone()" -#, fuzzy -#| msgid "Return the turtle's x coordinate." msgid "Return the Turtle object itself." -msgstr "مختصات x لاک‌پشت را برمی‌گرداند." +msgstr "خود شیء Turtle را برمی‌گرداند." msgid "Call ``getturtle()`` to get the turtle used by functions such as :func:`forward` and :func:`left`:" -msgstr "" +msgstr "برای دریافت لاک‌پشتِ مورد استفاده‌ی توابع مانند :func:`forward` و :func:`left`، تابع ``getturtle()`` را فراخوانی کنید:" msgid "" ">>> pet = getturtle()\n" @@ -1703,18 +1607,14 @@ msgstr "" "\n" ">>> ts.bgcolor(\"pink\")" -#, fuzzy -#| msgid "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of given size is installed. *size* gives the maximum number of turtle actions that can be undone by the :func:`undo` method/function. If *size* is ``None``, the undobuffer is disabled." msgid "Set or disable the undo buffer. If *size* is an integer, an empty undo buffer of the given size is installed. *size* is the maximum number of turtle actions that can be undone by :func:`undo`. If *size* is ``None``, the undo buffer is disabled." -msgstr "بافر لغو (undobuffer) را تنظیم یا غیرفعال کنید. اگر *size* یک عدد صحیح باشد، یک بافر لغو (undobuffer) خالی با اندازه‌ی داده‌شده نصب می‌شود. *size* حداکثر تعداد کنش‌های لاک‌پشت را که می‌توان با متد/تابع :func:`undo` آن‌ها را واگرد کرد، مشخص می‌کند. اگر *size* برابر ``None`` باشد، بافر لغو (undobuffer) غیرفعال می‌شود." +msgstr "بافر لغو را تنظیم یا غیرفعال کنید. اگر *size* یک عدد صحیح باشد، یک بافر لغو خالی با اندازه‌ی مشخص‌شده نصب می‌شود. *size* حداکثر تعداد کنش‌های لاک‌پشت است که می‌تواند توسط :func:`undo` لغو شود. اگر *size* مقدار ``None`` باشد، بافر لغو غیرفعال می‌شود." msgid ">>> turtle.setundobuffer(42)" msgstr ">>> turtle.setundobuffer(42)" -#, fuzzy -#| msgid "Return number of entries in the undobuffer." msgid "Return the number of entries in the undo buffer." -msgstr "تعداد ورودی‌های موجود در بافر لغو (undobuffer) را برمی‌گرداند." +msgstr "تعداد ورودی‌های موجود در بافر لغو را برمی‌گرداند." msgid "" ">>> while undobufferentries():\n" @@ -1738,10 +1638,8 @@ msgstr "رنگ پس‌زمینه‌ی TurtleScreen را برمی‌گرداند msgid "``bgcolor()``" msgstr "``bgcolor()``" -#, fuzzy -#| msgid "Return the current background color as color specification string or as a tuple (see example). May be used as input to another color/pencolor/fillcolor/bgcolor call." msgid "Return the current background color as a color specification string or as a tuple (see example). May be used as input to another :func:`color`, :func:`pencolor`, :func:`fillcolor` or :func:`bgcolor` call." -msgstr "رنگ پس‌زمینه‌ی جاری را به‌صورت یک رشته‌ی مشخصه‌ی رنگ یا یک تاپل برمی‌گرداند (مثال را ببینید). می‌تواند به‌عنوان ورودی در فراخوانی دیگری از color/pencolor/fillcolor/bgcolor استفاده شود." +msgstr "رنگ پس‌زمینه‌ی جاری را به‌صورت یک رشته‌ی مشخصه‌ی رنگ یا یک تاپل برمی‌گرداند (مثال را ببینید). می‌تواند به‌عنوان ورودی در فراخوانی دیگری از :func:`color`، :func:`pencolor`، :func:`fillcolor` یا :func:`bgcolor` استفاده شود." msgid "``bgcolor(colorstring)``" msgstr "``bgcolor(colorstring)``" @@ -1752,18 +1650,14 @@ msgstr "رنگ پس‌زمینه را روی *colorstring* تنظیم کنید، msgid "``bgcolor((r, g, b))``" msgstr "``bgcolor((r, g, b))``" -#, fuzzy -#| msgid "Set the background color to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." msgid "Set the background color to the RGB color represented by the tuple of *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode, where colormode is either 1.0 or 255 (see :func:`colormode`)." -msgstr "رنگ پس‌زمینه را روی رنگ RGB بیان‌شده با تاپل *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی ۰..colormode باشند، که colormode می‌تواند ۱.۰ یا ۲۵۵ باشد (به :func:`colormode` مراجعه کنید)." +msgstr "رنگ پس‌زمینه را روی رنگ RGB بیان‌شده با تاپل *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید بین ۰ و colormode باشند، که colormode می‌تواند ۱.۰ یا ۲۵۵ باشد (به :func:`colormode` مراجعه کنید)." msgid "``bgcolor(r, g, b)``" msgstr "``bgcolor(r, g, b)``" -#, fuzzy -#| msgid "Set the background color to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be in the range 0..colormode." msgid "Set the background color to the RGB color represented by *r*, *g*, and *b*. Each of *r*, *g*, and *b* must be between 0 and colormode." -msgstr "رنگ پس‌زمینه را روی رنگ RGB نشان‌داده‌شده با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید در بازه‌ی 0..colormode باشد." +msgstr "رنگ پس‌زمینه را روی رنگ RGB نشان‌داده‌شده با *r*، *g* و *b* تنظیم کنید. هر یک از *r*، *g* و *b* باید بین ۰ و colormode باشد." msgid "" ">>> screen.bgcolor(\"orange\")\n" @@ -1808,8 +1702,6 @@ msgstr "تمام ترسیم‌ها و تمام لاک‌پشت‌ها را از msgid "This TurtleScreen method is available as a global function only under the name ``resetscreen``. The global function ``reset`` is another one derived from the Turtle method ``reset``." msgstr "این متد TurtleScreen فقط با نام ``resetscreen`` به‌عنوان یک تابع سراسری در دسترس است. تابع سراسری ``reset`` تابع دیگری است که از متد ``reset`` در Turtle مشتق شده است." -#, fuzzy -#| msgid "Reset all Turtles on the Screen to their initial state." msgid "Reset all turtles on the screen to their initial state." msgstr "بازنشانی همه‌ی لاک‌پشت‌های روی صفحه به وضعیت اولیه‌شان." @@ -1842,7 +1734,7 @@ msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "مثلاً برای جستجوی لاک‌پشتی که به‌اشتباه فرار کرده است ;-)" msgid "Set up a user-defined coordinate system. *llx* and *lly* are the x and y coordinates of the lower left corner of the canvas. *urx* and *ury* are the x and y coordinates of the upper right corner. Switch to mode \"world\" if necessary, which performs a reset. If mode \"world\" is already active, all drawings are redrawn according to the new coordinates. In user-defined coordinate systems, angles may appear distorted, see :func:`mode`." -msgstr "" +msgstr "یک سیستم مختصات تعریف‌شده توسط کاربر تنظیم کنید. *llx* و *lly* مختصات x و y گوشه‌ی پایین چپ بوم هستند. *urx* و *ury* مختصات x و y گوشه‌ی بالا راست هستند. در صورت لزوم به حالت \"world\" بروید که بازنشانی را انجام می‌دهد. اگر حالت \"world\" از قبل فعال باشد، تمام ترسیمات بر اساس مختصات جدید دوباره ترسیم می‌شوند. در سیستم‌های مختصات تعریف‌شده توسط کاربر، زوایا ممکن است تحریف‌شده به نظر برسند، :func:`mode` را ببینید." msgid "" ">>> screen.reset()\n" @@ -1864,10 +1756,8 @@ msgstr "" msgid "Animation control" msgstr "کنترل پویانمایی" -#, fuzzy -#| msgid "Temporarily disable turtle animation. The code written inside the ``no_animation`` block will not be animated; once the code block is exited, the drawing will appear." msgid "Temporarily turn off turtle animation. The code inside the :keyword:`with` block is not animated. Once the block is exited, the drawing appears. This is useful for drawing complex shapes where even the fastest speed setting is too slow." -msgstr "پویانمایی turtle را به‌طور موقت غیرفعال می‌کند. کد نوشته‌شده درون بلوک ``no_animation`` پویانمایی نخواهد شد؛ پس از خروج از بلوک کد، ترسیم ظاهر می‌شود." +msgstr "پویانمایی turtle را به‌طور موقت غیرفعال می‌کند. کد نوشته‌شده درون بلوک :keyword:`with` پویانمایی نخواهد شد؛ پس از خروج از بلوک کد، ترسیم ظاهر می‌شود. این برای رسم شکل‌های پیچیده‌ای مفید است که حتی سریع‌ترین تنظیم سرعت نیز برای آن‌ها بسیار کند است." msgid "" ">>> with screen.no_animation():\n" @@ -1880,15 +1770,11 @@ msgstr "" "... fd(dist)\n" "... rt(90)" -#, fuzzy -#| msgid "an integer or ``None``" msgid "a nonnegative integer or ``None``" -msgstr "یک عدد صحیح یا ``None``" +msgstr "یک عدد صحیح نامنفی یا ``None``" -#, fuzzy -#| msgid "Set or return the drawing *delay* in milliseconds. (This is approximately the time interval between two consecutive canvas updates.) The longer the drawing delay, the slower the animation." msgid "Return or set the drawing delay in milliseconds. This is approximately the time interval between two consecutive canvas updates. The longer the drawing delay, the slower the animation." -msgstr "*تأخیر* ترسیم را بر حسب میلی‌ثانیه تنظیم می‌کند یا برمی‌گرداند. (این مقدار تقریباً بازه‌ی زمانی بین دو به‌روزرسانی متوالی بوم است.) هرچه تأخیر ترسیم طولانی‌تر باشد، پویانمایی کندتر خواهد بود." +msgstr "تأخیر ترسیم را بر حسب میلی‌ثانیه تنظیم می‌کند یا برمی‌گرداند. این مقدار تقریباً بازه‌ی زمانی بین دو به‌روزرسانی متوالی بوم است. هرچه تأخیر ترسیم طولانی‌تر باشد، پویانمایی کندتر خواهد بود." msgid "" ">>> screen.delay()\n" @@ -1903,10 +1789,8 @@ msgstr "" ">>> screen.delay()\n" "5" -#, fuzzy -#| msgid "Turn turtle animation on/off and set delay for update drawings. If *n* is given, only each n-th regular screen update is really performed. (Can be used to accelerate the drawing of complex graphics.) When called without arguments, returns the currently stored value of n. Second argument sets delay value (see :func:`delay`)." msgid "Turn turtle animation on or off and set the drawing delay. If *n* is given, only every n-th regular screen update is performed, which can be used to speed up the drawing of complex graphics. If *n* is 0, animation is turned off and the screen is only updated by calling :func:`update`. If *delay* is given, it sets the drawing delay, see :func:`delay`. When called without arguments, return the current value of *n*." -msgstr "روشن/خاموش کردن پویانمایی turtle و تنظیم تأخیر برای به‌روزرسانی ترسیم‌ها. اگر *n* داده شود، تنها هر n-امین به‌روزرسانی منظم صفحه واقعاً انجام می‌شود. (می‌تواند برای تسریع ترسیم گرافیک‌های پیچیده استفاده شود.) هنگامی که بدون آرگومان فراخوانی شود، مقدار ذخیره‌شده‌ی کنونی n را برمی‌گرداند. آرگومان دوم مقدار تأخیر را تنظیم می‌کند (به :func:`delay` مراجعه کنید)." +msgstr "پویانمایی turtle را روشن یا خاموش کنید و تأخیر ترسیم را تنظیم کنید. اگر *n* داده شود، تنها هر n-امین به‌روزرسانی منظم صفحه انجام می‌شود، که می‌تواند برای تسریع ترسیم گرافیک‌های پیچیده استفاده شود. اگر *n* برابر ۰ باشد، پویانمایی خاموش می‌شود و صفحه تنها با فراخوانی :func:`update` به‌روزرسانی می‌شود. اگر *delay* داده شود، تأخیر ترسیم را تنظیم می‌کند، :func:`delay` را ببینید. هنگامی که بدون آرگومان فراخوانی شود، مقدار فعلی *n* را برمی‌گرداند." msgid "" ">>> screen.tracer(8, 25)\n" @@ -1976,7 +1860,7 @@ msgstr "" ">>> screen.listen()" msgid "Bind *fun* to mouse-click events on this screen. *fun* is called with the coordinates of the clicked point on the canvas. If *fun* is ``None``, existing bindings are removed. *btn* is the number of the mouse button and defaults to 1, the left mouse button. If *add* is ``True``, a new binding is added, otherwise it replaces a former binding." -msgstr "" +msgstr "*fun* را به رویدادهای کلیک ماوس روی این صفحه متصل کنید. *fun* با مختصات نقطه‌ی کلیک‌شده روی بوم فراخوانی می‌شود. اگر *fun* ``None`` باشد، اتصال‌های موجود حذف می‌شوند. *btn* شماره‌ی دکمه‌ی ماوس است و به‌طور پیش‌فرض ۱ است، یعنی دکمه‌ی چپ ماوس. اگر *add* ``True`` باشد، یک اتصال جدید اضافه می‌شود، در غیر این صورت یک اتصال پیشین را جایگزین می‌کند." msgid "Example for a TurtleScreen instance named ``screen`` and a Turtle instance named ``turtle``:" msgstr "مثالی برای نمونه‌ای از TurtleScreen به نام ``screen`` و نمونه‌ای از Turtle به نام ``turtle``:" @@ -2021,31 +1905,23 @@ msgstr "" ">>> f() ### makes the turtle march around\n" ">>> running = False" -#, fuzzy -#| msgid "Starts event loop - calling Tkinter's mainloop function. Must be the last statement in a turtle graphics program. Must *not* be used if a script is run from within IDLE in -n mode (No subprocess) - for interactive use of turtle graphics. ::" msgid "Start the event loop by calling Tkinter's :meth:`~tkinter.Misc.mainloop` method. Must be the last statement in a turtle graphics program. Must *not* be used if a script is run from within IDLE in -n mode (see :ref:`idle-no-subprocess`)." -msgstr "حلقه‌ی رویداد را با فراخوانی تابع mainloop از Tkinter آغاز می‌کند. باید آخرین دستور در یک برنامه‌ی گرافیک turtle باشد. برای استفاده‌ی تعاملی از گرافیک turtle، اگر یک اسکریپت از داخل IDLE در حالت -n (بدون subprocess) اجرا شود، *نباید* از آن استفاده شود. ::" +msgstr "حلقه‌ی رویداد را با فراخوانی متد :meth:`~tkinter.Misc.mainloop` از Tkinter آغاز می‌کند. باید آخرین دستور در یک برنامه‌ی گرافیک turtle باشد. اگر یک اسکریپت از داخل IDLE در حالت -n اجرا شود، *نباید* از آن استفاده شود (:ref:`idle-no-subprocess` را ببینید)." msgid "Input methods" msgstr "متدهای ورودی" -#, fuzzy -#| msgid "string" msgid "a string" -msgstr "رشته" +msgstr "یک رشته" -#, fuzzy -#| msgid "Pop up a dialog window for input of a string. Parameter title is the title of the dialog window, prompt is a text mostly describing what information to input. Return the string input. If the dialog is canceled, return ``None``. ::" msgid "Pop up a dialog window for input of a string. *title* is the title of the dialog window and *prompt* is a text describing what information to input. Return the string entered. If the dialog is canceled, return ``None``. ::" -msgstr "یک پنجره‌ی محاوره برای دریافت یک رشته باز می‌کند. پارامتر title عنوان پنجره‌ی محاوره است و prompt متنی است که عمدتاً توضیح می‌دهد چه اطلاعاتی باید وارد شود. رشته‌ی ورودی را برمی‌گرداند. اگر پنجره‌ی محاوره لغو شود، ``None`` برمی‌گرداند. ::" +msgstr "یک پنجره‌ی محاوره برای دریافت یک رشته باز می‌کند. *title* عنوان پنجره‌ی محاوره است و *prompt* متنی است که توصیف می‌کند چه اطلاعاتی باید وارد شود. رشته‌ی ورودی را برمی‌گرداند. اگر پنجره‌ی محاوره لغو شود، ``None`` برمی‌گرداند. ::" msgid ">>> screen.textinput(\"NIM\", \"Name of first player:\")" msgstr ">>> screen.textinput(\"NIM\", \"Name of first player:\")" -#, fuzzy -#| msgid "Pop up a dialog window for input of a number. title is the title of the dialog window, prompt is a text mostly describing what numerical information to input. default: default value, minval: minimum value for input, maxval: maximum value for input. The number input must be in the range minval .. maxval if these are given. If not, a hint is issued and the dialog remains open for correction. Return the number input. If the dialog is canceled, return ``None``. ::" msgid "Pop up a dialog window for input of a number. *title* is the title of the dialog window and *prompt* is a text describing what numerical information to input. *default* is the default value, *minval* and *maxval* are the minimum and maximum values for input. If these are given, the number entered must be between *minval* and *maxval*. If not, a hint is issued and the dialog remains open for correction. Return the number entered. If the dialog is canceled, return ``None``. ::" -msgstr "یک پنجره محاوره برای دریافت یک عدد باز می‌کند. title عنوان پنجره محاوره است، prompt متنی است که عمدتاً توضیح می‌دهد چه اطلاعات عددی باید وارد شود. default: مقدار پیش‌فرض، minval: حداقل مقدار برای ورودی، maxval: حداکثر مقدار برای ورودی. اگر این مقادیر داده شده باشند، عدد ورودی باید در بازه minval .. maxval باشد. در غیر این صورت، یک راهنمایی نمایش داده می‌شود و پنجره محاوره برای اصلاح باز می‌ماند. عدد ورودی را برمی‌گرداند. اگر پنجره محاوره لغو شود، ``None`` برگردانده می‌شود. ::" +msgstr "یک پنجره‌ی محاوره برای دریافت یک عدد باز می‌کند. *title* عنوان پنجره‌ی محاوره است و *prompt* متنی است که توصیف می‌کند چه اطلاعات عددی باید وارد شود. *default* مقدار پیش‌فرض است، *minval* و *maxval* حداقل و حداکثر مقدار برای ورودی هستند. اگر این مقادیر داده شده باشند، عدد ورودی باید بین *minval* و *maxval* باشد. در غیر این صورت، یک راهنمایی نمایش داده می‌شود و پنجره‌ی محاوره برای اصلاح باز می‌ماند. عدد ورودی را برمی‌گرداند. اگر پنجره‌ی محاوره لغو شود، ``None`` برگردانده می‌شود. ::" msgid ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, maxval=10000)" msgstr ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, maxval=10000)" @@ -2053,15 +1929,11 @@ msgstr ">>> screen.numinput(\"Poker\", \"Your stakes:\", 1000, minval=10, maxval msgid "Settings and special methods" msgstr "تنظیمات و متدهای ویژه" -#, fuzzy -#| msgid "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If mode is not given, current mode is returned." msgid "Set the turtle mode and perform a reset. *mode* is one of the strings \"standard\", \"logo\" or \"world\". If *mode* is not given, return the current mode." -msgstr "حالت turtle را (\"standard\"، \"logo\" یا \"world\") تنظیم کنید و بازنشانی را انجام دهید. اگر حالتی داده نشود، حالت کنونی برگردانده می‌شود." +msgstr "حالت turtle را تنظیم کنید و بازنشانی را انجام دهید. *mode* یکی از رشته‌های \"standard\"، \"logo\" یا \"world\" است. اگر حالتی داده نشود، حالت فعلی برگردانده می‌شود." -#, fuzzy -#| msgid "Mode \"standard\" is compatible with old :mod:`!turtle`. Mode \"logo\" is compatible with most Logo turtle graphics. Mode \"world\" uses user-defined \"world coordinates\". **Attention**: in this mode angles appear distorted if ``x/y`` unit-ratio doesn't equal 1." msgid "Mode \"standard\" is compatible with the old :mod:`!turtle` module. Mode \"logo\" is compatible with most Logo turtle graphics. Mode \"world\" uses user-defined world coordinates, see :func:`setworldcoordinates`. In this mode, angles appear distorted if the x and y units are not of equal length." -msgstr "حالت «standard» با ماژول قدیمی :mod:`!turtle` سازگار است. حالت «logo» با بیشتر گرافیک‌های لاک‌پشتی Logo سازگار است. حالت «world» از «مختصات جهان» تعریف‌شده توسط کاربر استفاده می‌کند. **توجه**: در این حالت، اگر نسبت واحد ``x/y`` برابر با ۱ نباشد، زاویه‌ها اعوجاج‌یافته به نظر می‌رسند." +msgstr "حالت \"standard\" با ماژول قدیمی :mod:`!turtle` سازگار است. حالت \"logo\" با بیشتر گرافیک‌های لاک‌پشتی Logo سازگار است. حالت \"world\" از مختصات جهانی تعریف‌شده توسط کاربر استفاده می‌کند، :func:`setworldcoordinates` را ببینید. در این حالت، اگر واحدهای x و y هم‌طول نباشند، زاویه‌ها اعوجاج‌یافته به نظر می‌رسند." msgid "Mode" msgstr "حالت" @@ -2090,24 +1962,17 @@ msgstr "رو به بالا (شمال)" msgid "clockwise" msgstr "در جهت عقربه‌های ساعت" -#, fuzzy -#| msgid "" -#| ">>> mode(\"logo\") # resets turtle heading to north\n" -#| ">>> mode()\n" -#| "'logo'" msgid "" ">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" msgstr "" -">>> mode(\"logo\") # resets turtle heading to north\n" +">>> mode(\"logo\") # resets turtle heading to north\n" ">>> mode()\n" "'logo'" -#, fuzzy -#| msgid "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* values of color triples have to be in the range 0..*cmode*." msgid "Return the colormode or set it to 1.0 or 255. After setting it, the *r*, *g* and *b* values of color triples have to be between 0 and *cmode*." -msgstr "colormode را برمی‌گرداند یا آن را روی 1.0 یا 255 تنظیم می‌کند. پس از آن، مقادیر *r*، *g* و *b* در سه‌تایی‌های رنگ باید در بازه‌ی 0..*cmode* باشند." +msgstr "colormode را برمی‌گرداند یا آن را روی 1.0 یا 255 تنظیم می‌کند. پس از آن، مقادیر *r*، *g* و *b* در سه‌تایی‌های رنگ باید بین 0 و *cmode* باشند." msgid "" ">>> screen.colormode(1)\n" @@ -2157,12 +2022,10 @@ msgstr "" "['arrow', 'blank', 'circle', ..., 'turtle']" msgid "a string, a tuple of pairs of numbers, a :class:`Shape` object or ``None``" -msgstr "" +msgstr "یک رشته، یک تاپل از جفت‌های عددی، یک شیء :class:`Shape` یا ``None``" -#, fuzzy -#| msgid "Now add the Shape to the Screen's shapelist and use it:" msgid "Add a turtle shape to the TurtleScreen's shape list. It can be called in four different ways:" -msgstr "اکنون Shape را به shapelistِ Screen اضافه کنید و از آن استفاده کنید:" +msgstr "یک شکل لاک‌پشت به فهرست شکل‌های TurtleScreen اضافه کنید. این تابع می‌تواند به چهار روش مختلف فراخوانی شود:" msgid "*name* is the name of an image file (PNG, GIF, PGM, and PPM) and *shape* is ``None``: Install the corresponding image shape. ::" msgstr "*name* نام یک پرونده تصویری (PNG، GIF، PGM و PPM) است و *shape* برابر ``None`` است: شکل تصویری متناظر نصب می‌شود. ::" @@ -2185,10 +2048,8 @@ msgstr ">>> screen.register_shape(\"triangle\", ((5,-3), (0,5), (-5,-3)))" msgid "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` object: Install the corresponding compound shape." msgstr "*name* یک رشته دلخواه است و *shape* یک شیء :class:`Shape` (مرکب) است: شکل مرکب متناظر نصب می‌شود." -#, fuzzy -#| msgid "Image shapes *do not* rotate when turning the turtle, so they do not display the heading of the turtle!" msgid "Image shapes do not rotate when turning the turtle, so they do not display the heading of the turtle. To use a registered shape, call :func:`shape` with its name." -msgstr "شکل‌های تصویری هنگام چرخاندن لاک‌پشت *نمی‌چرخند*، بنابراین جهت لاک‌پشت را نمایش نمی‌دهند!" +msgstr "شکل‌های تصویری هنگام چرخاندن لاک‌پشت نمی‌چرخند، بنابراین جهت لاک‌پشت را نمایش نمی‌دهند. برای استفاده از یک شکل ثبت‌شده، :func:`shape` را با نام آن فراخوانی کنید." msgid "Added support for PNG, PGM, and PPM image formats. Both a shape name and an image file name can be specified." msgstr "پشتیبانی از قالب‌های تصویری PNG، PGM و PPM افزوده شد. می‌توان هم نام شکل و هم نام پرونده تصویر را مشخص کرد." @@ -2226,8 +2087,6 @@ msgstr "" msgid "Screen-only methods" msgstr "متدهای مختص Screen" -#, fuzzy -#| msgid "Shut the turtlegraphics window." msgid "Close the turtle graphics window." msgstr "پنجره‌ی گرافیک لاک‌پشتی را ببندید." @@ -2279,10 +2138,8 @@ msgstr "" ">>> screen.setup(width=.75, height=0.5, startx=None, starty=None)\n" ">>> # sets window to 75% of screen by 50% of screen and centers" -#, fuzzy -#| msgid "a string that is shown in the titlebar of the turtle graphics window" msgid "Set the title of the turtle window to *titlestring*. The title is shown in the title bar of the turtle graphics window." -msgstr "رشته‌ای که در نوار عنوان پنجره‌ی گرافیک لاک‌پشتی نمایش داده می‌شود" +msgstr "عنوان پنجره‌ی turtle را روی *titlestring* تنظیم کنید. عنوان در نوار عنوان پنجره‌ی گرافیک لاک‌پشتی نمایش داده می‌شود." msgid ">>> screen.title(\"Welcome to the turtle zoo!\")" msgstr ">>> screen.title(\"Welcome to the turtle zoo!\")" @@ -2306,7 +2163,7 @@ msgid "Provides screen oriented methods like :func:`bgcolor` etc. that are descr msgstr "متدهای صفحه‌محوری مانند :func:`bgcolor` و غیره را فراهم می‌کند که در بالا توضیح داده شده‌اند." msgid "Subclass of :class:`TurtleScreen`, with :ref:`four methods added `. Calling ``Screen()`` returns the single screen object. If it does not exist yet, it is created. Otherwise the existing one is returned." -msgstr "" +msgstr "زیرکلاسی از :class:`TurtleScreen`، با :ref:`چهار متد اضافه‌شده `. فراخوانی ``Screen()`` تنها شیء صفحه را برمی‌گرداند. اگر هنوز وجود نداشته باشد، ایجاد می‌شود. در غیر این صورت شیء موجود برگردانده می‌شود." msgid "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas with scrollbars added" msgstr "یک ابزارک Tkinter برای دربرگرفتن ScrolledCanvas، یعنی یک بوم Tkinter با نوارهای پیمایش افزوده‌شده" @@ -2315,43 +2172,33 @@ msgid "Used by class Screen, which thus automatically provides a ScrolledCanvas msgstr "توسط کلاس Screen استفاده می‌شود، که بنابراین به‌طور خودکار یک ScrolledCanvas را به‌عنوان زمین بازی برای لاک‌پشت‌ها فراهم می‌کند." msgid "depends on *type_*" -msgstr "" +msgstr "به *type_* بستگی دارد" msgid "Data structure modeling shapes. *type_* is one of the strings \"polygon\", \"image\" or \"compound\". What *data* must be depends on *type_*: for \"polygon\" a tuple of pairs of coordinates, for \"image\" an image (only used internally), and for \"compound\" ``None``, as a compound shape is built up using the :meth:`addcomponent` method." -msgstr "" +msgstr "ساختار داده‌ای که اشکال را مدل‌سازی می‌کند. *type_* یکی از رشته‌های \"polygon\"، \"image\" یا \"compound\" است. اینکه *data* باید چه باشد به *type_* بستگی دارد: برای \"polygon\" یک تاپل از جفت‌های مختصات، برای \"image\" یک تصویر (فقط به‌صورت داخلی استفاده می‌شود)، و برای \"compound\" ``None``، زیرا یک شکل مرکب با استفاده از متد :meth:`addcomponent` ساخته می‌شود." -#, fuzzy -#| msgid "a polygon, i.e. a tuple of pairs of numbers" msgid "a tuple of pairs of numbers" -msgstr "یک چندضلعی، یعنی یک تاپل از جفت‌های عددی" +msgstr "یک تاپل از جفت‌های عددی" msgid "a color" -msgstr "" +msgstr "یک رنگ" -#, fuzzy -#| msgid "a number or ``None``" msgid "a color or ``None``" -msgstr "یک عدد یا ``None``" +msgstr "یک رنگ یا ``None``" msgid "Add a component to a shape of type \"compound\". *poly* is a polygon, a tuple of pairs of numbers. *fill* is the color the polygon is filled with and *outline* is the color of its outline. If *outline* is not given, *fill* is used for it as well." -msgstr "" +msgstr "یک جزء به یک شکل از نوع \"compound\" اضافه کنید. *poly* یک چندضلعی است، یک تاپل از جفت‌های اعداد. *fill* رنگی است که چندضلعی با آن پر می‌شود و *outline* رنگ خط دور آن است. اگر *outline* داده نشده باشد، از *fill* برای آن نیز استفاده می‌شود." msgid "Example:" msgstr "مثال:" -#, fuzzy -#| msgid "" -#| ">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" -#| ">>> s = Shape(\"compound\")\n" -#| ">>> s.addcomponent(poly, \"red\", \"blue\")\n" -#| ">>> # ... add more components and then use register_shape()" msgid "" ">>> poly = ((0,0), (10,-5), (0,10), (-10,-5))\n" ">>> s = Shape(\"compound\")\n" ">>> s.addcomponent(poly, \"red\", \"blue\")\n" ">>> # ... add more components and then use register_shape()" msgstr "" -">>> poly = ((0,0),(10,-5),(0,10),(-10,-5))\n" +">>> poly = ((0,0), (10,-5), (0,10), (-10,-5))\n" ">>> s = Shape(\"compound\")\n" ">>> s.addcomponent(poly, \"red\", \"blue\")\n" ">>> # ... add more components and then use register_shape()" @@ -2409,10 +2256,8 @@ msgstr "راهنماهای عملی" msgid "This section covers some typical turtle use-cases and approaches." msgstr "این بخش برخی از موارد استفاده و رویکردهای رایج turtle را پوشش می‌دهد." -#, fuzzy -#| msgid "Automatically begin and end filling" msgid "How to automatically begin and end filling" -msgstr "آغاز و پایان پر کردن به‌صورت خودکار" +msgstr "نحوه‌ی شروع و پایان خودکار پر کردن" msgid "Starting with Python 3.14, you can use the :func:`fill` :term:`context manager` instead of :func:`begin_fill` and :func:`end_fill` to automatically begin and end fill. Here is an example::" msgstr "از پایتون 3.14 به بعد، می‌توانید به‌جای :func:`begin_fill` و :func:`end_fill` از :func:`fill` به‌عنوان :term:`context manager` استفاده کنید تا شروع و پایان پر کردن به‌طور خودکار انجام شود. در اینجا مثالی آورده شده است::" @@ -2452,18 +2297,14 @@ msgstr "" "\n" "forward(200)" -#, fuzzy -#| msgid "Compound shapes" msgid "How to use compound shapes" -msgstr "شکل‌های ترکیبی" +msgstr "نحوه‌ی استفاده از اشکال ترکیبی" msgid "To use compound turtle shapes, which consist of several polygons of different color, you must use the helper class :class:`Shape` explicitly as described below:" msgstr "برای استفاده از شکل‌های ترکیبی turtle، که از چندین چندضلعی با رنگ‌های متفاوت تشکیل شده‌اند، باید به‌صراحت از کلاس کمکی :class:`Shape` استفاده کنید، همان‌طور که در زیر توضیح داده شده است:" -#, fuzzy -#| msgid "Create an empty Shape object of type \"compound\"." msgid "Create an empty :class:`Shape` object of type \"compound\"." -msgstr "یک شیء Shape خالی از نوع \"compound\" ایجاد کنید." +msgstr "یک شیء :class:`Shape` خالی از نوع «compound» ایجاد کنید." msgid "Add as many components to this object as desired, using the :meth:`~Shape.addcomponent` method." msgstr "هر تعداد کامپوننت که بخواهید، با استفاده از متد :meth:`~Shape.addcomponent` به این شیء اضافه کنید." @@ -2471,13 +2312,6 @@ msgstr "هر تعداد کامپوننت که بخواهید، با استفاد msgid "For example:" msgstr "برای مثال:" -#, fuzzy -#| msgid "" -#| ">>> s = Shape(\"compound\")\n" -#| ">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" -#| ">>> s.addcomponent(poly1, \"red\", \"blue\")\n" -#| ">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" -#| ">>> s.addcomponent(poly2, \"blue\", \"red\")" msgid "" ">>> s = Shape(\"compound\")\n" ">>> poly1 = ((0,0), (10,-5), (0,10), (-10,-5))\n" @@ -2486,9 +2320,9 @@ msgid "" ">>> s.addcomponent(poly2, \"blue\", \"red\")" msgstr "" ">>> s = Shape(\"compound\")\n" -">>> poly1 = ((0,0),(10,-5),(0,10),(-10,-5))\n" +">>> poly1 = ((0,0), (10,-5), (0,10), (-10,-5))\n" ">>> s.addcomponent(poly1, \"red\", \"blue\")\n" -">>> poly2 = ((0,0),(10,-5),(-10,-5))\n" +">>> poly2 = ((0,0), (10,-5), (-10,-5))\n" ">>> s.addcomponent(poly2, \"blue\", \"red\")" msgid "Now add the Shape to the Screen's shapelist and use it:" @@ -2501,10 +2335,8 @@ msgstr "" ">>> register_shape(\"myshape\", s)\n" ">>> shape(\"myshape\")" -#, fuzzy -#| msgid "Use the ``turtle`` module namespace" msgid "How to use the ``turtle`` module namespace" -msgstr "از فضای نام ماژول ``turtle`` استفاده کنید" +msgstr "نحوه‌ی استفاده از فضای نام ماژول ``turtle``" msgid "Using ``from turtle import *`` is convenient - but be warned that it imports a rather large collection of objects, and if you're doing anything but turtle graphics you run the risk of a name conflict (this becomes even more an issue if you're using turtle graphics in a script where other modules might be imported)." msgstr "استفاده از ``from turtle import *`` مناسب است، اما توجه داشته باشید که این دستور مجموعه‌ای نسبتاً بزرگ از شیء‌ها را ایمپورت می‌کند و اگر کاری به‌جز گرافیک turtle انجام می‌دهید، با خطر تعارض نام مواجه می‌شوید (این موضوع به‌ویژه زمانی مشکل‌سازتر می‌شود که از گرافیک turtle در اسکریپتی استفاده می‌کنید که ممکن است ماژول‌های دیگر نیز ایمپورت شوند)." @@ -2512,10 +2344,8 @@ msgstr "استفاده از ``from turtle import *`` مناسب است، اما msgid "The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, ``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over and over again becomes tedious, use for example ``import turtle as t`` instead.)" msgstr "راه‌حل استفاده از ``import turtle`` است - ``fd()`` به ``turtle.fd()`` تبدیل می‌شود، ``width()`` به ``turtle.width()`` تبدیل می‌شود و به همین ترتیب. (اگر تایپ کردن مکرر \"turtle\" خسته‌کننده شد، برای مثال به‌جای آن از ``import turtle as t`` استفاده کنید.)" -#, fuzzy -#| msgid "Use turtle graphics in a script" msgid "How to use turtle graphics in a script" -msgstr "استفاده از گرافیک لاک‌پشتی (turtle graphics) در یک اسکریپت" +msgstr "نحوه‌ی استفاده از گرافیک لاک‌پشت در یک اسکریپت" msgid "It's recommended to use the ``turtle`` module namespace as described immediately above, for example::" msgstr "توصیه می‌شود همان‌طور که بلافاصله در بالا توضیح داده شد، از فضای نام ماژول ``turtle`` استفاده کنید، برای مثال::" @@ -2548,10 +2378,8 @@ msgstr "t.mainloop()" msgid "to the end of the script. The script will now wait to be dismissed and will not exit until it is terminated, for example by closing the turtle graphics window." msgstr "به انتهای اسکریپت. اسکریپت اکنون منتظر می‌ماند تا بسته شود و تا زمانی که پایان داده نشود، خارج نخواهد شد، برای مثال با بستن پنجره‌ی گرافیک turtle." -#, fuzzy -#| msgid "Use object-oriented turtle graphics" msgid "How to use object-oriented turtle graphics" -msgstr "استفاده از گرافیک لاک‌پشتی شیءگرا" +msgstr "نحوه‌ی استفاده از گرافیک شیءگرای لاک‌پشت" msgid ":ref:`Explanation of the object-oriented interface `" msgstr ":ref:`توضیح رابط شیءگرا `" @@ -2603,10 +2431,8 @@ msgstr "" "t.screen.title('Object-oriented turtle demo')\n" "t.screen.bgcolor(\"orange\")" -#, fuzzy -#| msgid "How to use help" msgid "How to use :func:`!help`" -msgstr "نحوه استفاده از help" +msgstr "نحوه‌ی استفاده از :func:`!help`" msgid "The public methods of the Screen and Turtle classes are documented extensively via docstrings. So these can be used as online-help via the Python help facilities:" msgstr "متدهای عمومی کلاس‌های Screen و Turtle به‌طور گسترده‌ای از طریق رشته‌مستندها مستند شده‌اند. بنابراین می‌توان از آن‌ها به‌عنوان راهنمای برخط از طریق امکانات راهنمای پایتون استفاده کرد:" diff --git a/reference/datamodel.po b/reference/datamodel.po index d3ebff15b..0c658485f 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -453,10 +453,8 @@ msgstr ":attr:`!__doc__` رشته‌ی مستندسازی تابع است، یا msgid ":attr:`!__name__` is the function's name. See :attr:`function.__name__`." msgstr ":attr:`!__name__` نام تابع است. :attr:`function.__name__` را ببینید." -#, fuzzy -#| msgid "The name of the module the function was defined in, or ``None`` if unavailable." msgid ":attr:`!__self__` is the module object the function was defined in or ``None`` if unavailable." -msgstr "نام ماژولی که تابع در آن تعریف شده است، یا ``None`` اگر در دسترس نباشد." +msgstr ":attr:`!__self__` شیء ماژولی است که تابع در آن تعریف شده است، یا اگر در دسترس نباشد مقدار ``None`` است." msgid ":attr:`!__module__` is the name of the module the function was defined in or ``None`` if unavailable. See :attr:`function.__module__`." msgstr ":attr:`!__module__` نام ماژولی است که تابع در آن تعریف شده است، یا اگر در دسترس نباشد ``None`` است. :attr:`function.__module__` را ببینید." diff --git a/using/android.po b/using/android.po index 39a2b4979..e39f564fa 100644 --- a/using/android.po +++ b/using/android.po @@ -51,10 +51,8 @@ msgstr "`Buildozer `__، از پروژه‌ی msgid "`Chaquopy `__" msgstr "`Chaquopy `__" -#, fuzzy -#| msgid "`Termux `__" msgid "`Flet `__" -msgstr "`Termux `__" +msgstr "`Flet `__" msgid "`pyqtdeploy `__" msgstr "`pyqtdeploy `__" diff --git a/using/cmdline.po b/using/cmdline.po index 1bb656c69..cde75c8fe 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -462,10 +462,8 @@ msgstr "گزینه ``-X perf`` پشتیبانی از پروفایل‌گیر ``p msgid "``-X perf_jit`` enables support for the Linux ``perf`` profiler with DWARF support. When this option is provided, the ``perf`` profiler will be able to report Python calls using DWARF information. This option is only available on some platforms and will do nothing if is not supported on the current system. The default value is \"off\". See also :envvar:`PYTHON_PERF_JIT_SUPPORT` and :ref:`perf_profiling`." msgstr "گزینه‌ی ``-X perf_jit`` پشتیبانی از پروفایل‌گیر ``perf`` لینوکس را همراه با پشتیبانی DWARF فعال می‌کند. هنگامی که این گزینه ارائه شود، پروفایل‌گیر ``perf`` می‌تواند فراخوانی‌های پایتون را با استفاده از اطلاعات DWARF گزارش کند. این گزینه تنها روی برخی پلتفرم‌ها در دسترس است و اگر در سیستم فعلی پشتیبانی نشده باشد، هیچ کاری انجام نمی‌دهد. مقدار پیش‌فرض «off» است. همچنین :envvar:`PYTHON_PERF_JIT_SUPPORT` و :ref:`perf_profiling` را ببینید." -#, fuzzy -#| msgid "``-X disable_remote_debug`` disables the remote debugging support as described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." msgid "``-X disable-remote-debug`` disables the remote debugging support as described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." -msgstr "``-X disable_remote_debug`` پشتیبانی از اشکال‌زدایی از راه دور را که در :pep:`768` شرح داده شده است، غیرفعال می‌کند. این شامل هم قابلیت زمان‌بندی کد برای اجرا در فرایندی دیگر و هم قابلیت دریافت کد برای اجرا در فرایند جاری است." +msgstr "گزینه‌ی ``-X disable-remote-debug`` پشتیبانی از اشکال‌زدایی راه دور را همان‌طور که در :pep:`768` شرح داده شده است، غیرفعال می‌کند. این شامل هم قابلیت زمان‌بندی کد برای اجرا در یک فرایند دیگر و هم قابلیت دریافت کد برای اجرا در فرایند فعلی است." msgid "This option is only available on some platforms and will do nothing if is not supported on the current system. See also :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` and :pep:`768`." msgstr "این گزینه تنها در برخی پلتفرم‌ها در دسترس است و اگر در سیستم فعلی پشتیبانی نشود، هیچ کاری انجام نمی‌دهد. همچنین :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` و :pep:`768` را ببینید." @@ -799,10 +797,8 @@ msgstr "همچنین گزینه‌ی خط فرمان :option:`-X perf_jit <-X>` msgid "If this variable is set to a non-empty string, it disables the remote debugging feature described in :pep:`768`. This includes both the functionality to schedule code for execution in another process and the functionality to receive code for execution in the current process." msgstr "اگر این متغیر به رشته‌ای غیرخالی تنظیم شده باشد، قابلیت اشکال‌زدایی از راه دورِ توصیف‌شده در :pep:`768` را غیرفعال می‌کند. این شامل هر دو کارکرد زمان‌بندی کد برای اجرا در فرایندی دیگر و کارکرد دریافت کد برای اجرا در فرایند جاری است." -#, fuzzy -#| msgid "See also the :option:`-X disable_remote_debug` command-line option." msgid "See also the :option:`-X disable-remote-debug` command-line option." -msgstr "همچنین گزینه‌ی خط فرمان :option:`-X disable_remote_debug` را ببینید." +msgstr "همچنین گزینه‌ی خط فرمان :option:`-X disable-remote-debug` را ببینید." msgid "If this variable is set to a positive integer, it overrides the return values of :func:`os.cpu_count` and :func:`os.process_cpu_count`." msgstr "اگر این متغیر روی یک عدد صحیح مثبت تنظیم‌شده باشد، مقادیر بازگشتی :func:`os.cpu_count` و :func:`os.process_cpu_count` را بازنویسی می‌کند." diff --git a/using/configure.po b/using/configure.po index 771b89bba..bbf5200cc 100644 --- a/using/configure.po +++ b/using/configure.po @@ -295,10 +295,8 @@ msgstr "اندازه‌ی رقم‌های :class:`int` پایتون را بر ح msgid "By default, the digit size is 30." msgstr "به‌طور پیش‌فرض، اندازه رقم ۳۰ است." -#, fuzzy -#| msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgid "Define :c:macro:`PYLONG_BITS_IN_DIGIT` to ``15`` or ``30``." -msgstr "مقدار ``PYLONG_BITS_IN_DIGIT`` را برابر ``15`` یا ``30`` تعریف کنید." +msgstr "کلان‌دستور :c:macro:`PYLONG_BITS_IN_DIGIT` را روی ``15`` یا ``30`` تعریف کنید." msgid "See :data:`sys.int_info.bits_per_digit `." msgstr "به :data:`sys.int_info.bits_per_digit ` مراجعه کنید." @@ -738,13 +736,11 @@ msgstr "غیرفعال کردن تخصیص‌دهنده حافظه‌ی تخصص msgid "Disable static documentation strings to reduce the memory footprint (enabled by default). Documentation strings defined in Python are not affected." msgstr "غیرفعال‌سازی رشته‌های مستند ایستا برای کاهش مصرف حافظه (به‌صورت پیش‌فرض فعال است). رشته‌های مستند تعریف‌شده در پایتون تحت تأثیر قرار نمی‌گیرند." -#, fuzzy -#| msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgid "Don't define the :c:macro:`WITH_DOC_STRINGS` macro." -msgstr "ماکروی ``WITH_DOC_STRINGS`` را تعریف نکنید." +msgstr "کلان‌دستور :c:macro:`WITH_DOC_STRINGS` را تعریف نکنید." msgid "Define this macro to include static documentation strings in the build. It is defined by default, unless :option:`--without-doc-strings` is used." -msgstr "" +msgstr "این کلان‌دستور را برای گنجاندن رشته‌های مستندات ایستا در ساخت تعریف کنید. این مورد به طور پیش‌فرض تعریف می‌شود، مگر اینکه از :option:`--without-doc-strings` استفاده شود." msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "ماکرو ``PyDoc_STRVAR()`` را ببینید." @@ -876,7 +872,7 @@ msgid "Enable MemorySanitizer allocation error detector, ``msan`` (default is no msgstr "فعال‌سازی آشکارساز خطای تخصیص MemorySanitizer، ``msan`` (پیش‌فرض: خیر)." msgid "MSan reports false positives for memory initialized by libraries that are not built with MSan, so either build all dependencies with MSan or disable the extension modules that use them in :file:`Modules/Setup.local`." -msgstr "" +msgstr "MSan برای حافظه‌ای که توسط کتابخانه‌هایی که با MSan ساخته نشدن مقداردهی اولیه شده، نتایج مثبت کاذب گزارش می‌دهد. بنابراین یا همه‌ی وابستگی‌ها را با MSan بسازید، یا ماژول‌های توسعه‌ای‌ای که از آن‌ها استفاده می‌کنند را در Modules/Setup.local غیرفعال کنید." msgid "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` (default is no)." msgstr "فعال کردن آشکارساز رفتار تعریف‌نشده UndefinedBehaviorSanitizer، ``ubsan`` (پیش‌فرض: خیر)." diff --git a/using/ios.po b/using/ios.po index 1497ba8d1..56f74f7d1 100644 --- a/using/ios.po +++ b/using/ios.po @@ -41,10 +41,8 @@ msgstr "در iOS، مفهوم نصب به‌عنوان یک منبع سیستم msgid "As a result, the only way you can use Python on iOS is in embedded mode - that is, by writing a native iOS application, and embedding a Python interpreter using ``libPython``, and invoking Python code using the :ref:`Python embedding API `. The full Python interpreter, the standard library, and all your Python code is then packaged as a standalone bundle that can be distributed via the iOS App Store." msgstr "در نتیجه، تنها راهی که می‌توانید از پایتون روی iOS استفاده کنید، حالت تعبیه‌شده است؛ یعنی با نوشتن یک برنامه‌ی بومی iOS، تعبیه کردن یک مفسر پایتون با استفاده از ``libPython`` و فراخواندن کد پایتون با استفاده از :ref:`API تعبیه پایتون `. سپس مفسر کامل پایتون، کتابخانه‌ی استاندارد و تمام کد پایتون شما به‌صورت یک بسته‌ی مستقل بسته‌بندی می‌شود که می‌توان آن را از طریق iOS App Store توزیع کرد." -#, fuzzy -#| msgid "If you're looking to experiment for the first time with writing an iOS app in Python, projects such as `BeeWare `__ and `Kivy `__ will provide a much more approachable user experience. These projects manage the complexities associated with getting an iOS project running, so you only need to deal with the Python code itself." msgid "If you're looking to experiment for the first time with writing an iOS app in Python, projects such as `BeeWare `__, `Kivy `__, and `Flet `__ will provide a much more approachable user experience. These projects manage the complexities associated with getting an iOS project running, so you only need to deal with the Python code itself." -msgstr "اگر می‌خواهید برای نخستین بار نوشتن یک اپلیکیشن iOS با پایتون را تجربه کنید، پروژه‌هایی مانند `BeeWare `__ و `Kivy `__ تجربه‌ی کاربری بسیار در دسترس‌تری فراهم می‌کنند. این پروژه‌ها پیچیدگی‌های مرتبط با راه‌اندازی یک پروژه iOS را مدیریت می‌کنند، بنابراین تنها لازم است با خودِ کد پایتون سروکار داشته باشید." +msgstr "اگر می‌خواهید برای نخستین بار نوشتن یک برنامه‌ی iOS را با پایتون آزمایش کنید، پروژه‌هایی مانند `BeeWare `__، `Kivy `__ و `Flet `__ تجربه‌ی کاربری بسیار ساده‌تری را فراهم می‌کنند. این پروژه‌ها پیچیدگی‌های مربوط به راه‌اندازی یک پروژه‌ی iOS را مدیریت می‌کنند، بنابراین شما فقط باید با خود کد پایتون سروکار داشته باشید." msgid "Python at runtime on iOS" msgstr "پایتون در زمان اجرا روی iOS" diff --git a/using/mac.po b/using/mac.po index 912bea736..075c6da04 100644 --- a/using/mac.po +++ b/using/mac.po @@ -186,7 +186,7 @@ msgid "`wxPython `_: A cross-platform toolkit that support msgstr "`wxPython `_: مجموعه ابزار چندسکویی که از سیستم‌عامل‌های دسکتاپ پشتیبانی می‌کند." msgid "`Flet `_: A framework for building cross-platform desktop, mobile, and web applications in Python." -msgstr "" +msgstr "`Flet `_: چارچوبی برای ساخت برنامه‌های چندسکویی دسکتاپ، موبایل و وب در پایتون." msgid "Advanced Topics" msgstr "مباحث پیشرفته" diff --git a/using/windows.po b/using/windows.po index 78ae00320..f7a69af64 100644 --- a/using/windows.po +++ b/using/windows.po @@ -209,10 +209,8 @@ msgstr "گزینه‌ی ``--source=`` اجازه می‌دهد تا نما msgid "Passing ``--force`` will ignore any cached files and remove any existing install to replace it with the specified one." msgstr "با ارسال ``--force``، پرونده‌های ذخیره‌شده در نهانگاه نادیده گرفته می‌شوند و هر نصب موجود حذف می‌شود تا با نصب مشخص‌شده جایگزین شود." -#, fuzzy -#| msgid "Passing ``--update`` will replace existing installs if the new version is newer. Otherwise, they will be left. If no tags are provided with ``--update``, all installs managed by the Python install manager will be updated if newer versions are available. Updates will remove any modifications made to the install, including globally installed packages, but virtual environments will continue to work." msgid "Passing ``--update`` will replace existing installs if the new version is newer. Otherwise, they will be left. If no tags are provided with ``--update``, all installs managed by the Python install manager will be updated if newer versions are available. Updates will remove any modifications made to the install, including globally installed packages, but will leave ``site-packages`` and ``Scripts`` directories as is. Virtual environments are also unaffected." -msgstr "با ارسال ``--update``، در صورتی که نسخه جدید جدیدتر باشد، نصب‌های موجود جایگزین می‌شوند. در غیر این صورت، دست‌نخورده باقی می‌مانند. اگر هیچ برچسبی همراه ``--update`` ارائه نشود، تمام نصب‌های مدیریت‌شده توسط مدیر نصب پایتون، در صورت وجود نسخه‌های جدیدتر، به‌روزرسانی می‌شوند. به‌روزرسانی‌ها هرگونه تغییرات اعمال‌شده روی نصب، از جمله بسته‌های نصب‌شده به صورت سراسری، را حذف می‌کنند، اما محیط‌های مجازی به کار خود ادامه خواهند داد." +msgstr "ارسال ``--update`` در صورتی که نسخه‌ی جدیدتر باشد، نصب‌های موجود را جایگزین خواهد کرد. در غیر این صورت، آن‌ها دست‌نخورده باقی خواهند ماند. اگر هیچ برچسبی با ``--update`` ارائه نشود، تمام نصب‌های مدیریت‌شده توسط مدیر نصب پایتون در صورت در دسترس بودن نسخه‌های جدیدتر به‌روزرسانی خواهند شد. به‌روزرسانی‌ها هرگونه تغییر ایجاد شده در نصب، از جمله بسته‌های نصب‌شده‌ی سراسری را حذف خواهند کرد، اما دایرکتوری‌های ``site-packages`` و ``Scripts`` را به همان شکل حفظ می‌کنند. محیط‌های مجازی نیز تحت تأثیر قرار نمی‌گیرند." msgid "Passing ``--dry-run`` will generate output and logs, but will not modify any installs." msgstr "با ارسال ``--dry-run``، خروجی و گزارش‌ها تولید می‌شوند، اما هیچ نصبی تغییر نمی‌کند." @@ -283,10 +281,8 @@ msgstr "مدیر نصب پایتون با یک سلسله‌مراتب از پر msgid "This section will describe the defaults, but be aware that modified or overridden installs may resolve settings differently." msgstr "این بخش پیش‌فرض‌ها را توصیف می‌کند، اما آگاه باشید که ممکن است نصب‌های تغییر داده‌شده یا بازنویسی‌شده، تنظیمات را به شکل متفاوتی حل کنند." -#, fuzzy -#| msgid "A global configuration file may be configured by an administrator, and would be read first. The user configuration file is stored at :file:`%AppData%\\\\Python\\\\pymanager.json` (note that this location is under ``Roaming``, not ``Local``) and is read next, overwriting any settings from earlier files. An additional configuration file may be specified as the ``PYTHON_MANAGER_CONFIG`` environment variable or the ``--config`` command line option (but not both). These locations may be modified by administrative customization options listed later." msgid "A global configuration file may be configured by an :ref:`administrator ` and would be read first. The user configuration file is stored at :file:`%AppData%\\\\Python\\\\pymanager.json` (note that this location is under ``Roaming``, not ``Local``) and is read next, overwriting any settings from earlier files. An additional configuration file may be specified as the ``PYTHON_MANAGER_CONFIG`` environment variable or the ``--config`` command line option (but not both). These locations may be modified by administrative customization options listed later." -msgstr "ممکن است یک پرونده پیکربندی سراسری توسط مدیر سیستم پیکربندی شود و ابتدا خوانده می‌شود. پرونده پیکربندی کاربر در :file:`%AppData%\\\\Python\\\\pymanager.json` ذخیره می‌شود (توجه داشته باشید که این مکان زیر ``Roaming`` است، نه ``Local``) و در مرحله بعد خوانده می‌شود و هر تنظیمی از پرونده‌های قبلی را بازنویسی می‌کند. می‌توان یک پرونده پیکربندی اضافی را از طریق متغیر محیطی ``PYTHON_MANAGER_CONFIG`` یا گزینه خط فرمان ``--config`` مشخص کرد (اما نه هر دو). این مکان‌ها ممکن است توسط گزینه‌های سفارشی‌سازی مدیریتی که در ادامه فهرست شده‌اند تغییر یابند." +msgstr "یک پرونده‌ی پیکربندی سراسری ممکن است توسط یک :ref:`مدیر ` پیکربندی شود و ابتدا خوانده شود. پرونده‌ی پیکربندی کاربر در :file:`%AppData%\\\\Python\\\\pymanager.json` ذخیره می‌شود (توجه داشته باشید که این مکان تحت ``Roaming`` است، نه ``Local``) و سپس خوانده می‌شود که تنظیمات پرونده‌های قبلی را بازنویسی می‌کند. یک پرونده‌ی پیکربندی اضافی ممکن است به عنوان متغیر محیطی ``PYTHON_MANAGER_CONFIG`` یا گزینه‌ی خط فرمان ``--config`` (اما نه هر دو) مشخص شود. این مکان‌ها ممکن است با گزینه‌های سفارشی‌سازی مدیریتی که در ادامه فهرست شده‌اند، اصلاح شوند." msgid "The following settings are those that are considered likely to be modified in normal use. Later sections list those that are intended for administrative customization." msgstr "تنظیمات زیر، تنظیماتی هستند که به‌احتمال زیاد در استفاده‌ی عادی تغییر داده می‌شوند. بخش‌های بعدی تنظیماتی را فهرست می‌کنند که برای سفارشی‌سازی مدیریتی در نظر گرفته شده‌اند." From 56a7675c74f88a83fb0edeb7abaca2b5fa1d8500 Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Fri, 23 Oct 2026 18:20:55 +0330 Subject: [PATCH 14/15] Update translations --- library/tokenize.po | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/library/tokenize.po b/library/tokenize.po index 3d2daf7ef..63dd9e86b 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -34,10 +34,8 @@ msgstr "**کد منبع:** :source:`Lib/tokenize.py`" msgid "The :mod:`!tokenize` module provides a lexical scanner for Python source code, implemented in Python. The scanner in this module returns comments as tokens as well, making it useful for implementing \"pretty-printers\", including colorizers for on-screen displays." msgstr "ماژول :mod:`!tokenize` یک پویشگر واژگانی برای کد منبع پایتون فراهم می‌کند که با پایتون پیاده‌سازی شده است. پویشگر این ماژول کامنت‌ها را نیز به‌صورت توکن برمی‌گرداند و به همین دلیل برای پیاده‌سازی «زیبانویس»ها، از جمله رنگ‌آمیزکننده‌های نمایش روی صفحه، مفید است." -#, fuzzy -#| msgid "To simplify token stream handling, all :ref:`operator ` and :ref:`delimiter ` tokens and :data:`Ellipsis` are returned using the generic :data:`~token.OP` token type. The exact type can be determined by checking the ``exact_type`` property on the :term:`named tuple` returned from :func:`tokenize.tokenize`." msgid "To simplify token stream handling, all :ref:`operator ` and :ref:`delimiter ` tokens and :data:`Ellipsis` are returned using the generic :data:`~token.OP` token type. The :attr:`TokenInfo.exact_type` property gives the exact token type." -msgstr "برای ساده‌سازی مدیریت جریان توکن، تمام توکن‌های :ref:`عملگر ` و :ref:`جداکننده ` و :data:`Ellipsis` با استفاده از نوع توکن عام :data:`~token.OP` برگردانده می‌شوند. نوع دقیق را می‌توان با بررسی ویژگی ``exact_type`` روی :term:`named tuple` برگشتی از :func:`tokenize.tokenize` تعیین کرد." +msgstr "برای ساده‌سازی مدیریت جریان توکن‌ها، تمام توکن‌های :ref:`عملگر ` و :ref:`جداکننده ` و همچنین :data:`Ellipsis` با استفاده از نوع توکن عام :data:`~token.OP` بازگردانده می‌شوند. ویژگی :attr:`TokenInfo.exact_type` نوع دقیق توکن را می‌دهد." msgid "Note that the functions in this module are only designed to parse syntactically valid Python code (code that does not raise when parsed using :func:`ast.parse`). The behavior of the functions in this module is **undefined** when providing invalid Python code and it can change at any point." msgstr "توجه داشته باشید که توابع این ماژول فقط برای تجزیه کد پایتون معتبر از نظر سینتکسی طراحی شده‌اند (کدی که هنگام تجزیه با استفاده از :func:`ast.parse` استثنایی پرتاب نمی‌کند). رفتار توابع این ماژول در صورت ارائه کد پایتون نامعتبر **تعریف‌نشده** است و ممکن است در هر زمانی تغییر کند." @@ -52,10 +50,10 @@ msgid "The :func:`.tokenize` generator requires one argument, *readline*, which msgstr "تولیدگر :func:`.tokenize` به یک آرگومان، *readline*، نیاز دارد که باید یک شیء فراخوانی‌پذیر باشد و همان رابط متد :meth:`io.IOBase.readline` اشیای پرونده را فراهم کند. هر فراخوانی این تابع باید یک سطر از ورودی را به‌صورت بایت برگرداند." msgid "The generator produces :class:`TokenInfo` objects." -msgstr "" +msgstr "این تولیدگر اشیای :class:`TokenInfo` را تولید می‌کند." msgid "Changed to yield :class:`TokenInfo` objects instead of plain tuples." -msgstr "" +msgstr "تغییر کرد تا به‌جای تاپل‌های ساده، اشیای :class:`TokenInfo` را بازگرداند (yield کند)." msgid ":func:`.tokenize` determines the source encoding of the file by looking for a UTF-8 BOM or encoding cookie, according to :pep:`263`." msgstr ":func:`.tokenize` کدگذاری منبع پرونده را با جست‌وجوی BOM UTF-8 یا کوکی کدگذاری، طبق :pep:`263` تعیین می‌کند." @@ -66,43 +64,41 @@ msgstr "یک منبع را با خواندن رشته‌های یونیکد به msgid "Like :func:`.tokenize`, the *readline* argument is a callable returning a single line of input. However, :func:`generate_tokens` expects *readline* to return a str object rather than bytes." msgstr "مانند :func:`.tokenize`، آرگومان *readline* یک شیء فراخوانی‌پذیر است که یک سطر ورودی را برمی‌گرداند. با این حال، :func:`generate_tokens` انتظار دارد که *readline* به‌جای bytes یک شیء str برگرداند." -#, fuzzy -#| msgid "The result is an iterator yielding named tuples, exactly like :func:`.tokenize`. It does not yield an :data:`~token.ENCODING` token." msgid "The result is an iterator yielding :class:`TokenInfo` objects, exactly like :func:`.tokenize`. It does not yield an :data:`~token.ENCODING` token." -msgstr "نتیجه یک پیمایش‌گر است که تاپل‌های نام‌دار تولید می‌کند، دقیقاً مانند :func:`.tokenize`. این پیمایش‌گر توکن :data:`~token.ENCODING` را تولید نمی‌کند." +msgstr "نتیجه یک پیمایش‌گر است که اشیای :class:`TokenInfo` را تولید می‌کند، دقیقاً مانند :func:`.tokenize`. این تابع یک توکن :data:`~token.ENCODING` تولید نمی‌کند." msgid "A :term:`named tuple` describing a token. It has five fields and an additional :attr:`exact_type` property." -msgstr "" +msgstr "یک :term:`تاپل نام‌دار ` که یک توکن را توصیف می‌کند. این شیء دارای پنج فیلد و یک ویژگی :attr:`exact_type` اضافی است." msgid "An integer identifying the token type, as defined by the constants in :mod:`token`, such as :data:`~token.NAME` and :data:`~token.STRING`. Operators and delimiters have type :data:`~token.OP`; use :attr:`exact_type` for their specific token type." -msgstr "" +msgstr "یک عدد صحیح که نوع توکن را مشخص می‌کند، همان‌طور که توسط ثابت‌های موجود در ماژول :mod:`token` مانند :data:`~token.NAME` و :data:`~token.STRING` تعریف شده است. عملگرها و جداکننده‌ها دارای نوع :data:`~token.OP` هستند؛ از :attr:`exact_type` برای نوع توکن خاص آن‌ها استفاده کنید." msgid "The token text as a :class:`str`. For :data:`~token.STRING` tokens, this includes the quotes, any prefix, and escape sequences, without evaluating them." -msgstr "" +msgstr "متن توکن به صورت :class:`str`. برای توکن‌های :data:`~token.STRING`، این شامل نقل‌قول‌ها، هر پیشوند و دنباله‌های گریز می‌شود، بدون اینکه آن‌ها را ارزیابی کند." msgid "For an :data:`~token.ENCODING` token, this is the encoding name. Tokens inserted without corresponding source text can have an empty string. In :data:`~token.FSTRING_MIDDLE` and :data:`~token.TSTRING_MIDDLE` tokens, doubled braces are replaced by single braces." -msgstr "" +msgstr "برای یک توکن :data:`~token.ENCODING`، این نام کدگذاری است. توکن‌هایی که بدون متن منبع متناظر درج می‌شوند می‌توانند یک رشته‌ی خالی داشته باشند. در توکن‌های :data:`~token.FSTRING_MIDDLE` و :data:`~token.TSTRING_MIDDLE`، آکولادهای دوتایی با آکولادهای تکی جایگزین می‌شوند." msgid "A 2-tuple ``(srow, scol)`` of ints specifying the inclusive start position of the token in the source. Rows are numbered from 1 and columns from 0. Columns count Unicode code points; a tab counts as one column, without expanding it to a tab stop." -msgstr "" +msgstr "یک ۲-تایی ``(srow, scol)`` از اعداد صحیح که موقعیت شروع فراگیر توکن را در منبع مشخص می‌کند. ردیف‌ها از ۱ و ستون‌ها از 0 شماره‌گذاری می‌شوند. ستون‌ها نقطه‌کدهای یونیکد را می‌شمارند؛ یک تب به عنوان یک ستون محسوب می‌شود، بدون اینکه آن را به یک توقف تب گسترش دهد." msgid "For an :data:`~token.ENCODING` token, this is ``(0, 0)``." -msgstr "" +msgstr "برای یک توکن :data:`~token.ENCODING`، این مقدار ``(0, 0)`` است." msgid "A 2-tuple ``(erow, ecol)`` of ints specifying the exclusive end position of the token. Rows are numbered from 1 and columns from 0. For a token spanning multiple lines, *erow* is the final row and *ecol* is the column on that row." -msgstr "" +msgstr "یک ۲-تاپل ``(erow, ecol)`` از اعداد صحیح که موقعیت پایانی انحصاری توکن را مشخص می‌کند. ردیف‌ها از ۱ و ستون‌ها از ۰ شماره‌گذاری می‌شوند. برای توکنی که چندین سطر را در بر می‌گیرد، *erow* ردیف نهایی و *ecol* ستون واقع در آن ردیف است." msgid "For example, the name ``spam`` at the beginning of the first line has :attr:`start` equal to ``(1, 0)`` and :attr:`end` equal to ``(1, 4)``." -msgstr "" +msgstr "برای مثال، نام ``spam`` در ابتدای سطر اول دارای :attr:`start` برابر با ``(1, 0)`` و :attr:`end` برابر با ``(1, 4)`` است." msgid "For an :data:`~token.ENCODING` token, this is ``(0, 0)``. A :data:`~token.NEWLINE` or :data:`~token.NL` token inserted at the end of input without a final newline can have an end column one beyond the source text." -msgstr "" +msgstr "برای یک توکن :data:`~token.ENCODING`، این مقدار برابر با ``(0, 0)`` است. یک توکن :data:`~token.NEWLINE` یا :data:`~token.NL` که در انتهای ورودی بدون نویسه‌ی جدید (newline) نهایی درج شده باشد، می‌تواند ستون پایانی را یک واحد فراتر از متن منبع داشته باشد." msgid "A :class:`str` containing the full source line on which the token was found, including surrounding text and the line terminator if present. For a token spanning multiple lines, this can contain several source lines. It is empty for :data:`~token.ENCODING` and :data:`~token.ENDMARKER` tokens." -msgstr "" +msgstr "یک :class:`str` حاوی سطر منبع کاملی که توکن در آن پیدا شده است، شامل متن پیرامون و پایان‌دهنده‌ی سطر (در صورت وجود). برای توکنی که چندین سطر را در بر می‌گیرد، این مورد می‌تواند شامل چندین سطر منبع باشد. این مقدار برای توکن‌های :data:`~token.ENCODING` و :data:`~token.ENDMARKER` خالی است." msgid "An integer identifying the specific operator type for :data:`~token.OP` tokens, as defined by the constants in :mod:`token`. For all other token types, this equals :attr:`type`. For example, a ``+`` token has :attr:`type` equal to :data:`~token.OP` and :attr:`exact_type` equal to :data:`~token.PLUS`." -msgstr "" +msgstr "یک عدد صحیح که نوع عملگر خاص را برای توکن‌های :data:`~token.OP`، همان‌طور که توسط ثابت‌های موجود در :mod:`token` تعریف شده است، شناسایی می‌کند. برای سایر انواع توکن‌ها، این مقدار برابر با :attr:`type` است. برای مثال، یک توکن ``+`` دارای :attr:`type` برابر با :data:`~token.OP` و :attr:`exact_type` برابر با :data:`~token.PLUS` است." msgid "All constants from the :mod:`token` module are also exported from :mod:`!tokenize`." msgstr "تمام ثابت‌های ماژول :mod:`token` نیز از :mod:`!tokenize` اکسپورت می‌شوند." From 3e44e65562531ed41f686098dd1548c29a706048 Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Fri, 23 Oct 2026 18:30:14 +0330 Subject: [PATCH 15/15] Add 3.14 label to sync-with-cpython workflow --- .github/workflows/sync-with-cpython.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/sync-with-cpython.yml b/.github/workflows/sync-with-cpython.yml index 15fa963ff..55b344979 100644 --- a/.github/workflows/sync-with-cpython.yml +++ b/.github/workflows/sync-with-cpython.yml @@ -129,6 +129,7 @@ jobs: --title "🔍 Translation review needed after CPython sync ($(date +%Y-%m-%d))" \ --body-file "$report" \ --label "تغییرات خودکار در ترجمه‌ها" \ + --label "3.14" \ --repo "${{ github.repository }}" fi