From 75fcc671c337b33e95ec5f244df18ed374ea162c Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Wed, 19 Aug 2026 16:39:24 +0330 Subject: [PATCH 1/3] Change positional translation and update GLOSSARY --- GLOSSARY.md | 156 ++++++++++++++++++++-------------------- library/functions.po | 4 +- tutorial/controlflow.po | 38 +++++----- tutorial/inputoutput.po | 4 +- 4 files changed, 101 insertions(+), 101 deletions(-) diff --git a/GLOSSARY.md b/GLOSSARY.md index 4af79ba83..385c80c47 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -5,81 +5,81 @@ > این واژه‌نامه با الهام از واژه‌نامه پروژهٔ ترجمه مستندات Vue.js به فارسی تهیه شده و از ساختار و توضیحات دقیق اون استفاده شده. با تشکر از مشارکت‌کنندگان این پروژه برای زحماتشون: > https://github.com/vuejs-translations/docs-fa/blob/main/GLOSSARY.md -| English | فارسی | -| ------------- | ------------------------ | -| variable | متغیر | -| value | مقدار | -| type | نوع، نوع داده، تایپ | -| string | رشته | -| integer | عدد صحیح | -| boolean | بولی | -| list | فهرست | -| dictionary | دیکشنری | -| function | تابع | -| argument | آرگومان | -| return | بازگشت، برگرداندن | -| expression | عبارت | -| statement | دستور | -| method | متد | -| attribute | ویژگی، صفت، شاخصه | -| property | ویژگی، پراپرتی، خصوصیت | -| class | کلاس | -| object | شیء | -| instance | نمونه | -| loop | حلقه | -| iterable | تکرارپذیر | -| index | اندیس، شماره | -| module | ماژول | -| package | بسته | -| import | ایمپورت | -| built-in | توکار، درونی، درون‌ساخته | -| exception | استثنا | -| debugging | اشکال‌زدایی، دیباگ کردن | -| mock | ماک | -| unit test | یونیت تست | -| syntax | سینتکس، نحو | -| command line | خط فرمان | -| interface | رابط | -| custom | سفارشی، اختصاصی | -| local | محلی | -| global | سراسری | -| load | بارگذاری | -| loader | بارگذار | -| async | ناهمگام، غیرهمگام | -| wrapper | پوششی، دربرگیرنده | -| element | المان، عنصر | -| event | رویداد | -| endpoint | پایانه | -| DOM | DOM | -| component | کامپوننت | -| ecosystem | اکوسیستم | -| accessibility | دسترسی‌پذیری | -| runtime | ران‌تایم | -| dependency | وابستگی | -| community | کامیونیتی | -| namespace | نام‌فضا | -| Tracking | پیگیری | -| method | روش | -| parameter | پارامتر | -| iterator | تکرارگر | -| generator | تولیدگر | -| decorator | دکوراتور، آراینده | -| keyword | کلیدواژه | -| operator | عملگر | -| interpreter | مفسر | -| mutable | تغییرپذیر | -| immutable | تغییرناپذیر | -| callback | کال‌بک، فراخوانی بازگشتی | -| deprecated | منسوخ، از رده خارج شده | -| character | نویسه | -| scope | محدوده | -| keyword argument | آرگومان کلیدواژه‌ای | -| raise | پرتاب | -| list comprehension | درک فهرستی | -| directory | پوشه | -| stack traceback | ردگیری پشته | -| item | آیتم | -| quotation | علامت نقل‌وقول | -| escape | خنثی کردن | -| unpacking | واگشایی | -| shadowing | پوشاندن | \ No newline at end of file +| English | فارسی | +| ---------------- | ------------------------ | +| accessibility | دسترسی‌پذیری | +| argument | آرگومان | +| async | ناهمگام، غیرهمگام | +| attribute | ویژگی، صفت، شاخصه | +| boolean | بولی | +| built-in | توکار، درونی، درون‌ساخته | +| callback | کال‌بک، فراخوانی بازگشتی | +| character | نویسه | +| class | کلاس | +| command line | خط فرمان | +| community | کامیونیتی | +| component | کامپوننت | +| custom | سفارشی، اختصاصی | +| decorator | دکوراتور، آراینده | +| debugging | اشکال‌زدایی، دیباگ کردن | +| deprecated | منسوخ، از رده خارج شده | +| dependency | وابستگی | +| dictionary | دیکشنری | +| directory | پوشه | +| DOM | DOM | +| element | المان، عنصر | +| endpoint | پایانه | +| escape | خنثی کردن | +| ecosystem | اکوسیستم | +| event | رویداد | +| exception | استثنا | +| expression | عبارت | +| function | تابع | +| generator | تولیدگر | +| global | سراسری | +| import | ایمپورت | +| immutable | تغییرناپذیر | +| index | اندیس، شماره | +| instance | نمونه | +| integer | عدد صحیح | +| interface | رابط | +| interpreter | مفسر | +| item | آیتم | +| iterable | تکرارپذیر | +| keyword | کلیدواژه | +| keyword argument | آرگومان کلیدواژه‌ای | +| list | فهرست | +| list comprehension | درک فهرستی | +| load | بارگذاری | +| loader | بارگذار | +| local | محلی | +| loop | حلقه | +| method | متد | +| method | روش | +| mock | ماک | +| module | ماژول | +| mutable | تغییرپذیر | +| namespace | نام‌فضا | +| object | شیء | +| operator | عملگر | +| package | بسته | +| parameter | پارامتر | +| positinal | جایگاهی | +| property | ویژگی، پراپرتی، خصوصیت | +| quotation | علامت نقل‌وقول | +| raise | پرتاب | +| return | بازگشت، برگرداندن | +| runtime | ران‌تایم | +| scope | محدوده | +| shadowing | پوشاندن | +| stack traceback | ردگیری پشته | +| statement | دستور | +| string | رشته | +| syntax | سینتکس، نحو | +| Tracking | پیگیری | +| type | نوع، نوع داده، تایپ | +| unit test | یونیت تست | +| unpacking | واگشایی | +| value | مقدار | +| variable | متغیر | +| wrapper | پوششی، دربرگیرنده | \ No newline at end of file diff --git a/library/functions.po b/library/functions.po index d5d6bcb18..cf066e9a2 100644 --- a/library/functions.po +++ b/library/functions.po @@ -376,7 +376,7 @@ msgid "Return a Boolean value, i.e. one of ``True`` or ``False``. The argument msgstr "یک مقدار بولی، یعنی یکی از ``True`` یا ``False`` را بر می‌گرداند. آرگومان با استفاده از استاندارد :ref:`truth testing procedure ` تبدیل می شود. اگر آرگومان نادرست یا حذف شده باشد، ``False`` را برمی گرداند. در غیر این صورت، ``True`` را برمی گرداند. کلاس :class:`bool` یک زیر کلاس از :class:`int` است (به :ref:`typesnumeric` مراجعه کنید). این کلاس دیگر قابل زیرکلاس‌بندی نیست. تنها نمونه های آن ``False`` و ``True`` هستند (به :ref:`typebool` مراجعه کنید)." msgid "The parameter is now positional-only." -msgstr "این آرگومان اکنون صرفاً جایگاهی (positional-only) است." +msgstr "این آرگومان اکنون فقط‌جایگاهی (positional-only) است." msgid "This function drops you into the debugger at the call site. Specifically, it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight through. By default, ``sys.breakpointhook()`` calls :func:`pdb.set_trace` expecting no arguments. In this case, it is purely a convenience function so you don't have to explicitly import :mod:`pdb` or type as much code to enter the debugger. However, :func:`sys.breakpointhook` can be set to some other function and :func:`breakpoint` will automatically call that, allowing you to drop into the debugger of choice. If :func:`sys.breakpointhook` is not accessible, this function will raise :exc:`RuntimeError`." msgstr "این تابع، اجرای برنامه را در محل فراخوانی متوقف کرده و شما را وارد محیط اشکال‌زدا (debugger) می‌کند. به طور خاص، این تابع، :func:`sys.breakpointhook` را فراخوانی کرده و مقادیر ``args`` و ``kws`` مستقیماً به آن ارسال (pass) می‌کند. به طور پیش‌فرض، تابع ``sys.breakpointhook()`` بدون نیاز به هیچ آرگومانی :func:`pdb.set_trace` را فراخوانی می کند. در این حالت، این صرفاً یک تابع کمکی (convenience function) است تا مجبور نباشید ماژول :mod:`pdb` را به صراحت ایمپورت (import) کنید یا برای ورود به اشکال‌زدا، کد زیادی بنویسید. با این حال، می‌توان :func:`sys.breakpointhook` را روی تابع دیگری تنظیم کرد و در این صورت، :func:`breakpoint` به طور خودکار آن را فراخوانی می کند و به شما این امکان را می دهد که به اشکال‌زدای مورد نظر خود وارد شوید. اگر :func:`sys.breakpointhook` قابل دسترسی نباشد، این تابع، استثنای :exc:`RuntimeError` را پرتاب خواهد کرد." @@ -914,7 +914,7 @@ msgid "If *base* is not an instance of :class:`int` and the *base* object has a msgstr "اگر *base* نمونه‌ای از :class:`int` نباشد و شیء *base* متد :meth:`base.__index__ ` را تعریف کرده باشد، آن متد برای به‌دست آوردن یک عدد صحیح به‌عنوان مبنا فراخوانی می‌شود. در نسخه‌های پیشین، به‌جای :meth:`base.__index__ ` از :meth:`base.__int__ ` استفاده می‌شد." msgid "The first parameter is now positional-only." -msgstr "پارامتر اول اکنون فقط به‌صورت موقعیتی قابل ارسال است." +msgstr "پارامتر اول اکنون فقط به‌صورت فقط‌جایگاهی قابل ارسال است." msgid "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not defined." msgstr "اگر :meth:`~object.__int__` تعریف نشده باشد، به :meth:`~object.__index__` بازمی‌گردد." diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index f1de2d4b6..b7baca16a 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -515,7 +515,7 @@ msgstr "" " print(\"Not a point\")" msgid "You can use positional parameters with some builtin classes that provide an ordering for their attributes (e.g. dataclasses). You can also define a specific position for attributes in patterns by setting the ``__match_args__`` special attribute in your classes. If it's set to (\"x\", \"y\"), the following patterns are all equivalent (and all bind the ``y`` attribute to the ``var`` variable)::" -msgstr "می‌توانید از پارامترهای موقعیتی با برخی کلاس‌های داخلی که برای ویژگی‌های خود ترتیب مشخصی ارائه می‌کنند (برای مثال dataclassها) استفاده کنید. همچنین می‌توانید با تنظیم ویژگی ویژهٔ ``__match_args__`` در کلاس‌های خود، موقعیت مشخصی برای ویژگی‌ها در الگوها تعریف کنید. اگر این ویژگی روی (\"x\", \"y\") تنظیم شده باشد، الگوهای زیر همگی معادل هستند (و همگی ویژگی ``y`` را در متغیر ``var`` قرار می‌دهند)::" +msgstr "می‌توانید از پارامترهای جایگاهی با برخی کلاس‌های داخلی که برای ویژگی‌های خود ترتیب مشخصی ارائه می‌کنند (برای مثال dataclassها) استفاده کنید. همچنین می‌توانید با تنظیم ویژگی ویژهٔ ``__match_args__`` در کلاس‌های خود، موقعیت مشخصی برای ویژگی‌ها در الگوها تعریف کنید. اگر این ویژگی روی (\"x\", \"y\") تنظیم شده باشد، الگوهای زیر همگی معادل هستند (و همگی ویژگی ``y`` را در متغیر ``var`` قرار می‌دهند)::" msgid "" "Point(1, var)\n" @@ -913,12 +913,12 @@ msgid "" "parrot('a million', 'bereft of life', 'jump') # 3 positional arguments\n" "parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword" msgstr "" -"parrot(1000) # یک آرگومان موقعیتی\n" +"parrot(1000) # یک آرگومان جایگاهی\n" "parrot(voltage=1000) # یک آرگومان کلیدواژه‌ای\n" "parrot(voltage=1000000, action='VOOOOOM') # دو آرگومان کلیدواژه‌ای\n" "parrot(action='VOOOOOM', voltage=1000000) # دو آرگومان کلیدواژه‌ای\n" -"parrot('a million', 'bereft of life', 'jump') # سه آرگومان موقعیتی\n" -"parrot('a thousand', state='pushing up the daisies') # یک آرگومان موقعیتی، یک آرگومان کلیدواژه‌ای" +"parrot('a million', 'bereft of life', 'jump') # سه آرگومان جایگاهی\n" +"parrot('a thousand', state='pushing up the daisies') # یک آرگومان جایگاهی، یک آرگومان کلیدواژه‌ای" msgid "but all the following calls would be invalid::" msgstr "اما تمام فراخوانی‌های زیر نامعتبر خواهند بود::" @@ -935,7 +935,7 @@ msgstr "" "parrot(actor='John Cleese') # آرگومان کلیدواژه‌ای ناشناخته" msgid "In a function call, keyword arguments must follow positional arguments. All the keyword arguments passed must match one of the arguments accepted by the function (e.g. ``actor`` is not a valid argument for the ``parrot`` function), and their order is not important. This also includes non-optional arguments (e.g. ``parrot(voltage=1000)`` is valid too). No argument may receive a value more than once. Here's an example that fails due to this restriction::" -msgstr "در یک فراخوانی تابع، آرگومان‌های کلیدواژه‌ای باید پس از آرگومان‌های موقعیتی بیایند. تمام آرگومان‌های کلیدواژه‌ای ارسال‌شده باید با یکی از آرگومان‌های پذیرفته‌شده توسط تابع مطابقت داشته باشند (برای مثال، ``actor`` یک آرگومان معتبر برای تابع ``parrot`` نیست)، و ترتیب آن‌ها اهمیتی ندارد. این موضوع شامل آرگومان‌های غیر‌اختیاری نیز می‌شود (برای مثال، ``parrot(voltage=1000)`` نیز معتبر است). هیچ آرگومانی نمی‌تواند بیش از یک‌بار مقدار دریافت کند. در اینجا مثالی وجود دارد که به دلیل این محدودیت شکست می‌خورد::" +msgstr "در یک فراخوانی تابع، آرگومان‌های کلیدواژه‌ای باید پس از آرگومان‌های جایگاهی بیایند. تمام آرگومان‌های کلیدواژه‌ای ارسال‌شده باید با یکی از آرگومان‌های پذیرفته‌شده توسط تابع مطابقت داشته باشند (برای مثال، ``actor`` یک آرگومان معتبر برای تابع ``parrot`` نیست)، و ترتیب آن‌ها اهمیتی ندارد. این موضوع شامل آرگومان‌های غیر‌اختیاری نیز می‌شود (برای مثال، ``parrot(voltage=1000)`` نیز معتبر است). هیچ آرگومانی نمی‌تواند بیش از یک‌بار مقدار دریافت کند. در اینجا مثالی وجود دارد که به دلیل این محدودیت شکست می‌خورد::" msgid "" ">>> def function(a):\n" @@ -955,7 +955,7 @@ msgstr "" "TypeError: function() got multiple values for argument 'a'" msgid "When a final formal parameter of the form ``**name`` is present, it receives a dictionary (see :ref:`typesmapping`) containing all keyword arguments except for those corresponding to a formal parameter. This may be combined with a formal parameter of the form ``*name`` (described in the next subsection) which receives a :ref:`tuple ` containing the positional arguments beyond the formal parameter list. (``*name`` must occur before ``**name``.) For example, if we define a function like this::" -msgstr "هنگامی که یک پارامتر رسمی نهایی به شکل ``**name`` وجود داشته باشد، یک فرهنگ لغت (به :ref:`typesmapping` مراجعه کنید) دریافت می‌کند که شامل تمام آرگومان‌های کلیدواژه‌ای است، به‌جز آن‌هایی که متناظر با یک پارامتر رسمی هستند. این مورد می‌تواند با یک پارامتر رسمی به شکل ``*name`` ترکیب شود (که در زیربخش بعدی توضیح داده شده است)؛ این پارامتر یک :ref:`tuple ` دریافت می‌کند که شامل آرگومان‌های موقعیتی فراتر از فهرست پارامترهای رسمی است. (``*name`` باید پیش از ``**name`` قرار گیرد.) برای مثال، اگر تابعی مانند زیر تعریف کنیم::" +msgstr "هنگامی که یک پارامتر رسمی نهایی به شکل ``**name`` وجود داشته باشد، یک فرهنگ لغت (به :ref:`typesmapping` مراجعه کنید) دریافت می‌کند که شامل تمام آرگومان‌های کلیدواژه‌ای است، به‌جز آن‌هایی که متناظر با یک پارامتر رسمی هستند. این مورد می‌تواند با یک پارامتر رسمی به شکل ``*name`` ترکیب شود (که در زیربخش بعدی توضیح داده شده است)؛ این پارامتر یک :ref:`tuple ` دریافت می‌کند که شامل آرگومان‌های جایگاهی فراتر از فهرست پارامترهای رسمی است. (``*name`` باید پیش از ``**name`` قرار گیرد.) برای مثال، اگر تابعی مانند زیر تعریف کنیم::" msgid "" "def cheeseshop(kind, *arguments, **keywords):\n" @@ -1042,22 +1042,22 @@ msgstr "" " -- Positional only" msgid "where ``/`` and ``*`` are optional. If used, these symbols indicate the kind of parameter by how the arguments may be passed to the function: positional-only, positional-or-keyword, and keyword-only. Keyword parameters are also referred to as named parameters." -msgstr "که در آن ``/`` و ``*`` اختیاری هستند. اگر استفاده شوند، این نمادها نوع پارامتر را بر اساس نحوه ارسال آرگومان‌ها به تابع مشخص می‌کنند: فقط موقعیتی، موقعیتی یا کلیدواژه‌ای، و فقط کلیدواژه‌ای. پارامترهای کلیدواژه‌ای همچنین به عنوان پارامترهای نام‌دار شناخته می‌شوند." +msgstr "که در آن ``/`` و ``*`` اختیاری هستند. اگر استفاده شوند، این نمادها نوع پارامتر را بر اساس نحوه ارسال آرگومان‌ها به تابع مشخص می‌کنند: فقط‌جایگاهی، جایگاهی یا کلیدواژه‌ای، و فقط کلیدواژه‌ای. پارامترهای کلیدواژه‌ای همچنین به عنوان پارامترهای نام‌دار شناخته می‌شوند." msgid "Positional-or-Keyword Arguments" -msgstr "آرگومان‌های موقعیتی یا کلیدواژه‌ای" +msgstr "آرگومان‌های جایگاهی یا کلیدواژه‌ای" msgid "If ``/`` and ``*`` are not present in the function definition, arguments may be passed to a function by position or by keyword." msgstr "اگر ``/`` و ``*`` در تعریف تابع وجود نداشته باشند، آرگومان‌ها را می‌توان با موقعیت یا با کلیدواژه به یک تابع ارسال کرد." msgid "Positional-Only Parameters" -msgstr "پارامترهای فقط موقعیتی" +msgstr "پارامترهای فقط‌جایگاهی" msgid "Looking at this in a bit more detail, it is possible to mark certain parameters as *positional-only*. If *positional-only*, the parameters' order matters, and the parameters cannot be passed by keyword. Positional-only parameters are placed before a ``/`` (forward-slash). The ``/`` is used to logically separate the positional-only parameters from the rest of the parameters. If there is no ``/`` in the function definition, there are no positional-only parameters." -msgstr "با بررسی دقیق‌تر، می‌توان برخی پارامترها را به صورت *فقط موقعیتی* مشخص کرد. اگر *فقط موقعیتی* باشند، ترتیب پارامترها اهمیت دارد و پارامترها نمی‌توانند با کلیدواژه ارسال شوند. پارامترهای فقط موقعیتی قبل از یک ``/`` (خط مورب) قرار می‌گیرند. ``/`` برای جدا کردن منطقی پارامترهای فقط موقعیتی از سایر پارامترها استفاده می‌شود. اگر ``/`` در تعریف تابع وجود نداشته باشد، هیچ پارامتر فقط موقعیتی وجود ندارد." +msgstr "با بررسی دقیق‌تر، می‌توان برخی پارامترها را به صورت *فقط‌جایگاهی* مشخص کرد. اگر *فقط‌جایگاهی* باشند، ترتیب پارامترها اهمیت دارد و پارامترها نمی‌توانند با کلیدواژه ارسال شوند. پارامترهای فقط‌جایگاهی قبل از یک ``/`` (خط مورب) قرار می‌گیرند. ``/`` برای جدا کردن منطقی پارامترهای فقط‌جایگاهی از سایر پارامترها استفاده می‌شود. اگر ``/`` در تعریف تابع وجود نداشته باشد، هیچ پارامتر فقط‌جایگاهی وجود ندارد." msgid "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-only*." -msgstr "پارامترهای پس از ``/`` می‌توانند *موقعیتی یا کلیدواژه‌ای* یا *فقط کلیدواژه‌ای* باشند." +msgstr "پارامترهای پس از ``/`` می‌توانند *جایگاهی یا کلیدواژه‌ای* یا *فقط کلیدواژه‌ای* باشند." msgid "Keyword-Only Arguments" msgstr "آرگومان‌های فقط کلیدواژه‌ای" @@ -1113,7 +1113,7 @@ msgstr "" "2" msgid "The second function ``pos_only_arg`` is restricted to only use positional parameters as there is a ``/`` in the function definition::" -msgstr "تابع دوم، ``pos_only_arg``، محدود شده است تا فقط از پارامترهای موقعیتی استفاده کند، زیرا یک ``/`` در تعریف تابع وجود دارد::" +msgstr "تابع دوم، ``pos_only_arg``، محدود شده است تا فقط از پارامترهای جایگاهی استفاده کند، زیرا یک ``/`` در تعریف تابع وجود دارد::" msgid "" ">>> pos_only_arg(1)\n" @@ -1189,7 +1189,7 @@ msgstr "" "TypeError: combined_example() got some positional-only arguments passed as keyword arguments: 'pos_only'" msgid "Finally, consider this function definition which has a potential collision between the positional argument ``name`` and ``**kwds`` which has ``name`` as a key::" -msgstr "در نهایت، این تعریف تابع را در نظر بگیرید که در آن بین آرگومان موقعیتی ``name`` و ``**kwds`` که دارای کلیدواژه‌ای به نام ``name`` است، یک برخورد احتمالی وجود دارد::" +msgstr "در نهایت، این تعریف تابع را در نظر بگیرید که در آن بین آرگومان جایگاهی ``name`` و ``**kwds`` که دارای کلیدواژه‌ای به نام ``name`` است، یک برخورد احتمالی وجود دارد::" msgid "" "def foo(name, **kwds):\n" @@ -1215,7 +1215,7 @@ msgstr "" ">>>" msgid "But using ``/`` (positional only arguments), it is possible since it allows ``name`` as a positional argument and ``'name'`` as a key in the keyword arguments::" -msgstr "اما با استفاده از ``/`` (آرگومان‌های فقط موقعیتی)، این امکان وجود دارد، زیرا اجازه می‌دهد ``name`` به‌عنوان یک آرگومان موقعیتی و ``'name'`` به‌عنوان یک کلید در آرگومان‌های کلیدواژه‌ای استفاده شود::" +msgstr "اما با استفاده از ``/`` (آرگومان‌های فقط‌جایگاهی)، این امکان وجود دارد، زیرا اجازه می‌دهد ``name`` به‌عنوان یک آرگومان جایگاهی و ``'name'`` به‌عنوان یک کلید در آرگومان‌های کلیدواژه‌ای استفاده شود::" msgid "" ">>> def foo(name, /, **kwds):\n" @@ -1231,7 +1231,7 @@ msgstr "" "True" msgid "In other words, the names of positional-only parameters can be used in ``**kwds`` without ambiguity." -msgstr "به عبارت دیگر، نام پارامترهای فقط موقعیتی می‌تواند بدون ابهام در ``**kwds`` استفاده شود." +msgstr "به عبارت دیگر، نام پارامترهای فقط‌جایگاهی می‌تواند بدون ابهام در ``**kwds`` استفاده شود." msgid "Recap" msgstr "خلاصه" @@ -1246,13 +1246,13 @@ msgid "As guidance:" msgstr "برای راهنمایی:" msgid "Use positional-only if you want the name of the parameters to not be available to the user. This is useful when parameter names have no real meaning, if you want to enforce the order of the arguments when the function is called or if you need to take some positional parameters and arbitrary keywords." -msgstr "اگر می‌خواهید نام پارامترها برای کاربر قابل دسترس نباشد، از فقط-موقعیتی استفاده کنید. این زمانی مفید است که نام پارامترها معنای واقعی ندارند، زمانی که می‌خواهید ترتیب آرگومان‌ها هنگام فراخوانی تابع اجباری باشد، یا زمانی که به تعدادی پارامتر موقعیتی و کلیدواژه‌های دلخواه نیاز دارید." +msgstr "اگر می‌خواهید نام پارامترها برای کاربر قابل دسترس نباشد، از فقط‌جایگاهی استفاده کنید. این زمانی مفید است که نام پارامترها معنای واقعی ندارند، زمانی که می‌خواهید ترتیب آرگومان‌ها هنگام فراخوانی تابع اجباری باشد، یا زمانی که به تعدادی پارامتر جایگاهی و کلیدواژه‌های دلخواه نیاز دارید." msgid "Use keyword-only when names have meaning and the function definition is more understandable by being explicit with names or you want to prevent users relying on the position of the argument being passed." msgstr "زمانی که نام‌ها دارای معنا هستند و تعریف تابع با مشخص کردن صریح نام‌ها قابل فهم‌تر می‌شود، یا زمانی که می‌خواهید کاربران به موقعیت آرگومان‌های ارسال‌شده وابسته نشوند، از فقط کلیدواژه‌ای استفاده کنید." msgid "For an API, use positional-only to prevent breaking API changes if the parameter's name is modified in the future." -msgstr "برای یک API، از پارامترهای فقط موقعیتی استفاده کنید تا از شکستن تغییرات API در صورت تغییر نام پارامتر در آینده جلوگیری شود." +msgstr "برای یک API، از پارامترهای فقط‌جایگاهی استفاده کنید تا از شکستن تغییرات API در صورت تغییر نام پارامتر در آینده جلوگیری شود." msgid "Arbitrary Argument Lists" msgstr "فهرست‌های دلخواه آرگومان‌ها" @@ -1268,7 +1268,7 @@ msgstr "" " file.write(separator.join(args))" msgid "Normally, these *variadic* arguments will be last in the list of formal parameters, because they scoop up all remaining input arguments that are passed to the function. Any formal parameters which occur after the ``*args`` parameter are 'keyword-only' arguments, meaning that they can only be used as keywords rather than positional arguments. ::" -msgstr "معمولاً این آرگومان‌های *متغیرتعداد* در انتهای فهرست پارامترهای رسمی قرار می‌گیرند، زیرا تمام آرگومان‌های ورودی باقی‌مانده‌ای که به تابع ارسال می‌شوند را جمع‌آوری می‌کنند. هر پارامتر رسمی که پس از پارامتر ``*args`` قرار گیرد، یک آرگومان «فقط کلیدواژه‌ای» است؛ یعنی فقط می‌تواند به‌عنوان کلیدواژه استفاده شود و نه به صورت آرگومان موقعیتی. ::" +msgstr "معمولاً این آرگومان‌های *متغیرتعداد* در انتهای فهرست پارامترهای رسمی قرار می‌گیرند، زیرا تمام آرگومان‌های ورودی باقی‌مانده‌ای که به تابع ارسال می‌شوند را جمع‌آوری می‌کنند. هر پارامتر رسمی که پس از پارامتر ``*args`` قرار گیرد، یک آرگومان «فقط کلیدواژه‌ای» است؛ یعنی فقط می‌تواند به‌عنوان کلیدواژه استفاده شود و نه به صورت آرگومان جایگاهی. ::" msgid "" ">>> def concat(*args, sep=\"/\"):\n" @@ -1291,7 +1291,7 @@ msgid "Unpacking Argument Lists" msgstr "باز کردن بسته آرگومان‌ها" msgid "The reverse situation occurs when the arguments are already in a list or tuple but need to be unpacked for a function call requiring separate positional arguments. For instance, the built-in :func:`range` function expects separate *start* and *stop* arguments. If they are not available separately, write the function call with the ``*``\\ -operator to unpack the arguments out of a list or tuple::" -msgstr "حالت معکوس زمانی رخ می‌دهد که آرگومان‌ها از قبل در یک فهرست یا تاپل قرار دارند، اما برای فراخوانی تابعی که به آرگومان‌های موقعیتی جداگانه نیاز دارد، باید باز شوند. برای مثال، تابع داخلی :func:`range` آرگومان‌های جداگانه *start* و *stop* را انتظار دارد. اگر این آرگومان‌ها به صورت جداگانه در دسترس نیستند، فراخوانی تابع را با عملگر ``*`` برای باز کردن آرگومان‌ها از یک فهرست یا تاپل بنویسید::" +msgstr "حالت معکوس زمانی رخ می‌دهد که آرگومان‌ها از قبل در یک فهرست یا تاپل قرار دارند، اما برای فراخوانی تابعی که به آرگومان‌های جایگاهی جداگانه نیاز دارد، باید باز شوند. برای مثال، تابع داخلی :func:`range` آرگومان‌های جداگانه *start* و *stop* را انتظار دارد. اگر این آرگومان‌ها به صورت جداگانه در دسترس نیستند، فراخوانی تابع را با عملگر ``*`` برای باز کردن آرگومان‌ها از یک فهرست یا تاپل بنویسید::" msgid "" ">>> list(range(3, 6)) # normal call with separate arguments\n" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index c6c0264b9..25fb01e5a 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -231,7 +231,7 @@ msgstr "" "This spam is absolutely horrible." msgid "Positional and keyword arguments can be arbitrarily combined::" -msgstr "آرگومان‌های موقعیتی و کلیدواژه‌ای را می‌توان به‌طور دلخواه ترکیب کرد::" +msgstr "آرگومان‌های جایگاهی و کلیدواژه‌ای را می‌توان به‌طور دلخواه ترکیب کرد::" msgid "" ">>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',\n" @@ -402,7 +402,7 @@ msgid "Reading and Writing Files" msgstr "خواندن و نوشتن فایلها" msgid ":func:`open` returns a :term:`file object`, and is most commonly used with two positional arguments and one keyword argument: ``open(filename, mode, encoding=None)``" -msgstr ":func:`open` یک :term:`file object` بازمی‌گرداند و معمولاً با دو آرگومان موقعیتی و یک آرگومان کلیدواژه‌ای استفاده می‌شود: ``open(filename, mode, encoding=None)``" +msgstr ":func:`open` یک :term:`file object` بازمی‌گرداند و معمولاً با دو آرگومان جایگاهی و یک آرگومان کلیدواژه‌ای استفاده می‌شود: ``open(filename, mode, encoding=None)``" msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" msgstr ">>> f = open('workfile', 'w', encoding=\"utf-8\")" From 67f7ad192d1a3242fc0f2af51acdd72bcfa8df6c Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Wed, 19 Aug 2026 16:42:27 +0330 Subject: [PATCH 2/3] Fix typo --- GLOSSARY.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GLOSSARY.md b/GLOSSARY.md index 385c80c47..d41aff9ac 100644 --- a/GLOSSARY.md +++ b/GLOSSARY.md @@ -64,7 +64,7 @@ | operator | عملگر | | package | بسته | | parameter | پارامتر | -| positinal | جایگاهی | +| positional | جایگاهی | | property | ویژگی، پراپرتی، خصوصیت | | quotation | علامت نقل‌وقول | | raise | پرتاب | @@ -82,4 +82,4 @@ | unpacking | واگشایی | | value | مقدار | | variable | متغیر | -| wrapper | پوششی، دربرگیرنده | \ No newline at end of file +| wrapper | پوششی، دربرگیرنده | From d6fccebc1b07fa3eb9aa9b008c393289e4b6129c Mon Sep 17 00:00:00 2001 From: Sepehr Rasouli Date: Wed, 19 Aug 2026 17:11:18 +0330 Subject: [PATCH 3/3] Update README.md --- README.md | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 710deaa85..8e8bacc5b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ترجمهٔ مستندات پایتون به فارسی 🐍💛 -[![discord](https://img.shields.io/badge/Discord-python--docs--fa-5865F2?style=for-the-badge&logo=Discord)](https://discord.gg/yeqtNeaFYf) +[![discord](https://img.shields.io/badge/Telegram-python--docs--fa-00a5e0?style=for-the-badge&logo=telegram)](https://t.me/python_docs_farsi) [![youtube](https://img.shields.io/badge/Youtube-Contribution--Guide-CD201F?style=for-the-badge&logo=Youtube)](https://www.youtube.com/watch?v=DH5c5ZutTCo) ## دربارهٔ پروژه @@ -11,30 +11,8 @@ ترجمه‌ها مطابق [PEP 545](https://peps.python.org/pep-0545/) تحت مجوز [CC0 1.0 Universal](LICENSE) منتشر می‌شوند؛ یعنی در مالکیت عمومی (Public Domain) قرار دارند و می‌توانید بدون هیچ محدودیتی از آن‌ها استفاده، کپی و بازنشر کنید. -## راهنمای مشارکت 🌱 - -ترجمه‌ها دیگر روی Transifex انجام نمی‌شوند و مستقیماً از طریق پول‌ریکوئست در همین مخزن (Repository) مدیریت می‌شوند. فایل‌های `.po` هر کدام به بخشی از مستندات پایتون (مثل `tutorial/`، `library/` یا `c-api/`) مربوط‌اند و می‌توانید هرکدام را جداگانه ویرایش و پول‌ریکوئست بزنید. - -خلاصهٔ فرایند مشارکت: - -1. مخزن را فورک و کلون کنید. -2. اگر ایشیوی مربوط به فایل مورد نظرتان باز نشده، یک ایشیوی «درخواست ترجمهٔ صفحه» باز کنید تا دیگران بدانند آن فایل در حال انجام است. -3. فایل `.po` مورد نظر را با [Poedit](https://poedit.net/) باز کنید (رشته‌های ترجمه‌نشده یا `fuzzy` را می‌توانید از پنل فیلتر پیدا کنید). -4. متن انگلیسی (`msgid`) را ترجمه کنید و در بخش ترجمه (`msgstr`) وارد کنید. ترجمه باید در سطح رسمی و با خطاب «شما» نوشته شود. -5. نشانه‌گذاری‌های Sphinx مثل `` :class:`int` ``، `` :func:`repr` ``، `` ``code`` ``، و جای‌گزین‌هایی مثل `%s` یا `{name}` را دقیقاً بدون تغییر نگه دارید؛ فقط متن اطراف آن‌ها ترجمه می‌شود. -6. پیش از ارسال پول‌ریکوئست، بررسی کنید فایل‌ها مشکلی ندارند: - ```bash - msgfmt --check your_file.po - python3 scripts/check_markup.py your_file.po - ``` -7. پول‌ریکوئست را باز کنید (حداکثر تا ۴ فایل `.po` در هر پول‌ریکوئست) — روی هر پول‌ریکوئست به‌صورت خودکار بررسی‌های لازم اجرا می‌شود و ری‌دتردکس (Read the Docs) نسخهٔ پیش‌نمایش مستندات را می‌سازد. اگر بررسی‌ها رد شدند، از تب Actions در گیت‌هاب ببینید کدام مورد مشکل داشته و همان اسکریپت را به‌صورت محلی اجرا کنید. - -برای دیدن این‌که کدام فایل‌ها هنوز نیاز به ترجمه دارند و چقدر از هرکدام باقی مانده: -```bash -python3 scripts/translation_status.py --only-incomplete -``` - -راهنمای کامل‌تر این مراحل، از جمله نکات نگارشی و تایپوگرافی فارسی، در [CONTRIBUTING.md](CONTRIBUTING.md) آمده است. +## راهنمای مشارکت +راهنمای کامل مشارکت به پروژه، از جمله نکات نگارشی و تایپوگرافی فارسی، در [CONTRIBUTING.md](CONTRIBUTING.md) آمده است. ### منابع پیشنهادی