From 181fdbf07a6017e30fe38888d259c72f3bb70c04 Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 00:52:48 +0330 Subject: [PATCH 1/9] Update Persian translations using GPT-4o --- bugs.po | 157 +- library/functions.po | 3009 +++++++++++++++++++++++++++++------- tutorial/appendix.po | 212 ++- tutorial/appetite.po | 144 +- tutorial/classes.po | 1251 ++++++++++++--- tutorial/controlflow.po | 1583 ++++++++++++++++--- tutorial/datastructures.po | 894 +++++++++-- tutorial/errors.po | 902 +++++++++-- tutorial/floatingpoint.po | 471 +++++- tutorial/index.po | 65 +- tutorial/inputoutput.po | 770 +++++++-- tutorial/interactive.po | 67 +- tutorial/interpreter.po | 218 ++- tutorial/introduction.po | 703 ++++++++- tutorial/modules.po | 849 ++++++++-- tutorial/stdlib.po | 411 ++++- tutorial/stdlib2.po | 518 ++++++- tutorial/venv.po | 252 ++- tutorial/whatnow.po | 117 +- 19 files changed, 10639 insertions(+), 1954 deletions(-) diff --git a/bugs.po b/bugs.po index 58c5b6e49..fb89750ce 100644 --- a/bugs.po +++ b/bugs.po @@ -16,198 +16,292 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 00:47+0000\n" "Last-Translator: shahab sakha, 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../bugs.rst:5 +#, fuzzy msgid "Dealing with Bugs" -msgstr "" +msgstr "مدیریت باگ ها" #: ../../bugs.rst:7 +#, fuzzy msgid "" "Python is a mature programming language which has established a reputation " "for stability. In order to maintain this reputation, the developers would " "like to know of any deficiencies you find in Python." msgstr "" +"پایتون یک زبان برنامه نویسی بالغ است که به خاطر پایداری اش شهرت یافته است. " +"برای حفظ این شهرت، توسعه دهندگان مایلند از هرگونه نواقصی که شما در پایتون " +"پیدا می کنید، مطلع شوند." #: ../../bugs.rst:11 +#, fuzzy msgid "" "It can be sometimes faster to fix bugs yourself and contribute patches to " -"Python as it streamlines the process and involves less people. Learn how to :" -"ref:`contribute `." +"Python as it streamlines the process and involves less people. Learn how to " +":ref:`contribute `." msgstr "" +"برخی مواقع، درست کردن باگ ها به دست خودتان و ارائه ی پچ ها به پایتون می " +"تواند فرآیند را سریع تر کند، زیرا این کار تعداد افراد دخیل را کاهش می دهد و " +"فرآیند را ساده تر می کند. یاد بگیرید چگونه :ref:`contribute `." #: ../../bugs.rst:16 +#, fuzzy msgid "Documentation bugs" -msgstr "" +msgstr "ایرادات مستندات" #: ../../bugs.rst:18 +#, fuzzy msgid "" "If you find a bug in this documentation or would like to propose an " "improvement, please submit a bug report on the :ref:`tracker `. If you have a suggestion on how to fix it, include that as well." msgstr "" +"اگر در این مستندات باگ پیدا کردید یا می خواهید بهبودی پیشنهاد دهید، لطفاً یک" +" گزارش باگ در :ref:`tracker ` ارسال کنید. اگر پیشنهادی " +"برای رفع آن دارید، آن را نیز ضمیمه کنید." #: ../../bugs.rst:22 +#, fuzzy msgid "" "You can also open a discussion item on our `Documentation Discourse forum " "`_." msgstr "" +"شما همچنین می توانید یک مورد بحث را در `Documentation Discourse forum " +"`_ باز کنید." #: ../../bugs.rst:25 +#, fuzzy msgid "" "If you find a bug in the theme (HTML / CSS / JavaScript) of the " "documentation, please submit a bug report on the `python-doc-theme bug " "tracker `_." msgstr "" +"اگر در پوسته (HTML / CSS / JavaScript) مستندات مشکلی پیدا کردید، لطفاً یک " +"گزارش اشکال در `python-doc-theme bug tracker " +"`_ ارسال کنید." #: ../../bugs.rst:29 +#, fuzzy msgid "" "If you're short on time, you can also email documentation bug reports to " "docs@python.org (behavioral bugs can be sent to python-list@python.org). " "'docs@' is a mailing list run by volunteers; your request will be noticed, " "though it may take a while to be processed." msgstr "" +"اگر زمان کمی دارید، می توانید گزارش های اشکالات مستندات را به آدرس ایمیل " +"docs@python.org ارسال کنید (اشکالات رفتاری را می توانید به python-" +"list@python.org بفرستید). «docs@» یک لیست ایمیل است که توسط داوطلبان اداره " +"می شود؛ درخواست شما مورد توجه قرار خواهد گرفت، هرچند ممکن است مدتی طول بکشد " +"تا پردازش شود." #: ../../bugs.rst:36 +#, fuzzy msgid "`Documentation bugs`_" msgstr "" +"متاسفانه متن ارائه شده قابل ترجمه نیست، زیرا به نظر می رسد یک زنجیره نامفهوم" +" از کاراکترها باشد. لطفاً متن بیشتری یا اطلاعات دقیقتری فراهم کنید." #: ../../bugs.rst:37 +#, fuzzy msgid "" "A list of documentation bugs that have been submitted to the Python issue " "tracker." -msgstr "" +msgstr "فهرستی از اشکالات مستنداتی که به ردیاب اشکال Python ارسال شده اند." #: ../../bugs.rst:39 +#, fuzzy msgid "`Issue Tracking `_" msgstr "" +"متنی که ارائه دادید به نظر نمی رسد که بخشی از مستندات رسمی پایتون باشد و " +"نیازمند معنای خاصی برای ترجمه نیست. در صورتی که متن دیگری از مستندات برای " +"ترجمه دارید، لطفاً ارائه دهید." #: ../../bugs.rst:40 +#, fuzzy msgid "" "Overview of the process involved in reporting an improvement on the tracker." -msgstr "" +msgstr "نمای کلی از فرآیند مربوط به گزارش یک بهبود در پیگیری." #: ../../bugs.rst:42 +#, fuzzy msgid "" -"`Helping with Documentation `_" +"`Helping with Documentation " +"`_" msgstr "" +"متن داده شده ناواضح است و به نظر می رسد یک کد یا شناسه نادرست باشد. لطفاً " +"متن خود را بررسی کرده و مجدداً ارسال کنید." #: ../../bugs.rst:43 +#, fuzzy msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." msgstr "" +"راهنمای جامع برای افرادی که علاقه مند به مشارکت در مستندات Python هستند." #: ../../bugs.rst:45 +#, fuzzy msgid "" -"`Documentation Translations `_" +"`Documentation Translations " +"`_" msgstr "" +"متنی برای ترجمه ارائه نکرده اید. لطفاً متن مشخصی را که می خواهید به فارسی " +"ترجمه شود، بارگذاری کنید." #: ../../bugs.rst:46 +#, fuzzy msgid "" "A list of GitHub pages for documentation translation and their primary " "contacts." -msgstr "" +msgstr "فهرستی از صفحات GitHub برای ترجمه مستندات و اطلاعات تماس اصلی آن ها." #: ../../bugs.rst:52 +#, fuzzy msgid "Using the Python issue tracker" -msgstr "" +msgstr "استفاده از پیگیری کننده مشکلات پایتون" #: ../../bugs.rst:54 +#, fuzzy msgid "" "Issue reports for Python itself should be submitted via the GitHub issues " "tracker (https://github.com/python/cpython/issues). The GitHub issues " "tracker offers a web form which allows pertinent information to be entered " "and submitted to the developers." msgstr "" +"گزارش اشکالات مربوط به خود پایتون باید از طریق ردیاب اشکال GitHub " +"(https://github.com/python/cpython/issues) ارسال شوند. ردیاب اشکال GitHub یک" +" فرم وب ارائه می دهد که به شما امکان می دهد اطلاعات مربوطه را وارد کرده و " +"برای توسعه دهندگان ارسال کنید." #: ../../bugs.rst:59 +#, fuzzy msgid "" "The first step in filing a report is to determine whether the problem has " "already been reported. The advantage in doing so, aside from saving the " "developers' time, is that you learn what has been done to fix it; it may be " "that the problem has already been fixed for the next release, or additional " "information is needed (in which case you are welcome to provide it if you " -"can!). To do this, search the tracker using the search box at the top of the " -"page." -msgstr "" +"can!). To do this, search the tracker using the search box at the top of the" +" page." +msgstr "" +"اولین گام در ارائه یک گزارش این است که مشخص کنید آیا مشکل قبلاً گزارش شده " +"است یا خیر. مزیت انجام این کار، علاوه بر صرفه جویی در وقت توسعه دهندگان، این" +" است که می توانید بفهمید چه اقداماتی برای رفع آن انجام شده است؛ ممکن است " +"مشکل برای نسخه بعدی قبلاً رفع شده باشد، یا اطلاعات بیشتری مورد نیاز باشد (که" +" در این صورت می توانید در صورت امکان آن را ارائه دهید!). برای انجام این کار،" +" باکس جستجو در بالای صفحه را جهت جستجو در ردیاب استفاده کنید." #: ../../bugs.rst:66 +#, fuzzy msgid "" "If the problem you're reporting is not already in the list, log in to " "GitHub. If you don't already have a GitHub account, create a new account " "using the \"Sign up\" link. It is not possible to submit a bug report " "anonymously." msgstr "" +"اگر مشکلی که گزارش می دهید در لیست موجود نیست، وارد GitHub شوید. اگر قبلاً " +"حساب GitHub ندارید، با استفاده از لینک \"Sign up\" یک حساب جدید ایجاد کنید. " +"ارسال گزارش باگ به صورت ناشناس امکان پذیر نیست." #: ../../bugs.rst:71 +#, fuzzy msgid "" "Being now logged in, you can submit an issue. Click on the \"New issue\" " "button in the top bar to report a new issue." msgstr "" +"اکنون که وارد سیستم شده اید، می توانید یک مشکل ثبت کنید. برای گزارش یک مشکل " +"جدید، روی دکمه \"New issue\" در نوار بالا کلیک کنید." #: ../../bugs.rst:74 +#, fuzzy msgid "The submission form has two fields, \"Title\" and \"Comment\"." -msgstr "" +msgstr "فرم ارسال شامل دو فیلد است، \"Title\" و \"Comment\"." #: ../../bugs.rst:76 +#, fuzzy msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "fewer than ten words is good." msgstr "" +"برای بخش \"Title\"، یک توضیح کوتاه از مشکل وارد کنید؛ کمتر از ده کلمه مناسب " +"است." #: ../../bugs.rst:79 +#, fuzzy msgid "" -"In the \"Comment\" field, describe the problem in detail, including what you " -"expected to happen and what did happen. Be sure to include whether any " -"extension modules were involved, and what hardware and software platform you " -"were using (including version information as appropriate)." -msgstr "" +"In the \"Comment\" field, describe the problem in detail, including what you" +" expected to happen and what did happen. Be sure to include whether any " +"extension modules were involved, and what hardware and software platform you" +" were using (including version information as appropriate)." +msgstr "" +"در قسمت \"Comment\"، مشکل را با جزئیات بیان کنید، از جمله اینکه انتظار " +"داشتید چه اتفاقی بیفتد و چه چیزی واقعاً اتفاق افتاد. حتماً اشاره کنید که آیا" +" ماژول های افزونه درگیر بودند یا خیر و از چه بستر سخت افزاری و نرم افزار " +"استفاده می کردید (شامل اطلاعات مربوط به نسخه در صورت لزوم)." #: ../../bugs.rst:84 +#, fuzzy msgid "" "Each issue report will be reviewed by a developer who will determine what " "needs to be done to correct the problem. You will receive an update each " "time an action is taken on the issue." msgstr "" +"هر گزارش مشکل توسط یک توسعه دهنده بررسی می شود تا تعیین کند چه اقداماتی برای" +" رفع مشکل لازم است. هر بار که اقدامی روی مشکل انجام شود، به روزرسانی دریافت " +"خواهید کرد." #: ../../bugs.rst:91 +#, fuzzy msgid "" -"`How to Report Bugs Effectively `_" +"`How to Report Bugs Effectively " +"`_" msgstr "" +"متنی که وارد کرده اید به نظر نمی رسد از مستندات رسمی پایتون باشد یا ممکن است" +" نادرست باشد، لطفاً متن صحیح مستندات را ارائه دهید تا بتوانم آن را به فارسی " +"ترجمه کنم." #: ../../bugs.rst:92 +#, fuzzy msgid "" -"Article which goes into some detail about how to create a useful bug report. " -"This describes what kind of information is useful and why it is useful." +"Article which goes into some detail about how to create a useful bug report." +" This describes what kind of information is useful and why it is useful." msgstr "" +"مقاله ای که به صورت جزیی توضیح می دهد که چگونه یک گزارش خطای کاربردی ایجاد " +"کنیم. این مقاله بیان می کند که چه نوع اطلاعاتی مفید هستند و چرا این اطلاعات " +"مفید می باشند." #: ../../bugs.rst:95 +#, fuzzy msgid "" "`Bug Writing Guidelines `_" msgstr "" +"متن ارائه شده نامعتبر است و مفهوم خاصی ندارد. لطفاً متن صحیح و قابل فهمی را " +"برای ترجمه ارسال کنید." #: ../../bugs.rst:96 +#, fuzzy msgid "" "Information about writing a good bug report. Some of this is specific to " "the Mozilla project, but describes general good practices." msgstr "" +"اطلاعاتی درباره نوشتن گزارش های خوب اشکالات (باگ ها). برخی از این موارد مختص" +" پروژه موزیلا است، اما اصول کلی خوبی را توصیف می کند." #: ../../bugs.rst:102 +#, fuzzy msgid "Getting started contributing to Python yourself" -msgstr "" +msgstr "شروع به مشارکت در پایتون توسط خودتان" #: ../../bugs.rst:104 +#, fuzzy msgid "" "Beyond just reporting bugs that you find, you are also welcome to submit " "patches to fix them. You can find more information on how to get started " @@ -215,3 +309,8 @@ msgid "" "the `core-mentorship mailing list`_ is a friendly place to get answers to " "any and all questions pertaining to the process of fixing issues in Python." msgstr "" +"علاوه بر گزارش اشکالاتی که پیدا می کنید، می توانید وصله هایی برای رفع آن ها " +"ارسال کنید. می توانید اطلاعات بیشتری درباره ی نحوه ی شروع به وصله زدن Python" +" را در \"`Python Developer's Guide`_\" پیدا کنید. اگر سوالی دارید، \"`core-" +"mentorship mailing list`_\" جای دوستانه ای برای دریافت پاسخ به هر سوال مربوط" +" به فرآیند رفع اشکالات در Python است." diff --git a/library/functions.po b/library/functions.po index d35d68de0..4fb4af8fe 100644 --- a/library/functions.po +++ b/library/functions.po @@ -14,412 +14,686 @@ msgstr "" "POT-Creation-Date: 2025-02-21 14:16+0000\n" "PO-Revision-Date: 2021-06-28 01:06+0000\n" "Last-Translator: Alireza Shabani , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../library/functions.rst:5 ../../library/functions.rst:11 +#, fuzzy msgid "Built-in Functions" -msgstr "" +msgstr "توابع داخلی" #: ../../library/functions.rst:7 +#, fuzzy msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." msgstr "" +"مفسر پایتون تعدادی توابع و نوع های داخلی دارد که همیشه در دسترس هستند. اینجا" +" به ترتیب حروف الفبا لیست شده اند." #: ../../library/functions.rst:0 +#, fuzzy msgid "**A**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً یک متن معتبر از مستندات رسمی پایتون را" +" برای ترجمه به زبان فارسی ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`abs`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً مطمئن شوید پیامی که ارسال می کنید حاوی" +" متن قابل ترجمه ای باشد." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`aiter`" msgstr "" +"ببخشید، به نظر می رسد که متن داده شده معنایی ندارد یا نامعتبر است. لطفاً متن" +" معتبر و قابل فهمی ارائه دهید تا بتوانم در ترجمه آن به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`all`" msgstr "" +"متن ارائه شده به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد. لطفاً متن " +"معتبر یا جزئیات بیشتری را ارائه دهید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`anext`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را اضافه کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`any`" msgstr "" +"متاسفانه متنی که ارائه داده اید به نظر می رسد به یک کد یا متن قابل شناسایی " +"اختصاص ندارد. لطفاً متن صحیح و کاملی از مستندات پایتون را برای ترجمه فراهم " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`ascii`" msgstr "" +"متن ارائه شده به نظر نمی رسد از مستندات رسمی پایتون باشد. لطفاً محتوای معتبر" +" و قابل ترجمه ای را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**B**" msgstr "" +"متن ارائه شده به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد. آیا درخواست " +"دیگری دارید یا متنی خاصی برای ترجمه مدنظر دارید؟" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`bin`" msgstr "" +"متنی که ارائه داده اید به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد یا " +"دارای محتوای معناداری باشد. لطفاً بخش دیگری از مستندات را برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`bool`" msgstr "" +"به نظر می رسد متنی که ارائه داده اید به عنوان یک کد یا دستور خاص در مستندات " +"رسمی پایتون نیست. لطفاً محتوای بیشتری یا متنی قابل تشخیص از مستندات پایتون " +"برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`breakpoint`" msgstr "" +"متاسفم، اما متن مشخصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را " +"جهت ترجمه ارسال نمایید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-bytearray|_" -msgstr "" +msgstr "|func-bytearray|_" #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-bytes|_" -msgstr "" +msgstr "|func-bytes|_" #: ../../library/functions.rst:0 +#, fuzzy msgid "**C**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " +"فارسی ارائه کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`callable`" msgstr "" +"متنی که ارائه داده اید به نظر نمی رسد که از مستندات رسمی پایتون باشد و به " +"صورت صحیح و درست فرمت نشده است. لطفا متن صحیحی برای ترجمه فراهم کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`chr`" msgstr "" +"متن ارائه شده متنی تصادفی و بی معنی به نظر می رسد. لطفاً متنی معتبر و قابل " +"فهم جهت ترجمه ارسال نمایید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`classmethod`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متنی را که نیاز به ترجمه دارد قرار " +"دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`compile`" msgstr "" +"متن ارائه شده برای ترجمه حاوی کلمات معناداری نیست. لطفاً یک متن معتبر از " +"اسناد رسمی پایتون ارائه دهید تا بتوانم به شما در ترجمه آن به فارسی کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`complex`" msgstr "" +"به نظر می رسد متنی که ارائه داده اید مشخص یا قابل ترجمه نیست. لطفاً یک بخش " +"معتبر یا بخشی از مستندات رسمی پایتون را که نیاز به ترجمه دارد، ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**D**" msgstr "" +"متن ارائه شده معتبر به نظر نمی رسد. آیا ممکن است متن دیگری را برای ترجمه " +"ارائه کنید؟" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`delattr`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن انگلیسی را جهت ترجمه به فارسی " +"ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-dict|_" -msgstr "" +msgstr "|تابع-دیپیکت|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`dir`" msgstr "" +"متن ارائه شده معتبر نیست و به نظر می رسد به صورت تصادفی تایپ شده باشد. برای " +"دریافت ترجمه دقیق، لطفاً متن معتبری از مستندات پایتون را ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`divmod`" msgstr "" +"متنی ارائه نشده است تا بتوانم آن را به فارسی ترجمه کنم. لطفاً متن مورد نظر " +"خود را برای ترجمه ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**E**" msgstr "" +"متن ارائه شده نامعتبر است و قابل ترجمه نمی باشد. لطفاً متن صحیح و کاملی را " +"ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`enumerate`" msgstr "" +"متن ارائه شده به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد و محتوای قابل " +"فهمی ندارد. ممکن است بخشی از کد یا علامت گذاری باشد که نیاز به توضیح بیشتری " +"دارد تا به درستی ترجمه شود. اگر اطلاعات بیشتری ارائه دهید یا متن دقیقی وجود " +"دارد که نیاز به ترجمه دارد، لطفاً جزئیات بیشتری ارائه کنید تا بتوانم به شما " +"کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`eval`" msgstr "" +"به نظر می رسد متنی که ارائه دادید جزو مستندات رسمی پایتون نیست یا ممکن است " +"اشتباه تایپی داشته باشد. لطفاً متن درست را ارسال کنید تا به درستی ترجمه شود." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`exec`" msgstr "" +"به نظر می رسد متنی که ارائه داده اید مفهومی نیست یا به صورت صحیح نوشته نشده " +"است. لطفاً متن مشخص و معناداری ارائه دهید تا بتوانم به شما در ترجمه آن به " +"فارسی کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid "**F**" msgstr "" +"متن ارایه شده معنی خاصی در مستندات پایتون ندارد. لطفاً متن بیشتری را ارائه " +"دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`filter`" msgstr "" +"متن ارائه شده به نظر می رسد به عنوان یک خطا یا نامفهوم است، زیرا " +"\":func:`filter`\" یک عبارت معنی دار یا مفهومی نیست که نیاز به ترجمه داشته " +"باشد. لطفاً متن دیگری ارائه دهید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`float`" msgstr "" +"متاسفانه، به نظر می رسد بخشی که برای ترجمه ارسال کرده اید درست نیست یا به " +"زبان ناشناخته ای است. لطفاً متن خود را بررسی کرده و دوباره ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`format`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را وارد " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-frozenset|_" -msgstr "" +msgstr "|مجموعه- «frozenset»|_" #: ../../library/functions.rst:0 +#, fuzzy msgid "**G**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را وارد کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`getattr`" msgstr "" +"متن ارائه شده برای ترجمه فاقد محتوا و معنا است. لطفاً متن معتبری از مستندات " +"پایتون ارائه دهید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`globals`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متنی از مستندات رسمی پایتون که نیاز به" +" ترجمه به فارسی دارد را ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**H**" msgstr "" +"متنی که قرار است ترجمه شود ارائه نشده است. لطفاً متن دقیقی از مستندات پایتون" +" را برای ترجمه به فارسی ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`hasattr`" -msgstr "" +msgstr "ایکس ای اس دی اف۰۰" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`hash`" msgstr "" +"به نظر می رسد متنی که ارائه داده اید به صورت نامعتبر یا غیرمرئی است. لطفاً " +"یک متن مناسب و معتبر از مستندات رسمی پایتون ارائه دهید تا به زبان فارسی " +"ترجمه شود." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`help`" msgstr "" +"متاسفانه، به نظر می رسد متنی که باید ترجمه شود وجود ندارد. لطفاً مطمئن شوید " +"که متن را به درستی قرار داده اید و دوباره تلاش کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`hex`" msgstr "" +"متن ارائه شده به نظر نمی رسد قسمتی از مستندات رسمی پایتون باشد. لطفاً متن " +"مربوطه را دوباره چک کرده و ارسال نمایید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid "**I**" msgstr "" +"متنی که شما ارائه داده اید شبیه به محتوای واقعی مستندات Python نیست. لطفاً " +"متن معتبری از مستندات Python را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`id`" -msgstr "" +msgstr ":func:`id`" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`input`" msgstr "" +"متنی که ارائه داده اید به نظر می رسد اشتباه یا ناشناخته باشد و بخشی از " +"مستندات رسمی پایتون نیست. لطفاً متن معتبری ارائه دهید تا بتوانم به آن پاسخ " +"دهم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`int`" -msgstr "" +msgstr ":func:`int`" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`isinstance`" msgstr "" +"به نظر می رسد متنی که ارائه کرده اید بخشی از مستندات رسمی پایتون نیست یا " +"ممکن است یک کد یا متن تصادفی باشد. لطفاً مطمئن شوید که متن مربوط به مستندات " +"رسمی پایتون است و دوباره ارسال کنید تا بتوانم به شما در ترجمه ی آن کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`issubclass`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مناسبی را ارسال کنید تا بتوانم آن " +"را به فارسی ترجمه کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`iter`" -msgstr "" +msgstr "متنی برای ترجمه ارائه نشده است. لطفاً متنی برای ترجمه ارائه کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**L**" msgstr "" +"متنی با شناسه \"**L**\" برای ترجمه ارائه نشده است. لطفاً متن مورد نظر را " +"برای ترجمه مجدد ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`len`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً محتوای اصلی را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-list|_" -msgstr "" +msgstr "|فهرست-توابع|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`locals`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**M**" msgstr "" +"I'm sorry, but it looks like \"**M**\" doesn't contain any specific content " +"from the Python official documentation to translate. If you provide a more " +"detailed excerpt, I can help translate that text into Farsi." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`map`" -msgstr "" +msgstr "ایکس اِی اِس دی اف۰۰" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`max`" msgstr "" +"متن وارد شده شما شبیه به سند رسمی یا آموزشی نیست. لطفا متن مشخص و معناداری " +"را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-memoryview|_" -msgstr "" +msgstr "|func-memoryview|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`min`" msgstr "" +"متنی که ارائه شده شامل عبارات قابل ترجمه نمی باشد. اگر نیاز به ترجمه بخش " +"خاصی از مستندات رسمی پایتون دارید، لطفاً متن مرتبط را ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**N**" msgstr "" +"به نظر می رسد متن ارائه شده برای ترجمه، یک رشته یا شناسه خاص است و شامل " +"محتوای متنی قابل ترجمه نمی شود. لطفاً متن دیگری را برای ترجمه ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`next`" msgstr "" +"متنی که ارائه داده اید به نظر نمی رسد از مستندات رسمی پایتون باشد. شاید نیاز" +" به بازبینی متن یا توضیح بیشتری باشد تا بتوانم کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid "**O**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مد نظر خود را برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`object`" msgstr "" +"متأسفانه، متنی که ارائه داده اید قابل فهم نیست و نمی توان ترجمه دقیقی برای " +"آن ارائه داد. لطفاً متن قابل فهم تری ارائه دهید تا بتوانم در ترجمه آن به شما" +" کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`oct`" msgstr "" +"متنی که ارائه داده اید شبیه به قسمتی از مستندات رسمی پایتون نیست. ممکن است " +"متن ورودی یک کد یا رشته خاص باشد که در مستندات وجود ندارد و نیاز به توضیح " +"اختصاصی ندارد. اگر سوال یا متن دیگری دارید، لطفاً توضیح بیشتری بدهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`open`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن صحیحی را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`ord`" msgstr "" +"I'm sorry, but the text you provided, \":func:`ord`\", doesn't appear to be " +"part of the official Python documentation. If you can provide a valid " +"excerpt from the Python documentation, I would be able to assist you with " +"its translation to Farsi." #: ../../library/functions.rst:0 +#, fuzzy msgid "**P**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " +"فارسی ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`pow`" -msgstr "" +msgstr ":func:`pow`" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`print`" msgstr "" +"متن داده شده برای ترجمه به نظر نمی رسد که از محتوای مستندات رسمی پایتون " +"باشد. آیا می توانید متن دیگری ارائه دهید تا آن را برای شما به فارسی ترجمه " +"کنم؟" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`property`" msgstr "" +"متنی که ارائه داده اید به نظر نمی رسد که بخشی از مستندات رسمی پایتون یا حتی " +"یک جمله معنی دار باشد. آیا امکان دارد متن درست را ارائه دهید تا بتوانم به " +"شما در ترجمه کمک کنم؟" #: ../../library/functions.rst:0 +#, fuzzy msgid "**R**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متنی که می خواهید ترجمه شود را ارسال " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-range|_" -msgstr "" +msgstr "|func-range|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`repr`" msgstr "" +"متنی که ارائه داده اید به نظر نامعتبر یا تصادفی می رسد و به نظر نمی آید که " +"بخشی از مستندات رسمی پایتون باشد. اگر بخش خاصی از مستندات پایتون را می " +"خواهید ترجمه کنید، لطفا آن را به طور واضح ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`reversed`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن را ارائه دهید تا آن را به فارسی " +"ترجمه کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`round`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را قرار دهید " +"تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid "**S**" msgstr "" +"متن ارائه شده به درستی وارد نشده است. لطفاً مطمئن شوید که متنی که می خواهید " +"ترجمه شود، معتبر و قابل فهم است." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-set|_" -msgstr "" +msgstr "|مجموعه تابع|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`setattr`" msgstr "" +"به نظر می رسد متنی که برای ترجمه ارائه داده اید، معنی خاصی ندارد و احتمالاً " +"به اشتباه وارد شده است. لطفاً متن دقیق و درستی را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`slice`" msgstr "" +"متاسفانه، محتوای وارد شده قابل خواندن یا ترجمه نیست. لطفاً متنی قابل فهم از " +"سند رسمی پایتون ارائه دهید تا بتوانم به ترجمه آن به فارسی کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`sorted`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را ارسال کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`staticmethod`" -msgstr "" +msgstr ":func:`staticmethod`" #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-str|_" -msgstr "" +msgstr "|func-str|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`sum`" msgstr "" +"متنی که ارائه دادید فاقد محتوای قابل ترجمه است. لطفاً متن معتبر و مرتبط با " +"مستندات رسمی پایتون ارائه دهید تا بتوانم آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`super`" msgstr "" +"متنی که برای ترجمه ارائه داده اید فاقد محتوای قابل ترجمه است. لطفاً متن درست" +" و مناسبی ارائه دهید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 +#, fuzzy msgid "**T**" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "|func-tuple|_" -msgstr "" +msgstr "|تابع-تاپل|_" #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`type`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن را برای ترجمه به صورت صحیح وارد " +"کنید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**V**" msgstr "" +"به نظر می رسد متن ورودی شما معتبر نیست یا به زبان انگلیسی نیست که بتوان آن " +"را به فارسی ترجمه کرد. لطفاً متن صحیح را ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`vars`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن صحیحی را جهت ترجمه در اختیار من " +"قرار دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid "**Z**" msgstr "" +"به نظر می رسد متنی که ارائه داده اید یک رشته ی نامفهوم یا یک کد اشتباه باشد." +" لطفاً مطمئن شوید که متنی برای ترجمه وارد کنید که حاوی اطلاعات یا توضیحات " +"معناداری باشد. اگر سوال یا بخش خاصی از مستندات پایتون را دارید که نیاز به " +"ترجمه دارد، لطفاً آن را به اشتراک بگذارید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`zip`" msgstr "" +"به نظر می رسد که متنی که ارسال کرده اید قابل شناسایی نیست و حاوی اطلاعات " +"معتبری نمی باشد. لطفاً متن مشخص و قابل فهمی ارسال کنید تا بتوان آن را به " +"درستی ترجمه کرد." #: ../../library/functions.rst:0 +#, fuzzy msgid "**_**" msgstr "" +"به نظر می رسد متنی که ارائه داده اید قابل ترجمه نیست، چون به وضوح شامل " +"محتوای معناداری نمی باشد. اگر متن دیگری مورد نظر شماست یا نیاز به کمک خاصی " +"دارید، لطفاً اطلاعات بیشتری ارائه دهید." #: ../../library/functions.rst:0 +#, fuzzy msgid ":func:`__import__`" msgstr "" +"متأسفانه، متنی برای ترجمه در اختیارم قرار نگرفته است. اگر بخش دیگری از " +"مستندات یا متن خاصی مدنظرتان است، لطفاً آن را مشخص کنید تا به شما کمک کنم." #: ../../library/functions.rst:59 +#, fuzzy msgid "" "Return the absolute value of a number. The argument may be an integer, a " -"floating-point number, or an object implementing :meth:`~object.__abs__`. If " -"the argument is a complex number, its magnitude is returned." +"floating-point number, or an object implementing :meth:`~object.__abs__`. If" +" the argument is a complex number, its magnitude is returned." msgstr "" +"مقدار مطلق یک عدد را برمی گرداند. آرگومان می تواند یک عدد صحیح، یک عدد " +"اعشاری، یا یک شیٔی باشد که ``:meth:`~object.__abs__``` را پیاده سازی کرده " +"است. اگر آرگومان یک عدد مختلط باشد، اندازهٔ آن برگردانده می شود." #: ../../library/functions.rst:67 +#, fuzzy msgid "" "Return an :term:`asynchronous iterator` for an :term:`asynchronous " "iterable`. Equivalent to calling ``x.__aiter__()``." msgstr "" +"یک :term:`asynchronous iterator` را برای یک :term:`asynchronous iterable` " +"بازگردانید. معادل فراخوانی ``x.__aiter__()`` است." #: ../../library/functions.rst:70 +#, fuzzy msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." msgstr "" +"توجه: برخلاف :func:`iter`، در :func:`aiter` نسخه ای با دو آرگومان وجود " +"ندارد." #: ../../library/functions.rst:76 +#, fuzzy msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" msgstr "" +"``True`` را بازگردانید اگر همه عناصر *iterable* درست باشند (یا اگر iterable " +"خالی باشد). معادل با::" #: ../../library/functions.rst:79 +#, fuzzy msgid "" "def all(iterable):\n" " for element in iterable:\n" @@ -427,33 +701,55 @@ msgid "" " return False\n" " return True" msgstr "" +"```python\n" +"def all(iterable):\n" +" برای element در iterable:\n" +" اگر نه element:\n" +" برگردان False\n" +" برگردان True\n" +"```" #: ../../library/functions.rst:89 +#, fuzzy msgid "" "When awaited, return the next item from the given :term:`asynchronous " "iterator`, or *default* if given and the iterator is exhausted." msgstr "" +"زمانی که منتظر می مانید، آیتم بعدی را از :term:`asynchronous iterator` داده " +"شده برگردانید، یا اگر داده شده و تکرارگر به پایان رسیده باشد، *default* را " +"برگردانید." #: ../../library/functions.rst:92 +#, fuzzy msgid "" -"This is the async variant of the :func:`next` builtin, and behaves similarly." -msgstr "" +"This is the async variant of the :func:`next` builtin, and behaves " +"similarly." +msgstr "این نسخه ناهمگام از :func:`next` داخلی است و رفتار مشابهی دارد." #: ../../library/functions.rst:95 +#, fuzzy msgid "" "This calls the :meth:`~object.__anext__` method of *async_iterator*, " "returning an :term:`awaitable`. Awaiting this returns the next value of the " "iterator. If *default* is given, it is returned if the iterator is " "exhausted, otherwise :exc:`StopAsyncIteration` is raised." msgstr "" +"این فراخوانی متد :meth:`~object.__anext__` از *async_iterator* است که یک " +":term:`awaitable` را برمی گرداند. در انتظار این، مقدار بعدی تکرارگر را بازمی" +" گرداند. اگر *default* داده شود، در صورتی که تکرارگر به پایان برسد، آن " +"برگردانده می شود؛ در غیر این صورت، :exc:`StopAsyncIteration` مطرح می شود." #: ../../library/functions.rst:104 +#, fuzzy msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" msgstr "" +"اگر هر عنصر از *iterable* درست باشد، ``True`` را برگردانید. اگر قابل تکرار " +"خالی باشد، ``False`` را برگردانید. معادل با::" #: ../../library/functions.rst:107 +#, fuzzy msgid "" "def any(iterable):\n" " for element in iterable:\n" @@ -461,49 +757,81 @@ msgid "" " return True\n" " return False" msgstr "" +"```python\n" +"def any(iterable):\n" +" برای element در iterable:\n" +" اگر element:\n" +" برگرداندن True\n" +" برگرداندن False\n" +"```" #: ../../library/functions.rst:116 +#, fuzzy msgid "" -"As :func:`repr`, return a string containing a printable representation of an " -"object, but escape the non-ASCII characters in the string returned by :func:" -"`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates a string " -"similar to that returned by :func:`repr` in Python 2." +"As :func:`repr`, return a string containing a printable representation of an" +" object, but escape the non-ASCII characters in the string returned by " +":func:`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates a " +"string similar to that returned by :func:`repr` in Python 2." msgstr "" +"به عنوان :func:`repr`، یک رشته که یک نمایش قابل چاپ از یک شیء را شامل می " +"شود، بازگردانید، اما کاراکترهای غیر ASCII در رشته بازگشتی توسط :func:`repr` " +"را با استفاده از اکسکیپ های ``\\x``، ``\\u``، یا ``\\U`` فرار دهید. این رشته" +" ای مشابه با رشته ای که توسط :func:`repr` در پایتون ۲ برگردانده می شود، " +"تولید می کند." #: ../../library/functions.rst:124 +#, fuzzy msgid "" "Convert an integer number to a binary string prefixed with \"0b\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " -"object, it has to define an :meth:`~object.__index__` method that returns an " -"integer. Some examples:" +"object, it has to define an :meth:`~object.__index__` method that returns an" +" integer. Some examples:" msgstr "" +"یک عدد صحیح را به یک رشته باینری که با \"0b\" پیشوند شده است تبدیل کنید. " +"نتیجه یک عبارت معتبر Python است. اگر *x* یک شیء :class:`int` در Python " +"نباشد، باید یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح " +"بازگرداند. برخی از مثال ها:" #: ../../library/functions.rst:134 +#, fuzzy msgid "" "If the prefix \"0b\" is desired or not, you can use either of the following " "ways." msgstr "" +"اگر به پیشوند \"0b\" نیاز دارید یا خیر، می توانید از یکی از روش های زیر " +"استفاده کنید." #: ../../library/functions.rst:141 ../../library/functions.rst:942 #: ../../library/functions.rst:1323 +#, fuzzy msgid "See also :func:`format` for more information." -msgstr "" +msgstr "برای اطلاعات بیشتر به :func:`format` مراجعه کنید." #: ../../library/functions.rst:146 +#, fuzzy msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. The argument is " "converted using the standard :ref:`truth testing procedure `. If the " "argument is false or omitted, this returns ``False``; otherwise, it returns " -"``True``. The :class:`bool` class is a subclass of :class:`int` (see :ref:" -"`typesnumeric`). It cannot be subclassed further. Its only instances are " -"``False`` and ``True`` (see :ref:`typebool`)." -msgstr "" +"``True``. The :class:`bool` class is a subclass of :class:`int` (see " +":ref:`typesnumeric`). It cannot be subclassed further. Its only instances " +"are ``False`` and ``True`` (see :ref:`typebool`)." +msgstr "" +"ارزش بولیانی را بازمی گرداند، یعنی یکی از ``True`` یا ``False``. آرگومان با " +"استفاده از استاندارد :ref:`truth testing procedure ` تبدیل می شود. " +"اگر آرگومان نادرست باشد یا حذف شود، ``False`` را برمی گرداند؛ در غیر این " +"صورت، ``True`` را برمی گرداند. کلاس :class:`bool` زیرکلاسی از :class:`int` " +"است (نگاه کنید به :ref:`typesnumeric`). نمی توان آن را بیشتر زیرکلاس کرد. " +"تنها نمونه های آن عبارتند از ``False`` و ``True`` (نگاه کنید به " +":ref:`typebool`)." #: ../../library/functions.rst:156 ../../library/functions.rst:807 +#, fuzzy msgid "The parameter is now positional-only." -msgstr "" +msgstr "پارامتر اکنون تنها به صورت مکانی قابل استفاده است." #: ../../library/functions.rst:161 +#, fuzzy msgid "" "This function drops you into the debugger at the call site. Specifically, " "it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " @@ -511,307 +839,492 @@ msgid "" "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 " +"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 "" +"این تابع شما را در محل فراخوانی به اشکال زدا منتقل می کند. به طور خاص، " +":func:`sys.breakpointhook` را فراخوانی می کند و ``args`` و ``kws`` را به طور" +" مستقیم عبور می دهد. به طور پیش فرض، ``sys.breakpointhook()``، " +":func:`pdb.set_trace` را فراخوانی می کند، بدون انتظار هیچ آرگومانی. در این " +"حالت، این تابع صرفاً یک تابع راحتی است تا نیازی نباشد که به طور صریح " +":mod:`pdb` را وارد کنید یا کد زیادی برای وارد شدن به اشکال زدا بنویسید. با " +"این حال، :func:`sys.breakpointhook` می تواند به تابع دیگری تنظیم شود و " +":func:`breakpoint` به طور خودکار آن را فراخوانی می کند، که به شما اجازه می " +"دهد وارد اشکال زدای مورد نظر شوید. اگر :func:`sys.breakpointhook` قابل " +"دسترسی نباشد، این تابع :exc:`RuntimeError` را برمی گرداند." #: ../../library/functions.rst:173 +#, fuzzy msgid "" -"By default, the behavior of :func:`breakpoint` can be changed with the :" -"envvar:`PYTHONBREAKPOINT` environment variable. See :func:`sys." -"breakpointhook` for usage details." +"By default, the behavior of :func:`breakpoint` can be changed with the " +":envvar:`PYTHONBREAKPOINT` environment variable. See " +":func:`sys.breakpointhook` for usage details." msgstr "" +"به طور پیش فرض، رفتار :func:`breakpoint` می تواند با متغیر محیطی " +":envvar:`PYTHONBREAKPOINT` تغییر کند. برای جزئیات استفاده، به " +":func:`sys.breakpointhook` مراجعه کنید." #: ../../library/functions.rst:177 +#, fuzzy msgid "" "Note that this is not guaranteed if :func:`sys.breakpointhook` has been " "replaced." msgstr "" +"توجه داشته باشید که این موضوع در صورتی که :func:`sys.breakpointhook` جایگزین" +" شده باشد، تضمین نمی شود." #: ../../library/functions.rst:180 +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." msgstr "" +"یک خطای :ref:`auditing event ` ``builtins.breakpoint`` به همراه " +"آرگومان ``breakpointhook`` رخ می دهد." #: ../../library/functions.rst:190 +#, fuzzy msgid "" "Return a new array of bytes. The :class:`bytearray` class is a mutable " "sequence of integers in the range 0 <= x < 256. It has most of the usual " "methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" +"بازگشت یک آرایه جدید از بایت ها. کلاس :class:`bytearray` یک دنباله قابل " +"تغییر از اعداد صحیح در دامنه 0 <= x < 256 است. این کلاس بیشتر روش های معمول " +"دنباله های قابل تغییر را که در :ref:`typesseq-mutable` توصیف شده اند، " +"داراست، همچنین اکثر روش هایی که نوع :class:`bytes` دارد، ببینید :ref:`bytes-" +"methods`." #: ../../library/functions.rst:195 +#, fuzzy msgid "" -"The optional *source* parameter can be used to initialize the array in a few " -"different ways:" +"The optional *source* parameter can be used to initialize the array in a few" +" different ways:" msgstr "" +"پارامتر اختیاری *source* می تواند به چند روش مختلف برای مقداردهی اولیه آرایه" +" استفاده شود:" #: ../../library/functions.rst:198 +#, fuzzy msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " "using :meth:`str.encode`." msgstr "" +"اگر این *string* است، شما باید پارامترهای *encoding* (و به صورت دلخواه، " +"*errors*) را نیز بدهید؛ سپس :func:`bytearray` رشته را با استفاده از " +":meth:`str.encode` به بایت تبدیل می کند." #: ../../library/functions.rst:202 +#, fuzzy msgid "" -"If it is an *integer*, the array will have that size and will be initialized " -"with null bytes." +"If it is an *integer*, the array will have that size and will be initialized" +" with null bytes." msgstr "" +"اگر این یک *integer* باشد، آرایه به همان اندازه خواهد بود و با بایت های خالی" +" (null) مقداردهی اولیه می شود." #: ../../library/functions.rst:205 +#, fuzzy msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " "initialize the bytes array." msgstr "" +"اگر این یک شیء مطابق با :ref:`buffer interface ` باشد، یک " +"بافر تنها خواندنی از شیء برای مقداردهی اولیه آرایه ``bytes`` استفاده خواهد " +"شد." #: ../../library/functions.rst:208 +#, fuzzy msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." msgstr "" +"اگر این یک *iterable* باشد، باید یک تکرارپذیر از اعداد صحیح در محدوده ``0 <=" +" x < 256`` باشد که به عنوان محتوای اولیه آرایه استفاده می شوند." #: ../../library/functions.rst:211 +#, fuzzy msgid "Without an argument, an array of size 0 is created." -msgstr "" +msgstr "بدون هیچ آرگومانی، یک آرایه با اندازه ۰ ایجاد می شود." #: ../../library/functions.rst:213 +#, fuzzy msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." -msgstr "" +msgstr "همچنین به :ref:`binaryseq` و :ref:`typebytearray` مراجعه کنید." #: ../../library/functions.rst:222 +#, fuzzy msgid "" "Return a new \"bytes\" object which is an immutable sequence of integers in " -"the range ``0 <= x < 256``. :class:`bytes` is an immutable version of :" -"class:`bytearray` -- it has the same non-mutating methods and the same " +"the range ``0 <= x < 256``. :class:`bytes` is an immutable version of " +":class:`bytearray` -- it has the same non-mutating methods and the same " "indexing and slicing behavior." msgstr "" +"یک شیء جدید از نوع \"bytes\" بازگردانده می شود که یک دنباله تغییرناپذیر از " +"اعداد صحیح در بازه ``0 <= x < 256`` است. :class:`bytes` نسخه تغییرناپذیر " +":class:`bytearray` است -- این شیء همان متدهای غیرتغییری و رفتار ایندکس گذاری" +" و برش مشابه را داراست." #: ../../library/functions.rst:227 +#, fuzzy msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" +"بنابراین، آرگومان های سازنده همانند برای :func:`bytearray` تفسیر می شوند." #: ../../library/functions.rst:229 +#, fuzzy msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" +"شیء های بایت ها می توانند با استفاده از لیترال ها نیز ایجاد شوند، به " +":ref:`strings` مراجعه کنید." #: ../../library/functions.rst:231 +#, fuzzy msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" +"همچنین به :ref:`binaryseq`، :ref:`typebytes`، و :ref:`bytes-methods` مراجعه " +"کنید." #: ../../library/functions.rst:236 +#, fuzzy msgid "" -"Return :const:`True` if the *object* argument appears callable, :const:" -"`False` if not. If this returns ``True``, it is still possible that a call " -"fails, but if it is ``False``, calling *object* will never succeed. Note " -"that classes are callable (calling a class returns a new instance); " +"Return :const:`True` if the *object* argument appears callable, " +":const:`False` if not. If this returns ``True``, it is still possible that " +"a call fails, but if it is ``False``, calling *object* will never succeed. " +"Note that classes are callable (calling a class returns a new instance); " "instances are callable if their class has a :meth:`~object.__call__` method." msgstr "" +"بازگشت \":const:`True`\" اگر آرگومان \"*object*\" قابل فراخوانی به نظر برسد،" +" و \":const:`False`\" اگر نباشد. اگر این \"``True``\" را بازگرداند، همچنان " +"ممکن است فراخوانی شکست بخورد، اما اگر \"``False``\" باشد، فراخوانی " +"\"*object*\" هرگز موفق نخواهد شد. توجه داشته باشید که کلاس ها قابل فراخوانی " +"هستند (فراخوانی یک کلاس یک نمونه جدید برمی گرداند)؛ نمونه ها قابل فراخوانی " +"هستند اگر کلاس آن ها دارای یک متد \":meth:`~object.__call__`\" باشد." #: ../../library/functions.rst:242 +#, fuzzy msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" +"این تابع ابتدا در نسخه 3.0 پایتون حذف شد و سپس در نسخه 3.2 به پایتون " +"بازگردانده شد." #: ../../library/functions.rst:249 +#, fuzzy msgid "" "Return the string representing a character whose Unicode code point is the " "integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " -"``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`." +"``chr(8364)`` returns the string ``'€'``. This is the inverse of " +":func:`ord`." msgstr "" +"رشته ای را بازمی گرداند که نمایانگر کاراکتری است که نقطه کد یونیکد آن عدد " +"صحیح *i* است. به عنوان مثال، ``chr(97)`` رشته ``'a'`` را بازمی گرداند، در " +"حالی که ``chr(8364)`` رشته ``'€'`` را بازمی گرداند. این عملیات معکوس " +":func:`ord` است." #: ../../library/functions.rst:253 +#, fuzzy msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." msgstr "" +"محدوده معتبر برای این آرگومان از ۰ تا ۱,۱۱۴,۱۱۱ (0x10FFFF در مبنای ۱۶) است. " +"اگر *i* خارج از این محدوده باشد، :exc:`ValueError` رخ خواهد داد." #: ../../library/functions.rst:259 +#, fuzzy msgid "Transform a method into a class method." -msgstr "" +msgstr "تبدیل یک متد به یک متد کلاسی." #: ../../library/functions.rst:261 +#, fuzzy msgid "" "A class method receives the class as an implicit first argument, just like " "an instance method receives the instance. To declare a class method, use " "this idiom::" msgstr "" +"یک متد کلاسی به عنوان اولین آرگومان به طور ضمنی کلاس را دریافت می کند، درست " +"همان طور که یک متد نمونه، نمونه را دریافت می کند. برای اعلام یک متد کلاسی از" +" این الگو استفاده کنید:" #: ../../library/functions.rst:265 +#, fuzzy msgid "" "class C:\n" " @classmethod\n" " def f(cls, arg1, arg2): ..." msgstr "" +"کلاس C:\n" +" @classmethod\n" +" def f(cls, arg1, arg2): ..." #: ../../library/functions.rst:269 +#, fuzzy msgid "" -"The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" -"`function` for details." +"The ``@classmethod`` form is a function :term:`decorator` -- see " +":ref:`function` for details." msgstr "" +"فرم ``@classmethod`` یک تابع است :term:`decorator` -- برای جزئیات به " +":ref:`function` مراجعه کنید." #: ../../library/functions.rst:272 +#, fuzzy msgid "" "A class method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``). The instance is ignored except for its " "class. If a class method is called for a derived class, the derived class " "object is passed as the implied first argument." msgstr "" +"یک متد کلاس می تواند هم بر روی کلاس (مثلاً ``C.f()``) و هم بر روی یک نمونه " +"(مثلاً ``C().f()``) فراخوانی شود. نمونه به جز کلاس آن نادیده گرفته می شود. " +"اگر یک متد کلاس برای یک کلاس مشتق شده فراخوانی شود، شیء کلاس مشتق شده به " +"عنوان اولین آرگومان ضمنی ارسال می شود." #: ../../library/functions.rst:277 +#, fuzzy msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod` in this section. For more information on " "class methods, see :ref:`types`." msgstr "" +"روش های کلاسی با روش های ایستای C++ یا جاوا متفاوت هستند. اگر به آن ها نیاز " +"دارید، به :func:`staticmethod` در این بخش مراجعه کنید. برای اطلاعات بیشتر " +"درباره روش های کلاسی، به :ref:`types` رجوع کنید." #: ../../library/functions.rst:281 +#, fuzzy msgid "" -"Class methods can now wrap other :term:`descriptors ` such as :" -"func:`property`." +"Class methods can now wrap other :term:`descriptors ` such as " +":func:`property`." msgstr "" +"متدهای کلاس اکنون می توانند دیگر :term:`descriptors `هایی مانند " +":func:`property` را نیز بپوشانند." #: ../../library/functions.rst:285 +#, fuzzy msgid "" -"Class methods now inherit the method attributes (:attr:`~function." -"__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :" -"attr:`~function.__doc__` and :attr:`~function.__annotations__`) and have a " -"new ``__wrapped__`` attribute." +"Class methods now inherit the method attributes " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, " +":attr:`~function.__qualname__`, :attr:`~function.__doc__` and " +":attr:`~function.__annotations__`) and have a new ``__wrapped__`` attribute." msgstr "" +"متدهای کلاس اکنون خصوصیات متد (:attr:`~function.__module__`، " +":attr:`~function.__name__`، :attr:`~function.__qualname__`، " +":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " +"برند و دارای خصوصیت جدیدی به نام ``__wrapped__`` هستند." #: ../../library/functions.rst:292 +#, fuzzy msgid "" -"Class methods can no longer wrap other :term:`descriptors ` such " -"as :func:`property`." +"Class methods can no longer wrap other :term:`descriptors ` such" +" as :func:`property`." msgstr "" +"دیگر \"method\" های کلاس نمی توانند دور دیگر \":term:`descriptors " +"`\" ها مانند \":func:`property`\" قرار بگیرند." #: ../../library/functions.rst:299 +#, fuzzy msgid "" "Compile the *source* into a code or AST object. Code objects can be " "executed by :func:`exec` or :func:`eval`. *source* can either be a normal " "string, a byte string, or an AST object. Refer to the :mod:`ast` module " "documentation for information on how to work with AST objects." msgstr "" +"ایکس ای اس دی اف۰۰ را به یک کد یا شیء AST کامپایل کنید. اشیاء کد می توانند " +"توسط ایکس ای اس دی اف۰۱ یا ایکس ای اس دی اف۰۲ اجرا شوند. ایکس ای اس دی اف۰۳ " +"می تواند یک رشته معمولی، یک رشته بایتی یا یک شیء AST باشد. برای اطلاعات " +"بیشتر در مورد چگونگی کار با اشیاء AST به مستندات ماژول ایکس ای اس دی اف۰۴ " +"مراجعه کنید." #: ../../library/functions.rst:304 +#, fuzzy msgid "" "The *filename* argument should give the file from which the code was read; " "pass some recognizable value if it wasn't read from a file (``''`` " "is commonly used)." msgstr "" +"آرگومان *filename* باید فایل حاوی کدی که خوانده شده است را مشخص کند؛ اگر کد " +"از یک فایل خوانده نشده است، یک مقدار قابل شناسایی را عبور دهید " +"(``''`` به صورت رایج استفاده می شود)." #: ../../library/functions.rst:308 +#, fuzzy msgid "" "The *mode* argument specifies what kind of code must be compiled; it can be " "``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " "it consists of a single expression, or ``'single'`` if it consists of a " -"single interactive statement (in the latter case, expression statements that " -"evaluate to something other than ``None`` will be printed)." +"single interactive statement (in the latter case, expression statements that" +" evaluate to something other than ``None`` will be printed)." msgstr "" +"آرگومان *mode* تعیین می کند که چه نوع کدی باید کامپایل شود؛ می تواند " +"``'exec'`` باشد اگر *source* شامل یک سری دستورات باشد، ``'eval'`` اگر شامل " +"یک عبارت واحد باشد، یا ``'single'`` اگر شامل یک دستور تعاملی واحد باشد (در " +"این حالت، دستورات عبارتی که به چیزی غیر از ``None`` ارزیابی شوند چاپ خواهند " +"شد)." #: ../../library/functions.rst:314 +#, fuzzy msgid "" -"The optional arguments *flags* and *dont_inherit* control which :ref:" -"`compiler options ` should be activated and which :ref:" -"`future features ` should be allowed. If neither is present (or both " -"are zero) the code is compiled with the same flags that affect the code that " -"is calling :func:`compile`. If the *flags* argument is given and " +"The optional arguments *flags* and *dont_inherit* control which " +":ref:`compiler options ` should be activated and which " +":ref:`future features ` should be allowed. If neither is present (or" +" both are zero) the code is compiled with the same flags that affect the " +"code that is calling :func:`compile`. If the *flags* argument is given and " "*dont_inherit* is not (or is zero) then the compiler options and the future " "statements specified by the *flags* argument are used in addition to those " "that would be used anyway. If *dont_inherit* is a non-zero integer then the " "*flags* argument is it -- the flags (future features and compiler options) " "in the surrounding code are ignored." msgstr "" +"آرگومان های اختیاری *flags* و *dont_inherit* تعیین می کنند که کدام " +":ref:`compiler options ` باید فعال شود و کدام " +":ref:`future features ` باید مجاز باشد. اگر هیچ یک وجود نداشته باشد " +"(یا هر دو صفر باشند)، کد با همان فلگ هایی کامپایل می شود که بر روی کدی که " +":func:`compile` را فرا می خواند تأثیر می گذارد. اگر آرگومان *flags* ارائه " +"شود و *dont_inherit* ارائه نشود (یا صفر باشد)، سپس گزینه های کامپایلر و " +"دستورات آتی که توسط آرگومان *flags* مشخص شده اند علاوه بر گزینه هایی که به " +"هر حال استفاده می شوند، استفاده می شوند. اگر *dont_inherit* یک عدد صحیح غیر " +"صفر باشد، آرگومان *flags* همان است -- فلگ ها (ویژگی های آتی و گزینه های " +"کامپایلر) در کد پیرامون نادیده گرفته می شوند." #: ../../library/functions.rst:325 +#, fuzzy msgid "" "Compiler options and future statements are specified by bits which can be " "bitwise ORed together to specify multiple options. The bitfield required to " -"specify a given future feature can be found as the :attr:`~__future__." -"_Feature.compiler_flag` attribute on the :class:`~__future__._Feature` " -"instance in the :mod:`__future__` module. :ref:`Compiler flags ` can be found in :mod:`ast` module, with ``PyCF_`` prefix." -msgstr "" +"specify a given future feature can be found as the " +":attr:`~__future__._Feature.compiler_flag` attribute on the " +":class:`~__future__._Feature` instance in the :mod:`__future__` module. " +":ref:`Compiler flags ` can be found in :mod:`ast` " +"module, with ``PyCF_`` prefix." +msgstr "" +"گزینه های کامپایلر و عبارات آینده با بیت هایی مشخص می شوند که می توان آنها " +"را با عملیات بیتی OR ترکیب کرد تا چندین گزینه را مشخص کند. فیلد بیتی لازم " +"برای مشخص کردن یک ویژگی آینده خاص را می توانید به عنوان ویژگی " +":attr:`~__future__._Feature.compiler_flag` روی نمونه " +":class:`~__future__._Feature` در ماژول :mod:`__future__` پیدا کنید. " +":ref:`Compiler flags ` را می توانید در ماژول :mod:`ast` " +"با پیشوند ``PyCF_`` پیدا کنید." #: ../../library/functions.rst:333 +#, fuzzy msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " -"interpreter as given by :option:`-O` options. Explicit levels are ``0`` (no " -"optimization; ``__debug__`` is true), ``1`` (asserts are removed, " +"interpreter as given by :option:`-O` options. Explicit levels are ``0`` (no" +" optimization; ``__debug__`` is true), ``1`` (asserts are removed, " "``__debug__`` is false) or ``2`` (docstrings are removed too)." msgstr "" +"آرگومان *optimize* سطح بهینه سازی کامپایلر را مشخص می کند؛ مقدار پیش فرض " +"``-1`` سطح بهینه سازی مفسر را طبق گزینه های :option:`-O` انتخاب می کند. سطوح" +" صریح عبارتند از ``0`` (بدون بهینه سازی؛ ``__debug__`` درست است)، ``1`` " +"(assertها حذف می شوند، ``__debug__`` نادرست است) یا ``2`` (docstringها نیز " +"حذف می شوند)." #: ../../library/functions.rst:339 +#, fuzzy msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." msgstr "" +"این تابع خطای :exc:`SyntaxError` را در صورت نامعتبر بودن کد منبع کامپایل شده" +" ایجاد می کند، و در صورتی که کد منبع شامل \"null bytes\" باشد، خطای " +":exc:`ValueError` را ایجاد می کند." #: ../../library/functions.rst:342 +#, fuzzy msgid "" -"If you want to parse Python code into its AST representation, see :func:`ast." -"parse`." +"If you want to parse Python code into its AST representation, see " +":func:`ast.parse`." msgstr "" +"اگر می خواهید کد پایتون را به نمایش AST آن تجزیه کنید، به :func:`ast.parse` " +"مراجعه نمایید." #: ../../library/functions.rst:345 ../../library/functions.rst:347 +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " "compilation." msgstr "" +"یک :ref:`auditing event ` ``compile`` با آرگومان های ``source`` و " +"``filename`` بالا می آید. این رویداد ممکن است همچنین توسط کامپایل ضمنی ایجاد" +" شود." #: ../../library/functions.rst:353 +#, fuzzy msgid "" "When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " "mode, input must be terminated by at least one newline character. This is " -"to facilitate detection of incomplete and complete statements in the :mod:" -"`code` module." +"to facilitate detection of incomplete and complete statements in the " +":mod:`code` module." msgstr "" +"هنگام کامپایل یک رشته با کد چند خطی در حالت ``'single'`` یا ``'eval'``، " +"ورودی باید حداقل با یک کاراکتر خط جدید به پایان برسد. این کار به منظور تسهیل" +" در تشخیص دستورات ناقص و کامل در ماژول :mod:`code` انجام می شود." #: ../../library/functions.rst:360 +#, fuzzy msgid "" -"It is possible to crash the Python interpreter with a sufficiently large/" -"complex string when compiling to an AST object due to stack depth " +"It is possible to crash the Python interpreter with a sufficiently " +"large/complex string when compiling to an AST object due to stack depth " "limitations in Python's AST compiler." msgstr "" +"این امکان وجود دارد که با یک رشته ی به اندازه کافی بزرگ/پیچیده، زمانی که آن " +"را به شیء AST کامپایل می کنید، باعث خرابی مفسر پایتون شوید. این مشکل به دلیل" +" محدودیت های عمق استک در کامپایلر AST پایتون است." #: ../../library/functions.rst:364 +#, fuzzy msgid "" "Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " "does not have to end in a newline anymore. Added the *optimize* parameter." msgstr "" +"استفاده از خطوط جدید در ویندوز و مک مجاز است. همچنین، ورودی در حالت " +"``'exec'`` دیگر نیازی به پایان خط جدید ندارد. پارامتر *optimize* اضافه شد." #: ../../library/functions.rst:368 +#, fuzzy msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." msgstr "" +"قبلاً، :exc:`TypeError` زمانی که بایت های null در *source* یافت می شد، رخ می" +" داد." #: ../../library/functions.rst:372 +#, fuzzy msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." msgstr "" +"پرچم های ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` اکنون می توانند برای فعال سازی " +"پشتیبانی از ``await``، ``async for`` و ``async with`` در سطح بالا ارسال " +"شوند." #: ../../library/functions.rst:381 +#, fuzzy msgid "" "Convert a single string or number to a complex number, or create a complex " "number from real and imaginary parts." msgstr "" +"تبدیل یک رشته یا عدد تنها به یک عدد \"complex\" و یا ایجاد یک عدد " +"\"complex\" از قسمت های حقیقی و موهومی." #: ../../library/functions.rst:384 ../../library/functions.rst:752 #: ../../library/functions.rst:998 +#, fuzzy msgid "Examples:" -msgstr "" +msgstr "مثال ها:" #: ../../library/functions.rst:386 +#, fuzzy msgid "" ">>> complex('+1.23')\n" "(1.23+0j)\n" @@ -830,33 +1343,68 @@ msgid "" ">>> complex(-1.23, 4.5)\n" "(-1.23+4.5j)" msgstr "" +"```>>> complex('+1.23')\n" +"(1.23+0j)\n" +">>> complex('-4.5j')\n" +"-4.5j\n" +">>> complex('-1.23+4.5j')\n" +"(-1.23+4.5j)\n" +">>> complex('\\t( -1.23+4.5J )\\n')\n" +"(-1.23+4.5j)\n" +">>> complex('-Infinity+NaNj')\n" +"(-inf+nanj)\n" +">>> complex(1.23)\n" +"(1.23+0j)\n" +">>> complex(imag=-4.5)\n" +"-4.5j\n" +">>> complex(-1.23, 4.5)\n" +"(-1.23+4.5j)```" #: ../../library/functions.rst:405 +#, fuzzy msgid "" -"If the argument is a string, it must contain either a real part (in the same " -"format as for :func:`float`) or an imaginary part (in the same format but " +"If the argument is a string, it must contain either a real part (in the same" +" format as for :func:`float`) or an imaginary part (in the same format but " "with a ``'j'`` or ``'J'`` suffix), or both real and imaginary parts (the " "sign of the imaginary part is mandatory in this case). The string can " "optionally be surrounded by whitespaces and the round parentheses ``'('`` " "and ``')'``, which are ignored. The string must not contain whitespace " "between ``'+'``, ``'-'``, the ``'j'`` or ``'J'`` suffix, and the decimal " "number. For example, ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` " -"raises :exc:`ValueError`. More precisely, the input must conform to the :" -"token:`~float:complexvalue` production rule in the following grammar, after " -"parentheses and leading and trailing whitespace characters are removed:" -msgstr "" +"raises :exc:`ValueError`. More precisely, the input must conform to the " +":token:`~float:complexvalue` production rule in the following grammar, after" +" parentheses and leading and trailing whitespace characters are removed:" +msgstr "" +"اگر آرگومان یک رشته باشد، باید شامل یک قسمت حقیقی (به همان فرمتی که برای " +":func:`float` است) یا یک قسمت موهومی (به همان فرمت اما با یک پسوند ``'j'`` " +"یا ``'J'``) یا هر دو قسمت حقیقی و موهومی باشد (علامت قسمت موهومی در این مورد" +" الزامی است). رشته می تواند به طور اختیاری توسط فاصله و پرانتزهای گرد " +"``'('`` و ``')'`` احاطه شده باشد که این موارد نادیده گرفته می شوند. رشته " +"نباید شامل فاصله بین ``'+'``، ``'-'``، پسوند ``'j'`` یا ``'J'`` و عدد اعشاری" +" باشد. برای مثال، ``complex('1+2j')`` مشکلی ندارد، اما ``complex('1 + 2j')``" +" باعث بروز :exc:`ValueError` می شود. به طور دقیق تر، ورودی باید با قاعده " +"تولید :token:`~float:complexvalue` در دستور زبان زیر مطابقت داشته باشد، " +"البته پس از حذف پرانتزها و کاراکترهای فاصله در ابتدا و انتها:" #: ../../library/functions.rst:424 +#, fuzzy msgid "" "If the argument is a number, the constructor serves as a numeric conversion " "like :class:`int` and :class:`float`. For a general Python object ``x``, " -"``complex(x)`` delegates to ``x.__complex__()``. If :meth:`~object." -"__complex__` is not defined then it falls back to :meth:`~object.__float__`. " -"If :meth:`!__float__` is not defined then it falls back to :meth:`~object." -"__index__`." -msgstr "" +"``complex(x)`` delegates to ``x.__complex__()``. If " +":meth:`~object.__complex__` is not defined then it falls back to " +":meth:`~object.__float__`. If :meth:`!__float__` is not defined then it " +"falls back to :meth:`~object.__index__`." +msgstr "" +"اگر آرگومان یک عدد باشد، سازنده به عنوان یک تبدیل عددی مانند `:class:`int`` " +"و `:class:`float`` عمل می کند. برای یک شی عمومی پایتون ```x```، " +"```complex(x)``` وظیفه را به ```x.__complex__()``` واگذار می کند. اگر " +"`:meth:`~object.__complex__`` تعریف نشده باشد، به " +"`:meth:`~object.__float__`` برمی گردد. اگر `:meth:`!__float__`` تعریف نشده " +"باشد، به `:meth:`~object.__index__`` برمی گردد." #: ../../library/functions.rst:433 +#, fuzzy msgid "" "If two arguments are provided or keyword arguments are used, each argument " "may be any numeric type (including complex). If both arguments are real " @@ -866,137 +1414,212 @@ msgid "" "imaginary component ``real.imag+imag.real``. If one of arguments is a real " "number, only its real component is used in the above expressions." msgstr "" +"اگر دو آرگومان ارائه شوند یا از آرگومان های کلمه کلیدی استفاده شود، هر " +"آرگومان می تواند از هر نوع عددی باشد (از جمله اعداد مختلط). اگر هر دو " +"آرگومان اعداد حقیقی باشند، یک عدد مختلط با جزء حقیقی *real* و جزء موهومی " +"*imag* برگردانده می شود. اگر هر دو آرگومان اعداد مختلط باشند، یک عدد مختلط " +"با جزء حقیقی ``real.real-imag.imag`` و جزء موهومی ``real.imag+imag.real`` " +"برگردانده می شود. اگر یکی از آرگومان ها عدد حقیقی باشد، تنها جزء حقیقی آن در" +" عبارات فوق استفاده می شود." #: ../../library/functions.rst:443 +#, fuzzy msgid "If all arguments are omitted, returns ``0j``." -msgstr "" +msgstr "اگر همه آرگومان ها حذف شوند، ``0j`` را برمی گرداند." #: ../../library/functions.rst:445 +#, fuzzy msgid "The complex type is described in :ref:`typesnumeric`." -msgstr "" +msgstr "نوع داده پیچیده در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:447 ../../library/functions.rst:804 #: ../../library/functions.rst:1047 +#, fuzzy msgid "Grouping digits with underscores as in code literals is allowed." -msgstr "" +msgstr "گروه بندی ارقام با استفاده از زیرخط در داخل کدهای لiteral مجاز است." #: ../../library/functions.rst:450 +#, fuzzy msgid "" -"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and :" -"meth:`~object.__float__` are not defined." +"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and " +":meth:`~object.__float__` are not defined." msgstr "" +"به :meth:`~object.__index__` برمی گردد اگر :meth:`~object.__complex__` و " +":meth:`~object.__float__` تعریف نشده باشند." #: ../../library/functions.rst:457 +#, fuzzy msgid "" "This is a relative of :func:`setattr`. The arguments are an object and a " -"string. The string must be the name of one of the object's attributes. The " -"function deletes the named attribute, provided the object allows it. For " +"string. The string must be the name of one of the object's attributes. The" +" function deletes the named attribute, provided the object allows it. For " "example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. *name* " "need not be a Python identifier (see :func:`setattr`)." msgstr "" +"این یک نوع وابسته به :func:`setattr` است. آرگومان ها یک شی و یک رشته هستند. " +"رشته باید نام یکی از ویژگی های شی باشد. این تابع ویژگی نام گذاری شده را حذف " +"می کند، به شرطی که شی اجازه دهد. به عنوان مثال، ``delattr(x, 'foobar')`` " +"معادل ``del x.foobar`` است. *name* لازم نیست که یک شناسه در پایتون باشد (به " +":func:`setattr` مراجعه کنید)." #: ../../library/functions.rst:470 +#, fuzzy msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " -"See :class:`dict` and :ref:`typesmapping` for documentation about this class." +"See :class:`dict` and :ref:`typesmapping` for documentation about this " +"class." msgstr "" +"یک دیکشنری جدید ایجاد کنید. شیء :class:`dict` کلاس دیکشنری است. برای مستندات" +" درباره این کلاس به :class:`dict` و :ref:`typesmapping` مراجعه کنید." #: ../../library/functions.rst:473 +#, fuzzy msgid "" -"For other containers see the built-in :class:`list`, :class:`set`, and :" -"class:`tuple` classes, as well as the :mod:`collections` module." +"For other containers see the built-in :class:`list`, :class:`set`, and " +":class:`tuple` classes, as well as the :mod:`collections` module." msgstr "" +"برای سایر کانتینرها، به کلاس های داخلی `:class:`list``، `:class:`set`` و " +"`:class:`tuple`` و همچنین ماژول `:mod:`collections`` مراجعه کنید." #: ../../library/functions.rst:480 +#, fuzzy msgid "" "Without arguments, return the list of names in the current local scope. " "With an argument, attempt to return a list of valid attributes for that " "object." msgstr "" +"بدون آرگومان، لیست نام ها در حوزه محلی فعلی را برمی گرداند. با یک آرگومان، " +"تلاش می کند تا لیستی از ویژگی های معتبر برای آن شیء را برگرداند." #: ../../library/functions.rst:483 +#, fuzzy msgid "" "If the object has a method named :meth:`~object.__dir__`, this method will " "be called and must return the list of attributes. This allows objects that " -"implement a custom :func:`~object.__getattr__` or :func:`~object." -"__getattribute__` function to customize the way :func:`dir` reports their " -"attributes." +"implement a custom :func:`~object.__getattr__` or " +":func:`~object.__getattribute__` function to customize the way :func:`dir` " +"reports their attributes." msgstr "" +"اگر شی ای دارای متدی به نام :meth:`~object.__dir__` باشد، این متد فراخوانی " +"شده و باید فهرستی از ویژگی ها را برگرداند. این امر به اشیایی که یک تابع " +"سفارشی :func:`~object.__getattr__` یا :func:`~object.__getattribute__` را " +"پیاده سازی می کنند اجازه می دهد تا نحوه گزارش دهی :func:`dir` در مورد ویژگی " +"های خود را سفارشی سازی کنند." #: ../../library/functions.rst:490 +#, fuzzy msgid "" "If the object does not provide :meth:`~object.__dir__`, the function tries " "its best to gather information from the object's :attr:`~object.__dict__` " "attribute, if defined, and from its type object. The resulting list is not " -"necessarily complete and may be inaccurate when the object has a custom :" -"func:`~object.__getattr__`." +"necessarily complete and may be inaccurate when the object has a custom " +":func:`~object.__getattr__`." msgstr "" +"اگر شیء :meth:`~object.__dir__` را ارائه ندهد، تابع تمام تلاش خود را می کند " +"تا اطلاعات را از خاصیت :attr:`~object.__dict__` شیء، در صورت تعریف شدن، و از" +" نوع شیء به دست آورد. لیست حاصل لزوماً کامل نیست و ممکن است زمانی که شیء " +"دارای :func:`~object.__getattr__` سفارشی باشد، نادرست باشد." #: ../../library/functions.rst:496 +#, fuzzy msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " "complete, information:" msgstr "" +"مکانیزم پیش فرض :func:`dir` با انواع مختلف اشیاء به شکل متفاوتی رفتار می " +"کند، چرا که سعی دارد اطلاعات مرتبط تر و نه لزوماً کامل، ارائه دهد:" #: ../../library/functions.rst:500 +#, fuzzy msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." -msgstr "" +msgstr "اگر شیء یک شیء ماژول باشد، این لیست شامل نام های ویژگی های ماژول است." #: ../../library/functions.rst:503 +#, fuzzy msgid "" "If the object is a type or class object, the list contains the names of its " "attributes, and recursively of the attributes of its bases." msgstr "" +"اگر شیء یک نوع یا شیء کلاس باشد، لیست شامل نام های ویژگی های آن و به صورت " +"بازگشتی نام ویژگی های مبناهای آن خواهد بود." #: ../../library/functions.rst:506 +#, fuzzy msgid "" "Otherwise, the list contains the object's attributes' names, the names of " "its class's attributes, and recursively of the attributes of its class's " "base classes." msgstr "" +"در غیر این صورت، لیست شامل نام های ویژگی های شیء، نام های ویژگی های کلاس آن " +"و به صورت بازگشتی، ویژگی های کلاس های پایه آن کلاس است." #: ../../library/functions.rst:510 +#, fuzzy msgid "The resulting list is sorted alphabetically. For example:" -msgstr "" +msgstr "فهرست حاصله به صورت الفبایی مرتب شده است. به عنوان مثال:" #: ../../library/functions.rst:530 +#, fuzzy msgid "" "Because :func:`dir` is supplied primarily as a convenience for use at an " -"interactive prompt, it tries to supply an interesting set of names more than " -"it tries to supply a rigorously or consistently defined set of names, and " +"interactive prompt, it tries to supply an interesting set of names more than" +" it tries to supply a rigorously or consistently defined set of names, and " "its detailed behavior may change across releases. For example, metaclass " "attributes are not in the result list when the argument is a class." msgstr "" +"از آنجا که :func:`dir` در درجه اول به عنوان یک تسهیل برای استفاده در یک " +"پرامپت تعاملی ارائه شده است، تلاش می کند تا مجموعه ای جذاب از نام ها را " +"ارائه دهد بیشتر از اینکه تلاش کند مجموعه ای به طور دقیق یا به طور مداوم " +"تعریف شده از نام ها ارائه کند و رفتار دقیق آن ممکن است در نسخه های مختلف " +"تغییر کند. به عنوان مثال، زمانی که آرگومان یک کلاس است، ویژگی های متاکلاس در" +" لیست نتایج موجود نیستند." #: ../../library/functions.rst:540 +#, fuzzy msgid "" "Take two (non-complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " "With mixed operand types, the rules for binary arithmetic operators apply. " "For integers, the result is the same as ``(a // b, a % b)``. For floating-" -"point numbers the result is ``(q, a % b)``, where *q* is usually ``math." -"floor(a / b)`` but may be 1 less than that. In any case ``q * b + a % b`` " -"is very close to *a*, if ``a % b`` is non-zero it has the same sign as *b*, " -"and ``0 <= abs(a % b) < abs(b)``." -msgstr "" +"point numbers the result is ``(q, a % b)``, where *q* is usually " +"``math.floor(a / b)`` but may be 1 less than that. In any case ``q * b + a " +"% b`` is very close to *a*, if ``a % b`` is non-zero it has the same sign as" +" *b*, and ``0 <= abs(a % b) < abs(b)``." +msgstr "" +"دو عدد (غیر مختلط) را به عنوان آرگومان گرفته و یک جفت عدد شامل خارج قسمت و " +"باقی مانده آن ها را زمانی که تقسیم صحیح انجام می شود، بازمی گرداند. با انواع" +" عملوندهای مختلط، قوانین عملگرهای حسابی دودویی اعمال می شود. برای اعداد " +"صحیح، نتیجه همانند ``(a // b, a % b)`` است. برای اعداد اعشاری نتیجه ``(q, a " +"% b)`` است، که در آن *q* معمولاً ``math.floor(a / b)`` است اما ممکن است 1 " +"کمتر از آن باشد. در هر صورت ``q * b + a % b`` بسیار نزدیک به *a* است، اگر " +"``a % b`` غیرصفر باشد همان علامت *b* را دارد، و ``0 <= abs(a % b) < " +"abs(b)``." #: ../../library/functions.rst:552 +#, fuzzy msgid "" -"Return an enumerate object. *iterable* must be a sequence, an :term:" -"`iterator`, or some other object which supports iteration. The :meth:" -"`~iterator.__next__` method of the iterator returned by :func:`enumerate` " -"returns a tuple containing a count (from *start* which defaults to 0) and " -"the values obtained from iterating over *iterable*." +"Return an enumerate object. *iterable* must be a sequence, an " +":term:`iterator`, or some other object which supports iteration. The " +":meth:`~iterator.__next__` method of the iterator returned by " +":func:`enumerate` returns a tuple containing a count (from *start* which " +"defaults to 0) and the values obtained from iterating over *iterable*." msgstr "" +"یک شئ شمارنده برمی گرداند. *iterable* باید یک دنباله، یک :term:`iterator` یا" +" شیء دیگری باشد که از تکرار پشتیبانی کند. متد :meth:`~iterator.__next__` از " +"تکرارکننده ای که توسط :func:`enumerate` برگردانده می شود، یک تاپل شامل یک " +"شمارشگر (از *start* که پیش فرض آن 0 است) و مقادیری که از پیمایش روی " +"*iterable* به دست می آیند برمی گرداند." #: ../../library/functions.rst:564 +#, fuzzy msgid "Equivalent to::" -msgstr "" +msgstr "معادل با::" #: ../../library/functions.rst:566 +#, fuzzy msgid "" "def enumerate(iterable, start=0):\n" " n = start\n" @@ -1004,46 +1627,67 @@ msgid "" " yield n, elem\n" " n += 1" msgstr "" +"```python\n" +"def enumerate(iterable, start=0):\n" +" n = start\n" +" for elem in iterable:\n" +" yield n, elem\n" +" n += 1\n" +"```\n" +"\n" +"تابع `enumerate` یک دنباله قابل تکرار را گرفته و در هر مرحله یک زوج شامل شماره ی اندیس و مقدار آن عنصر را بازمی گرداند. شماره اندیس از مقداری که به عنوان شروع داده شده (`start`) آغاز می شود و به ازای هر عنصر، یک به آن افزوده می گردد." #: ../../library/functions.rst:0 +#, fuzzy msgid "Parameters" -msgstr "" +msgstr "پارامترها" #: ../../library/functions.rst:576 +#, fuzzy msgid "A Python expression." -msgstr "" +msgstr "یک عبارت پایتون." #: ../../library/functions.rst:580 +#, fuzzy msgid "The global namespace (default: ``None``)." -msgstr "" +msgstr "فضای نام جهانی (پیش فرض: ``None``)." #: ../../library/functions.rst:584 +#, fuzzy msgid "The local namespace (default: ``None``)." -msgstr "" +msgstr "فضای نام محلی (پیش فرض: ``None``)." #: ../../library/functions.rst:0 +#, fuzzy msgid "Returns" -msgstr "" +msgstr "بازمی گرداند" #: ../../library/functions.rst:588 +#, fuzzy msgid "The result of the evaluated expression." -msgstr "" +msgstr "نتیجه ی عبارت ارزیابی شده." #: ../../library/functions.rst:0 +#, fuzzy msgid "raises" -msgstr "" +msgstr "بالا می برد" #: ../../library/functions.rst:589 +#, fuzzy msgid "Syntax errors are reported as exceptions." -msgstr "" +msgstr "خطاهای نحوی به عنوان استثناء گزارش می شوند." #: ../../library/functions.rst:593 ../../library/functions.rst:654 +#, fuzzy msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." msgstr "" +"این تابع کدهای دلخواه را اجرا می کند. فراخوانی آن با ورودی ارائه شده توسط " +"کاربر ممکن است منجر به آسیب پذیری های امنیتی شود." #: ../../library/functions.rst:596 +#, fuzzy msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1052,90 +1696,146 @@ msgid "" "reference to the dictionary of the built-in module :mod:`builtins` is " "inserted under that key before *expression* is parsed. That way you can " "control what builtins are available to the executed code by inserting your " -"own ``__builtins__`` dictionary into *globals* before passing it to :func:" -"`eval`. If the *locals* mapping is omitted it defaults to the *globals* " -"dictionary. If both mappings are omitted, the expression is executed with " -"the *globals* and *locals* in the environment where :func:`eval` is called. " -"Note, *eval()* will only have access to the :term:`nested scopes ` (non-locals) in the enclosing environment if they are already " -"referenced in the scope that is calling :func:`eval` (e.g. via a :keyword:" -"`nonlocal` statement)." -msgstr "" +"own ``__builtins__`` dictionary into *globals* before passing it to " +":func:`eval`. If the *locals* mapping is omitted it defaults to the " +"*globals* dictionary. If both mappings are omitted, the expression is " +"executed with the *globals* and *locals* in the environment where " +":func:`eval` is called. Note, *eval()* will only have access to the " +":term:`nested scopes ` (non-locals) in the enclosing " +"environment if they are already referenced in the scope that is calling " +":func:`eval` (e.g. via a :keyword:`nonlocal` statement)." +msgstr "" +"آرگومان *expression* به عنوان یک عبارت Python (به طور فنی، یک فهرست شرط) " +"استفاده از نگاشت های *globals* و *locals* به عنوان فضای نام های جهانی و محلی" +" تجزیه و ارزیابی می شود. اگر دیکشنری *globals* حاضر باشد و شامل مقداری برای " +"کلید ``__builtins__`` نباشد، قبل از پارس کردن *expression*، یک مرجع به " +"دیکشنری ماژول داخلی :mod:`builtins` زیر آن کلید وارد می شود. با این کار می " +"توانید با وارد کردن دیکشنری خودتان به ``__builtins__`` در *globals* قبل از " +"ارسال آن به :func:`eval`، کنترل کنید که چه چیزهای داخلی در کد اجرایی در " +"دسترس باشد. اگر نگاشت *locals* حذف شود، به طور پیش فرض به دیکشنری *globals* " +"می رود. اگر هر دو نگاشت ها حذف شوند، عبارت با *globals* و *locals* در محیطی " +"اجرا می شود که :func:`eval` صدا شده است. توجه داشته باشید که *eval()* فقط به" +" :term:`nested scopes ` (غیر محلی ها) در محیط احاطه کننده " +"دسترسی خواهد داشت اگر آن ها پیش تر در محدوده ای که در حال فراخوانی " +":func:`eval` است، ارجاع داده شده باشند (مثلاً از طریق یک دستور " +":keyword:`nonlocal`)." #: ../../library/functions.rst:612 +#, fuzzy msgid "Example:" -msgstr "" +msgstr "مثال:" #: ../../library/functions.rst:618 +#, fuzzy msgid "" "This function can also be used to execute arbitrary code objects (such as " -"those created by :func:`compile`). In this case, pass a code object instead " -"of a string. If the code object has been compiled with ``'exec'`` as the " +"those created by :func:`compile`). In this case, pass a code object instead" +" of a string. If the code object has been compiled with ``'exec'`` as the " "*mode* argument, :func:`eval`\\'s return value will be ``None``." msgstr "" +"این تابع می تواند برای اجرای اشیاء کد دلخواه (مانند آن هایی که توسط " +":func:`compile` ایجاد شده اند) نیز استفاده شود. در این حالت، به جای یک رشته،" +" یک شی کد را ارسال کنید. اگر شی کد با ``'exec'`` به عنوان آرگومان *mode* " +"کامپایل شده باشد، مقدار بازگشتی :func:`eval` برابر با ``None`` خواهد بود." #: ../../library/functions.rst:623 +#, fuzzy msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions return the " "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" +"نکته: اجرای پویا اظهارات توسط تابع :func:`exec` پشتیبانی می شود. توابع " +":func:`globals` و :func:`locals` به ترتیب دیکشنری جهانی و محلی جاری را برمی " +"گردانند که می تواند برای استفاده در :func:`eval` یا :func:`exec` مفید باشد." #: ../../library/functions.rst:628 +#, fuzzy msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." msgstr "" +"اگر منبع داده شده یک رشته باشد، فاصله ها و تب های ابتدایی و انتهایی حذف می " +"شوند." #: ../../library/functions.rst:631 +#, fuzzy msgid "" -"See :func:`ast.literal_eval` for a function that can safely evaluate strings " -"with expressions containing only literals." +"See :func:`ast.literal_eval` for a function that can safely evaluate strings" +" with expressions containing only literals." msgstr "" +"برای مشاهده تابعی که می تواند رشته هایی با عبارات شامل تنها مقادیر استنتاج " +"پذیر را به طور ایمن ارزیابی کند، به :func:`ast.literal_eval` مراجعه کنید." #: ../../library/functions.rst:634 ../../library/functions.rst:636 #: ../../library/functions.rst:696 ../../library/functions.rst:698 +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." msgstr "" +"یک :ref:`auditing event ` ``exec`` با شیء کد به عنوان آرگومان " +"ایجاد می کند. رویدادهای کامپایل کد نیز ممکن است ایجاد شوند." #: ../../library/functions.rst:641 ../../library/functions.rst:718 +#, fuzzy msgid "The *globals* and *locals* arguments can now be passed as keywords." msgstr "" +"آرگومان های *globals* و *locals* اکنون می توانند به عنوان کلیدواژه ها ارسال " +"شوند." #: ../../library/functions.rst:645 ../../library/functions.rst:722 +#, fuzzy msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." msgstr "" +"معنای فضای نام پیش فرض *locals* به گونه ای که برای :func:`locals` توصیف شده،" +" تنظیم شده است." #: ../../library/functions.rst:657 +#, fuzzy msgid "" "This function supports dynamic execution of Python code. *source* must be " "either a string or a code object. If it is a string, the string is parsed " "as a suite of Python statements which is then executed (unless a syntax " "error occurs). [#]_ If it is a code object, it is simply executed. In all " "cases, the code that's executed is expected to be valid as file input (see " -"the section :ref:`file-input` in the Reference Manual). Be aware that the :" -"keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` statements may " -"not be used outside of function definitions even within the context of code " -"passed to the :func:`exec` function. The return value is ``None``." -msgstr "" +"the section :ref:`file-input` in the Reference Manual). Be aware that the " +":keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` statements may" +" not be used outside of function definitions even within the context of code" +" passed to the :func:`exec` function. The return value is ``None``." +msgstr "" +"این تابع از اجرای پویا کدهای پایتون پشتیبانی می کند. *source* باید یا یک " +"رشته یا یک شیء کد باشد. اگر رشته باشد، به عنوان یک مجموعه از دستورات پایتون " +"تحلیل می شود و سپس اجرا می شود (مگر این که خطای نحوی رخ دهد). [#]_ اگر شیء " +"کد باشد، به سادگی اجرا می شود. در تمام موارد، انتظار می رود کدی که اجرا می " +"شود معتبر برای ورود از فایل باشد (بخش :ref:`file-input` در راهنمای مرجع را " +"ببینید). آگاه باشید که دستورات :keyword:`nonlocal`، :keyword:`yield` و " +":keyword:`return` ممکن است خارج از تعاریف تابع استفاده نشوند، حتی در متن کدی" +" که به تابع :func:`exec` پاس داده می شود. مقدار بازگشتی ``None`` است." #: ../../library/functions.rst:668 +#, fuzzy msgid "" -"In all cases, if the optional parts are omitted, the code is executed in the " -"current scope. If only *globals* is provided, it must be a dictionary (and " -"not a subclass of dictionary), which will be used for both the global and " -"the local variables. If *globals* and *locals* are given, they are used for " -"the global and local variables, respectively. If provided, *locals* can be " -"any mapping object. Remember that at the module level, globals and locals " +"In all cases, if the optional parts are omitted, the code is executed in the" +" current scope. If only *globals* is provided, it must be a dictionary (and" +" not a subclass of dictionary), which will be used for both the global and " +"the local variables. If *globals* and *locals* are given, they are used for" +" the global and local variables, respectively. If provided, *locals* can be" +" any mapping object. Remember that at the module level, globals and locals " "are the same dictionary." msgstr "" +"در هر حالتی، اگر بخش های اختیاری حذف شوند، کد در دامنه فعلی اجرا می شود. اگر" +" تنها *globals* ارائه شود، باید یک دیکشنری (و نه زیرکلاسی از دیکشنری) باشد " +"که برای هر دو متغیرهای سراسری و محلی استفاده خواهد شد. اگر *globals* و " +"*locals* داده شوند، به ترتیب برای متغیرهای سراسری و محلی استفاده می شوند. " +"اگر ارائه شود، *locals* می تواند هر شیء نگاشت باشد. به یاد داشته باشید که در" +" سطح ماژول، متغیرهای سراسری و محلی، یک دیکشنری یکسان هستند." #: ../../library/functions.rst:678 +#, fuzzy msgid "" "When ``exec`` gets two separate objects as *globals* and *locals*, the code " "will be executed as if it were embedded in a class definition. This means " @@ -1143,69 +1843,113 @@ msgid "" "access variables assigned at the top level (as the \"top level\" variables " "are treated as class variables in a class definition)." msgstr "" +"زمانی که ``exec`` دو شیء مجزا به عنوان *globals* و *locals* دریافت می کند، " +"کد اجرا خواهد شد به گونه ای که گویا درون تعریف یک کلاس جاسازی شده است. این " +"بدان معناست که توابع و کلاس هایی که در کد اجرا شده تعریف می شوند قادر به " +"دسترسی به متغیرهایی که در سطح بالا تخصیص داده شده اند نخواهند بود (زیرا " +"متغیرهای \"سطح بالا\" به عنوان متغیرهای کلاس در یک تعریف کلاس در نظر گرفته " +"می شوند)." #: ../../library/functions.rst:684 +#, fuzzy msgid "" "If the *globals* dictionary does not contain a value for the key " -"``__builtins__``, a reference to the dictionary of the built-in module :mod:" -"`builtins` is inserted under that key. That way you can control what " +"``__builtins__``, a reference to the dictionary of the built-in module " +":mod:`builtins` is inserted under that key. That way you can control what " "builtins are available to the executed code by inserting your own " -"``__builtins__`` dictionary into *globals* before passing it to :func:`exec`." +"``__builtins__`` dictionary into *globals* before passing it to " +":func:`exec`." msgstr "" +"اگر فرهنگ لغت *globals* حاوی مقداری برای کلید ``__builtins__`` نباشد، یک " +"مرجع به فرهنگ لغت ماژول داخلی :mod:`builtins` زیر آن کلید اضافه می شود. به " +"این ترتیب می توانید با وارد کردن فرهنگ لغت ``__builtins__`` خود به *globals*" +" قبل از ارسال آن به :func:`exec`، کنترل کنید که چه توابع داخلی برای کد " +"اجرایی در دسترس باشد." #: ../../library/functions.rst:690 +#, fuzzy msgid "" "The *closure* argument specifies a closure--a tuple of cellvars. It's only " "valid when the *object* is a code object containing :term:`free (closure) " "variables `. The length of the tuple must exactly match " "the length of the code object's :attr:`~codeobject.co_freevars` attribute." msgstr "" +"آرگومان *closure* یک closure را مشخص می کند--یک \"tuple\" از cellvars. این " +"تنها زمانی معتبر است که *object* یک شیء کد حاوی :term:`free (closure) " +"variables ` باشد. طول این \"tuple\" باید دقیقاً مطابق با " +"طول ویژگی :attr:`~codeobject.co_freevars` شیء کد باشد." #: ../../library/functions.rst:703 +#, fuzzy msgid "" -"The built-in functions :func:`globals` and :func:`locals` return the current " -"global and local namespace, respectively, which may be useful to pass around " -"for use as the second and third argument to :func:`exec`." +"The built-in functions :func:`globals` and :func:`locals` return the current" +" global and local namespace, respectively, which may be useful to pass " +"around for use as the second and third argument to :func:`exec`." msgstr "" +"توابع داخلی :func:`globals` و :func:`locals` به ترتیب فضای نام سراسری و محلی" +" فعلی را بازمی گردانند که ممکن است برای استفاده به عنوان آرگومان دوم و سوم " +"به :func:`exec` مفید باشند." #: ../../library/functions.rst:709 +#, fuzzy msgid "" "The default *locals* act as described for function :func:`locals` below. " "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" +"عملکرد پیش فرض *locals* به همان صورت که برای تابع :func:`locals` در زیر " +"توضیح داده شده است، عمل می کند. اگر نیاز دارید که اثرات کد بر روی *locals* " +"را پس از بازگشت تابع :func:`exec` مشاهده کنید، یک دیکشنری *locals* صریح را " +"ارسال کنید." #: ../../library/functions.rst:713 +#, fuzzy msgid "Added the *closure* parameter." -msgstr "" +msgstr "پارامتر *closure* اضافه شد." #: ../../library/functions.rst:728 +#, fuzzy msgid "" -"Construct an iterator from those elements of *iterable* for which *function* " -"is true. *iterable* may be either a sequence, a container which supports " -"iteration, or an iterator. If *function* is ``None``, the identity function " -"is assumed, that is, all elements of *iterable* that are false are removed." +"Construct an iterator from those elements of *iterable* for which *function*" +" is true. *iterable* may be either a sequence, a container which supports " +"iteration, or an iterator. If *function* is ``None``, the identity function" +" is assumed, that is, all elements of *iterable* that are false are removed." msgstr "" +"از آن عناصر *iterable* که *function* برایشان صحیح است، یک «iterator» بسازید." +" *iterable* می تواند یک دنباله، یک محفظه که از «iteration» پشتیبانی می کند، " +"یا یک «iterator» باشد. اگر *function* برابر با ``None`` باشد، تابع هویت در " +"نظر گرفته می شود، یعنی تمام عناصر *iterable* که نادرست هستند حذف می شوند." #: ../../library/functions.rst:734 +#, fuzzy msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " "not ``None`` and ``(item for item in iterable if item)`` if function is " "``None``." msgstr "" +"توجه داشته باشید که ``filter(function, iterable)`` معادل عبارت مولدی ``(item" +" for item in iterable if function(item))`` است اگر function برابر با " +"``None`` نباشد و ``(item for item in iterable if item)`` است اگر function " +"برابر با ``None`` باشد." #: ../../library/functions.rst:739 +#, fuzzy msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." msgstr "" +"به :func:`itertools.filterfalse` مراجعه کنید برای تابع مکملی که عناصری از " +"*iterable* را بازمی گرداند که برای آنها *function* نادرست است." #: ../../library/functions.rst:750 +#, fuzzy msgid "Return a floating-point number constructed from a number or a string." msgstr "" +"یک عدد اعشاری برگشت داده می شود که از یک عدد یا یک رشته ساخته شده است." #: ../../library/functions.rst:754 +#, fuzzy msgid "" ">>> float('+1.23')\n" "1.23\n" @@ -1218,8 +1962,21 @@ msgid "" ">>> float('-Infinity')\n" "-inf" msgstr "" +"```python\n" +">>> float('+1.23')\n" +"1.23\n" +">>> float(' -12345\\n')\n" +"-12345.0\n" +">>> float('1e-003')\n" +"0.001\n" +">>> float('+1E6')\n" +"1000000.0\n" +">>> float('-Infinity')\n" +"-inf\n" +"```" #: ../../library/functions.rst:767 +#, fuzzy msgid "" "If the argument is a string, it should contain a decimal number, optionally " "preceded by a sign, and optionally embedded in whitespace. The optional " @@ -1229,246 +1986,393 @@ msgid "" "conform to the :token:`~float:floatvalue` production rule in the following " "grammar, after leading and trailing whitespace characters are removed:" msgstr "" +"اگر آرگومان یک رشته باشد، باید حاوی یک عدد اعشاری بوده و به صورت اختیاری می " +"تواند با یک علامت شروع شود و یا در فضای خالی جاسازی شده باشد. علامت اختیاری " +"می تواند ``'+'`` یا ``'-'`` باشد؛ علامت ``'+'`` هیچ تأثیری بر روی مقدار " +"تولید شده نخواهد داشت. آرگومان ممکن است همچنین یک رشته ای باشد که نشان دهنده" +" NaN (نه یک عدد)، یا بی نهایت مثبت یا منفی باشد. به طور دقیق تر، ورودی باید " +"با قانون تولید :token:`~float:floatvalue` در دستور زبان زیر مطابقت داشته " +"باشد، پس از حذف کاراکترهای فاصله ی اضافی از ابتدا و انتهای آن:" #: ../../library/functions.rst:788 +#, fuzzy msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." msgstr "" +"حروف بزرگ و کوچک مهم نیستند، بنابراین به عنوان مثال، \"inf\"، \"Inf\"، " +"\"INFINITY\"، و \"iNfINity\" همگی تلفظ های قابل قبول برای بی نهایت مثبت " +"هستند." #: ../../library/functions.rst:791 +#, fuzzy msgid "" "Otherwise, if the argument is an integer or a floating-point number, a " "floating-point number with the same value (within Python's floating-point " "precision) is returned. If the argument is outside the range of a Python " "float, an :exc:`OverflowError` will be raised." msgstr "" +"در غیر این صورت، اگر آرگومان یک عدد صحیح یا یک عدد اعشاری باشد، یک عدد " +"اعشاری با همان مقدار (در حد دقت اعداد اعشاری پایتون) بازگردانده می شود. اگر " +"آرگومان خارج از محدوده یک عدد اعشاری در پایتون باشد، یک :exc:`OverflowError`" +" ایجاد خواهد شد." #: ../../library/functions.rst:796 +#, fuzzy msgid "" -"For a general Python object ``x``, ``float(x)`` delegates to ``x." -"__float__()``. If :meth:`~object.__float__` is not defined then it falls " -"back to :meth:`~object.__index__`." +"For a general Python object ``x``, ``float(x)`` delegates to " +"``x.__float__()``. If :meth:`~object.__float__` is not defined then it " +"falls back to :meth:`~object.__index__`." msgstr "" +"برای یک شی عمومی پایتون ``x``، ``float(x)`` به ``x.__float__()`` واگذار می " +"شود. اگر :meth:`~object.__float__` تعریف نشده باشد، به " +":meth:`~object.__index__` بازمی گردد." #: ../../library/functions.rst:800 +#, fuzzy msgid "If no argument is given, ``0.0`` is returned." -msgstr "" +msgstr "اگر هیچ آرگومانی داده نشود، ``0.0`` برگردانده می شود." #: ../../library/functions.rst:802 +#, fuzzy msgid "The float type is described in :ref:`typesnumeric`." -msgstr "" +msgstr "نوع `float` در :ref:`typesnumeric` توصیف شده است." #: ../../library/functions.rst:810 +#, fuzzy msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." msgstr "" +"در صورتی که ``:meth:`~object.__float__``` تعریف نشده باشد، به " +"``:meth:`~object.__index__``` برمی گردد." #: ../../library/functions.rst:820 +#, fuzzy msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " -"of the *value* argument; however, there is a standard formatting syntax that " -"is used by most built-in types: :ref:`formatspec`." +"of the *value* argument; however, there is a standard formatting syntax that" +" is used by most built-in types: :ref:`formatspec`." msgstr "" +"تبدیل *value* به یک نمایش \"قالب بندی شده\"، به گونه ای که توسط " +"*format_spec* کنترل می شود. تفسیر *format_spec* بستگی به نوع آرگومان *value*" +" دارد؛ با این حال، یک نحو قالب بندی استاندارد وجود دارد که توسط اکثر انواع " +"داخلی استفاده می شود: :ref:`formatspec`." #: ../../library/functions.rst:825 +#, fuzzy msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." msgstr "" +"پیش فرض *format_spec* یک رشته خالی است که معمولاً همان اثری را دارد که صدا " +"زدن :func:`str(value) ` دارد." #: ../../library/functions.rst:828 +#, fuzzy msgid "" -"A call to ``format(value, format_spec)`` is translated to ``type(value)." -"__format__(value, format_spec)`` which bypasses the instance dictionary when " -"searching for the value's :meth:`~object.__format__` method. A :exc:" -"`TypeError` exception is raised if the method search reaches :mod:`object` " -"and the *format_spec* is non-empty, or if either the *format_spec* or the " -"return value are not strings." +"A call to ``format(value, format_spec)`` is translated to " +"``type(value).__format__(value, format_spec)`` which bypasses the instance " +"dictionary when searching for the value's :meth:`~object.__format__` method." +" A :exc:`TypeError` exception is raised if the method search reaches " +":mod:`object` and the *format_spec* is non-empty, or if either the " +"*format_spec* or the return value are not strings." msgstr "" +"هنگام فراخوانی ``format(value, format_spec)``، به " +"``type(value).__format__(value, format_spec)`` ترجمه می شود که هنگام جستجو " +"برای متد :meth:`~object.__format__` مقدار، از دیکشنری نمونه عبور می کند. اگر" +" جستجوی متد به :mod:`object` برسد و *format_spec* غیرخالی باشد، یا اگر " +"*format_spec* یا مقدار بازگشتی رشته نباشند، یک استثنای :exc:`TypeError` " +"ایجاد می شود." #: ../../library/functions.rst:835 +#, fuzzy msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." msgstr "" +"اگر *format_spec* یک رشته خالی نباشد، ``object().__format__(format_spec)`` " +"یک :exc:`TypeError` ایجاد می کند." #: ../../library/functions.rst:844 +#, fuzzy msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " -"*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" -"ref:`types-set` for documentation about this class." +"*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and " +":ref:`types-set` for documentation about this class." msgstr "" +"یک شیء جدید از نوع :class:`frozenset` برگردانید، به صورت اختیاری با عناصری " +"که از *iterable* گرفته شده اند. ``frozenset`` یک کلاس داخلی است. برای " +"مستندات مربوط به این کلاس به :class:`frozenset` و :ref:`types-set` مراجعه " +"کنید." #: ../../library/functions.rst:848 +#, fuzzy msgid "" -"For other containers see the built-in :class:`set`, :class:`list`, :class:" -"`tuple`, and :class:`dict` classes, as well as the :mod:`collections` module." +"For other containers see the built-in :class:`set`, :class:`list`, " +":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" +" module." msgstr "" +"برای سایر کانتینرها به کلاس های داخلی `:class:`set``، `:class:`list``، " +"`:class:`tuple`` و `:class:`dict`` و همچنین ماژول `:mod:`collections`` " +"مراجعه کنید." #: ../../library/functions.rst:856 +#, fuzzy msgid "" "Return the value of the named attribute of *object*. *name* must be a " "string. If the string is the name of one of the object's attributes, the " "result is the value of that attribute. For example, ``getattr(x, " "'foobar')`` is equivalent to ``x.foobar``. If the named attribute does not " -"exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " -"raised. *name* need not be a Python identifier (see :func:`setattr`)." +"exist, *default* is returned if provided, otherwise :exc:`AttributeError` is" +" raised. *name* need not be a Python identifier (see :func:`setattr`)." msgstr "" +"مقدار ویژگی (attribute) نام گذاری شده ی *object* را بازمی گرداند. *name* " +"باید یک رشته باشد. اگر رشته، نام یکی از ویژگی های شیء باشد، نتیجه مقدار آن " +"ویژگی خواهد بود. برای مثال، ``getattr(x, 'foobar')`` معادل ``x.foobar`` است." +" اگر ویژگی نام گذاری شده وجود نداشته باشد، در صورت فراهم بودن، *default* " +"بازگردانده می شود، در غیر این صورت :exc:`AttributeError` ایجاد می شود. " +"*name* نیازی نیست که یک شناسه ی پایتون باشد (نگاه کنید به :func:`setattr`)." #: ../../library/functions.rst:865 +#, fuzzy msgid "" "Since :ref:`private name mangling ` happens at " -"compilation time, one must manually mangle a private attribute's (attributes " -"with two leading underscores) name in order to retrieve it with :func:" -"`getattr`." +"compilation time, one must manually mangle a private attribute's (attributes" +" with two leading underscores) name in order to retrieve it with " +":func:`getattr`." msgstr "" +"از آنجا که :ref:`private name mangling ` در زمان " +"کامپایل شدن رخ می دهد، برای بازیابی یک ویژگی خصوصی (ویژگی هایی با دو زیرخط " +"ابتدایی) با استفاده از :func:`getattr`، باید به صورت دستی نام آن ویژگی را " +"تغییر دهید." #: ../../library/functions.rst:873 +#, fuzzy msgid "" "Return the dictionary implementing the current module namespace. For code " "within functions, this is set when the function is defined and remains the " "same regardless of where the function is called." msgstr "" +"دایره المعارف ماژول فعلی که اجرا می شود را برگردانید. برای کدهای داخل توابع،" +" این دایره المعارف در زمانی که تابع تعریف می شود تنظیم می شود و مستقل از " +"جایی که تابع فراخوانی می شود ثابت باقی می ماند." #: ../../library/functions.rst:880 +#, fuzzy msgid "" "The arguments are an object and a string. The result is ``True`` if the " "string is the name of one of the object's attributes, ``False`` if not. " -"(This is implemented by calling ``getattr(object, name)`` and seeing whether " -"it raises an :exc:`AttributeError` or not.)" +"(This is implemented by calling ``getattr(object, name)`` and seeing whether" +" it raises an :exc:`AttributeError` or not.)" msgstr "" +"آرگومان ها شامل یک شیء و یک رشته هستند. نتیجه ``True`` است اگر رشته، نام یکی" +" از ویژگی های شیء باشد، و ``False`` اگر نباشد. (این از طریق فراخوانی " +"``getattr(object, name)`` پیاده سازی می شود و اینکه آیا یک " +":exc:`AttributeError` تولید می کند یا نه بررسی می شود.)" #: ../../library/functions.rst:888 +#, fuzzy msgid "" "Return the hash value of the object (if it has one). Hash values are " "integers. They are used to quickly compare dictionary keys during a " "dictionary lookup. Numeric values that compare equal have the same hash " "value (even if they are of different types, as is the case for 1 and 1.0)." msgstr "" +"مقدار هش شیء را برمی گرداند (اگر شیء دارای مقدار هش باشد). مقادیر هش به صورت" +" اعداد صحیح هستند. آنها برای مقایسه سریع کلیدهای دیکشنری در هنگام جستجوی " +"دیکشنری استفاده می شوند. مقادیر عددی که برابر مقایسه می شوند، دارای مقدار هش" +" یکسان هستند (حتی اگر از نوع های مختلفی باشند، مانند 1 و 1.0)." #: ../../library/functions.rst:895 +#, fuzzy msgid "" -"For objects with custom :meth:`~object.__hash__` methods, note that :func:" -"`hash` truncates the return value based on the bit width of the host machine." +"For objects with custom :meth:`~object.__hash__` methods, note that " +":func:`hash` truncates the return value based on the bit width of the host " +"machine." msgstr "" +"برای آبجکت هایی که دارای متدهای سفارشی :meth:`~object.__hash__` هستند، توجه " +"داشته باشید که :func:`hash` مقدار بازگشتی را بر اساس عرض بیت ماشین میزبان " +"کاهش می دهد." #: ../../library/functions.rst:902 +#, fuzzy msgid "" -"Invoke the built-in help system. (This function is intended for interactive " -"use.) If no argument is given, the interactive help system starts on the " -"interpreter console. If the argument is a string, then the string is looked " -"up as the name of a module, function, class, method, keyword, or " +"Invoke the built-in help system. (This function is intended for interactive" +" use.) If no argument is given, the interactive help system starts on the " +"interpreter console. If the argument is a string, then the string is looked" +" up as the name of a module, function, class, method, keyword, or " "documentation topic, and a help page is printed on the console. If the " -"argument is any other kind of object, a help page on the object is generated." +"argument is any other kind of object, a help page on the object is " +"generated." msgstr "" +"سیستم راهنمای داخلی را اجرا کنید. (این تابع برای استفاده تعاملی طراحی شده " +"است.) اگر هیچ آرگومانی داده نشود، سیستم راهنمای تعاملی در کنسول مفسر شروع به" +" کار می کند. اگر آرگومان یک رشته باشد، این رشته به عنوان نام یک ماژول، تابع،" +" کلاس، متد، کلمه کلیدی یا موضوع اسناد جستجو می شود و یک صفحه راهنما در کنسول" +" چاپ می شود. اگر آرگومان هر نوع شیء دیگری باشد، یک صفحه راهنما در مورد آن " +"شیء تولید می شود." #: ../../library/functions.rst:909 +#, fuzzy msgid "" "Note that if a slash(/) appears in the parameter list of a function when " "invoking :func:`help`, it means that the parameters prior to the slash are " "positional-only. For more info, see :ref:`the FAQ entry on positional-only " "parameters `." msgstr "" +"توجه داشته باشید که اگر هنگام فراخوانی :func:`help` در فهرست پارامترهای یک " +"تابع، یک خط مورب (/) ظاهر شود، به این معناست که پارامترهای قبل از خط مورب " +"تنها به صورت مکانی هستند. برای اطلاعات بیشتر، به :ref:`the FAQ entry on " +"positional-only parameters ` مراجعه کنید." #: ../../library/functions.rst:914 +#, fuzzy msgid "" "This function is added to the built-in namespace by the :mod:`site` module." -msgstr "" +msgstr "این تابع توسط ماژول :mod:`site` به فضای نام داخلی اضافه شده است." #: ../../library/functions.rst:916 +#, fuzzy msgid "" -"Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " -"for callables are now more comprehensive and consistent." +"Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures" +" for callables are now more comprehensive and consistent." msgstr "" +"تغییرات در :mod:`pydoc` و :mod:`inspect` به این معنا است که امضاهای گزارش " +"شده برای قابل فراخوانی ها اکنون جامع تر و سازگارتر هستند." #: ../../library/functions.rst:923 +#, fuzzy msgid "" "Convert an integer number to a lowercase hexadecimal string prefixed with " -"\"0x\". If *x* is not a Python :class:`int` object, it has to define an :" -"meth:`~object.__index__` method that returns an integer. Some examples:" +"\"0x\". If *x* is not a Python :class:`int` object, it has to define an " +":meth:`~object.__index__` method that returns an integer. Some examples:" msgstr "" +"یک عدد صحیح را به یک رشته شانزده شانزدهی با حروف کوچک تبدیل کنید که با " +"\"0x\" پیشوند دارد. اگر *x* یک شیء پایتون :class:`int` نباشد، باید متد " +":meth:`~object.__index__` ای را تعریف کند که یک عدد صحیح بازگرداند. برخی " +"مثال ها:" #: ../../library/functions.rst:932 +#, fuzzy msgid "" "If you want to convert an integer number to an uppercase or lower " "hexadecimal string with prefix or not, you can use either of the following " "ways:" msgstr "" +"اگر می خواهید یک عدد صحیح را به یک رشته شانزده شانزدهی بزرگ یا کوچک با " +"پیشوند یا بدون پیشوند تبدیل کنید، می توانید از هر یک از روش های زیر استفاده " +"کنید:" #: ../../library/functions.rst:944 +#, fuzzy msgid "" -"See also :func:`int` for converting a hexadecimal string to an integer using " -"a base of 16." +"See also :func:`int` for converting a hexadecimal string to an integer using" +" a base of 16." msgstr "" +"همچنین به :func:`int` برای تبدیل یک رشته هگزادسیمال به یک عدد صحیح با " +"استفاده از مبنای 16 مراجعه کنید." #: ../../library/functions.rst:949 +#, fuzzy msgid "" -"To obtain a hexadecimal string representation for a float, use the :meth:" -"`float.hex` method." +"To obtain a hexadecimal string representation for a float, use the " +":meth:`float.hex` method." msgstr "" +"برای به دست آوردن نمایشی به صورت رشته شانزده شانزده برای یک عدد اعشاری، از " +"روش :meth:`float.hex` استفاده کنید." #: ../../library/functions.rst:955 +#, fuzzy msgid "" "Return the \"identity\" of an object. This is an integer which is " "guaranteed to be unique and constant for this object during its lifetime. " "Two objects with non-overlapping lifetimes may have the same :func:`id` " "value." msgstr "" +"شناسهٔ یک شیء را برمی گرداند. این شناسه یک عدد صحیح است که تضمین می شود طی " +"عمر آن شیء یکتا و ثابت باقی بماند. دو شیء که دورهٔ عمرشان با هم تداخل نداشته" +" باشد ممکن است دارای مقدار :func:`id` یکسانی باشند." #: ../../library/functions.rst:960 +#, fuzzy msgid "This is the address of the object in memory." -msgstr "" +msgstr "این آدرس شیء در حافظه است." #: ../../library/functions.rst:962 +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." msgstr "" +"یک خطای :ref:`auditing event ` ``builtins.id`` با آرگومان ``id`` " +"ایجاد می کند." #: ../../library/functions.rst:968 +#, fuzzy msgid "" "If the *prompt* argument is present, it is written to standard output " "without a trailing newline. The function then reads a line from input, " "converts it to a string (stripping a trailing newline), and returns that. " "When EOF is read, :exc:`EOFError` is raised. Example::" msgstr "" +"اگر آرگومان *prompt* وجود داشته باشد، بدون افزودن یک خط جدید به خروجی " +"استاندارد نوشته می شود. سپس این تابع یک خط از ورودی می خواند، آن را به یک " +"رشته تبدیل می کند (و خط جدید انتهایی را حذف می کند)، و آن را بازمی گرداند. " +"هنگامی که EOF خوانده می شود، :exc:`EOFError` برانگیخته می شود. مثال::" #: ../../library/functions.rst:973 +#, fuzzy msgid "" ">>> s = input('--> ')\n" "--> Monty Python's Flying Circus\n" ">>> s\n" "\"Monty Python's Flying Circus\"" msgstr "" +">>> s = input('--> ')\n" +"--> مونتی پایتانز فلاینگ سرکوس\n" +">>> s\n" +"\"Monty Python's Flying Circus\"" #: ../../library/functions.rst:978 +#, fuzzy msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." msgstr "" +"اگر ماژول :mod:`readline` بارگذاری شده باشد، :func:`input` از آن برای ارائه " +"ویژگی های ویرایش خطی پیشرفته و تاریخچه بهره خواهد برد." #: ../../library/functions.rst:981 ../../library/functions.rst:983 +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" msgstr "" +"قبل از خواندن ورودی، یک :ref:`auditing event ` ``builtins.input`` " +"با آرگومان ``prompt`` ایجاد می کند." #: ../../library/functions.rst:986 ../../library/functions.rst:988 +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." msgstr "" +"پس از موفقیت در خواندن ورودی، یک :ref:`auditing event ` " +"``builtins.input/result`` با نتیجه برمی گرداند." #: ../../library/functions.rst:995 +#, fuzzy msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." msgstr "" +"یک شیء عدد صحیح برگردانده شده از یک عدد یا یک رشته را برگردانید، یا اگر هیچ " +"آرگومانی داده نشده باشد، \"``0``\" را برگردانید." #: ../../library/functions.rst:1000 +#, fuzzy msgid "" ">>> int(123.45)\n" "123\n" @@ -1483,76 +2387,132 @@ msgid "" ">>> int('01110011', base=2)\n" "115" msgstr "" +"```>>> int(123.45)\n" +"123\n" +">>> int('123')\n" +"123\n" +">>> int(' -12_345\\n')\n" +"-12345\n" +">>> int('FACE', 16)\n" +"64206\n" +">>> int('0xface', 0)\n" +"64206\n" +">>> int('01110011', base=2)\n" +"115```" #: ../../library/functions.rst:1015 +#, fuzzy msgid "" -"If the argument defines :meth:`~object.__int__`, ``int(x)`` returns ``x." -"__int__()``. If the argument defines :meth:`~object.__index__`, it returns " -"``x.__index__()``. If the argument defines :meth:`~object.__trunc__`, it " -"returns ``x.__trunc__()``. For floating-point numbers, this truncates " -"towards zero." +"If the argument defines :meth:`~object.__int__`, ``int(x)`` returns " +"``x.__int__()``. If the argument defines :meth:`~object.__index__`, it " +"returns ``x.__index__()``. If the argument defines " +":meth:`~object.__trunc__`, it returns ``x.__trunc__()``. For floating-point " +"numbers, this truncates towards zero." msgstr "" +"اگر آرگومان `:meth:`~object.__int__`` را تعریف کند، ```int(x)``` مقدار " +"```x.__int__()``` را برمی گرداند. اگر آرگومان `:meth:`~object.__index__`` را" +" تعریف کند، مقدار ```x.__index__()``` را برمی گرداند. اگر آرگومان " +"`:meth:`~object.__trunc__`` را تعریف کند، مقدار ```x.__trunc__()``` را برمی " +"گرداند. برای اعداد اعشاری، این به سمت صفر گرد می شود." #: ../../library/functions.rst:1021 +#, fuzzy msgid "" "If the argument is not a number or if *base* is given, then it must be a " "string, :class:`bytes`, or :class:`bytearray` instance representing an " -"integer in radix *base*. Optionally, the string can be preceded by ``+`` or " -"``-`` (with no space in between), have leading zeros, be surrounded by " +"integer in radix *base*. Optionally, the string can be preceded by ``+`` or" +" ``-`` (with no space in between), have leading zeros, be surrounded by " "whitespace, and have single underscores interspersed between digits." msgstr "" +"اگر آرگومان یک عدد نباشد یا اگر *base* ارائه شود، در آن صورت باید یک رشته، " +"نمونه :class:`bytes` یا :class:`bytearray` باشد که یک عدد صحیح در مبنای " +"*base* را نشان می دهد. به صورت اختیاری، رشته می تواند با ``+`` یا ``-`` " +"(بدون فاصله بین آن ها) شروع شود، دارای صفرهای پیشرو باشد، توسط فاصله های " +"خالی احاطه شده باشد و بین ارقام زیرخط های تکی وجود داشته باشد." #: ../../library/functions.rst:1027 +#, fuzzy msgid "" -"A base-n integer string contains digits, each representing a value from 0 to " -"n-1. The values 0--9 can be represented by any Unicode decimal digit. The " +"A base-n integer string contains digits, each representing a value from 0 to" +" n-1. The values 0--9 can be represented by any Unicode decimal digit. The " "values 10--35 can be represented by ``a`` to ``z`` (or ``A`` to ``Z``). The " -"default *base* is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16 " -"strings can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or " +"default *base* is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16" +" strings can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or " "``0x``/``0X``, as with integer literals in code. For base 0, the string is " "interpreted in a similar way to an :ref:`integer literal in code " -"`, in that the actual base is 2, 8, 10, or 16 as determined by the " -"prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not legal, " -"while ``int('010')`` and ``int('010', 8)`` are." -msgstr "" +"`, in that the actual base is 2, 8, 10, or 16 as determined by the" +" prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not " +"legal, while ``int('010')`` and ``int('010', 8)`` are." +msgstr "" +"یک رشته عدد صحیح با پایه-n شامل ارقامی است که هر کدام ارزشی از 0 تا n-1 را " +"نشان می دهند. ارقام 0 تا 9 می توانند توسط هر رقم اعشاری Unicode نشان داده " +"شوند. ارزش های 10 تا 35 می توانند توسط ``a`` تا ``z`` (یا ``A`` تا ``Z``) " +"نمایش داده شوند. مقدار پیش فرض *base* برابر با 10 است. پایه های مجاز 0 و 2 " +"تا 36 هستند. رشته های پایه-2، -8 و -16 می توانند به صورت اختیاری با " +"``0b``/``0B``، ``0o``/``0O``، یا ``0x``/``0X``، همانند مقادیر صحیح در کد، " +"پیشوند داشته باشند. برای پایه 0، رشته به صورت مشابه با یک :ref:`integer " +"literal in code ` تعبیر می شود، به طوری که پایه واقعی 2، 8، 10 یا " +"16 بر اساس پیشوند تعیین می شود. پایه 0 همچنین اعداد با صفرهای پیشرو را مجاز " +"نمی داند: ``int('010', 0)`` معتبر نیست، در حالی که ``int('010')`` و " +"``int('010', 8)`` معتبر هستند." #: ../../library/functions.rst:1038 +#, fuzzy msgid "The integer type is described in :ref:`typesnumeric`." -msgstr "" +msgstr "نوع عدد صحیح در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:1040 +#, fuzzy msgid "" -"If *base* is not an instance of :class:`int` and the *base* object has a :" -"meth:`base.__index__ ` method, that method is called to " +"If *base* is not an instance of :class:`int` and the *base* object has a " +":meth:`base.__index__ ` method, that method is called to " "obtain an integer for the base. Previous versions used :meth:`base.__int__ " "` instead of :meth:`base.__index__ `." msgstr "" +"اگر *base* یک نمونه از :class:`int` نباشد و شیء *base* دارای یک متد " +":meth:`base.__index__ ` باشد، آن متد فراخوانی می شود تا یک" +" عدد صحیح برای مبنا به دست آید. نسخه های قبلی به جای :meth:`base.__index__ " +"` از :meth:`base.__int__ ` استفاده می " +"کردند." #: ../../library/functions.rst:1050 +#, fuzzy msgid "The first parameter is now positional-only." -msgstr "" +msgstr "اولین پارامتر اکنون فقط-موقعیتی است." #: ../../library/functions.rst:1053 +#, fuzzy msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " "defined." msgstr "" +"در صورتی که :meth:`~object.__int__` تعریف نشده باشد، به " +":meth:`~object.__index__` برمی گردد." #: ../../library/functions.rst:1056 +#, fuzzy msgid "The delegation to :meth:`~object.__trunc__` is deprecated." -msgstr "" +msgstr "اقدام به :meth:`~object.__trunc__` منسوخ شده است." #: ../../library/functions.rst:1059 +#, fuzzy msgid "" -":class:`int` string inputs and string representations can be limited to help " -"avoid denial of service attacks. A :exc:`ValueError` is raised when the " +":class:`int` string inputs and string representations can be limited to help" +" avoid denial of service attacks. A :exc:`ValueError` is raised when the " "limit is exceeded while converting a string to an :class:`int` or when " -"converting an :class:`int` into a string would exceed the limit. See the :" -"ref:`integer string conversion length limitation ` " +"converting an :class:`int` into a string would exceed the limit. See the " +":ref:`integer string conversion length limitation ` " "documentation." msgstr "" +"ورودی های رشته ای و نمایش های رشته ای می توانند محدود شوند تا به جلوگیری از " +"حملات انکار سرویس کمک کنند. هنگامی که محدودیت در حین تبدیل یک رشته به " +"«:class:`int`» یا هنگام تبدیل یک «:class:`int`» به رشته ای که ممکن است " +"محدودیت را تجاوز کند، رخ دهد، یک «:exc:`ValueError`» ایجاد می شود. به " +"مستندات «:ref:`integer string conversion length limitation " +"`» مراجعه کنید." #: ../../library/functions.rst:1069 +#, fuzzy msgid "" "Return ``True`` if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect, or :term:`virtual `) از آن، ``True``" +" را بازگردانید. اگر *object* یک شیء از نوع مشخص شده نباشد، تابع همیشه " +"``False`` را برمی گرداند. اگر *classinfo* یک تاپل از اشیاء نوع (یا به صورت " +"بازگشتی، دیگر تاپل های مشابه) یا یک :ref:`types-union` از چندین نوع باشد، " +"اگر *object* نمونه ای از هر یک از این انواع باشد ``True`` را برمی گردانید. " +"اگر *classinfo* یک نوع یا تاپل از انواع و تاپل های این چنینی نباشد، یک " +"استثناء :exc:`TypeError` ایجاد می شود. ممکن است :exc:`TypeError` برای یک نوع" +" نامعتبر ایجاد نشود اگر یک بررسی قبلی موفق باشد." #: ../../library/functions.rst:1080 ../../library/functions.rst:1094 +#, fuzzy msgid "*classinfo* can be a :ref:`types-union`." -msgstr "" +msgstr "*classinfo* می تواند یک :ref:`types-union` باشد." #: ../../library/functions.rst:1086 +#, fuzzy msgid "" -"Return ``True`` if *class* is a subclass (direct, indirect, or :term:" -"`virtual `) of *classinfo*. A class is considered a " -"subclass of itself. *classinfo* may be a tuple of class objects (or " -"recursively, other such tuples) or a :ref:`types-union`, in which case " +"Return ``True`` if *class* is a subclass (direct, indirect, or " +":term:`virtual `) of *classinfo*. A class is " +"considered a subclass of itself. *classinfo* may be a tuple of class objects" +" (or recursively, other such tuples) or a :ref:`types-union`, in which case " "return ``True`` if *class* is a subclass of any entry in *classinfo*. In " "any other case, a :exc:`TypeError` exception is raised." msgstr "" +"اگر *class* یک زیرکلاس (مستقیم، غیر مستقیم یا :term:`virtual `) از *classinfo* باشد، ``True`` را برمی گرداند. یک کلاس به عنوان یک " +"زیرکلاس از خودش در نظر گرفته می شود. *classinfo* می تواند یک تاپل از اشیاء " +"کلاس (یا به صورت بازگشتی، تاپل های دیگر) یا یک :ref:`types-union` باشد، که " +"در این صورت اگر *class* یک زیرکلاس از هر ورودی در *classinfo* باشد، ``True``" +" را برمی گرداند. در هر مورد دیگر، یک استثنای :exc:`TypeError` ایجاد می شود." #: ../../library/functions.rst:1101 +#, fuzzy msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " -"second argument, *object* must be a collection object which supports the :" -"term:`iterable` protocol (the :meth:`~object.__iter__` method), or it must " +"second argument, *object* must be a collection object which supports the " +":term:`iterable` protocol (the :meth:`~object.__iter__` method), or it must " "support the sequence protocol (the :meth:`~object.__getitem__` method with " "integer arguments starting at ``0``). If it does not support either of " "those protocols, :exc:`TypeError` is raised. If the second argument, " -"*sentinel*, is given, then *object* must be a callable object. The iterator " -"created in this case will call *object* with no arguments for each call to " +"*sentinel*, is given, then *object* must be a callable object. The iterator" +" created in this case will call *object* with no arguments for each call to " "its :meth:`~iterator.__next__` method; if the value returned is equal to " -"*sentinel*, :exc:`StopIteration` will be raised, otherwise the value will be " -"returned." -msgstr "" +"*sentinel*, :exc:`StopIteration` will be raised, otherwise the value will be" +" returned." +msgstr "" +"یک شیء :term:`iterator` را برمی گرداند. اولین آرگومان بسته به وجود آرگومان " +"دوم به شکل بسیار متفاوتی تفسیر می شود. بدون آرگومان دوم، *object* باید یک " +"شیء مجموعه باشد که از پروتکل :term:`iterable` پشتیبانی کند (متد " +":meth:`~object.__iter__`)، یا باید از پروتکل دنباله دار (متد " +":meth:`~object.__getitem__` با آرگومان های عدد صحیح که از ``0`` شروع می شود)" +" پشتیبانی کند. اگر از هیچ کدام از این پروتکل ها پشتیبانی نکند، " +":exc:`TypeError` به وقوع خواهد پیوست. اگر آرگومان دوم، *sentinel*، داده شود،" +" آنگاه *object* باید یک شیء قابل فراخوانی باشد. در این حالت، تکرارگر ایجاد " +"شده متد :meth:`~iterator.__next__` خود را برای هر بار فراخوانی بدون آرگومان،" +" *object* را فراخوانی خواهد کرد؛ اگر مقدار بازگشتی برابر با *sentinel* باشد،" +" :exc:`StopIteration` به وقوع خواهد پیوست، در غیر این صورت مقدار برگردانده " +"می شود." #: ../../library/functions.rst:1115 +#, fuzzy msgid "See also :ref:`typeiter`." -msgstr "" +msgstr "همچنین به :ref:`typeiter` مراجعه کنید." #: ../../library/functions.rst:1117 +#, fuzzy msgid "" "One useful application of the second form of :func:`iter` is to build a " -"block-reader. For example, reading fixed-width blocks from a binary database " -"file until the end of file is reached::" +"block-reader. For example, reading fixed-width blocks from a binary database" +" file until the end of file is reached::" msgstr "" +"یکی از کاربردهای مفید فرم دوم :func:`iter` ساخت یک مسدود کننده برای خواندن " +"است. به عنوان مثال، خواندن بلوک های با عرض ثابت از یک فایل پایگاه داده " +"باینری تا زمانی که به انتهای فایل برسد::" #: ../../library/functions.rst:1121 +#, fuzzy msgid "" "from functools import partial\n" "with open('mydata.db', 'rb') as f:\n" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" msgstr "" +"از `functools` ماژول `partial` را وارد کنید.\n" +"با استفاده از دستور `with` فایل `'mydata.db'` را به حالت `'rb'` باز کنید. \n" +"برای هر بلاک در `iter` که تابع `partial(f.read, 64)` و انتهای آن به صورت `b''` تعریف شده است، \n" +"تابع `process_block(block)` را اجرا کنید." #: ../../library/functions.rst:1129 +#, fuzzy msgid "" -"Return the length (the number of items) of an object. The argument may be a " -"sequence (such as a string, bytes, tuple, list, or range) or a collection " +"Return the length (the number of items) of an object. The argument may be a" +" sequence (such as a string, bytes, tuple, list, or range) or a collection " "(such as a dictionary, set, or frozen set)." msgstr "" +"طول (تعداد آیتم ها) یک شیء را برمی گرداند. آرگومان می تواند یک دنباله (مانند" +" string، bytes، tuple، list، یا range) یا یک مجموعه (مانند dictionary، set، " +"یا frozenset) باشد." #: ../../library/functions.rst:1135 +#, fuzzy msgid "" -"``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys." -"maxsize`, such as :class:`range(2 ** 100) `." +"``len`` raises :exc:`OverflowError` on lengths larger than " +":data:`sys.maxsize`, such as :class:`range(2 ** 100) `." msgstr "" +"``len`` زمانی که طول ها بزرگتر از :data:`sys.maxsize` باشد، مانند " +":class:`range(2 ** 100) `، باعث ایجاد :exc:`OverflowError` می شود." #: ../../library/functions.rst:1144 +#, fuzzy msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." msgstr "" +"به جای اینکه یک تابع باشد، :class:`list` در واقع یک نوع دنباله قابل تغییر " +"است، همان طور که در :ref:`typesseq-list` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1150 +#, fuzzy msgid "" "Return a mapping object representing the current local symbol table, with " "variable names as the keys, and their currently bound references as the " "values." msgstr "" +"یک شیء نگاشت را برمی گرداند که جدول نماد محلی فعلی را نشان می دهد، با نام " +"متغیرها به عنوان کلیدها و ارجاعات فعلی مرتبط با آن ها به عنوان مقادیر." #: ../../library/functions.rst:1154 +#, fuzzy msgid "" "At module scope, as well as when using :func:`exec` or :func:`eval` with a " -"single namespace, this function returns the same namespace as :func:" -"`globals`." +"single namespace, this function returns the same namespace as " +":func:`globals`." msgstr "" +"در محدوده یک ماژول، و همچنین زمانی که از :func:`exec` یا :func:`eval` با یک " +"فضای نام واحد استفاده می کنید، این تابع همان فضای نامی را که :func:`globals`" +" برمی گرداند، ارائه می دهد." #: ../../library/functions.rst:1158 +#, fuzzy msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." msgstr "" +"در حوزه کلاس، نام فضایی را برمی گرداند که به سازنده متاکلاس ارسال خواهد شد." #: ../../library/functions.rst:1161 +#, fuzzy msgid "" "When using ``exec()`` or ``eval()`` with separate local and global " "arguments, it returns the local namespace passed in to the function call." msgstr "" +"هنگام استفاده از ``exec()`` یا ``eval()`` با آرگومان های محلی و سراسری " +"جداگانه، فضای نام محلی که به تابع ارسال شده را برمی گرداند." #: ../../library/functions.rst:1164 +#, fuzzy msgid "" "In all of the above cases, each call to ``locals()`` in a given frame of " "execution will return the *same* mapping object. Changes made through the " @@ -1668,176 +2691,282 @@ msgid "" "deleting local variables will immediately affect the contents of the " "returned mapping object." msgstr "" +"در تمام موارد فوق، هر بار که ``locals()`` در یک چارچوب اجرایی خاص فراخوانی " +"شود، شیء نگاشت *same* را باز می گرداند. تغییراتی که از طریق شیء نگاشت " +"بازگشتی از ``locals()`` انجام می شود به صورت متغیرهای محلی اختصاص داده شده، " +"مجدداً اختصاص داده شده یا حذف شده قابل مشاهده است، و اختصاص دادن، مجدداً " +"اختصاص دادن یا حذف کردن متغیرهای محلی بلافاصله بر محتوای شیء نگاشت بازگشتی " +"تأثیر خواهد گذاشت." #: ../../library/functions.rst:1171 +#, fuzzy msgid "" "In an :term:`optimized scope` (including functions, generators, and " "coroutines), each call to ``locals()`` instead returns a fresh dictionary " "containing the current bindings of the function's local variables and any " "nonlocal cell references. In this case, name binding changes made via the " -"returned dict are *not* written back to the corresponding local variables or " -"nonlocal cell references, and assigning, reassigning, or deleting local " +"returned dict are *not* written back to the corresponding local variables or" +" nonlocal cell references, and assigning, reassigning, or deleting local " "variables and nonlocal cell references does *not* affect the contents of " "previously returned dictionaries." msgstr "" +"در یک :term:`optimized scope` (شامل توابع، تولیدکننده ها و coroutineها)، هر " +"بار که به ``locals()`` فراخوانی می شود، به جای آن یک دیکشنری جدید که شامل " +"وابستگی های متغیرهای محلی تابع و هر گونه ارجاع به سلول های غیرمحلی است را " +"برمی گرداند. در این حالت، تغییرات در نام گذاری که از طریق دیکشنری برگشتی " +"انجام می شود، به متغیرهای محلی مربوطه یا ارجاعات سلولی غیرمحلی *not* نوشته " +"می شوند، و اختصاص دهی، دوباره اختصاص دادن، یا حذف متغیرهای محلی و ارجاعات " +"سلولی غیرمحلی *not* محتوای دیکشنری های برگشتی قبلی را تحت تأثیر قرار نمی " +"دهد." #: ../../library/functions.rst:1180 +#, fuzzy msgid "" -"Calling ``locals()`` as part of a comprehension in a function, generator, or " -"coroutine is equivalent to calling it in the containing scope, except that " +"Calling ``locals()`` as part of a comprehension in a function, generator, or" +" coroutine is equivalent to calling it in the containing scope, except that " "the comprehension's initialised iteration variables will be included. In " "other scopes, it behaves as if the comprehension were running as a nested " "function." msgstr "" +"فراخوانی ``locals()`` به عنوان بخشی از یک فهم در یک تابع، مولد یا coroutine " +"معادل فراخوانی آن در حوزه ی حاوی است، با این تفاوت که متغیرهای اولیه سازی " +"شده فهم نیز شامل می شوند. در سایر حوزه ها، این عمل به گونه ای رفتار می کند " +"که گویی فهم به عنوان یک تابع تو در تو اجرا می شود." #: ../../library/functions.rst:1186 +#, fuzzy msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." msgstr "" +"فراخوانی ``locals()`` به عنوان بخشی از یک عبارت تولیدکننده معادل با فراخوانی" +" آن در یک تابع تولیدکننده ی تو در تو است." #: ../../library/functions.rst:1189 +#, fuzzy msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." msgstr "" +"رفتار ``locals()`` در یک comprehension به روزرسانی شده است همان طور که در " +":pep:`709` توصیف شده است." #: ../../library/functions.rst:1193 +#, fuzzy msgid "" "As part of :pep:`667`, the semantics of mutating the mapping objects " -"returned from this function are now defined. The behavior in :term:" -"`optimized scopes ` is now as described above. Aside from " -"being defined, the behaviour in other scopes remains unchanged from previous " -"versions." +"returned from this function are now defined. The behavior in " +":term:`optimized scopes ` is now as described above. Aside " +"from being defined, the behaviour in other scopes remains unchanged from " +"previous versions." msgstr "" +"به عنوان بخشی از :pep:`667`، معانی تغییر دادن اشیای نگاشت که از این تابع " +"برگردانده می شوند اکنون تعریف شده اند. رفتار در :term:`optimized scopes " +"` اکنون همانطور که در بالا توصیف شد است. به جز تعریف شدن، " +"رفتار در سایر حوزه ها نسبت به نسخه های قبلی تغییری نکرده است." #: ../../library/functions.rst:1203 +#, fuzzy msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterables* arguments are passed, " "*function* must take that many arguments and is applied to the items from " -"all iterables in parallel. With multiple iterables, the iterator stops when " -"the shortest iterable is exhausted. For cases where the function inputs are " -"already arranged into argument tuples, see :func:`itertools.starmap`\\." -msgstr "" +"all iterables in parallel. With multiple iterables, the iterator stops when" +" the shortest iterable is exhausted. For cases where the function inputs " +"are already arranged into argument tuples, see :func:`itertools.starmap`\\." +msgstr "" +"یک \"iterator\" برمی گرداند که \"*function*\" را به هر آیتم از " +"\"*iterable*\" اعمال می کند و نتایج را برمی گرداند. اگر آرگومان های اضافی " +"\"*iterables*\" پاس داده شوند، \"*function*\" باید به همان تعداد آرگومان " +"بگیرد و در موازی بر روی آیتم های هر دو \"iterable\" اعمال می شود. با چندین " +"\"iterable\"، \"iterator\" زمانی متوقف می شود که کوتاه ترین \"iterable\" به " +"پایان برسد. برای مواردی که ورودی های تابع از قبل به شکل \"tuple\"های آرگومان" +" مرتب شده اند، به \":func:`itertools.starmap`\" مراجعه کنید." #: ../../library/functions.rst:1215 +#, fuzzy msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" +"بزرگترین آیتم در یک \"iterable\" یا بزرگترین آیتم از بین دو یا چند آرگومان " +"را برمی گرداند." #: ../../library/functions.rst:1218 +#, fuzzy msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The largest item in the iterable is returned. If two or more positional " "arguments are provided, the largest of the positional arguments is returned." msgstr "" +"اگر یک آرگومان موقعیتی فراهم شود، باید یک :term:`iterable` باشد. بزرگترین " +"عنصر در `iterable` برگشت داده می شود. اگر دو یا چند آرگومان موقعیتی فراهم " +"شوند، بزرگترین آرگومان موقعیتی برگشت داده می شود." #: ../../library/functions.rst:1223 ../../library/functions.rst:1261 +#, fuzzy msgid "" "There are two optional keyword-only arguments. The *key* argument specifies " "a one-argument ordering function like that used for :meth:`list.sort`. The " -"*default* argument specifies an object to return if the provided iterable is " -"empty. If the iterable is empty and *default* is not provided, a :exc:" -"`ValueError` is raised." +"*default* argument specifies an object to return if the provided iterable is" +" empty. If the iterable is empty and *default* is not provided, a " +":exc:`ValueError` is raised." msgstr "" +"دو آرگومان اختیاری وجود دارد که فقط با استفاده از کلمات کلیدی قابل استفاده " +"هستند. آرگومان *key* یک تابع ترتیب دهنده ی تک آرگومانی را مشخص می کند، مشابه" +" آنچه برای :meth:`list.sort` استفاده می شود. آرگومان *default* یک شیء را " +"تعیین می کند تا در صورتی که ساختار iterable خالی باشد، برگردانده شود. اگر " +"iterable خالی باشد و *default* ارائه نشده باشد، یک :exc:`ValueError` ایجاد " +"می شود." #: ../../library/functions.rst:1229 +#, fuzzy msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " -"such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and ``heapq." -"nlargest(1, iterable, key=keyfunc)``." +"such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and " +"``heapq.nlargest(1, iterable, key=keyfunc)``." msgstr "" +"اگر چندین آیتم بیشینه باشند، تابع اولین آیتمی را که مواجه می شود، برمی " +"گرداند. این رفتار با دیگر ابزارهای حفظ پایداری مرتب سازی نظیر " +"``sorted(iterable, key=keyfunc, reverse=True)[0]`` و ``heapq.nlargest(1, " +"iterable, key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1234 ../../library/functions.rst:1272 +#, fuzzy msgid "Added the *default* keyword-only parameter." -msgstr "" +msgstr "افزودن پارامتر فقط-کلیدی *default*." #: ../../library/functions.rst:1237 ../../library/functions.rst:1275 msgid "The *key* can be ``None``." msgstr "" #: ../../library/functions.rst:1245 +#, fuzzy msgid "" -"Return a \"memory view\" object created from the given argument. See :ref:" -"`typememoryview` for more information." +"Return a \"memory view\" object created from the given argument. See " +":ref:`typememoryview` for more information." msgstr "" +"شیء \"نمایش حافظه\" که از آرگومان داده شده ایجاد شده است را برمی گرداند. " +"برای اطلاعات بیشتر به :ref:`typememoryview` مراجعه کنید." #: ../../library/functions.rst:1253 +#, fuzzy msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" +"کوچکترین عنصر در یک ``iterable`` یا کوچکترین عنصر در بین دو یا چند آرگومان " +"را برمی گرداند." #: ../../library/functions.rst:1256 +#, fuzzy msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The smallest item in the iterable is returned. If two or more positional " -"arguments are provided, the smallest of the positional arguments is returned." +"arguments are provided, the smallest of the positional arguments is " +"returned." msgstr "" +"اگر یک آرگومان موقعیتی ارائه شود، باید یک :term:`iterable` باشد. کوچکترین " +"آیتم در \"iterable\" بازگردانده می شود. اگر دو یا چند آرگومان موقعیتی ارائه " +"شوند، کوچکترین \"آرگومان موقعیتی\" بازگردانده می شود." #: ../../library/functions.rst:1267 +#, fuzzy msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " "such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " "iterable, key=keyfunc)``." msgstr "" +"اگر چندین آیتم کمینه باشند، تابع اولین آیتمی که با آن مواجه می شود را بازمی " +"گرداند. این رفتار با سایر ابزارهای حفظ پایداری ترتیب مانند " +"````sorted(iterable, key=keyfunc)[0]```` و ````heapq.nsmallest(1, iterable, " +"key=keyfunc)```` سازگار است." #: ../../library/functions.rst:1282 +#, fuzzy msgid "" -"Retrieve the next item from the :term:`iterator` by calling its :meth:" -"`~iterator.__next__` method. If *default* is given, it is returned if the " -"iterator is exhausted, otherwise :exc:`StopIteration` is raised." +"Retrieve the next item from the :term:`iterator` by calling its " +":meth:`~iterator.__next__` method. If *default* is given, it is returned if" +" the iterator is exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" +"برای بازیابی مورد بعدی از :term:`iterator`، روش :meth:`~iterator.__next__` " +"را صدا بزنید. اگر *default* داده شده باشد، در صورتی که پیمایشگر تمام شود، آن" +" بازگردانده می شود، در غیر این صورت :exc:`StopIteration` ایجاد می شود." #: ../../library/functions.rst:1289 +#, fuzzy msgid "" "This is the ultimate base class of all other classes. It has methods that " "are common to all instances of Python classes. When the constructor is " -"called, it returns a new featureless object. The constructor does not accept " -"any arguments." +"called, it returns a new featureless object. The constructor does not accept" +" any arguments." msgstr "" +"این کلاس پایه ی نهایی تمامی کلاس های دیگر است. این کلاس شامل متدهایی است که " +"برای تمامی نمونه های کلاس های پایتون مشترک می باشند. زمانی که سازنده " +"فراخوانی می شود، یک شیء جدید بدون ویژگی را برمی گرداند. سازنده هیچ آرگومانی " +"را نمی پذیرد." #: ../../library/functions.rst:1296 +#, fuzzy msgid "" -":class:`object` instances do *not* have :attr:`~object.__dict__` attributes, " -"so you can't assign arbitrary attributes to an instance of :class:`object`." +":class:`object` instances do *not* have :attr:`~object.__dict__` attributes," +" so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" +"نمونه های :class:`object` دارای ویژگی های *not* نیستند، بنابراین نمی توانید " +"ویژگی های دلخواه را به یک نمونه از :class:`object` اختصاص دهید." #: ../../library/functions.rst:1303 +#, fuzzy msgid "" "Convert an integer number to an octal string prefixed with \"0o\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " -"object, it has to define an :meth:`~object.__index__` method that returns an " -"integer. For example:" +"object, it has to define an :meth:`~object.__index__` method that returns an" +" integer. For example:" msgstr "" +"یک عدد صحیح را به یک رشته اکتال که با \"0o\" شروع می شود تبدیل کنید. نتیجه " +"یک عبارت معتبر در پایتون است. اگر *x* یک شیء Python :class:`int` نیست، باید " +"یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح را برگرداند. برای " +"مثال:" #: ../../library/functions.rst:1313 +#, fuzzy msgid "" "If you want to convert an integer number to an octal string either with the " "prefix \"0o\" or not, you can use either of the following ways." msgstr "" +"اگر می خواهید یک عدد صحیح را به یک رشته هشت هشتی تبدیل کنید، چه با پیشوند " +"\"0o\" و چه بدون آن، می توانید از یکی از روش های زیر استفاده کنید." #: ../../library/functions.rst:1330 +#, fuzzy msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " -"cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " -"examples of how to use this function." +"cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more" +" examples of how to use this function." msgstr "" +"فایل *file* را باز کنید و یک :term:`file object` مربوطه برگردانید. اگر فایل " +"قابل باز شدن نباشد، یک :exc:`OSError` ایجاد می شود. برای دیدن مثال های بیشتر" +" از نحوه استفاده از این تابع به :ref:`tut-files` مراجعه کنید." #: ../../library/functions.rst:1334 +#, fuzzy msgid "" "*file* is a :term:`path-like object` giving the pathname (absolute or " "relative to the current working directory) of the file to be opened or an " -"integer file descriptor of the file to be wrapped. (If a file descriptor is " -"given, it is closed when the returned I/O object is closed unless *closefd* " -"is set to ``False``.)" +"integer file descriptor of the file to be wrapped. (If a file descriptor is" +" given, it is closed when the returned I/O object is closed unless *closefd*" +" is set to ``False``.)" msgstr "" +"*file* یک :term:`path-like object` است که مسیر فایل (به صورت مطلق یا نسبی " +"نسبت به دایرکتوری کاری فعلی) فایل مورد نظر برای باز شدن یا یک عدد صحیح به " +"عنوان شناسه فایل برای بسته بندی فایل را ارائه می دهد. (اگر یک شناسه فایل " +"داده شود، با بسته شدن شیء I/O برگردانده شده، بسته می شود مگر اینکه *closefd*" +" روی ``False`` تنظیم شده باشد.)" #: ../../library/functions.rst:1340 +#, fuzzy msgid "" "*mode* is an optional string that specifies the mode in which the file is " "opened. It defaults to ``'r'`` which means open for reading in text mode. " @@ -1845,84 +2974,132 @@ msgid "" "already exists), ``'x'`` for exclusive creation, and ``'a'`` for appending " "(which on *some* Unix systems, means that *all* writes append to the end of " "the file regardless of the current seek position). In text mode, if " -"*encoding* is not specified the encoding used is platform-dependent: :func:" -"`locale.getencoding` is called to get the current locale encoding. (For " -"reading and writing raw bytes use binary mode and leave *encoding* " +"*encoding* is not specified the encoding used is platform-dependent: " +":func:`locale.getencoding` is called to get the current locale encoding. " +"(For reading and writing raw bytes use binary mode and leave *encoding* " "unspecified.) The available modes are:" msgstr "" +"*mode* یک رشته اختیاری است که نحوه باز کردن فایل را مشخص می کند. پیش فرض آن " +"``'r'`` است که به معنای باز کردن برای خواندن در حالت متنی است. مقادیر رایج " +"دیگر شامل ``'w'`` برای نوشتن (کوتاه کردن فایل اگر قبلاً وجود داشته باشد)، " +"``'x'`` برای ایجاد انحصاری، و ``'a'`` برای افزودن (که در سیستم های *some* " +"یونیکس، به این معناست که نوشتن ها به انتهای فایل اضافه می شوند بدون توجه به " +"موقعیت فعلی) است. در حالت متنی، اگر *encoding* مشخص نشده باشد، کدگذاری " +"استفاده شده وابسته به پلتفرم است: :func:`locale.getencoding` برای به دست " +"آوردن کدگذاری محل فعلی فراخوانی می شود. (برای خواندن و نوشتن بایت های خام از" +" حالت باینری استفاده کنید و *encoding* را مشخص نکنید.) حالت های در دسترس " +"عبارتند از:" #: ../../library/functions.rst:1357 +#, fuzzy msgid "Character" -msgstr "" +msgstr "شخصیت" #: ../../library/functions.rst:1357 +#, fuzzy msgid "Meaning" -msgstr "" +msgstr "معنا" #: ../../library/functions.rst:1359 +#, fuzzy msgid "``'r'``" msgstr "" +"متنی برای ترجمه در اختیار قرار نگرفته است. لطفاً متن خاصی را ارائه دهید تا " +"بتوانم آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:1359 +#, fuzzy msgid "open for reading (default)" -msgstr "" +msgstr "پیش فرض: باز کردن برای خواندن" #: ../../library/functions.rst:1360 +#, fuzzy msgid "``'w'``" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفا متن صحیحی را ارائه دهید تا بتوانم آن را" +" به فارسی ترجمه کنم." #: ../../library/functions.rst:1360 +#, fuzzy msgid "open for writing, truncating the file first" -msgstr "" +msgstr "باز کردن برای نوشتن، ابتدا فایل را کوتاه کردن" #: ../../library/functions.rst:1361 +#, fuzzy msgid "``'x'``" msgstr "" +"متنی برای ترجمه ارائه نشده است. اگر نیاز به کمک دارید، لطفاً متن مورد نظر " +"خود را ارسال کنید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:1361 +#, fuzzy msgid "open for exclusive creation, failing if the file already exists" msgstr "" +"ایجاد منحصر به فرد، به این صورت که اگر فایل از قبل وجود داشته باشد، خطا می " +"دهد." #: ../../library/functions.rst:1362 +#, fuzzy msgid "``'a'``" msgstr "" +"به نظر می رسد متنی که قرار است ترجمه کنم به صورت صحیح ارائه نشده است. لطفاً " +"بخش صحیحی از متن را ارسال کنید تا آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:1362 +#, fuzzy msgid "open for writing, appending to the end of file if it exists" -msgstr "" +msgstr "باز کردن برای نوشتن، الحاق به انتهای فایل در صورت وجود فایل" #: ../../library/functions.rst:1363 +#, fuzzy msgid "``'b'``" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه وارد " +"کنید." #: ../../library/functions.rst:1363 ../../library/functions.rst:1507 +#, fuzzy msgid "binary mode" -msgstr "" +msgstr "حالت دودویی" #: ../../library/functions.rst:1364 +#, fuzzy msgid "``'t'``" msgstr "" +"متنی برای ترجمه فراهم نشده است. لطفاً متنی که می خواهید به فارسی ترجمه شود، " +"ارائه دهید." #: ../../library/functions.rst:1364 +#, fuzzy msgid "text mode (default)" -msgstr "" +msgstr "حالت متنی (پیش فرض)" #: ../../library/functions.rst:1365 +#, fuzzy msgid "``'+'``" msgstr "" +"متنی که ارائه داده اید قابل شناسایی یا ترجمه به زبان فارسی نیست، لطفاً متن " +"صحیح و قابل فهمی از مستندات رسمی پایتون ارائه دهید تا بتوانم آن را برای شما " +"ترجمه کنم." #: ../../library/functions.rst:1365 +#, fuzzy msgid "open for updating (reading and writing)" -msgstr "" +msgstr "باز کردن برای بروزرسانی (خواندن و نوشتن)" #: ../../library/functions.rst:1368 +#, fuzzy msgid "" "The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``). " -"Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " -"``'r+b'`` open the file with no truncation." +"Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and" +" ``'r+b'`` open the file with no truncation." msgstr "" +"حالت پیش فرض ``'r'`` است (برای خواندن متن باز می شود، مترادف با ``'rt'``). " +"حالت های ``'w+'`` و ``'w+b'`` فایل را باز و محتوای آن را حذف می کنند. حالت " +"های ``'r+'`` و ``'r+b'`` فایل را بدون حذف محتوا باز می کنند." #: ../../library/functions.rst:1372 +#, fuzzy msgid "" "As mentioned in the :ref:`io-overview`, Python distinguishes between binary " "and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " @@ -1932,79 +3109,125 @@ msgid "" "having been first decoded using a platform-dependent encoding or using the " "specified *encoding* if given." msgstr "" +"همانطور که در :ref:`io-overview` ذکر شده است، پایتون بین ورودی/خروجی باینری " +"و متنی تفاوت قائل است. فایل هایی که در حالت باینری باز می شوند (شامل ``'b'``" +" در آرگومان *mode*) محتوای خود را به صورت اشیاء :class:`bytes` بدون هیچگونه " +"رمزگشایی برمی گردانند. در حالت متنی (پیش فرض یا زمانی که ``'t'`` در آرگومان " +"*mode* گنجانده شده است)، محتوای فایل به صورت :class:`str` برمی گردد و این " +"بایت ها ابتدا با استفاده از کدگذاری وابسته به پلتفرم رمزگشایی می شوند یا از " +"*encoding* مشخص شده در صورت وجود، استفاده می شود." #: ../../library/functions.rst:1382 +#, fuzzy msgid "" "Python doesn't depend on the underlying operating system's notion of text " "files; all the processing is done by Python itself, and is therefore " "platform-independent." msgstr "" +"پایتون به مفهوم فایل های متنی در سیستم عامل زیرین وابسته نیست؛ تمامی پردازش" +" توسط خود پایتون انجام می شود و بنابراین مستقل از پلتفرم است." #: ../../library/functions.rst:1386 +#, fuzzy msgid "" -"*buffering* is an optional integer used to set the buffering policy. Pass 0 " -"to switch buffering off (only allowed in binary mode), 1 to select line " +"*buffering* is an optional integer used to set the buffering policy. Pass 0" +" to switch buffering off (only allowed in binary mode), 1 to select line " "buffering (only usable when writing in text mode), and an integer > 1 to " "indicate the size in bytes of a fixed-size chunk buffer. Note that " "specifying a buffer size this way applies for binary buffered I/O, but " -"``TextIOWrapper`` (i.e., files opened with ``mode='r+'``) would have another " -"buffering. To disable buffering in ``TextIOWrapper``, consider using the " +"``TextIOWrapper`` (i.e., files opened with ``mode='r+'``) would have another" +" buffering. To disable buffering in ``TextIOWrapper``, consider using the " "``write_through`` flag for :func:`io.TextIOWrapper.reconfigure`. When no " -"*buffering* argument is given, the default buffering policy works as follows:" +"*buffering* argument is given, the default buffering policy works as " +"follows:" msgstr "" +"\n" +"*buffering* یک عدد صحیح اختیاری است که برای تنظیم سیاست بافر استفاده می شود. مقدار 0 را برای غیرفعال کردن بافرینگ (فقط در حالت باینری مجاز است) و 1 برای انتخاب بافرینگ خطی (فقط در حالت نوشتن متنی قابل استفاده است) و یک عدد صحیح بزرگتر از 1 برای تعیین اندازه بافر ثابت به بایت وارد کنید. توجه داشته باشید که تعیین اندازه بافر به این شکل برای I/O بافر شده باینری اعمال می شود، اما ``TextIOWrapper`` (یعنی فایل هایی که با ``mode='r+'`` باز می شوند) دارای بافر دیگری خواهند بود. برای غیرفعال کردن بافر در ``TextIOWrapper``، از پرچم ``write_through`` برای :func:`io.TextIOWrapper.reconfigure` استفاده کنید. هنگامی که هیچ آرگومان *buffering* ارائه نمی شود، سیاست بافر پیش فرض به صورت زیر عمل می کند:" #: ../../library/functions.rst:1396 +#, fuzzy msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " -"chosen using a heuristic trying to determine the underlying device's \"block " -"size\" and falling back on :const:`io.DEFAULT_BUFFER_SIZE`. On many " +"chosen using a heuristic trying to determine the underlying device's \"block" +" size\" and falling back on :const:`io.DEFAULT_BUFFER_SIZE`. On many " "systems, the buffer will typically be 4096 or 8192 bytes long." msgstr "" +"فایل های باینری در قطعات با اندازه ثابت بافر می شوند؛ اندازه بافر با استفاده" +" از روشی تجربی انتخاب می شود که تلاش می کند «block size» دستگاه زیربنایی را " +"تعیین کند و در نهایت به :const:`io.DEFAULT_BUFFER_SIZE` می رسد. در بسیاری از" +" سیستم ها، اندازه بافر معمولاً 4096 یا 8192 بایت طول دارد." #: ../../library/functions.rst:1401 +#, fuzzy msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " "described above for binary files." msgstr "" +"فایل های متنی \"تعاملی\" (فایل هایی که برای آنها :meth:`~io.IOBase.isatty` " +"مقدار ``True`` را برمی گرداند) از بافرینگ خطی استفاده می کنند. سایر فایل های" +" متنی از سیاست توصیف شده در بالا برای فایل های باینری استفاده می کنند." #: ../../library/functions.rst:1405 +#, fuzzy msgid "" "*encoding* is the name of the encoding used to decode or encode the file. " "This should only be used in text mode. The default encoding is platform " -"dependent (whatever :func:`locale.getencoding` returns), but any :term:`text " -"encoding` supported by Python can be used. See the :mod:`codecs` module for " -"the list of supported encodings." +"dependent (whatever :func:`locale.getencoding` returns), but any :term:`text" +" encoding` supported by Python can be used. See the :mod:`codecs` module for" +" the list of supported encodings." msgstr "" +"نام رمزگذاری *encoding* برای رمزگشایی یا رمزگذاری فایل استفاده می شود. این " +"باید فقط در حالت متنی استفاده شود. رمزگذاری پیش فرض به پلتفرم وابسته است " +"(هرچه :func:`locale.getencoding` برمی گرداند)، اما هر :term:`text encoding` " +"که توسط پایتون پشتیبانی می شود، قابل استفاده است. برای لیست رمزگذاری های " +"پشتیبانی شده به ماژول :mod:`codecs` مراجعه کنید." #: ../../library/functions.rst:1411 +#, fuzzy msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled—this cannot be used in binary mode. A variety of " "standard error handlers are available (listed under :ref:`error-handlers`), " -"though any error handling name that has been registered with :func:`codecs." -"register_error` is also valid. The standard names include:" +"though any error handling name that has been registered with " +":func:`codecs.register_error` is also valid. The standard names include:" msgstr "" +"*errors* یک رشته اختیاری است که مشخص می کند چگونه می بایست خطاهای رمزگذاری و" +" رمزگشایی مدیریت شوند—این نمی تواند در حالت باینری استفاده شود. مجموعه ای از" +" مدیریت کننده های خطای استاندارد موجود است (تحت عنوان :ref:`error-handlers` " +"فهرست شده اند)، هرچند هر نام مدیریت خطایی که با " +":func:`codecs.register_error` ثبت شده باشد نیز معتبر است. نام های استاندارد " +"شامل موارد زیر هستند:" #: ../../library/functions.rst:1419 +#, fuzzy msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." msgstr "" +"برای بالا بردن یک استثنای :exc:`ValueError` در صورت وقوع خطای رمزگذاری. " +"مقدار پیش فرض ``None`` دارای همان اثر است." #: ../../library/functions.rst:1423 +#, fuzzy msgid "" -"``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " -"data loss." +"``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to" +" data loss." msgstr "" +"``'ignore'`` خطاها را نادیده می گیرد. توجه داشته باشید که نادیده گرفتن " +"خطاهای کدگذاری می تواند منجر به از دست دادن داده ها شود." #: ../../library/functions.rst:1426 +#, fuzzy msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." msgstr "" +"``'replace'`` باعث می شود که یک نشانگر جایگزین (مانند ``'?'``) در مواردی که " +"داده ها ناقص هستند، درج شود." #: ../../library/functions.rst:1429 +#, fuzzy msgid "" "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " "code units ranging from U+DC80 to U+DCFF. These surrogate code units will " @@ -2012,34 +3235,54 @@ msgid "" "handler is used when writing data. This is useful for processing files in " "an unknown encoding." msgstr "" +"``'surrogateescape'`` هر بایت نادرستی را به عنوان واحدهای کد جانشین پایین از" +" U+DC80 تا U+DCFF نشان می دهد. سپس این واحدهای کد جانشین در هنگام نوشتن داده" +" با استفاده از ``surrogateescape`` به همان بایت ها تبدیل می شوند. این برای " +"پردازش فایل هایی با کدگذاری نامشخص مفید است." #: ../../library/functions.rst:1436 +#, fuzzy msgid "" -"``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " -"not supported by the encoding are replaced with the appropriate XML " +"``'xmlcharrefreplace'`` is only supported when writing to a file. Characters" +" not supported by the encoding are replaced with the appropriate XML " "character reference :samp:`&#{nnn};`." msgstr "" +"وقتی که اطلاعات به یک فایل نوشته می شود، ``'xmlcharrefreplace'`` تنها در این" +" حالت پشتیبانی می شود. کاراکترهایی که توسط کدگذاری پشتیبانی نمی شوند، با " +"مرجع کاراکتر XML مناسب جایگزین می گردند، به شکل :samp:`&#{nnn};`." #: ../../library/functions.rst:1440 +#, fuzzy msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." msgstr "" +"``'backslashreplace'`` داده های ناقص را با توالی های فرار backslashed پایتون" +" جایگزین می کند." #: ../../library/functions.rst:1443 +#, fuzzy msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." msgstr "" +"``'namereplace'`` (فقط هنگامی که در حال نوشتن هستید پشتیبانی می شود) " +"کاراکترهای غیرپشتیبانی شده را با دنباله هایی به شکل ``\\N{...}`` جایگزین می " +"کند." #: ../../library/functions.rst:1451 +#, fuzzy msgid "" -"*newline* determines how to parse newline characters from the stream. It can " -"be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " +"*newline* determines how to parse newline characters from the stream. It can" +" be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " "follows:" msgstr "" +"*newline* تعیین می کند که چگونه کاراکترهای خط جدید از جریان تحلیل شوند. می " +"تواند ``None``، ``''``، ``'\\n'``، ``'\\r'``، و ``'\\r\\n'`` باشد. عملکرد آن" +" به این صورت است:" #: ../../library/functions.rst:1455 +#, fuzzy msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2049,25 +3292,45 @@ msgid "" "has any of the other legal values, input lines are only terminated by the " "given string, and the line ending is returned to the caller untranslated." msgstr "" +"هنگام خواندن ورودی از جریان، اگر *newline* برابر با ``None`` باشد، حالت خطوط" +" جدید جهانی فعال می شود. خطوط در ورودی می توانند با ``'\\n'``، ``'\\r'`` یا " +"``'\\r\\n'`` پایان یابند و این ها قبل از آن که به فراخواننده بازگردانده " +"شوند، به ``'\\n'`` ترجمه می شوند. اگر برابر با ``''`` باشد، حالت خطوط جدید " +"جهانی فعال می شود، اما پایان های خطوط به فراخواننده بدون ترجمه بازگردانده می" +" شوند. اگر دارای هر یک از مقادیر قانونی دیگر باشد، خطوط ورودی تنها با رشته ی" +" داده شده خاتمه می یابند و پایان خط به فراخواننده بدون ترجمه بازگردانده می " +"شود." #: ../../library/functions.rst:1463 +#, fuzzy msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " -"characters written are translated to the system default line separator, :" -"data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no translation " +"characters written are translated to the system default line separator, " +":data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no translation " "takes place. If *newline* is any of the other legal values, any ``'\\n'`` " "characters written are translated to the given string." msgstr "" +"هنگام نوشتن خروجی به جریان، اگر *newline* برابر با ``None`` باشد، هر کاراکتر" +" ``'\\n'`` نوشته شده به جداکننده خطوط پیش فرض سیستم، :data:`os.linesep`، " +"ترجمه می شود. اگر *newline* برابر با ``''`` یا ``'\\n'`` باشد، هیچ ترجمه ای " +"صورت نمی گیرد. اگر *newline* یکی از مقادیر قانونی دیگر باشد، هر کاراکتر " +"``'\\n'`` نوشته شده به رشته داده شده ترجمه می شود." #: ../../library/functions.rst:1469 +#, fuzzy msgid "" "If *closefd* is ``False`` and a file descriptor rather than a filename was " "given, the underlying file descriptor will be kept open when the file is " "closed. If a filename is given *closefd* must be ``True`` (the default); " "otherwise, an error will be raised." msgstr "" +"اگر *closefd* مقدار ``False`` باشد و یک فایل دسکریپتور به جای نام فایل داده " +"شده باشد، فایل دسکریپتور زیربنایی هنگامی که فایل بسته می شود باز باقی خواهد " +"ماند. اگر نام فایل داده شود، *closefd* باید مقدار ``True`` (که به صورت پیش " +"فرض است) باشد؛ در غیر این صورت، خطایی رخ خواهد داد." #: ../../library/functions.rst:1474 +#, fuzzy msgid "" "A custom opener can be used by passing a callable as *opener*. The " "underlying file descriptor for the file object is then obtained by calling " @@ -2075,18 +3338,28 @@ msgid "" "descriptor (passing :mod:`os.open` as *opener* results in functionality " "similar to passing ``None``)." msgstr "" +"یک بازکننده سفارشی می تواند با ارسال یک تابع قابل فراخوانی به عنوان *opener*" +" استفاده شود. سپس توصیف گر فایل اصلی برای شیء فایل با فراخوانی *opener* با " +"(*file*, *flags*) به دست می آید. *opener* باید یک توصیف گر فایل باز را " +"بازگرداند (ارسال :mod:`os.open` به عنوان *opener* منجر به عملکردی مشابه با " +"ارسال ``None`` می شود)." #: ../../library/functions.rst:1480 +#, fuzzy msgid "The newly created file is :ref:`non-inheritable `." -msgstr "" +msgstr "فایل ایجاد شده جدید :ref:`non-inheritable ` است." #: ../../library/functions.rst:1482 +#, fuzzy msgid "" -"The following example uses the :ref:`dir_fd ` parameter of the :func:" -"`os.open` function to open a file relative to a given directory::" +"The following example uses the :ref:`dir_fd ` parameter of the " +":func:`os.open` function to open a file relative to a given directory::" msgstr "" +"مثال زیر از پارامتر :ref:`dir_fd ` تابع :func:`os.open` برای باز " +"کردن یک فایل نسبت به یک دایرکتوری مشخص استفاده می کند::" #: ../../library/functions.rst:1485 +#, fuzzy msgid "" ">>> import os\n" ">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" @@ -2098,105 +3371,172 @@ msgid "" "...\n" ">>> os.close(dir_fd) # don't leak a file descriptor" msgstr "" +"```python\n" +">>> import os\n" +">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" +">>> def opener(path, flags):\n" +"... return os.open(path, flags, dir_fd=dir_fd)\n" +"...\n" +">>> with open('spamspam.txt', 'w', opener=opener) as f:\n" +"... print('این در somedir/spamspam.txt نوشته خواهد شد', file=f)\n" +"...\n" +">>> os.close(dir_fd) # از نشت یک توصیف گر فایل جلوگیری کنید\n" +"```" #: ../../library/functions.rst:1495 +#, fuzzy msgid "" "The type of :term:`file object` returned by the :func:`open` function " "depends on the mode. When :func:`open` is used to open a file in a text " -"mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of :" -"class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When used " +"mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass of " +":class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When used " "to open a file in a binary mode with buffering, the returned class is a " "subclass of :class:`io.BufferedIOBase`. The exact class varies: in read " "binary mode, it returns an :class:`io.BufferedReader`; in write binary and " -"append binary modes, it returns an :class:`io.BufferedWriter`, and in read/" -"write mode, it returns an :class:`io.BufferedRandom`. When buffering is " -"disabled, the raw stream, a subclass of :class:`io.RawIOBase`, :class:`io." -"FileIO`, is returned." -msgstr "" +"append binary modes, it returns an :class:`io.BufferedWriter`, and in " +"read/write mode, it returns an :class:`io.BufferedRandom`. When buffering " +"is disabled, the raw stream, a subclass of :class:`io.RawIOBase`, " +":class:`io.FileIO`, is returned." +msgstr "" +"نوع :term:`file object` که توسط تابع :func:`open` برگردانده می شود به حالت " +"بستگی دارد. وقتی :func:`open` برای باز کردن یک فایل در حالت متنی (``'w'``، " +"``'r'``، ``'wt'``، ``'rt'``، و غیره) استفاده می شود، یک زیرکلاس از " +":class:`io.TextIOBase` (به طور خاص :class:`io.TextIOWrapper`) را برمی " +"گرداند. هنگامی که برای باز کردن یک فایل در حالت باینری با بافر استفاده می " +"شود، کلاس بازگردانده شده یک زیرکلاس از :class:`io.BufferedIOBase` است. کلاس " +"دقیق متغیر است: در حالت خواندن باینری، یک :class:`io.BufferedReader` برمی " +"گرداند؛ در حالت های نوشتن باینری و افزودن باینری، یک " +":class:`io.BufferedWriter` برمی گرداند، و در حالت خواندن/نوشتن، یک " +":class:`io.BufferedRandom` برمی گرداند. هنگامی که بافر غیرفعال است، جریان " +"خام، که یک زیرکلاس از :class:`io.RawIOBase`، :class:`io.FileIO` است، " +"برگردانده می شود." #: ../../library/functions.rst:1516 +#, fuzzy msgid "" "See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " -"(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" -"`tempfile`, and :mod:`shutil`." +"(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, " +":mod:`tempfile`, and :mod:`shutil`." msgstr "" +"همچنین ماژول های مربوط به مدیریت فایل ها مانند :mod:`fileinput`، :mod:`io` " +"(که در آن :func:`open` تعریف شده است)، :mod:`os`، :mod:`os.path`، " +":mod:`tempfile` و :mod:`shutil` را ببینید." #: ../../library/functions.rst:1520 +#, fuzzy msgid "" -"Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " -"``mode``, ``flags``." +"Raises an :ref:`auditing event ` ``open`` with arguments ``path``," +" ``mode``, ``flags``." msgstr "" +"یک :ref:`auditing event ` ``open`` با آرگومان های ``path``، " +"``mode``، ``flags`` ایجاد می کند." #: ../../library/functions.rst:1522 +#, fuzzy msgid "" -"The ``mode`` and ``flags`` arguments may have been modified or inferred from " -"the original call." +"The ``mode`` and ``flags`` arguments may have been modified or inferred from" +" the original call." msgstr "" +"استدلال ها «``mode``» و «``flags``» ممکن است از فراخوانی اصلی تغییر کرده یا " +"استنتاج شده باشند." #: ../../library/functions.rst:1527 +#, fuzzy msgid "The *opener* parameter was added." -msgstr "" +msgstr "پارامتر *opener* اضافه شد." #: ../../library/functions.rst:1528 +#, fuzzy msgid "The ``'x'`` mode was added." -msgstr "" +msgstr "حالت ``'x'`` اضافه شد." #: ../../library/functions.rst:1529 -msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." +#, fuzzy +msgid "" +":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" +"خطای :exc:`IOError` که پیش تر فراخوانی می شد، اکنون به عنوان یک نام مستعار " +"برای :exc:`OSError` استفاده می شود." #: ../../library/functions.rst:1530 +#, fuzzy msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." msgstr "" +"اگر فایل در حالت \"ایجاد انحصاری\" باز شده باشد و از قبل وجود داشته باشد، " +"اکنون :exc:`FileExistsError` ایجاد می شود." #: ../../library/functions.rst:1535 +#, fuzzy msgid "The file is now non-inheritable." -msgstr "" +msgstr "فایل اکنون غیر قابل به ارث بردن است." #: ../../library/functions.rst:1539 +#, fuzzy msgid "" "If the system call is interrupted and the signal handler does not raise an " -"exception, the function now retries the system call instead of raising an :" -"exc:`InterruptedError` exception (see :pep:`475` for the rationale)." +"exception, the function now retries the system call instead of raising an " +":exc:`InterruptedError` exception (see :pep:`475` for the rationale)." msgstr "" +"اگر فراخوانی سیستم قطع شود و \"signal handler\" استثنایی ایجاد نکند، تابع " +"اکنون تلاش مجددی برای فراخوانی سیستم خواهد داشت به جای این که استثناء " +":exc:`InterruptedError` را ایجاد کند (برای دلایل بیشتر به :pep:`475` مراجعه " +"کنید)." #: ../../library/functions.rst:1542 +#, fuzzy msgid "The ``'namereplace'`` error handler was added." -msgstr "" +msgstr "مدیر خطای ``'namereplace'`` اضافه شد." #: ../../library/functions.rst:1546 +#, fuzzy msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" +"پشتیبانی از اشیائی که :class:`os.PathLike` را پیاده سازی می کنند اضافه شد." #: ../../library/functions.rst:1547 +#, fuzzy msgid "" -"On Windows, opening a console buffer may return a subclass of :class:`io." -"RawIOBase` other than :class:`io.FileIO`." +"On Windows, opening a console buffer may return a subclass of " +":class:`io.RawIOBase` other than :class:`io.FileIO`." msgstr "" +"در ویندوز، باز کردن یک بافر کنسول ممکن است زیرکلاسی از " +"`:class:`io.RawIOBase`` را برگرداند که متفاوت از `:class:`io.FileIO`` است." #: ../../library/functions.rst:1550 +#, fuzzy msgid "The ``'U'`` mode has been removed." -msgstr "" +msgstr "حالت ``'U'`` حذف شده است." #: ../../library/functions.rst:1555 +#, fuzzy msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " -"``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign) returns " -"``8364``. This is the inverse of :func:`chr`." +"``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign) returns" +" ``8364``. This is the inverse of :func:`chr`." msgstr "" +"با توجه به یک رشته که یک کاراکتر یونیکد را نشان می دهد، یک عدد صحیح که نقطه " +"کد یونیکد آن کاراکتر را نشان می دهد برمی گرداند. برای مثال، `ord('A')` عدد " +"صحیح `65` را برمی گرداند و `ord('€')` (علامت یورو) عدد `8364` را برمی " +"گرداند. این معکوس `chr()` است." #: ../../library/functions.rst:1563 +#, fuzzy msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " -"power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " -"mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the " -"power operator: ``base**exp``." +"power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) %" +" mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the" +" power operator: ``base**exp``." msgstr "" +"*base* را به توان *exp* برگردانید؛ اگر *mod* موجود باشد، *base* را به توان " +"*exp* برگردانید، به صورت ماژولوی *mod* (محاسبه شده به طور کارآمدتر از " +"``pow(base, exp) % mod``). فرم دو آرگومانی ``pow(base, exp)`` معادل استفاده " +"از عملگر توان است: ``base**exp``." #: ../../library/functions.rst:1568 +#, fuzzy msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -2206,12 +3546,24 @@ msgid "" "2)`` returns ``100``, but ``pow(10, -2)`` returns ``0.01``. For a negative " "base of type :class:`int` or :class:`float` and a non-integral exponent, a " "complex result is delivered. For example, ``pow(-9, 0.5)`` returns a value " -"close to ``3j``. Whereas, for a negative base of type :class:`int` or :class:" -"`float` with an integral exponent, a float result is delivered. For example, " -"``pow(-9, 2.0)`` returns ``81.0``." -msgstr "" +"close to ``3j``. Whereas, for a negative base of type :class:`int` or " +":class:`float` with an integral exponent, a float result is delivered. For " +"example, ``pow(-9, 2.0)`` returns ``81.0``." +msgstr "" +"استدلال ها باید از انواع عددی باشند. با انواع عملوند مختلط، قوانین تبدیل " +"برای عملگرهای حسابی دودویی اعمال می شوند. برای عملوندهای `:class:`int``، " +"نتیجه دارای همان نوع عملوندها (پس از تبدیل) است، مگر این که آرگمان دوم منفی " +"باشد؛ در این صورت، همه استدلال ها به نوع `float` تبدیل می شوند و نتیجه ای از" +" نوع `float` ارائه می شود. برای مثال، ```pow(10, 2)``` نتیجه ```100``` می " +"دهد، اما ```pow(10, -2)``` نتیجه ```0.01``` می دهد. برای پایه منفی از نوع " +"`:class:`int`` یا `:class:`float`` و نما غیر صحیح، نتیجه پیچیده ای ارائه می " +"شود. برای مثال، ```pow(-9, 0.5)``` مقداری نزدیک به ```3j``` را برمی گرداند. " +"در حالی که، برای پایه منفی از نوع `:class:`int`` یا `:class:`float`` با نمای" +" صحیح، نتیجه ای از نوع `float` ارائه می شود. برای مثال، ```pow(-9, 2.0)``` " +"نتیجه ```81.0``` را برمی گرداند." #: ../../library/functions.rst:1580 +#, fuzzy msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " "also be of integer type and *mod* must be nonzero. If *mod* is present and " @@ -2219,80 +3571,128 @@ msgid "" "``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " "*base* modulo *mod*." msgstr "" +"برای عملوندهای :class:`int` یعنی *base* و *exp*، اگر *mod* موجود باشد، *mod*" +" باید از نوع عدد صحیح باشد و *mod* نباید صفر باشد. اگر *mod* وجود داشته باشد" +" و *exp* منفی باشد، *base* باید نسبت به *mod* اول باشد. در آن صورت، " +"``pow(inv_base, -exp, mod)`` بازگردانده می شود، جایی که *inv_base* یک معکوس " +"برای *base* به پیمانه *mod* است." #: ../../library/functions.rst:1586 +#, fuzzy msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" +"در اینجا مثالی از محاسبه معکوس برای ``38`` به پیمانه ``97`` آمده است::" #: ../../library/functions.rst:1588 +#, fuzzy msgid "" ">>> pow(38, -1, mod=97)\n" "23\n" ">>> 23 * 38 % 97 == 1\n" "True" msgstr "" +"```python\n" +">>> pow(38, -1, mod=97)\n" +"23\n" +">>> 23 * 38 % 97 == 1\n" +"True\n" +"```" #: ../../library/functions.rst:1593 +#, fuzzy msgid "" -"For :class:`int` operands, the three-argument form of ``pow`` now allows the " -"second argument to be negative, permitting computation of modular inverses." +"For :class:`int` operands, the three-argument form of ``pow`` now allows the" +" second argument to be negative, permitting computation of modular inverses." msgstr "" +"برای عملوندهای :class:`int`، فرم سه پارامتری ``pow`` اکنون اجازه می دهد که " +"آرگومان دوم منفی باشد و محاسبه ی معکوس های مدولار را ممکن می سازد." #: ../../library/functions.rst:1598 +#, fuzzy msgid "" -"Allow keyword arguments. Formerly, only positional arguments were supported." +"Allow keyword arguments. Formerly, only positional arguments were " +"supported." msgstr "" +"استفاده از آرگومان های کلیدی را ممکن کنید. قبلاً فقط آرگومان های موقعیتی " +"پشتیبانی می شدند." #: ../../library/functions.rst:1605 +#, fuzzy msgid "" "Print *objects* to the text stream *file*, separated by *sep* and followed " "by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " "keyword arguments." msgstr "" +"متن *objects* را به جریان متنی *file* چاپ کن، که با *sep* جدا شده و با *end*" +" دنبال می شود. *sep*، *end*، *file* و *flush*، در صورت وجود، باید به صورت " +"آرگومان های کلیدی داده شوند." #: ../../library/functions.rst:1609 +#, fuzzy msgid "" -"All non-keyword arguments are converted to strings like :func:`str` does and " -"written to the stream, separated by *sep* and followed by *end*. Both *sep* " -"and *end* must be strings; they can also be ``None``, which means to use the " -"default values. If no *objects* are given, :func:`print` will just write " -"*end*." +"All non-keyword arguments are converted to strings like :func:`str` does and" +" written to the stream, separated by *sep* and followed by *end*. Both " +"*sep* and *end* must be strings; they can also be ``None``, which means to " +"use the default values. If no *objects* are given, :func:`print` will just " +"write *end*." msgstr "" +"همه آرگومان های بدون کلیدواژه به رشته ها تبدیل می شوند همانطور که " +":func:`str` انجام می دهد و به جریان داده ها نوشته می شوند، با *sep* جدا می " +"شوند و با *end* دنبال می شوند. هر دو *sep* و *end* باید رشته باشند؛ همچنین " +"می توانند ``None`` باشند، که به معنای استفاده از مقادیر پیش فرض است. اگر هیچ" +" *objects* داده نشود، :func:`print` فقط *end* را خواهد نوشت." #: ../../library/functions.rst:1615 +#, fuzzy msgid "" -"The *file* argument must be an object with a ``write(string)`` method; if it " -"is not present or ``None``, :data:`sys.stdout` will be used. Since printed " -"arguments are converted to text strings, :func:`print` cannot be used with " +"The *file* argument must be an object with a ``write(string)`` method; if it" +" is not present or ``None``, :data:`sys.stdout` will be used. Since printed" +" arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" +"آرگومان *file* باید شیئی با متد ``write(string)`` باشد؛ اگر این متد وجود " +"نداشته باشد یا ``None`` باشد، :data:`sys.stdout` مورد استفاده قرار می گیرد. " +"از آنجا که آرگومان های چاپ شده به رشته های متنی تبدیل می شوند، :func:`print`" +" نمی تواند با اشیاء فایل در حالت باینری استفاده شود. برای این موارد، به جای " +"آن از ``file.write(...)`` استفاده کنید." #: ../../library/functions.rst:1620 +#, fuzzy msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." msgstr "" +"عملکرد بافر خروجی معمولاً توسط *file* تعیین می شود. با این حال، اگر *flush* " +"صحیح باشد، جریان به اجبار تخلیه می شود." #: ../../library/functions.rst:1624 +#, fuzzy msgid "Added the *flush* keyword argument." -msgstr "" +msgstr "یک آرگومان کلیدی به نام *flush* اضافه شد." #: ../../library/functions.rst:1630 +#, fuzzy msgid "Return a property attribute." -msgstr "" +msgstr "یک ویژگی خاصیت را برمی گرداند." #: ../../library/functions.rst:1632 +#, fuzzy msgid "" "*fget* is a function for getting an attribute value. *fset* is a function " "for setting an attribute value. *fdel* is a function for deleting an " "attribute value. And *doc* creates a docstring for the attribute." msgstr "" +"*fget* یک تابع برای دریافت مقدار یک ویژگی است. *fset* یک تابع برای تنظیم " +"مقدار یک ویژگی است. *fdel* یک تابع برای حذف مقدار یک ویژگی است. و *doc* یک " +"docstring برای ویژگی ایجاد می کند." #: ../../library/functions.rst:1636 +#, fuzzy msgid "A typical use is to define a managed attribute ``x``::" -msgstr "" +msgstr "استفاده معمول این است که یک صفت مدیریت شده به نام ``x`` تعریف شود::" #: ../../library/functions.rst:1638 +#, fuzzy msgid "" "class C:\n" " def __init__(self):\n" @@ -2309,22 +3709,41 @@ msgid "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" msgstr "" +"کلاسی `C` که در کد مشاهده می کنید، دارای قابلیت مدیریت ویژگی ها است. در این کلاس:\n" +"\n" +"- ابتدا، با استفاده از متد `__init__` مقداردهی اولیه صورت می گیرد و متغیر خصوصی `_x` روی `None` تنظیم می شود.\n" +"- متد `getx` مقدار `_x` را برمی گرداند.\n" +"- متد `setx` امکان تنظیم مقدار جدیدی برای `_x` را فراهم می کند.\n" +"- متد `delx` متغیر `_x` را حذف می کند.\n" +"\n" +"در نهایت، با استفاده از `property`، ویژگی `x` ایجاد می شود که شامل متدهای `getx`، `setx`، و `delx` است و توضیحی به صورت \"I'm the 'x' property.\" نیز برای آن قرار داده شده است." #: ../../library/functions.rst:1653 +#, fuzzy msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." msgstr "" +"اگر *c* مثالی از *C* باشد، ``c.x`` گیرنده را فراخوانی می کند، ``c.x = " +"value`` تنظیم کننده را فراخوانی می کند و ``del c.x`` حذف کننده را فراخوانی " +"می کند." #: ../../library/functions.rst:1656 +#, fuzzy msgid "" "If given, *doc* will be the docstring of the property attribute. Otherwise, " "the property will copy *fget*'s docstring (if it exists). This makes it " -"possible to create read-only properties easily using :func:`property` as a :" -"term:`decorator`::" +"possible to create read-only properties easily using :func:`property` as a " +":term:`decorator`::" msgstr "" +"اگر داده شود، *doc* به عنوان داک استرینگ ویژگی آن خصیصه استفاده می شود. در " +"غیر این صورت، خصیصه داک استرینگ *fget* را (اگر وجود داشته باشد) کپی خواهد " +"کرد. این امکان را فراهم می کند که بتوان به راحتی با استفاده از " +":func:`property` به عنوان یک :term:`decorator` ویژگی های فقط خواندنی ایجاد " +"کرد::" #: ../../library/functions.rst:1660 +#, fuzzy msgid "" "class Parrot:\n" " def __init__(self):\n" @@ -2335,23 +3754,41 @@ msgid "" " \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" msgstr "" +"کلاس Parrot:\n" +" def __init__(self):\n" +" self._voltage = 100000\n" +"\n" +" @property\n" +" def voltage(self):\n" +" \"\"\"ولتاژ فعلی را دریافت کنید.\"\"\"\n" +" return self._voltage" #: ../../library/functions.rst:1669 +#, fuzzy msgid "" "The ``@property`` decorator turns the :meth:`!voltage` method into a " "\"getter\" for a read-only attribute with the same name, and it sets the " "docstring for *voltage* to \"Get the current voltage.\"" msgstr "" +"دکوراتور ``@property``، متد :meth:`!voltage` را به یک \"getter\" برای یک " +"ویژگی فقط خواندنی با همان نام تبدیل می کند و docstring برای *voltage* را به " +"\"دریافت ولتاژ فعلی\" تنظیم می کند." #: ../../library/functions.rst:1677 +#, fuzzy msgid "" -"A property object has ``getter``, ``setter``, and ``deleter`` methods usable " -"as decorators that create a copy of the property with the corresponding " +"A property object has ``getter``, ``setter``, and ``deleter`` methods usable" +" as decorators that create a copy of the property with the corresponding " "accessor function set to the decorated function. This is best explained " "with an example:" msgstr "" +"یک شیء property دارای متدهای ``getter``، ``setter`` و ``deleter`` می باشد که" +" به عنوان دکوریتورهایی قابل استفاده هستند که یک نسخه ی کپی از property ایجاد" +" می کنند و تابع دسترسی مربوطه را به تابع دکوریت شده اختصاص می دهند. این " +"موضوع به بهترین شکل با یک مثال توضیح داده می شود:" #: ../../library/functions.rst:1682 +#, fuzzy msgid "" "class C:\n" " def __init__(self):\n" @@ -2370,54 +3807,87 @@ msgid "" " def x(self):\n" " del self._x" msgstr "" +"کلاسی به نام `C` تعریف شده است. \n" +"\n" +"در تابع سازنده `__init__`، متغیری به نام `_x` با مقدار اولیه `None` ایجاد می شود.\n" +"\n" +"متُد `@property` به نام `x` تعریف شده است که با استفاده از این متُد، می توانیم به مقدار `_x` دسترسی پیدا کنیم. توضیح کوتاهی هم برای این متُد قرار داده شده است: \"من ویژگی 'x' هستم.\"\n" +"\n" +"متُدی به نام `@x.setter` وجود دارد که به ما اجازه می دهد تا یک مقدار جدید به `_x` اختصاص دهیم.\n" +"\n" +"با استفاده از متُد `@x.deleter` می توانیم `_x` را حذف کنیم." #: ../../library/functions.rst:1701 +#, fuzzy msgid "" "This code is exactly equivalent to the first example. Be sure to give the " "additional functions the same name as the original property (``x`` in this " "case.)" msgstr "" +"این کد دقیقاً معادل نمونه اول است. مطمئن شوید که به توابع اضافی همان نام " +"خاصیت اصلی (در اینجا ``x``) را بدهید." #: ../../library/functions.rst:1705 +#, fuzzy msgid "" -"The returned property object also has the attributes ``fget``, ``fset``, and " -"``fdel`` corresponding to the constructor arguments." +"The returned property object also has the attributes ``fget``, ``fset``, and" +" ``fdel`` corresponding to the constructor arguments." msgstr "" +"شیء ویژگی بازگردانده شده همچنین دارای خصوصیات ``fget``، ``fset`` و ``fdel`` " +"است که با آرگومان های سازنده مطابقت دارند." #: ../../library/functions.rst:1708 +#, fuzzy msgid "The docstrings of property objects are now writeable." msgstr "" +"رشته های مستندات (docstrings) برای اشیاء ویژگی (property) اکنون قابل نوشتن " +"هستند." #: ../../library/functions.rst:1713 +#, fuzzy msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." -msgstr "" +msgstr "نگهدارنده ی نام ویژگی. نام ویژگی می تواند در زمان اجرا تغییر کند." #: ../../library/functions.rst:1724 +#, fuzzy msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." msgstr "" +"به جای اینکه یک تابع باشد، :class:`range` در واقع یک نوع دنباله تغییرناپذیر " +"است، همانطور که در :ref:`typesseq-range` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1730 +#, fuzzy msgid "" "Return a string containing a printable representation of an object. For " "many types, this function makes an attempt to return a string that would " "yield an object with the same value when passed to :func:`eval`; otherwise, " "the representation is a string enclosed in angle brackets that contains the " "name of the type of the object together with additional information often " -"including the name and address of the object. A class can control what this " -"function returns for its instances by defining a :meth:`~object.__repr__` " +"including the name and address of the object. A class can control what this" +" function returns for its instances by defining a :meth:`~object.__repr__` " "method. If :func:`sys.displayhook` is not accessible, this function will " "raise :exc:`RuntimeError`." msgstr "" +"یک رشته که نمایش قابل چاپ یک شیء را شامل می شود، برمی گرداند. برای بسیاری از" +" انواع، این تابع تلاش می کند تا رشته ای را برگرداند که وقتی به :func:`eval` " +"ارسال می شود، شیئی با همان مقدار را تولید کند؛ در غیر این صورت، نمایش به " +"صورت رشته ای در داخل علامت های زاویه دار است که نام نوع شیء را به همراه " +"اطلاعات اضافی که اغلب شامل نام و آدرس شیء است، شامل می شود. یک کلاس می تواند" +" کنترل کند که این تابع برای نمونه های خود چه چیزی برمی گرداند، با تعریف یک " +"متد :meth:`~object.__repr__`. اگر :func:`sys.displayhook` در دسترس نباشد، " +"این تابع :exc:`RuntimeError` تولید خواهد کرد." #: ../../library/functions.rst:1741 +#, fuzzy msgid "This class has a custom representation that can be evaluated::" -msgstr "" +msgstr "این کلاس دارای یک نمایش سفارشی است که می تواند ارزیابی شود::" #: ../../library/functions.rst:1743 +#, fuzzy msgid "" "class Person:\n" " def __init__(self, name, age):\n" @@ -2427,23 +3897,42 @@ msgid "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" msgstr "" +"```python\n" +"class Person:\n" +" def __init__(self, name, age):\n" +" self.name = name\n" +" self.age = age\n" +"\n" +" def __repr__(self):\n" +" return f\"Person('{self.name}', {self.age})\"\n" +"```" #: ../../library/functions.rst:1754 +#, fuzzy msgid "" -"Return a reverse :term:`iterator`. *seq* must be an object which has a :" -"meth:`~object.__reversed__` method or supports the sequence protocol (the :" -"meth:`~object.__len__` method and the :meth:`~object.__getitem__` method " +"Return a reverse :term:`iterator`. *seq* must be an object which has a " +":meth:`~object.__reversed__` method or supports the sequence protocol (the " +":meth:`~object.__len__` method and the :meth:`~object.__getitem__` method " "with integer arguments starting at ``0``)." msgstr "" +"بازگرداندن یک :term:`iterator` معکوس. *seq* باید شئ ای باشد که یک متد " +":meth:`~object.__reversed__` داشته باشد یا از پروتکل دنباله ای پشتیبانی کند " +"(متد :meth:`~object.__len__` و متد :meth:`~object.__getitem__` با آرگومان " +"های عدد صحیح که از ``0`` شروع می شود)." #: ../../library/functions.rst:1762 +#, fuzzy msgid "" "Return *number* rounded to *ndigits* precision after the decimal point. If " "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " "input." msgstr "" +"عدد *number* را با دقت *ndigits* بعد از نقطه اعشار گرد می کند. اگر *ndigits*" +" حذف شود یا برابر با ``None`` باشد، نزدیک ترین عدد صحیح به ورودی خود را برمی" +" گرداند." #: ../../library/functions.rst:1766 +#, fuzzy msgid "" "For the built-in types supporting :func:`round`, values are rounded to the " "closest multiple of 10 to the power minus *ndigits*; if two multiples are " @@ -2453,37 +3942,62 @@ msgid "" "negative). The return value is an integer if *ndigits* is omitted or " "``None``. Otherwise, the return value has the same type as *number*." msgstr "" +"برای نوع های داخلی که از :func:`round` پشتیبانی می کنند، مقادیر به نزدیک " +"ترین مضرب ۱۰ به توان منفی *ndigits* گرد می شوند؛ اگر دو مضرب به یک اندازه " +"نزدیک باشند، گرد کردن به سمت گزینه زوج انجام می شود (بنابراین، برای مثال، هم" +" ``round(0.5)`` و هم ``round(-0.5)`` به ``0`` گرد می شوند، و ``round(1.5)`` " +"به ``2`` گرد می شود). هر مقدار صحیحی برای *ndigits* معتبر است (مثبت، صفر یا " +"منفی). اگر *ndigits* حذف شود یا ``None`` باشد، مقدار بازگشتی یک عدد صحیح " +"است. در غیر این صورت، مقدار بازگشتی همان نوع *number* را دارد." #: ../../library/functions.rst:1775 +#, fuzzy msgid "" -"For a general Python object ``number``, ``round`` delegates to ``number." -"__round__``." +"For a general Python object ``number``, ``round`` delegates to " +"``number.__round__``." msgstr "" +"برای یک شی عمومی پایتون ``number``، ``round`` به ``number.__round__`` واگذار" +" می کند." #: ../../library/functions.rst:1780 +#, fuzzy msgid "" "The behavior of :func:`round` for floats can be surprising: for example, " -"``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " -"not a bug: it's a result of the fact that most decimal fractions can't be " +"``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is" +" not a bug: it's a result of the fact that most decimal fractions can't be " "represented exactly as a float. See :ref:`tut-fp-issues` for more " "information." msgstr "" +"رفتار :func:`round` برای اعداد اعشاری می تواند شگفت آور باشد: به عنوان مثال،" +" ``round(2.675, 2)`` به جای ``2.68``، ``2.67`` را می دهد. این یک ایراد نیست:" +" این نتیجه این واقعیت است که اکثر کسرهای ده دهی نمی توانند به صورت دقیق به " +"عنوان یک عدد اعشاری نمایانده شوند. برای اطلاعات بیشتر به :ref:`tut-fp-" +"issues` مراجعه کنید." #: ../../library/functions.rst:1792 +#, fuzzy msgid "" "Return a new :class:`set` object, optionally with elements taken from " "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" "set` for documentation about this class." msgstr "" +"یک شیء جدید :class:`set` برمی گرداند که می تواند به صورت اختیاری دارای " +"عناصری گرفته شده از *iterable* باشد. ``set`` یک کلاس داخلی است. برای مستندات" +" مربوط به این کلاس به :class:`set` و :ref:`types-set` مراجعه کنید." #: ../../library/functions.rst:1796 +#, fuzzy msgid "" -"For other containers see the built-in :class:`frozenset`, :class:`list`, :" -"class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " -"module." +"For other containers see the built-in :class:`frozenset`, :class:`list`, " +":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" +" module." msgstr "" +"برای سایر محفظه ها، به کلاس های داخلی `:class:`frozenset``, `:class:`list``," +" `:class:`tuple`` و `:class:`dict`` و همچنین ماژول `:mod:`collections`` " +"مراجعه کنید." #: ../../library/functions.rst:1803 +#, fuzzy msgid "" "This is the counterpart of :func:`getattr`. The arguments are an object, a " "string, and an arbitrary value. The string may name an existing attribute " @@ -2491,143 +4005,232 @@ msgid "" "provided the object allows it. For example, ``setattr(x, 'foobar', 123)`` " "is equivalent to ``x.foobar = 123``." msgstr "" +"این متن بخش مکمل :func:`getattr` است. آرگومان ها شامل یک شیء، یک رشته و یک " +"مقدار دلخواه هستند. رشته ممکن است نام یک ویژگی موجود یا ویژگی جدیدی باشد. " +"این تابع مقدار را به ویژگی اختصاص می دهد، به شرطی که شیء اجازه دهد. به عنوان" +" مثال، ``setattr(x, 'foobar', 123)`` معادل ``x.foobar = 123`` است." #: ../../library/functions.rst:1809 +#, fuzzy msgid "" "*name* need not be a Python identifier as defined in :ref:`identifiers` " -"unless the object chooses to enforce that, for example in a custom :meth:" -"`~object.__getattribute__` or via :attr:`~object.__slots__`. An attribute " -"whose name is not an identifier will not be accessible using the dot " -"notation, but is accessible through :func:`getattr` etc.." -msgstr "" +"unless the object chooses to enforce that, for example in a custom " +":meth:`~object.__getattribute__` or via :attr:`~object.__slots__`. An " +"attribute whose name is not an identifier will not be accessible using the " +"dot notation, but is accessible through :func:`getattr` etc.." +msgstr "" +"*name* لازم نیست یک شناسه پایتون باشد همانطور که در :ref:`identifiers` تعریف" +" شده است، مگر اینکه شیء بخواهد آن را اعمال کند، به عنوان مثال در یک " +":meth:`~object.__getattribute__` سفارشی یا از طریق " +":attr:`~object.__slots__`. یک ویژگی که نام آن یک شناسه نیست به وسیله نقطه " +"گذاری قابل دسترسی نخواهد بود، اما از طریق :func:`getattr` و غیره قابل دسترسی" +" است." #: ../../library/functions.rst:1817 +#, fuzzy msgid "" "Since :ref:`private name mangling ` happens at " -"compilation time, one must manually mangle a private attribute's (attributes " -"with two leading underscores) name in order to set it with :func:`setattr`." +"compilation time, one must manually mangle a private attribute's (attributes" +" with two leading underscores) name in order to set it with :func:`setattr`." msgstr "" +"از آنجا که :ref:`private name mangling ` در زمان " +"کامپایل اتفاق می افتد، باید به صورت دستی نام یک ویژگی خصوصی (ویژگی هایی که " +"دارای دو آندرلاین در ابتدای خود هستند) را تغییر شکل دهید تا بتوانید آن را با" +" :func:`setattr` تنظیم کنید." #: ../../library/functions.rst:1826 +#, fuzzy msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " "``None``." msgstr "" +"یک شیء `:term:`slice`` بازگردانده می شود که مجموعه ای از شاخص های مشخص شده " +"توسط ```range(start, stop, step)``` را نمایش می دهد. آرگومان های `*start*` و" +" `*step*` به طور پیش فرض برابر با ```None``` هستند." #: ../../library/functions.rst:1834 +#, fuzzy msgid "" "Slice objects have read-only data attributes :attr:`!start`, :attr:`!stop`, " "and :attr:`!step` which merely return the argument values (or their " -"default). They have no other explicit functionality; however, they are used " -"by NumPy and other third-party packages." +"default). They have no other explicit functionality; however, they are used" +" by NumPy and other third-party packages." msgstr "" +"آبجکت های \"Slice\" دارای صفات داده ای فقط خواندنی :attr:`!start`، " +":attr:`!stop`، و :attr:`!step` هستند که صرفاً مقادیر آرگومان ها (یا مقدار " +"پیش فرض آنها) را بازمی گردانند. این صفات عملکرد صریح دیگری ندارند؛ با این " +"حال، توسط NumPy و سایر بسته های شخص ثالث مورد استفاده قرار می گیرند." #: ../../library/functions.rst:1839 +#, fuzzy msgid "" -"Slice objects are also generated when extended indexing syntax is used. For " -"example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See :func:" -"`itertools.islice` for an alternate version that returns an :term:`iterator`." +"Slice objects are also generated when extended indexing syntax is used. For" +" example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See " +":func:`itertools.islice` for an alternate version that returns an " +":term:`iterator`." msgstr "" +"اشیای Slice همچنین هنگامی که از نحوه ایندکس بندی گسترده استفاده می شود ایجاد" +" می شوند. برای مثال: ``a[start:stop:step]`` یا ``a[start:stop, i]``. برای " +"نسخه ای جایگزین که یک :term:`iterator` را برمی گرداند به " +":func:`itertools.islice` مراجعه کنید." #: ../../library/functions.rst:1844 +#, fuzzy msgid "" -"Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, :attr:" -"`~slice.stop`, and :attr:`~slice.step` are hashable)." +"Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, " +":attr:`~slice.stop`, and :attr:`~slice.step` are hashable)." msgstr "" +"از این به بعد اشیاء `Slice` :term:`hashable` هستند (در صورتی که " +":attr:`~slice.start`، :attr:`~slice.stop` و :attr:`~slice.step` قابل هش " +"باشند)." #: ../../library/functions.rst:1850 +#, fuzzy msgid "Return a new sorted list from the items in *iterable*." -msgstr "" +msgstr "یک لیست مرتب شده جدید از آیتم های موجود در `*iterable*` بازگردانید." #: ../../library/functions.rst:1852 +#, fuzzy msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" +"دارای دو آرگومان اختیاری است که باید به صورت آرگومان های کلیدواژه مشخص شوند." #: ../../library/functions.rst:1854 +#, fuzzy msgid "" "*key* specifies a function of one argument that is used to extract a " -"comparison key from each element in *iterable* (for example, ``key=str." -"lower``). The default value is ``None`` (compare the elements directly)." +"comparison key from each element in *iterable* (for example, " +"``key=str.lower``). The default value is ``None`` (compare the elements " +"directly)." msgstr "" +"*key* یک تابع با یک آرگومان را مشخص می کند که برای استخراج کلید مقایسه از هر" +" عنصر در *iterable* استفاده می شود (برای مثال، ``key=str.lower``). مقدار پیش" +" فرض ``None`` است (عناصر را به طور مستقیم مقایسه کنید)." #: ../../library/functions.rst:1858 +#, fuzzy msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." msgstr "" +"*reverse* یک مقدار بولی است. اگر به ``True`` تنظیم شود، سپس عناصر لیست طوری " +"مرتب می شوند که گویی هر مقایسه برعکس انجام شده است." #: ../../library/functions.rst:1861 +#, fuzzy msgid "" -"Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " -"*key* function." +"Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a" +" *key* function." msgstr "" +"برای تبدیل یک تابع قدیمی *cmp* به یک تابع *key* از " +":func:`functools.cmp_to_key` استفاده کنید." #: ../../library/functions.rst:1864 +#, fuzzy msgid "" "The built-in :func:`sorted` function is guaranteed to be stable. A sort is " "stable if it guarantees not to change the relative order of elements that " "compare equal --- this is helpful for sorting in multiple passes (for " "example, sort by department, then by salary grade)." msgstr "" +"تابع داخلی :func:`sorted` تضمین شده که پایدار است. یک مرتب سازی پایدار است " +"اگر تضمین کند که ترتیب نسبی عناصری که برابر مقایسه می شوند را تغییر نمی دهد " +"ــ این ویژگی در مرتب سازی های چند مرحله ای مفید است (برای مثال، ابتدا بر " +"اساس بخش و سپس براساس درجه حقوق مرتب سازی کنید)." #: ../../library/functions.rst:1869 +#, fuzzy msgid "" "The sort algorithm uses only ``<`` comparisons between items. While " -"defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8` " -"recommends that all six :ref:`rich comparisons ` be " +"defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8`" +" recommends that all six :ref:`rich comparisons ` be " "implemented. This will help avoid bugs when using the same data with other " "ordering tools such as :func:`max` that rely on a different underlying " "method. Implementing all six comparisons also helps avoid confusion for " "mixed type comparisons which can call reflected the :meth:`~object.__gt__` " "method." msgstr "" +"الگوریتم مرتب سازی تنها از مقایسه های ``<`` بین اقلام استفاده می کند. در " +"حالی که تعریف یک تابع :meth:`~object.__lt__` برای مرتب سازی کافی خواهد بود، " +":PEP:`8` توصیه می کند که هر شش :ref:`rich comparisons ` پیاده " +"سازی شوند. این کار به جلوگیری از خطاها در هنگام استفاده از داده های مشابه با" +" ابزارهای مرتب سازی دیگر مانند :func:`max` که به یک روش پایه متفاوت متکی " +"هستند، کمک می کند. پیاده سازی هر شش مقایسه همچنین به جلوگیری از سردرگمی در " +"مقایسه های نوع مختلط که می توانند تابع انعکاسی :meth:`~object.__gt__` را " +"فراخوانی کنند، کمک می کند." #: ../../library/functions.rst:1878 +#, fuzzy msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" +"برای مثال های مرتب سازی و یک آموزش کوتاه درباره مرتب سازی، به " +":ref:`sortinghowto` مراجعه کنید." #: ../../library/functions.rst:1882 +#, fuzzy msgid "Transform a method into a static method." -msgstr "" +msgstr "تبدیل یک متد به یک متد استاتیک." #: ../../library/functions.rst:1884 +#, fuzzy msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" msgstr "" +"یک متد ایستا به طور پیش فرض یک آرگومان اولیه دریافت نمی کند. برای تعریف یک " +"متد ایستا، از این روش استفاده کنید::" #: ../../library/functions.rst:1887 +#, fuzzy msgid "" "class C:\n" " @staticmethod\n" " def f(arg1, arg2, argN): ..." msgstr "" +"کلاس `C`:\n" +"```python\n" +"@staticmethod\n" +"def f(arg1, arg2, argN): ...\n" +"```" #: ../../library/functions.rst:1891 +#, fuzzy msgid "" -"The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" -"`function` for details." +"The ``@staticmethod`` form is a function :term:`decorator` -- see " +":ref:`function` for details." msgstr "" +"فرم ``@staticmethod`` یک تابع :term:`decorator` است -- برای جزئیات، " +":ref:`function` را ببینید." #: ../../library/functions.rst:1894 +#, fuzzy msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " -"an instance (such as ``C().f()``). Moreover, the static method :term:" -"`descriptor` is also callable, so it can be used in the class definition " -"(such as ``f()``)." +"an instance (such as ``C().f()``). Moreover, the static method " +":term:`descriptor` is also callable, so it can be used in the class " +"definition (such as ``f()``)." msgstr "" +"یک متد استاتیک می تواند هم بر روی کلاس (مانند ``C.f()``) و هم بر روی یک " +"نمونه (مانند ``C().f()``) فراخوانی شود. علاوه بر این، متد استاتیک " +":term:`descriptor` نیز قابل فراخوانی است، بنابراین می توان آن را در تعریف " +"کلاس (مانند ``f()``) استفاده کرد." #: ../../library/functions.rst:1899 +#, fuzzy msgid "" "Static methods in Python are similar to those found in Java or C++. Also, " "see :func:`classmethod` for a variant that is useful for creating alternate " "class constructors." msgstr "" +"متدهای ثابت در پایتون مشابه متدهای موجود در جاوا یا C++ هستند. همچنین، به " +":func:`classmethod` برای یک نوع دیگر که برای ایجاد سازنده های کلاس جایگزین " +"مفید است، مراجعه کنید." #: ../../library/functions.rst:1903 +#, fuzzy msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " "regular function and do something with its result. This is needed in some " @@ -2635,8 +4238,14 @@ msgid "" "want to avoid the automatic transformation to instance method. For these " "cases, use this idiom::" msgstr "" +"مانند تمام دکوریتورها، امکان فراخوانی ```staticmethod``` به عنوان یک تابع " +"معمولی و انجام عملیاتی با نتیجه ی آن نیز وجود دارد. این امر در برخی موارد " +"ضروری است که شما به یک ارجاع به تابعی از داخل بدنه ی کلاس نیاز دارید و می " +"خواهید از تبدیل خودکار آن به یک متد نمونه جلوگیری کنید. برای این موارد، از " +"این روش استفاده کنید::" #: ../../library/functions.rst:1909 +#, fuzzy msgid "" "def regular_function():\n" " ...\n" @@ -2644,143 +4253,235 @@ msgid "" "class C:\n" " method = staticmethod(regular_function)" msgstr "" +"```python\n" +"def تابع_عادی():\n" +" ...\n" +"\n" +"class C:\n" +" متد = staticmethod(تابع_عادی)\n" +"```" #: ../../library/functions.rst:1915 +#, fuzzy msgid "For more information on static methods, see :ref:`types`." msgstr "" +"برای اطلاعات بیشتر در مورد روش های ایستا، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:1917 +#, fuzzy msgid "" -"Static methods now inherit the method attributes (:attr:`~function." -"__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :" -"attr:`~function.__doc__` and :attr:`~function.__annotations__`), have a new " -"``__wrapped__`` attribute, and are now callable as regular functions." +"Static methods now inherit the method attributes " +"(:attr:`~function.__module__`, :attr:`~function.__name__`, " +":attr:`~function.__qualname__`, :attr:`~function.__doc__` and " +":attr:`~function.__annotations__`), have a new ``__wrapped__`` attribute, " +"and are now callable as regular functions." msgstr "" +"روش های ایستا اکنون ویژگی های متدی (:attr:`~function.__module__`، " +":attr:`~function.__name__`، :attr:`~function.__qualname__`، " +":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " +"برند، دارای ویژگی جدید ``__wrapped__`` هستند و اکنون به عنوان توابع معمولی " +"قابل فراخوانی هستند." #: ../../library/functions.rst:1933 +#, fuzzy msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." -msgstr "" +msgstr "نسخه ای از *object* برگردانید. جزئیات بیشتر را در :func:`str` ببینید." #: ../../library/functions.rst:1935 +#, fuzzy msgid "" -"``str`` is the built-in string :term:`class`. For general information about " -"strings, see :ref:`textseq`." +"``str`` is the built-in string :term:`class`. For general information about" +" strings, see :ref:`textseq`." msgstr "" +"``str`` رشته داخلی :term:`class` است. برای اطلاعات کلی در مورد رشته ها، به " +":ref:`textseq` مراجعه کنید." #: ../../library/functions.rst:1941 +#, fuzzy msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " -"the total. The *iterable*'s items are normally numbers, and the start value " -"is not allowed to be a string." +"the total. The *iterable*'s items are normally numbers, and the start value" +" is not allowed to be a string." msgstr "" +"مجموع *start* و آیتم های یک *iterable* را از چپ به راست محاسبه کرده و کل را " +"برمی گرداند. آیتم های *iterable* معمولاً اعداد هستند و مقدار شروع نمی تواند " +"یک رشته باشد." #: ../../library/functions.rst:1945 +#, fuzzy msgid "" "For some use cases, there are good alternatives to :func:`sum`. The " -"preferred, fast way to concatenate a sequence of strings is by calling ``''." -"join(sequence)``. To add floating-point values with extended precision, " -"see :func:`math.fsum`\\. To concatenate a series of iterables, consider " -"using :func:`itertools.chain`." +"preferred, fast way to concatenate a sequence of strings is by calling " +"``''.join(sequence)``. To add floating-point values with extended " +"precision, see :func:`math.fsum`\\. To concatenate a series of iterables, " +"consider using :func:`itertools.chain`." msgstr "" +"برای برخی از موارد استفاده، جایگزین های خوبی برای :func:`sum` وجود دارد. روش" +" سریع و ترجیح داده شده برای به هم پیوستن یک دنباله از رشته ها، فراخوانی " +"``''.join(sequence)`` است. برای اضافه کردن مقادیر اعشاری با دقت بالا، به " +":func:`math.fsum` مراجعه کنید. برای به هم پیوستن تعدادی از ایتربل ها، " +"استفاده از :func:`itertools.chain` را در نظر بگیرید." #: ../../library/functions.rst:1951 +#, fuzzy msgid "The *start* parameter can be specified as a keyword argument." -msgstr "" +msgstr "پارامتر *start* می تواند به عنوان یک آرگومان کلیدواژه ای مشخص شود." #: ../../library/functions.rst:1954 +#, fuzzy msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." msgstr "" +"جمع اعداد اعشاری به الگوریتمی تغییر یافت که دقت بالاتر و جابجایی بهتری را در" +" بیشتر نسخه ها فراهم می کند." #: ../../library/functions.rst:1961 +#, fuzzy msgid "" "Return a proxy object that delegates method calls to a parent or sibling " "class of *type*. This is useful for accessing inherited methods that have " "been overridden in a class." msgstr "" +"یک شیء پروکسی برمی گرداند که تماس های روش را به یک کلاس والد یا هم رده از " +"`*type*` محول می کند. این کار برای دسترسی به متدهای به ارث برده شده که در یک" +" کلاس بازنویسی شده اند، مفید است." #: ../../library/functions.rst:1965 +#, fuzzy msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." msgstr "" +"*object_or_type* تعیین کننده :term:`method resolution order` برای جستجو است." +" جستجو از کلاسی که بلافاصله بعد از *type* قرار دارد، آغاز می شود." #: ../../library/functions.rst:1969 +#, fuzzy msgid "" -"For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C -" -"> A -> object`` and the value of *type* is ``B``, then :func:`super` " +"For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C " +"-> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" +"برای مثال، اگر :attr:`~type.__mro__` از *object_or_type* برابر ``D -> B -> C" +" -> A -> object`` باشد و مقدار *type* برابر ``B`` باشد، سپس :func:`super` در" +" ``C -> A -> object`` جستجو می کند." #: ../../library/functions.rst:1973 +#, fuzzy msgid "" "The :attr:`~type.__mro__` attribute of the class corresponding to " -"*object_or_type* lists the method resolution search order used by both :func:" -"`getattr` and :func:`super`. The attribute is dynamic and can change " +"*object_or_type* lists the method resolution search order used by both " +":func:`getattr` and :func:`super`. The attribute is dynamic and can change " "whenever the inheritance hierarchy is updated." msgstr "" +"ویژگی :attr:`~type.__mro__` کلاس مربوط به *object_or_type*، ترتیب جستجوی حل " +"روش را که توسط :func:`getattr` و :func:`super` استفاده می شود، فهرست می کند." +" این ویژگی پویا است و هر زمان که سلسله مراتب وراثت به روز شود، می تواند " +"تغییر کند." #: ../../library/functions.rst:1978 +#, fuzzy msgid "" -"If the second argument is omitted, the super object returned is unbound. If " -"the second argument is an object, ``isinstance(obj, type)`` must be true. " +"If the second argument is omitted, the super object returned is unbound. If" +" the second argument is an object, ``isinstance(obj, type)`` must be true. " "If the second argument is a type, ``issubclass(type2, type)`` must be true " "(this is useful for classmethods)." msgstr "" +"اگر آرگومان دوم حذف شود، شیء `super` بازگشتی بدون پیوند خواهد بود. اگر " +"آرگومان دوم یک شیء باشد، ``isinstance(obj, type)`` باید صحیح باشد. اگر " +"آرگومان دوم یک نوع باشد، ``issubclass(type2, type)`` باید صحیح باشد (این " +"مورد برای `classmethods` مفید است)." #: ../../library/functions.rst:1983 +#, fuzzy msgid "" "When called directly within an ordinary method of a class, both arguments " -"may be omitted (\"zero-argument :func:`!super`\"). In this case, *type* will " -"be the enclosing class, and *obj* will be the first argument of the " +"may be omitted (\"zero-argument :func:`!super`\"). In this case, *type* will" +" be the enclosing class, and *obj* will be the first argument of the " "immediately enclosing function (typically ``self``). (This means that zero-" "argument :func:`!super` will not work as expected within nested functions, " "including generator expressions, which implicitly create nested functions.)" msgstr "" +"وقتی مستقیماً در یک متد عادی از یک کلاس فراخوانی می شود، هر دو آرگومان ممکن " +"است حذف شوند (\":func:`!super` با صفر آرگومان\"). در این حالت، *type* کلاس " +"محصورکننده خواهد بود و *obj* اولین آرگومان تابع بلافاصله محصورکننده خواهد " +"بود (که معمولاً ``self`` است). (این به این معناست که :func:`!super` با صفر " +"آرگومان به گونه ای که انتظار می رود در توابع تو در تو عمل نخواهد کرد، از " +"جمله عبارات مولد که به طور ضمنی توابع تو در تو ایجاد می کنند.)" #: ../../library/functions.rst:1990 +#, fuzzy msgid "" "There are two typical use cases for *super*. In a class hierarchy with " "single inheritance, *super* can be used to refer to parent classes without " "naming them explicitly, thus making the code more maintainable. This use " "closely parallels the use of *super* in other programming languages." msgstr "" +"دو کاربرد معمول برای *super* وجود دارد. در یک سلسله مراتب کلاس با ارث بری " +"تک، *super* می تواند برای اشاره به کلاس های والد بدون نام بردن صریح آن ها " +"استفاده شود، که این کار کد را آسان تر برای نگهداری می کند. این استفاده شباهت" +" زیادی با استفاده از *super* در زبان های برنامه نویسی دیگر دارد." #: ../../library/functions.rst:1995 +#, fuzzy msgid "" "The second use case is to support cooperative multiple inheritance in a " -"dynamic execution environment. This use case is unique to Python and is not " -"found in statically compiled languages or languages that only support single " -"inheritance. This makes it possible to implement \"diamond diagrams\" where " -"multiple base classes implement the same method. Good design dictates that " -"such implementations have the same calling signature in every case (because " -"the order of calls is determined at runtime, because that order adapts to " -"changes in the class hierarchy, and because that order can include sibling " -"classes that are unknown prior to runtime)." -msgstr "" +"dynamic execution environment. This use case is unique to Python and is not" +" found in statically compiled languages or languages that only support " +"single inheritance. This makes it possible to implement \"diamond " +"diagrams\" where multiple base classes implement the same method. Good " +"design dictates that such implementations have the same calling signature in" +" every case (because the order of calls is determined at runtime, because " +"that order adapts to changes in the class hierarchy, and because that order " +"can include sibling classes that are unknown prior to runtime)." +msgstr "" +"دومین مورد استفاده، پشتیبانی از وراثت چندگانه مشارکتی در یک محیط اجرایی پویا" +" است. این مورد استفاده به طور خاص در زبان پایتون وجود دارد و در زبان هایی که" +" به صورت ایستا کامپایل می شوند یا تنها از وراثت تک گانه پشتیبانی می کنند، " +"یافت نمی شود. این امکان را فراهم می کند تا در «نمودارهای الماس شکل»، کلاس " +"های پایه ی مختلفی یک متد یکسان را پیاده سازی کنند. طراحی خوب اقتضا می کند که" +" چنین پیاده سازی هایی در هر مورد دارای امضای فراخوانی یکسانی باشند (زیرا " +"ترتیب فراخوانی ها در زمان اجرا تعیین می شود، زیرا آن ترتیب با تغییرات در " +"سلسله مراتب کلاس تطبیق می یابد و زیرا آن ترتیب می تواند شامل کلاس های هم " +"سطحی باشد که قبل از زمان اجرا ناشناخته هستند)." #: ../../library/functions.rst:2005 +#, fuzzy msgid "For both use cases, a typical superclass call looks like this::" msgstr "" +"برای هر دو مورد استفاده، یک فراخوانی معمولی به کلاس پدر به این شکل است::" #: ../../library/functions.rst:2007 +#, fuzzy msgid "" "class C(B):\n" " def method(self, arg):\n" " super().method(arg) # This does the same thing as:\n" " # super(C, self).method(arg)" msgstr "" +"کلاس `C(B)`:\n" +"\n" +"```python\n" +"def method(self, arg):\n" +" super().method(arg) # این کار همانند موارد زیر انجام می شود:\n" +" # super(C, self).method(arg)\n" +"```" #: ../../library/functions.rst:2012 +#, fuzzy msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " "` in a parent or sibling class." msgstr "" +"علاوه بر جستجوی متدها، :func:`super` همچنین برای جستجوی ویژگی ها نیز کار می " +"کند. یکی از موارد استفاده ممکن برای این کار، فراخوانی :term:`descriptors " +"` در یک کلاس پدر یا هم سطح است." #: ../../library/functions.rst:2016 +#, fuzzy msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -2789,8 +4490,15 @@ msgid "" "inheritance. Accordingly, :func:`super` is undefined for implicit lookups " "using statements or operators such as ``super()[name]``." msgstr "" +"توجه داشته باشید که :func:`super` به عنوان بخشی از فرآیند بایندینگ برای " +"جستجوی صریح ویژگی های نقطه ای مانند ``super().__getitem__(name)`` پیاده سازی" +" شده است. این کار را با پیاده سازی روش :meth:`~object.__getattribute__` خود " +"برای جستجوی کلاس ها به ترتیب قابل پیش بینی که از وراثت چندگانه تعاونی " +"پشتیبانی می کند، انجام می دهد. بر این اساس، :func:`super` برای جستجوهای ضمنی" +" با استفاده از دستورات یا عملگرهایی مانند ``super()[name]`` تعریف نشده است." #: ../../library/functions.rst:2024 +#, fuzzy msgid "" "Also note that, aside from the zero argument form, :func:`super` is not " "limited to use inside methods. The two argument form specifies the " @@ -2799,34 +4507,55 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" +"همچنین توجه داشته باشید که، به جز فرم بدون آرگومان، استفاده از :func:`super`" +" به داخل متدها محدود نمی شود. فرم دو آرگومانی به طور دقیق آرگومان ها را مشخص" +" کرده و مراجع مناسب را ایجاد می کند. فرم بدون آرگومان فقط داخل تعریف یک کلاس" +" کار می کند، زیرا کامپایلر جزئیات لازم را برای بازیابی صحیح کلاسی که تعریف " +"می شود، پر می کند و همچنین به نمونه فعلی برای متدهای معمولی دسترسی پیدا می " +"کند." #: ../../library/functions.rst:2031 +#, fuzzy msgid "" -"For practical suggestions on how to design cooperative classes using :func:" -"`super`, see `guide to using super() `_." +"For practical suggestions on how to design cooperative classes using " +":func:`super`, see `guide to using super() " +"`_." msgstr "" +"برای پیشنهادات عملی درباره چگونگی طراحی کلاس های تعاونی با استفاده از " +":func:`super`، به `guide to using super() " +"`_ " +"مراجعه کنید." #: ../../library/functions.rst:2041 +#, fuzzy msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." msgstr "" +":class:`tuple` در واقع یک نوع دنباله ٔ تغییرناپذیر است، نه یک تابع، همانطور " +"که در :ref:`typesseq-tuple` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:2050 +#, fuzzy msgid "" "With one argument, return the type of an *object*. The return value is a " -"type object and generally the same object as returned by :attr:`object." -"__class__`." +"type object and generally the same object as returned by " +":attr:`object.__class__`." msgstr "" +"با یک آرگومان، نوع یک *object* را برمی گرداند. مقدار بازگشتی یک شیء نوع است " +"و معمولاً همان شیئی است که توسط :attr:`object.__class__` برگردانده می شود." #: ../../library/functions.rst:2054 +#, fuzzy msgid "" -"The :func:`isinstance` built-in function is recommended for testing the type " -"of an object, because it takes subclasses into account." +"The :func:`isinstance` built-in function is recommended for testing the type" +" of an object, because it takes subclasses into account." msgstr "" +"تابع داخلی :func:`isinstance` برای آزمون نوع یک شی توصیه می شود زیرا زیرکلاس" +" ها را نیز در نظر می گیرد." #: ../../library/functions.rst:2057 +#, fuzzy msgid "" "With three arguments, return a new type object. This is essentially a " "dynamic form of the :keyword:`class` statement. The *name* string is the " @@ -2834,85 +4563,130 @@ msgid "" "tuple contains the base classes and becomes the :attr:`~type.__bases__` " "attribute; if empty, :class:`object`, the ultimate base of all classes, is " "added. The *dict* dictionary contains attribute and method definitions for " -"the class body; it may be copied or wrapped before becoming the :attr:`~type." -"__dict__` attribute. The following two statements create identical :class:`!" -"type` objects:" -msgstr "" +"the class body; it may be copied or wrapped before becoming the " +":attr:`~type.__dict__` attribute. The following two statements create " +"identical :class:`!type` objects:" +msgstr "" +"با سه آرگومان، یک شیء نوع جدید بازگردانده می شود. این اساساً یک فرم پویا از " +"دستور :keyword:`class` است. رشته ی *name* نام کلاس می باشد و به ویژگی " +":attr:`~type.__name__` تبدیل می شود. تاپل *bases* شامل کلاس های پایه است و " +"به ویژگی :attr:`~type.__bases__` تبدیل می شود؛ اگر خالی باشد، " +":class:`object`، که پایه نهایی تمام کلاس ها است، اضافه می شود. دیکشنری " +"*dict* شامل تعاریف ویژگی و متدها برای بدنه کلاس است؛ ممکن است قبل از تبدیل " +"شدن به ویژگی :attr:`~type.__dict__` کپی یا بسته بندی شود. دو دستور زیر اشیاء" +" :class:`!type` یکسانی ایجاد می کنند:" #: ../../library/functions.rst:2072 +#, fuzzy msgid "See also:" -msgstr "" +msgstr "همچنین ببینید:" #: ../../library/functions.rst:2074 +#, fuzzy msgid "" ":ref:`Documentation on attributes and methods on classes `." msgstr "" +"متنی برای ترجمه فراهم نشده است. لطفاً متن دقیق تری ارائه کنید تا بتوانم به " +"شما کمک کنم." #: ../../library/functions.rst:2075 +#, fuzzy msgid ":ref:`bltin-type-objects`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه به فارسی را " +"ارائه دهید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:2077 +#, fuzzy msgid "" "Keyword arguments provided to the three argument form are passed to the " "appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " "in the same way that keywords in a class definition (besides *metaclass*) " "would." msgstr "" +"آرگومان های کلیدواژه ای که به فرم سه آرگومانی ارائه می شوند، به ماشین " +"متاکلاس مناسب (معمولاً :meth:`~object.__init_subclass__`) به همان شیوه ای که" +" کلیدواژه ها در تعریف یک کلاس (به جز *metaclass*) می باشند، ارسال می شوند." #: ../../library/functions.rst:2082 +#, fuzzy msgid "See also :ref:`class-customization`." -msgstr "" +msgstr "همچنین به :ref:`class-customization` مراجعه کنید." #: ../../library/functions.rst:2084 +#, fuzzy msgid "" "Subclasses of :class:`!type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." msgstr "" +"زیرکلاس های :class:`!type` که ``type.__new__`` را بازنویسی نمی کنند ممکن است" +" دیگر نتوانند از فرم تک آرگومانی برای بدست آوردن نوع یک شیء استفاده کنند." #: ../../library/functions.rst:2091 +#, fuzzy msgid "" -"Return the :attr:`~object.__dict__` attribute for a module, class, instance, " -"or any other object with a :attr:`!__dict__` attribute." +"Return the :attr:`~object.__dict__` attribute for a module, class, instance," +" or any other object with a :attr:`!__dict__` attribute." msgstr "" +"ویژگی :attr:`~object.__dict__` را برای یک ماژول، کلاس، نمونه یا هر شیء دیگری" +" که دارای ویژگی :attr:`!__dict__` است، برگردانید." #: ../../library/functions.rst:2094 +#, fuzzy msgid "" -"Objects such as modules and instances have an updateable :attr:`~object." -"__dict__` attribute; however, other objects may have write restrictions on " -"their :attr:`!__dict__` attributes (for example, classes use a :class:`types." -"MappingProxyType` to prevent direct dictionary updates)." +"Objects such as modules and instances have an updateable " +":attr:`~object.__dict__` attribute; however, other objects may have write " +"restrictions on their :attr:`!__dict__` attributes (for example, classes use" +" a :class:`types.MappingProxyType` to prevent direct dictionary updates)." msgstr "" +"اشیائی مانند ماژول ها و نمونه ها دارای یک ویژگی قابل به روزرسانی " +":attr:`~object.__dict__` هستند؛ با این حال، اشیاء دیگر ممکن است محدودیت هایی" +" در نوشتن روی ویژگی های :attr:`!__dict__` خود داشته باشند (برای مثال، کلاس " +"ها از یک :class:`types.MappingProxyType` برای جلوگیری از به روزرسانی مستقیم " +"دیکشنری استفاده می کنند)." #: ../../library/functions.rst:2099 +#, fuzzy msgid "Without an argument, :func:`vars` acts like :func:`locals`." -msgstr "" +msgstr "بدون آرگومان، :func:`vars` شبیه :func:`locals` عمل می کند." #: ../../library/functions.rst:2101 +#, fuzzy msgid "" "A :exc:`TypeError` exception is raised if an object is specified but it " -"doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " -"defines the :attr:`~object.__slots__` attribute)." +"doesn't have a :attr:`~object.__dict__` attribute (for example, if its class" +" defines the :attr:`~object.__slots__` attribute)." msgstr "" +"اگر یک شیء مشخص شود اما دارای ویژگی :attr:`~object.__dict__` نباشد (به عنوان" +" مثال، اگر کلاس آن ویژگی :attr:`~object.__slots__` را تعریف کند)، یک استثنای" +" :exc:`TypeError` ایجاد می شود." #: ../../library/functions.rst:2107 +#, fuzzy msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." msgstr "" +"نتیجه ی فراخوانی این تابع بدون آرگومان مطابق توضیحات ارائه شده برای " +"«:func:`locals`» داخلی به روزرسانی شده است." #: ../../library/functions.rst:2113 +#, fuzzy msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." msgstr "" +"بر روی چندین iterable به صورت موازی iteration انجام دهید و tupleهایی با یک " +"آیتم از هر کدام تولید کنید." #: ../../library/functions.rst:2116 +#, fuzzy msgid "Example::" -msgstr "" +msgstr "مثال::" #: ../../library/functions.rst:2118 +#, fuzzy msgid "" ">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" "... print(item)\n" @@ -2921,92 +4695,151 @@ msgid "" "(2, 'spice')\n" "(3, 'everything nice')" msgstr "" +"```python\n" +">>> for item in zip([1, 2, 3], ['شکر', 'ادویه', 'هر چیز خوب']):\n" +"... print(item)\n" +"...\n" +"(1, 'شکر')\n" +"(2, 'ادویه')\n" +"(3, 'هر چیز خوب')\n" +"```" #: ../../library/functions.rst:2125 +#, fuzzy msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." msgstr "" +"به طور رسمی تر: :func:`zip` یک تکرارگر از تاپل ها را بازمی گرداند، که در آن " +"تاپل شماره ی *i* شامل عنصر شماره ی *i* از هر یک از قابل تکرارهای آرگومان " +"است." #: ../../library/functions.rst:2128 +#, fuzzy msgid "" "Another way to think of :func:`zip` is that it turns rows into columns, and " -"columns into rows. This is similar to `transposing a matrix `_." +"columns into rows. This is similar to `transposing a matrix " +"`_." msgstr "" +"راه دیگر برای تفکر در مورد :func:`zip` این است که سطرها را به ستون ها و ستون" +" ها را به سطرها تبدیل می کند. این شبیه به `transposing a matrix " +"`_ است." #: ../../library/functions.rst:2132 +#, fuzzy msgid "" ":func:`zip` is lazy: The elements won't be processed until the iterable is " -"iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a :class:" -"`list`." +"iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a " +":class:`list`." msgstr "" +":func:`zip` تنبل است: عناصر تا زمانی که روی «iterable» مکرر نشوند، پردازش " +"نمی شوند، برای مثال توسط یک «:keyword:`!for`» حلقه یا با قرار دادن در یک " +"«:class:`list`»." #: ../../library/functions.rst:2136 +#, fuzzy msgid "" -"One thing to consider is that the iterables passed to :func:`zip` could have " -"different lengths; sometimes by design, and sometimes because of a bug in " +"One thing to consider is that the iterables passed to :func:`zip` could have" +" different lengths; sometimes by design, and sometimes because of a bug in " "the code that prepared these iterables. Python offers three different " "approaches to dealing with this issue:" msgstr "" +"یک نکته که باید در نظر داشت این است که \"iterables\" هایی که به " +"\":func:`zip`\" داده می شوند ممکن است طول های متفاوتی داشته باشند؛ گاهی به " +"خاطر طراحی و گاهی به دلیل یک باگ در کدی که این \"iterables\" ها را آماده " +"کرده است. پایتون سه رویکرد مختلف برای برخورد با این مسأله ارائه می دهد:" #: ../../library/functions.rst:2141 +#, fuzzy msgid "" "By default, :func:`zip` stops when the shortest iterable is exhausted. It " "will ignore the remaining items in the longer iterables, cutting off the " "result to the length of the shortest iterable::" msgstr "" +"به طور پیش فرض، :func:`zip` زمانی که اولین iterable به پایان می رسد متوقف می" +" شود. این تابع اقلام باقی مانده در iterable های طولانی تر را نادیده می گیرد " +"و نتیجه را به طول کوتاه ترین iterable قطع می کند::" #: ../../library/functions.rst:2145 +#, fuzzy msgid "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" msgstr "" +"```python\n" +">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" +"[(0, 'fee'), (1, 'fi'), (2, 'fo')]\n" +"```" #: ../../library/functions.rst:2148 +#, fuzzy msgid "" ":func:`zip` is often used in cases where the iterables are assumed to be of " "equal length. In such cases, it's recommended to use the ``strict=True`` " "option. Its output is the same as regular :func:`zip`::" msgstr "" +":func:`zip` معمولاً در مواردی استفاده می شود که فرض می شود طول تکرارپذیرها " +"برابر است. در چنین مواردی، توصیه می شود از گزینه ``strict=True`` استفاده " +"کنید. خروجی آن مشابه :func:`zip` معمولی است::" #: ../../library/functions.rst:2152 +#, fuzzy msgid "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" msgstr "" +"```python\n" +">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" +"[('a', 1), ('b', 2), ('c', 3)]\n" +"```" #: ../../library/functions.rst:2155 +#, fuzzy msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " "is exhausted before the others:" msgstr "" +"برخلاف رفتار پیش فرض، اگر یکی از iterableها قبل از دیگران به انتها برسد، یک " +":exc:`ValueError` ایجاد می کند:" #: ../../library/functions.rst:2173 +#, fuzzy msgid "" "Without the ``strict=True`` argument, any bug that results in iterables of " "different lengths will be silenced, possibly manifesting as a hard-to-find " "bug in another part of the program." msgstr "" +"بدون آرگومان ``strict=True``، هر باگی که منجر به طول های متفاوت در iterable " +"ها شود، نادیده گرفته می شود و ممکن است به صورت یک باگ سخت برای یافتن در " +"قسمتی دیگر از برنامه ظاهر شود." #: ../../library/functions.rst:2177 +#, fuzzy msgid "" "Shorter iterables can be padded with a constant value to make all the " -"iterables have the same length. This is done by :func:`itertools." -"zip_longest`." +"iterables have the same length. This is done by " +":func:`itertools.zip_longest`." msgstr "" +"Iterableهای کوتاه تر می توانند با یک مقدار ثابت پر شوند تا همه ی iterableها " +"طول یکسانی داشته باشند. این کار توسط :func:`itertools.zip_longest` انجام می " +"شود." #: ../../library/functions.rst:2181 +#, fuzzy msgid "" -"Edge cases: With a single iterable argument, :func:`zip` returns an iterator " -"of 1-tuples. With no arguments, it returns an empty iterator." +"Edge cases: With a single iterable argument, :func:`zip` returns an iterator" +" of 1-tuples. With no arguments, it returns an empty iterator." msgstr "" +"لبه های خاص: با یک آرگومان تکرارشونده، `:func:`zip`` یک تکرارگر از تک تایی " +"ها بازمی گرداند. بدون هیچ آرگومانی، یک تکرارگر خالی بازمی گرداند." #: ../../library/functions.rst:2184 +#, fuzzy msgid "Tips and tricks:" -msgstr "" +msgstr "نکات و ترفندها:" #: ../../library/functions.rst:2186 +#, fuzzy msgid "" "The left-to-right evaluation order of the iterables is guaranteed. This " "makes possible an idiom for clustering a data series into n-length groups " @@ -3014,14 +4847,24 @@ msgid "" "``n`` times so that each output tuple has the result of ``n`` calls to the " "iterator. This has the effect of dividing the input into n-length chunks." msgstr "" +"ترتیب ارزیابی از چپ به راست برای گزینه های قابل تکرار تضمین شده است. این امر" +" باعث می شود که یک ایدئوم برای دسته بندی یک سری داده به گروه های به طول n با" +" استفاده از ``zip(*[iter(s)]*n, strict=True)`` ممکن شود. این کار تکرارگر " +"*same* را ``n`` بار تکرار می کند به طوری که هر تاپل خروجی نتیجه ``n`` " +"فراخوانی با تکرارگر را داشته باشد. این باعث می شود که ورودی به قطعاتی به طول" +" n تقسیم شود." #: ../../library/functions.rst:2192 +#, fuzzy msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" msgstr "" +":func:`zip` همراه با عملگر ``*`` می تواند برای باز کردن یک لیست استفاده " +"شود::" #: ../../library/functions.rst:2195 +#, fuzzy msgid "" ">>> x = [1, 2, 3]\n" ">>> y = [4, 5, 6]\n" @@ -3031,40 +4874,70 @@ msgid "" ">>> x == list(x2) and y == list(y2)\n" "True" msgstr "" +"```python\n" +">>> x = [1, 2, 3]\n" +">>> y = [4, 5, 6]\n" +">>> list(zip(x, y))\n" +"[(1, 4), (2, 5), (3, 6)]\n" +">>> x2, y2 = zip(*zip(x, y))\n" +">>> x == list(x2) and y == list(y2)\n" +"True\n" +"```" #: ../../library/functions.rst:2203 +#, fuzzy msgid "Added the ``strict`` argument." -msgstr "" +msgstr "افزودن آرگومان ``strict``." #: ../../library/functions.rst:2215 +#, fuzzy msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." msgstr "" +"این یک تابع پیشرفته است که بر خلاف :func:`importlib.import_module` در برنامه" +" نویسی روزانه پایتون مورد نیاز نیست." #: ../../library/functions.rst:2218 +#, fuzzy msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " -"``builtins.__import__``) in order to change semantics of the :keyword:`!" -"import` statement, but doing so is **strongly** discouraged as it is usually " -"simpler to use import hooks (see :pep:`302`) to attain the same goals and " -"does not cause issues with code which assumes the default import " +"``builtins.__import__``) in order to change semantics of the " +":keyword:`!import` statement, but doing so is **strongly** discouraged as it" +" is usually simpler to use import hooks (see :pep:`302`) to attain the same " +"goals and does not cause issues with code which assumes the default import " "implementation is in use. Direct use of :func:`__import__` is also " "discouraged in favor of :func:`importlib.import_module`." msgstr "" +"این تابع توسط عبارت :keyword:`import` فراخوانی می شود. برای تغییر معنای " +"عبارت :keyword:`!import`، می توان آن را جایگزین کرد (با وارد کردن ماژول " +":mod:`builtins` و اختصاص دادن به ``builtins.__import__``)، اما انجام این کار" +" شدیداً **strongly** توصیه نمی شود زیرا معمولاً استفاده از قلاب های وارد (به" +" :pep:`302` مراجعه کنید) برای دستیابی به اهداف مشابه ساده تر است و مشکلاتی " +"با کدی که فرض می کند اجرای پیش فرض وارد استفاده می شود ایجاد نمی کند. " +"استفاده مستقیم از :func:`__import__` نیز به جای " +":func:`importlib.import_module` توصیه نمی شود." #: ../../library/functions.rst:2227 +#, fuzzy msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " -"context. The *fromlist* gives the names of objects or submodules that should " -"be imported from the module given by *name*. The standard implementation " +"context. The *fromlist* gives the names of objects or submodules that should" +" be imported from the module given by *name*. The standard implementation " "does not use its *locals* argument at all and uses its *globals* only to " "determine the package context of the :keyword:`import` statement." msgstr "" +"تابع ماژول *name* را وارد می کند و ممکن است از *globals* و *locals*ی داده " +"شده برای تعیین نحوه تفسیر نام در یک بستر پکیج استفاده کند. *fromlist* نام " +"اشیاء یا زیرماژول هایی را فراهم می کند که باید از ماژولی که توسط *name* داده" +" شده است، وارد شوند. پیاده سازی استاندارد به هیچ وجه از آرگومان *locals* " +"استفاده نمی کند و تنها برای تعیین بستر پکیج دستور :keyword:`import` از " +"*globals* استفاده می کند." #: ../../library/functions.rst:2234 +#, fuzzy msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -3072,192 +4945,272 @@ msgid "" "directory of the module calling :func:`__import__` (see :pep:`328` for the " "details)." msgstr "" +"*level* مشخص می کند که آیا از واردات مطلق یا نسبی استفاده شود. ``0`` (پیش " +"فرض) به این معنی است که فقط واردات مطلق انجام شود. مقادیر مثبت برای *level* " +"نشان دهنده تعداد دایرکتوری های والد برای جستجو نسبت به دایرکتوری ماژولی است " +"که :func:`__import__` را فراخوانی می کند (جزئیات را در :pep:`328` ببینید)." #: ../../library/functions.rst:2240 +#, fuzzy msgid "" "When the *name* variable is of the form ``package.module``, normally, the " "top-level package (the name up till the first dot) is returned, *not* the " "module named by *name*. However, when a non-empty *fromlist* argument is " "given, the module named by *name* is returned." msgstr "" +"هنگامی که متغیر *name* به شکل ``package.module`` است، معمولاً بسته سطح بالا " +"(نام تا اولین نقطه) بازگردانده می شود، *not* ماژولی که با *name* نام گذاری " +"شده است. با این حال، زمانی که یک آرگومان *fromlist* غیر خالی داده می شود، " +"ماژول نام گذاری شده توسط *name* بازگردانده می شود." #: ../../library/functions.rst:2245 +#, fuzzy msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" msgstr "" +"به عنوان مثال، عبارت ``import spam`` به بایت کدی تبدیل می شود که شبیه به کد " +"زیر است::" #: ../../library/functions.rst:2248 +#, fuzzy msgid "spam = __import__('spam', globals(), locals(), [], 0)" -msgstr "" +msgstr "`spam = __import__('spam', globals(), locals(), [], 0)`" #: ../../library/functions.rst:2250 +#, fuzzy msgid "The statement ``import spam.ham`` results in this call::" -msgstr "" +msgstr "دستور ``import spam.ham`` منجر به این فراخوانی می شود::" #: ../../library/functions.rst:2252 +#, fuzzy msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" msgstr "" +"```python\n" +"spam = __import__('spam.ham', globals(), locals(), [], 0)\n" +"```" #: ../../library/functions.rst:2254 +#, fuzzy msgid "" -"Note how :func:`__import__` returns the toplevel module here because this is " -"the object that is bound to a name by the :keyword:`import` statement." +"Note how :func:`__import__` returns the toplevel module here because this is" +" the object that is bound to a name by the :keyword:`import` statement." msgstr "" +"توجه کنید که :func:`__import__` در اینجا ماژول سطح بالا را برمی گرداند زیرا " +"این شیء توسط عبارت :keyword:`import` به یک نام وابسته شده است." #: ../../library/functions.rst:2257 +#, fuzzy msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" +"از سوی دیگر، دستور ``from spam.ham import eggs, sausage as saus`` منجر به ::" #: ../../library/functions.rst:2260 +#, fuzzy msgid "" "_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" "eggs = _temp.eggs\n" "saus = _temp.sausage" msgstr "" +"```python\n" +"_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" +"eggs = _temp.eggs\n" +"saus = _temp.sausage\n" +"```" #: ../../library/functions.rst:2264 +#, fuzzy msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " "respective names." msgstr "" +"در اینجا، ماژول ``spam.ham`` از :func:`__import__` برگردانده می شود. از این " +"شیء، نام هایی که باید وارد شوند استخراج و به نام های مربوطه اختصاص داده می " +"شوند." #: ../../library/functions.rst:2268 +#, fuzzy msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." msgstr "" +"اگر به سادگی می خواهید یک ماژول (احتمالاً درون یک پکیج) را با نام وارد کنید،" +" از :func:`importlib.import_module` استفاده کنید." #: ../../library/functions.rst:2271 +#, fuzzy msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." msgstr "" +"مقادیر منفی برای *level* دیگر پشتیبانی نمی شوند (که به طور همزمان مقدار پیش " +"فرض به 0 تغییر یافته است)." #: ../../library/functions.rst:2275 +#, fuzzy msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." msgstr "" +"هنگامی که گزینه های خط فرمان :option:`-E` یا :option:`-I` استفاده می شوند، " +"متغیر محیطی :envvar:`PYTHONCASEOK` اکنون نادیده گرفته می شود." #: ../../library/functions.rst:2280 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پاورقی ها" #: ../../library/functions.rst:2281 +#, fuzzy msgid "" "Note that the parser only accepts the Unix-style end of line convention. If " "you are reading the code from a file, make sure to use newline conversion " "mode to convert Windows or Mac-style newlines." msgstr "" +"توجه داشته باشید که تجزیه گر تنها قرارداد پایان خط به سبک Unix را می پذیرد. " +"اگر در حال خواندن کد از یک فایل هستید، مطمئن شوید که از حالت تبدیل newline " +"برای تبدیل newlineهای به سبک Windows یا Mac استفاده کنید." #: ../../library/functions.rst:154 +#, fuzzy msgid "Boolean" -msgstr "" +msgstr "بولین" #: ../../library/functions.rst:154 ../../library/functions.rst:2048 +#, fuzzy msgid "type" -msgstr "" +msgstr "نوع" #: ../../library/functions.rst:648 +#, fuzzy msgid "built-in function" -msgstr "" +msgstr "تابع ساختاریافته" #: ../../library/functions.rst:648 +#, fuzzy msgid "exec" msgstr "" +"اجرای \"``\" در پایتون برای اجرای کدهای پایتون که به صورت رشته ها ارائه می " +"شوند، استفاده می شود. این تابع این امکان را می دهد که در زمان اجرا، کدهای " +"پویا تولید و اجرا شوند." #: ../../library/functions.rst:746 +#, fuzzy msgid "NaN" -msgstr "" +msgstr "نان" #: ../../library/functions.rst:746 +#, fuzzy msgid "Infinity" -msgstr "" +msgstr "بی نهایت" #: ../../library/functions.rst:814 +#, fuzzy msgid "__format__" -msgstr "" +msgstr "__فرمت__" #: ../../library/functions.rst:814 ../../library/functions.rst:1925 +#, fuzzy msgid "string" -msgstr "" +msgstr "رشته" #: ../../library/functions.rst:814 +#, fuzzy msgid "format() (built-in function)" -msgstr "" +msgstr "تابع توکار ()`format`" #: ../../library/functions.rst:1325 +#, fuzzy msgid "file object" -msgstr "" +msgstr "شیء فایل" #: ../../library/functions.rst:1325 ../../library/functions.rst:1446 +#, fuzzy msgid "open() built-in function" -msgstr "" +msgstr "تابع داخلی open()" #: ../../library/functions.rst:1353 +#, fuzzy msgid "file" -msgstr "" +msgstr "فایل" #: ../../library/functions.rst:1353 +#, fuzzy msgid "modes" -msgstr "" +msgstr "حالت ها" #: ../../library/functions.rst:1446 +#, fuzzy msgid "universal newlines" -msgstr "" +msgstr "یونیورسال نیولاینز" #: ../../library/functions.rst:1507 +#, fuzzy msgid "line-buffered I/O" -msgstr "" +msgstr "ورودی/خروجی بافر خطی" #: ../../library/functions.rst:1507 +#, fuzzy msgid "unbuffered I/O" -msgstr "" +msgstr "ورودی/خروجی بدون بافر" #: ../../library/functions.rst:1507 +#, fuzzy msgid "buffer size, I/O" -msgstr "" +msgstr "اندازه بافر، ورودی/خروجی" #: ../../library/functions.rst:1507 +#, fuzzy msgid "I/O control" -msgstr "" +msgstr "کنترل I/O" #: ../../library/functions.rst:1507 +#, fuzzy msgid "buffering" -msgstr "" +msgstr "بافرینگ" #: ../../library/functions.rst:1507 +#, fuzzy msgid "text mode" -msgstr "" +msgstr "حالت متنی" #: ../../library/functions.rst:1507 ../../library/functions.rst:2209 +#, fuzzy msgid "module" -msgstr "" +msgstr "ماژول" #: ../../library/functions.rst:1507 +#, fuzzy msgid "sys" -msgstr "" +msgstr "سیستم" #: ../../library/functions.rst:1925 +#, fuzzy msgid "str() (built-in function)" msgstr "" +"()تابع داخلی) str) \n" +"\n" +"تابع داخلی \"str()\" در پایتون برای تبدیل یک آبجکت به رشته ای از نوع string استفاده می شود." #: ../../library/functions.rst:2048 +#, fuzzy msgid "object" -msgstr "" +msgstr "شیء" #: ../../library/functions.rst:2209 +#, fuzzy msgid "statement" -msgstr "" +msgstr "بیانیه" #: ../../library/functions.rst:2209 +#, fuzzy msgid "import" -msgstr "" +msgstr "وارد کردن" #: ../../library/functions.rst:2209 +#, fuzzy msgid "builtins" -msgstr "" +msgstr "توکارها" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 158565370..62c850cbc 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -14,115 +14,170 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:49+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/appendix.rst:5 +#, fuzzy msgid "Appendix" -msgstr "" +msgstr "پیوست" #: ../../tutorial/appendix.rst:11 +#, fuzzy msgid "Interactive Mode" -msgstr "" +msgstr "حالت تعاملی" #: ../../tutorial/appendix.rst:13 +#, fuzzy msgid "" "There are two variants of the interactive :term:`REPL`. The classic basic " "interpreter is supported on all platforms with minimal line control " "capabilities." msgstr "" +"دو نوع مختلف از :term:`REPL` تعاملی وجود دارد. مفسر کلاسیک و پایه بر روی " +"تمام پلتفرم ها با قابلیت های حداقلی کنترل خط پشتیبانی می شود." #: ../../tutorial/appendix.rst:17 +#, fuzzy msgid "" "On Windows, or Unix-like systems with :mod:`curses` support, a new " "interactive shell is used by default. This one supports color, multiline " -"editing, history browsing, and paste mode. To disable color, see :ref:" -"`using-on-controlling-color` for details. Function keys provide some " -"additional functionality. :kbd:`F1` enters the interactive help browser :mod:" -"`pydoc`. :kbd:`F2` allows for browsing command-line history with neither " -"output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` enters \"paste " -"mode\", which makes pasting larger blocks of code easier. Press :kbd:`F3` to " -"return to the regular prompt." +"editing, history browsing, and paste mode. To disable color, see " +":ref:`using-on-controlling-color` for details. Function keys provide some " +"additional functionality. :kbd:`F1` enters the interactive help browser " +":mod:`pydoc`. :kbd:`F2` allows for browsing command-line history with " +"neither output nor the :term:`>>>` and :term:`...` prompts. :kbd:`F3` enters" +" \"paste mode\", which makes pasting larger blocks of code easier. Press " +":kbd:`F3` to return to the regular prompt." msgstr "" +"در سیستم های Windows یا سیستم های Unix مانندی که از :mod:`curses` پشتیبانی " +"می کنند، به طور پیش فرض یک پوسته تعاملی جدید استفاده می شود. این پوسته از " +"رنگ، ویرایش چندخطی، مرور تاریخچه و حالت چسباندن پشتیبانی می کند. برای " +"غیرفعال کردن رنگ، جزئیات را در :ref:`using-on-controlling-color` مشاهده " +"کنید. کلیدهای تابعی برخی قابلیت های اضافی را ارائه می دهند. :kbd:`F1` مرورگر" +" کمک تعاملی :mod:`pydoc` را اجرا می کند. :kbd:`F2` امکان مرور تاریخچه خط " +"فرمان را بدون خروجی و بدون :term:`>>>` و :term:`...` فراهم می آورد. " +":kbd:`F3` حالت \"چسباندن\" را اجرا می کند، که چسباندن بلوک های بزرگ تر کد را" +" آسان تر می کند. برای بازگشت به اعلان عادی :kbd:`F3` را فشار دهید." #: ../../tutorial/appendix.rst:28 +#, fuzzy msgid "" "When using the new interactive shell, exit the shell by typing :kbd:`exit` " -"or :kbd:`quit`. Adding call parentheses after those commands is not required." +"or :kbd:`quit`. Adding call parentheses after those commands is not " +"required." msgstr "" +"هنگامی که از شل تعاملی جدید استفاده می کنید، با تایپ \":kbd:`exit`\" یا " +"\":kbd:`quit`\" از شل خارج شوید. اضافه کردن پرانتز های فراخوانی بعد از این " +"دستورات لازم نیست." #: ../../tutorial/appendix.rst:32 +#, fuzzy msgid "" -"If the new interactive shell is not desired, it can be disabled via the :" -"envvar:`PYTHON_BASIC_REPL` environment variable." +"If the new interactive shell is not desired, it can be disabled via the " +":envvar:`PYTHON_BASIC_REPL` environment variable." msgstr "" +"اگر محیط تعاملی جدید نخواسته باشد، می توان آن را از طریق متغیر محیطی " +":envvar:`PYTHON_BASIC_REPL` غیرفعال کرد." #: ../../tutorial/appendix.rst:38 +#, fuzzy msgid "Error Handling" -msgstr "" +msgstr "مدیریت خطاها" #: ../../tutorial/appendix.rst:40 +#, fuzzy msgid "" "When an error occurs, the interpreter prints an error message and a stack " "trace. In interactive mode, it then returns to the primary prompt; when " "input came from a file, it exits with a nonzero exit status after printing " -"the stack trace. (Exceptions handled by an :keyword:`except` clause in a :" -"keyword:`try` statement are not errors in this context.) Some errors are " +"the stack trace. (Exceptions handled by an :keyword:`except` clause in a " +":keyword:`try` statement are not errors in this context.) Some errors are " "unconditionally fatal and cause an exit with a nonzero exit status; this " -"applies to internal inconsistencies and some cases of running out of " -"memory. All error messages are written to the standard error stream; normal " -"output from executed commands is written to standard output." +"applies to internal inconsistencies and some cases of running out of memory." +" All error messages are written to the standard error stream; normal output" +" from executed commands is written to standard output." msgstr "" +"هنگامی که خطایی رخ می دهد، مفسر یک پیام خطا و یک ردگیری پشته چاپ می کند. در " +"حالت تعاملی، سپس به اعلان اصلی بازمی گردد؛ هنگامی که ورودی از یک فایل می " +"آید، بعد از چاپ ردگیری پشته با وضعیتی غیر صفر خارج می شود. (استثناهایی که " +"توسط یک بند \"``:keyword:`except```\" در یک دستور \"``:keyword:`try```\" " +"مدیریت می شوند، در این زمینه خطا نیستند.) برخی خطاها به صورت غیر قابل تغییر " +"مرگبار هستند و باعث خروج با وضعیت غیر صفر می شوند؛ این مسئله برای ناسازگاری " +"های داخلی و برخی موارد کمبود حافظه صدق می کند. تمامی پیام های خطا به جریان " +"خروجی استاندارد خطا نوشته می شوند؛ خروجی عادی دستورات اجرا شده به خروجی " +"استاندارد نوشته می شود." #: ../../tutorial/appendix.rst:50 +#, fuzzy msgid "" "Typing the interrupt character (usually :kbd:`Control-C` or :kbd:`Delete`) " "to the primary or secondary prompt cancels the input and returns to the " -"primary prompt. [#]_ Typing an interrupt while a command is executing raises " -"the :exc:`KeyboardInterrupt` exception, which may be handled by a :keyword:" -"`try` statement." +"primary prompt. [#]_ Typing an interrupt while a command is executing raises" +" the :exc:`KeyboardInterrupt` exception, which may be handled by a " +":keyword:`try` statement." msgstr "" +"فشردن نویسه ی interrupt (معمولاً :kbd:`Control-C` یا :kbd:`Delete`) در حالت " +"prompt اولیه یا ثانویه، ورودی را لغو کرده و به prompt اولیه بر می گرداند. " +"[#]_ زدن یک interrupt در هنگام اجرای یک دستور باعث می شود که استثنای " +":exc:`KeyboardInterrupt` رخ دهد، که ممکن است توسط دستور :keyword:`try` مورد " +"پردازش قرار گیرد." #: ../../tutorial/appendix.rst:60 +#, fuzzy msgid "Executable Python Scripts" -msgstr "" +msgstr "اسکریپت های اجرایی پایتون" #: ../../tutorial/appendix.rst:62 +#, fuzzy msgid "" "On BSD'ish Unix systems, Python scripts can be made directly executable, " "like shell scripts, by putting the line ::" msgstr "" +"در سیستم های Unix به سبک BSD، اسکریپت های Python می توانند مانند اسکریپت های" +" شل به صورت مستقیم اجرایی شوند، با قرار دادن خط ::" #: ../../tutorial/appendix.rst:65 +#, fuzzy msgid "#!/usr/bin/env python3" -msgstr "" +msgstr "#!/usr/bin/env python3" #: ../../tutorial/appendix.rst:67 +#, fuzzy msgid "" "(assuming that the interpreter is on the user's :envvar:`PATH`) at the " "beginning of the script and giving the file an executable mode. The ``#!`` " -"must be the first two characters of the file. On some platforms, this first " -"line must end with a Unix-style line ending (``'\\n'``), not a Windows " +"must be the first two characters of the file. On some platforms, this first" +" line must end with a Unix-style line ending (``'\\n'``), not a Windows " "(``'\\r\\n'``) line ending. Note that the hash, or pound, character, " "``'#'``, is used to start a comment in Python." msgstr "" +"(با فرض اینکه مفسر در :envvar:`PATH` کاربر باشد) در ابتدای اسکریپت و دادن " +"حالت اجرایی به فایل. ``#!`` باید دو کاراکتر اول فایل باشد. در برخی از پلتفرم" +" ها، این خط اول باید با یک پایان خط به سبک یونیکس (``'\\n'``) پایان یابد، نه" +" یک پایان خط ویندوزی (``'\\r\\n'``). توجه داشته باشید که کاراکتر هشتگ یا " +"پوند، ``'#'``، برای شروع یک نظر در پایتون استفاده می شود." #: ../../tutorial/appendix.rst:74 +#, fuzzy msgid "" -"The script can be given an executable mode, or permission, using the :" -"program:`chmod` command." +"The script can be given an executable mode, or permission, using the " +":program:`chmod` command." msgstr "" +"برای اسکریپت می توان با استفاده از دستور :program:`chmod` حالت اجرایی یا " +"اجازه لازم را تعیین کرد." #: ../../tutorial/appendix.rst:77 +#, fuzzy msgid "$ chmod +x myscript.py" -msgstr "" +msgstr "$ chmod +x myscript.py" #: ../../tutorial/appendix.rst:81 +#, fuzzy msgid "" "On Windows systems, there is no notion of an \"executable mode\". The " "Python installer automatically associates ``.py`` files with ``python.exe`` " @@ -130,12 +185,19 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" +"در سیستم های ویندوز، مفهومی به نام \"حالت اجرایی\" وجود ندارد. نصاب پایتون " +"به طور خودکار فایل های ``.py`` را با ``python.exe`` مرتبط می کند تا با دو " +"بار کلیک روی یک فایل پایتون، به صورت یک اسکریپت اجرا شود. همچنین ممکن است " +"پسوند ``.pyw`` باشد که در این صورت، پنجره کنسول که به طور معمول ظاهر می شود،" +" نمایش داده نمی شود." #: ../../tutorial/appendix.rst:91 +#, fuzzy msgid "The Interactive Startup File" -msgstr "" +msgstr "فایل استارتاپ تعاملی" #: ../../tutorial/appendix.rst:93 +#, fuzzy msgid "" "When you use Python interactively, it is frequently handy to have some " "standard commands executed every time the interpreter is started. You can " @@ -143,28 +205,48 @@ msgid "" "the name of a file containing your start-up commands. This is similar to " "the :file:`.profile` feature of the Unix shells." msgstr "" +"هنگامی که از پایتون به صورت تعاملی استفاده می کنید، اغلب مفید است که برخی " +"دستورات استاندارد هر بار که مفسر شروع به کار می کند، اجرا شوند. شما می " +"توانید این کار را با تنظیم یک متغیر محیطی به نام :envvar:`PYTHONSTARTUP` به " +"نام فایل حاوی دستورات اولیه خود انجام دهید. این شبیه ویژگی :file:`.profile` " +"در پوسته های یونیکس است." #: ../../tutorial/appendix.rst:99 +#, fuzzy msgid "" "This file is only read in interactive sessions, not when Python reads " "commands from a script, and not when :file:`/dev/tty` is given as the " "explicit source of commands (which otherwise behaves like an interactive " "session). It is executed in the same namespace where interactive commands " -"are executed, so that objects that it defines or imports can be used without " -"qualification in the interactive session. You can also change the prompts " +"are executed, so that objects that it defines or imports can be used without" +" qualification in the interactive session. You can also change the prompts " "``sys.ps1`` and ``sys.ps2`` in this file." msgstr "" +"این فایل فقط در نشست های تعاملی خوانده می شود، نه زمانی که پایتون دستورات را" +" از یک اسکریپت می خواند، و نه هنگامی که :file:`/dev/tty` به عنوان منبع صریح " +"دستورات ارائه شده است (که در غیر این صورت مانند یک نشست تعاملی عمل می کند). " +"این فایل در همان فضای نامی که دستورات تعاملی اجرا می شوند، اجرا می شود، به " +"طوری که اشیاءی که تعریف یا وارد می کند می توانند بدون نیاز به اشاره در نشست " +"تعاملی استفاده شوند. شما همچنین می توانید اعلان های ``sys.ps1`` و " +"``sys.ps2`` را در این فایل تغییر دهید." #: ../../tutorial/appendix.rst:107 +#, fuzzy msgid "" "If you want to read an additional start-up file from the current directory, " -"you can program this in the global start-up file using code like ``if os." -"path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you " -"want to use the startup file in a script, you must do this explicitly in the " -"script::" +"you can program this in the global start-up file using code like ``if " +"os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. If you " +"want to use the startup file in a script, you must do this explicitly in the" +" script::" msgstr "" +"اگر می خواهید یک فایل راه اندازی اضافی از دایرکتوری فعلی بخوانید، می توانید " +"این کار را در فایل راه اندازی سراسری با استفاده از کدی مانند ``if " +"os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`` برنامه " +"ریزی کنید. اگر می خواهید از فایل راه اندازی در یک اسکریپت استفاده کنید، باید" +" این کار را به صراحت در اسکریپت انجام دهید::" #: ../../tutorial/appendix.rst:113 +#, fuzzy msgid "" "import os\n" "filename = os.environ.get('PYTHONSTARTUP')\n" @@ -173,46 +255,78 @@ msgid "" " startup_file = fobj.read()\n" " exec(startup_file)" msgstr "" +"```python\n" +"import os\n" +"filename = os.environ.get('PYTHONSTARTUP')\n" +"if filename and os.path.isfile(filename):\n" +" with open(filename) as fobj:\n" +" startup_file = fobj.read()\n" +" exec(startup_file)\n" +"```" #: ../../tutorial/appendix.rst:124 +#, fuzzy msgid "The Customization Modules" -msgstr "" +msgstr "ماژول های سفارشی سازی" #: ../../tutorial/appendix.rst:126 +#, fuzzy msgid "" "Python provides two hooks to let you customize it: :index:`sitecustomize` " -"and :index:`usercustomize`. To see how it works, you need first to find the " -"location of your user site-packages directory. Start Python and run this " +"and :index:`usercustomize`. To see how it works, you need first to find the" +" location of your user site-packages directory. Start Python and run this " "code::" msgstr "" +"پایتون دو قلاب را برای سفارشی سازی آن فراهم می کند: :index:`sitecustomize` و" +" :index:`usercustomize`. برای مشاهده نحوه کار، ابتدا باید مکان دایرکتوری " +"user site-packages خود را پیدا کنید. پایتون را اجرا کنید و این کد را وارد " +"کنید::" #: ../../tutorial/appendix.rst:130 +#, fuzzy msgid "" ">>> import site\n" ">>> site.getusersitepackages()\n" "'/home/user/.local/lib/python3.x/site-packages'" msgstr "" +"```python\n" +">>> import site\n" +">>> site.getusersitepackages()\n" +"'/home/user/.local/lib/python3.x/site-packages'\n" +"```" #: ../../tutorial/appendix.rst:134 +#, fuzzy msgid "" "Now you can create a file named :file:`usercustomize.py` in that directory " -"and put anything you want in it. It will affect every invocation of Python, " -"unless it is started with the :option:`-s` option to disable the automatic " +"and put anything you want in it. It will affect every invocation of Python," +" unless it is started with the :option:`-s` option to disable the automatic " "import." msgstr "" +"اکنون می توانید فایلی به نام :file:`usercustomize.py` در آن دایرکتوری ایجاد " +"کنید و هر چیزی که می خواهید در آن قرار دهید. این کار بر هر بار اجرای Python " +"تأثیر خواهد گذاشت، مگر اینکه با گزینه :option:`-s` شروع شود تا واردات خودکار" +" غیرفعال شود." #: ../../tutorial/appendix.rst:138 +#, fuzzy msgid "" -":index:`sitecustomize` works in the same way, but is typically created by an " -"administrator of the computer in the global site-packages directory, and is " -"imported before :index:`usercustomize`. See the documentation of the :mod:" -"`site` module for more details." +":index:`sitecustomize` works in the same way, but is typically created by an" +" administrator of the computer in the global site-packages directory, and is" +" imported before :index:`usercustomize`. See the documentation of the " +":mod:`site` module for more details." msgstr "" +"`:index:`sitecustomize`` به همان روش کار می کند، اما معمولاً توسط مدیر " +"رایانه در پوشه کلی سایت پکیج ها ایجاد می شود و قبل از " +"`:index:`usercustomize` وارد می شود. برای جزئیات بیشتر به مستندات ماژول " +":mod:`site` مراجعه کنید." #: ../../tutorial/appendix.rst:145 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پانویس ها" #: ../../tutorial/appendix.rst:146 +#, fuzzy msgid "A problem with the GNU Readline package may prevent this." -msgstr "" +msgstr "مشکلی در بسته GNU Readline ممکن است از این امر جلوگیری کند." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index e6a46579c..e402d6ce6 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -15,28 +15,36 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:49+0000\n" "Last-Translator: Alireza Feyzabadi Farahani, 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/appetite.rst:5 +#, fuzzy msgid "Whetting Your Appetite" -msgstr "" +msgstr "اشتهایتان را تحریک کنید" #: ../../tutorial/appetite.rst:7 +#, fuzzy msgid "" -"If you do much work on computers, eventually you find that there's some task " -"you'd like to automate. For example, you may wish to perform a search-and-" +"If you do much work on computers, eventually you find that there's some task" +" you'd like to automate. For example, you may wish to perform a search-and-" "replace over a large number of text files, or rename and rearrange a bunch " "of photo files in a complicated way. Perhaps you'd like to write a small " "custom database, or a specialized GUI application, or a simple game." msgstr "" +"اگر شما کار زیادی با کامپیوتر انجام دهید، در نهایت به این نتیجه می رسید که " +"برخی از وظایف را می خواهید خودکار کنید. برای مثال، ممکن است بخواهید عملیات " +"جستجو و جایگزینی را بر روی تعداد زیادی از فایل های متنی انجام دهید، یا " +"مجموعه ای از فایل های عکس را به شکلی پیچیده تغییر نام دهید و ساماندهی کنید. " +"شاید بخواهید یک پایگاه داده سفارشی کوچک بنویسید، یا یک برنامه کاربردی تخصصی " +"با رابط کاربری گرافیکی، یا یک بازی ساده ایجاد کنید." #: ../../tutorial/appetite.rst:13 +#, fuzzy msgid "" "If you're a professional software developer, you may have to work with " "several C/C++/Java libraries but find the usual write/compile/test/re-" @@ -45,77 +53,129 @@ msgid "" "written a program that could use an extension language, and you don't want " "to design and implement a whole new language for your application." msgstr "" +"اگر یک توسعه دهنده حرفه ای نرم افزار هستید، ممکن است مجبور شوید با چندین " +"کتابخانه C/C++/Java کار کنید اما متوجه شوید که چرخه معمول " +"نوشتن/کامپایل/تست/دوباره کامپایل کردن بسیار کُند است. شاید در حال نوشتن یک " +"مجموعه تست برای چنین کتابخانه ای هستید و نوشتن کد تست را کاری خسته کننده می " +"یابید. یا شاید برنامه ای نوشته اید که می تواند از یک زبان الحاقی استفاده کند" +" و نمی خواهید برای برنامه خود یک زبان جدید طراحی و پیاده سازی کنید." #: ../../tutorial/appetite.rst:20 +#, fuzzy msgid "Python is just the language for you." -msgstr "" +msgstr "پایتون دقیقاً زبانی است که به دنبال آن هستید." #: ../../tutorial/appetite.rst:22 +#, fuzzy msgid "" -"You could write a Unix shell script or Windows batch files for some of these " -"tasks, but shell scripts are best at moving around files and changing text " -"data, not well-suited for GUI applications or games. You could write a C/C++/" -"Java program, but it can take a lot of development time to get even a first-" -"draft program. Python is simpler to use, available on Windows, macOS, and " -"Unix operating systems, and will help you get the job done more quickly." -msgstr "" +"You could write a Unix shell script or Windows batch files for some of these" +" tasks, but shell scripts are best at moving around files and changing text " +"data, not well-suited for GUI applications or games. You could write a " +"C/C++/Java program, but it can take a lot of development time to get even a " +"first-draft program. Python is simpler to use, available on Windows, macOS," +" and Unix operating systems, and will help you get the job done more " +"quickly." +msgstr "" +"شما می توانید برای انجام برخی از این وظایف یک \"Unix\" شل اسکریپت یا فایل " +"های بچ \"Windows\" بنویسید، اما شل اسکریپت ها برای جابه جایی فایل ها و تغییر" +" داده های متنی بهترین هستند و برای برنامه های \"GUI\" یا بازی ها مناسب " +"نیستند. شما می توانید یک برنامه \"C/C++/Java\" بنویسید، اما ممکن است زمان " +"زیادی برای توسعه حتی یک پیش نویس اولیه برنامه نیاز داشته باشد. \"Python\" " +"استفاده ساده تری دارد، بر روی سیستم عامل های \"Windows\"، \"macOS\" و " +"\"Unix\" موجود است و به شما کمک می کند کار را سریع تر انجام دهید." #: ../../tutorial/appetite.rst:29 +#, fuzzy msgid "" "Python is simple to use, but it is a real programming language, offering " "much more structure and support for large programs than shell scripts or " "batch files can offer. On the other hand, Python also offers much more " "error checking than C, and, being a *very-high-level language*, it has high-" "level data types built in, such as flexible arrays and dictionaries. " -"Because of its more general data types Python is applicable to a much larger " -"problem domain than Awk or even Perl, yet many things are at least as easy " +"Because of its more general data types Python is applicable to a much larger" +" problem domain than Awk or even Perl, yet many things are at least as easy " "in Python as in those languages." msgstr "" +"پایتون ساده برای استفاده است، اما یک زبان برنامه نویسی واقعی است که ساختار و" +" پشتیبانی بیشتری برای برنامه های بزرگ تر نسبت به اسکریپت های شل یا فایل های " +"بچ ارائه می دهد. از سوی دیگر، پایتون با ارائه قابلیت بررسی خطای بیشتر نسبت " +"به C، و با توجه به اینکه یک *very-high-level language* است، دارای انواع داده" +" های سطح بالا مانند آرایه های انعطاف پذیر و دیکشنری ها به صورت توکار است. به" +" دلیل داشتن انواع داده های عمومی تر، پایتون قابلیت کاربرد در حوزه های مشکلات" +" بزرگ تر نسبت به Awk یا حتی Perl را دارد، با این حال بسیاری از کارها حداقل " +"به آسانی همان زبان ها در پایتون قابل انجام است." #: ../../tutorial/appetite.rst:37 +#, fuzzy msgid "" "Python allows you to split your program into modules that can be reused in " -"other Python programs. It comes with a large collection of standard modules " -"that you can use as the basis of your programs --- or as examples to start " +"other Python programs. It comes with a large collection of standard modules" +" that you can use as the basis of your programs --- or as examples to start " "learning to program in Python. Some of these modules provide things like " "file I/O, system calls, sockets, and even interfaces to graphical user " "interface toolkits like Tk." msgstr "" +"پایتون به شما امکان می دهد برنامه خود را به ماژول هایی تقسیم کنید که می " +"توانند در برنامه های دیگر پایتون مجدداً استفاده شوند. این زبان به همراه " +"مجموعه ای بزرگ از ماژول های استاندارد ارائه می شود که می توانید آن ها را به " +"عنوان پایه ای برای برنامه های خود استفاده کنید یا به عنوان مثال هایی شروع به" +" یادگیری برنامه نویسی در پایتون کنید. برخی از این ماژول ها امکاناتی مانند " +"ورودی/خروجی فایل، فراخوانی های سیستم، سوکت ها و حتی رابط هایی به کیت های " +"ابزار رابط کاربری گرافیکی مثل Tk ارائه می دهند." #: ../../tutorial/appetite.rst:44 +#, fuzzy msgid "" "Python is an interpreted language, which can save you considerable time " -"during program development because no compilation and linking is necessary. " -"The interpreter can be used interactively, which makes it easy to experiment " -"with features of the language, to write throw-away programs, or to test " -"functions during bottom-up program development. It is also a handy desk " -"calculator." -msgstr "" +"during program development because no compilation and linking is necessary." +" The interpreter can be used interactively, which makes it easy to " +"experiment with features of the language, to write throw-away programs, or " +"to test functions during bottom-up program development. It is also a handy " +"desk calculator." +msgstr "" +"پایتون یک زبان تفسیری است که می تواند در زمان برنامه نویسی شما به طور قابل " +"توجهی صرفه جویی کند زیرا نیازی به کامپایل و لینک کردن نیست. مفسر می تواند به" +" صورت تعاملی استفاده شود، که این امر آزمایش ویژگی های زبان، نوشتن برنامه های" +" موقت یا تست توابع در طی توسعه برنامه از پایین به بالا را آسان می کند. " +"همچنین، به عنوان یک ماشین حساب رومیزی کاربردی محسوب می شود." #: ../../tutorial/appetite.rst:50 +#, fuzzy msgid "" "Python enables programs to be written compactly and readably. Programs " "written in Python are typically much shorter than equivalent C, C++, or " "Java programs, for several reasons:" msgstr "" +"پایتون این امکان را فراهم می کند تا برنامه ها به صورت جمع وجور و خوانا نوشته" +" شوند. برنامه هایی که به زبان پایتون نوشته شده اند، به طور معمول بسیار کوتاه" +" تر از برنامه های معادل آن ها در زبان های C، C++ یا Java هستند، به چندین " +"دلیل:" #: ../../tutorial/appetite.rst:54 +#, fuzzy msgid "" "the high-level data types allow you to express complex operations in a " "single statement;" msgstr "" +"نوع داده های سطح بالا به شما امکان می دهند عملیات پیچیده را در یک جمله بیان " +"کنید؛" #: ../../tutorial/appetite.rst:57 +#, fuzzy msgid "" "statement grouping is done by indentation instead of beginning and ending " "brackets;" msgstr "" +"گروه بندی دستورات با استفاده از تورفتگی انجام می شود، به جای استفاده از " +"کروشه های آغاز و پایان؛" #: ../../tutorial/appetite.rst:60 +#, fuzzy msgid "no variable or argument declarations are necessary." -msgstr "" +msgstr "اعلان متغیر یا آرگومان لازم نیست." #: ../../tutorial/appetite.rst:62 +#, fuzzy msgid "" "Python is *extensible*: if you know how to program in C it is easy to add a " "new built-in function or module to the interpreter, either to perform " @@ -125,32 +185,58 @@ msgid "" "Python interpreter into an application written in C and use it as an " "extension or command language for that application." msgstr "" +"پایتون *extensible* است: اگر شما نحوه برنامه نویسی در C را بلد باشید، اضافه " +"کردن یک تابع یا ماژول داخلی جدید به مفسر آسان خواهد بود، چه برای انجام " +"عملیات های حیاتی با سرعت حداکثر، و چه برای لینک کردن برنامه های پایتون به " +"کتابخانه هایی که ممکن است فقط به صورت باینری در دسترس باشند (مانند یک " +"کتابخانه گرافیکی خاص برای یک فروشنده). هنگامی که واقعاً علاقه مند شدید، می " +"توانید مفسر پایتون را به یک برنامه که به زبان C نوشته شده است لینک کنید و از" +" آن به عنوان یک زبان افزونه یا زبان دستوری برای آن برنامه استفاده کنید." #: ../../tutorial/appetite.rst:70 +#, fuzzy msgid "" -"By the way, the language is named after the BBC show \"Monty Python's Flying " -"Circus\" and has nothing to do with reptiles. Making references to Monty " +"By the way, the language is named after the BBC show \"Monty Python's Flying" +" Circus\" and has nothing to do with reptiles. Making references to Monty " "Python skits in documentation is not only allowed, it is encouraged!" msgstr "" +"راستی، زبان پایتون نام خود را از برنامه تلویزیونی بی بی سی به نام \"Monty " +"Python's Flying Circus\" گرفته است و هیچ ارتباطی با خزندگان ندارد. اشاره به " +"نمایش های \"Monty Python\" در مستندات نه تنها مجاز است، بلکه تشویق هم می " +"شود!" #: ../../tutorial/appetite.rst:74 +#, fuzzy msgid "" -"Now that you are all excited about Python, you'll want to examine it in some " -"more detail. Since the best way to learn a language is to use it, the " +"Now that you are all excited about Python, you'll want to examine it in some" +" more detail. Since the best way to learn a language is to use it, the " "tutorial invites you to play with the Python interpreter as you read." msgstr "" +"حالا که شما برای یادگیری Python هیجان زده اید، احتمالاً می خواهید جزئیات " +"بیشتری درباره آن بدانید. از آنجایی که بهترین راه برای یادگیری یک زبان برنامه" +" نویسی استفاده از آن است، این آموزش شما را دعوت می کند تا هنگامی که در حال " +"مطالعه هستید، با \"Python interpreter\" بازی کنید." #: ../../tutorial/appetite.rst:78 +#, fuzzy msgid "" "In the next chapter, the mechanics of using the interpreter are explained. " "This is rather mundane information, but essential for trying out the " "examples shown later." msgstr "" +"در فصل بعدی، مکانیزم استفاده از \"interpreter\" توضیح داده می شود. این " +"اطلاعات شاید ظاهری معمولی داشته باشد، اما برای امتحان کردن مثال هایی که " +"بعداً نشان داده می شوند، ضروری است." #: ../../tutorial/appetite.rst:82 +#, fuzzy msgid "" "The rest of the tutorial introduces various features of the Python language " "and system through examples, beginning with simple expressions, statements " "and data types, through functions and modules, and finally touching upon " "advanced concepts like exceptions and user-defined classes." msgstr "" +"بقیه آموزش از طریق مثال ها به معرفی ویژگی های مختلف زبان و سیستم Python می " +"پردازد، که با عبارات ساده، دستورات و انواع داده آغاز می شود، سپس به توابع و " +"ماژول ها می رسد و در نهایت به بررسی مفاهیم پیشرفته تری چون استثناها و کلاس " +"های تعریف شده توسط کاربر می پردازد." diff --git a/tutorial/classes.po b/tutorial/classes.po index e978d59ad..dbdf190a6 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -14,19 +14,20 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:49+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/classes.rst:5 +#, fuzzy msgid "Classes" -msgstr "" +msgstr "کلاس ها" #: ../../tutorial/classes.rst:7 +#, fuzzy msgid "" "Classes provide a means of bundling data and functionality together. " "Creating a new class creates a new *type* of object, allowing new " @@ -34,8 +35,15 @@ msgid "" "attributes attached to it for maintaining its state. Class instances can " "also have methods (defined by its class) for modifying its state." msgstr "" +"کلاس ها روشی برای بسته بندی داده ها و عملکردها به صورت یکجا ارائه می دهند. " +"ایجاد یک کلاس جدید، نوع جدیدی از شیء را ایجاد می کند که امکان ایجاد نمونه " +"های جدید از آن نوع را فراهم می سازد. هر نمونه از کلاس می تواند دارای ویژگی " +"هایی باشد که برای نگهداری وضعیت آن به آن وصل می شود. نمونه های کلاس همچنین " +"می توانند متدهایی (که توسط کلاس تعریف شده اند) برای تغییر وضعیت خود داشته " +"باشند." #: ../../tutorial/classes.rst:13 +#, fuzzy msgid "" "Compared with other programming languages, Python's class mechanism adds " "classes with a minimum of new syntax and semantics. It is a mixture of the " @@ -48,12 +56,23 @@ msgid "" "nature of Python: they are created at runtime, and can be modified further " "after creation." msgstr "" +"در مقایسه با زبان های برنامه نویسی دیگر، مکانیزم کلاس در پایتون با حداقل نحو" +" و معناشناسی جدید، کلاس ها را اضافه می کند. این مکانیزم ترکیبی از مکانیزم " +"کلاس های موجود در C++ و Modula-3 است. کلاس های پایتون تمامی ویژگی های " +"استاندارد برنامه نویسی شیءگرا را فراهم می کنند: مکانیزم ارث بری کلاس به شما " +"امکان می دهد چندین کلاس پایه داشته باشید، یک کلاس مشتق شده می تواند هر متدی " +"از کلاس یا کلاس های پایه اش را بازنویسی کند و یک متد می تواند متد همنام از " +"کلاس پایه را فراخوانی کند. اشیاء می توانند مقادیر و انواع داده های دلخواهی " +"را در بر داشته باشند. همانطور که برای ماژول ها صادق است، کلاس ها نیز از " +"طبیعت پویا در پایتون بهره می برند: آنها در زمان اجرا ایجاد می شوند و پس از " +"ایجاد شدن می توانند بیشتر اصلاح شوند." #: ../../tutorial/classes.rst:23 +#, fuzzy msgid "" "In C++ terminology, normally class members (including the data members) are " -"*public* (except see below :ref:`tut-private`), and all member functions are " -"*virtual*. As in Modula-3, there are no shorthands for referencing the " +"*public* (except see below :ref:`tut-private`), and all member functions are" +" *virtual*. As in Modula-3, there are no shorthands for referencing the " "object's members from its methods: the method function is declared with an " "explicit first argument representing the object, which is provided " "implicitly by the call. As in Smalltalk, classes themselves are objects. " @@ -63,20 +82,37 @@ msgid "" "(arithmetic operators, subscripting etc.) can be redefined for class " "instances." msgstr "" +"در اصطلاحات C++، به طور معمول اعضای کلاس (از جمله اعضای داده) *public* هستند" +" (به جز موارد زیر :ref:`tut-private`)، و تمام توابع عضو *virtual* هستند. " +"مانند Modula-3، هیچ میانبری برای ارجاع به اعضای شی از روش های آن وجود ندارد:" +" تابع روش با یک آرگومان اول صریح که نمایانگر شی است اعلام می شود، که به طور " +"ضمنی توسط فراخوانی ارائه می شود. مانند Smalltalk، خود کلاس ها اشیاء هستند. " +"این امر معناشناسی برای واردات و تغییر نام را فراهم می کند. برخلاف C++ و " +"Modula-3، انواع داخلی می توانند به عنوان کلاس های پایه برای توسعه توسط کاربر" +" استفاده شوند. همچنین، مانند C++، بیشتر عملگرهای داخلی با نحو خاص (عملگرهای " +"محاسباتی، زیرنویسی و غیره) می توانند برای نمونه های کلاس بازتعریف شوند." #: ../../tutorial/classes.rst:34 +#, fuzzy msgid "" -"(Lacking universally accepted terminology to talk about classes, I will make " -"occasional use of Smalltalk and C++ terms. I would use Modula-3 terms, " +"(Lacking universally accepted terminology to talk about classes, I will make" +" occasional use of Smalltalk and C++ terms. I would use Modula-3 terms, " "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" +"(به دلیل عدم وجود اصطلاحات پذیرفته شده جهانی برای صحبت در مورد کلاس ها، به " +"صورت گهگاه از اصطلاحات Smalltalk و C++ استفاده خواهم کرد. ترجیح می دادم از " +"اصطلاحات Modula-3 استفاده کنم، زیرا معنای شیءگرایی آن به معنای شیءگرایی " +"پایتون نزدیک تر است تا C++، اما انتظار دارم که خوانندگان کمی از آن آگاهی " +"داشته باشند.)" #: ../../tutorial/classes.rst:43 +#, fuzzy msgid "A Word About Names and Objects" -msgstr "" +msgstr "یک کلمه درباره ی نام ها و اشیاء" #: ../../tutorial/classes.rst:45 +#, fuzzy msgid "" "Objects have individuality, and multiple names (in multiple scopes) can be " "bound to the same object. This is known as aliasing in other languages. " @@ -91,12 +127,26 @@ msgid "" "the caller will see the change --- this eliminates the need for two " "different argument passing mechanisms as in Pascal." msgstr "" +"اشیا هویت خاص خود را دارند و چندین نام (در حوزه های مختلف) می توانند به یک " +"شیء واحد متصل شوند. این در زبان های دیگر به عنوان «علیاسینگ» شناخته می شود. " +"این موضوع معمولاً در نگاه اول به پایتون نادیده گرفته می شود و می توان آن را " +"هنگام کار با نوع های پایه غیر قابل تغییر (اعداد، رشته ها، تاپل ها) با " +"اطمینان نادیده گرفت. اما، «علیاسینگ» تأثیر بالقوه ای غیرمنتظره بر معنی کدهای" +" پایتون دارد که شامل اشیای قابل تغییر مانند لیست ها، دیکشنری ها و اکثر انواع" +" دیگر می شود. این مسئله معمولاً به نفع برنامه استفاده می شود، زیرا علیاس ها " +"در برخی جنبه ها مانند اشاره گرها عمل می کنند. به عنوان مثال، ارسال یک شیء " +"بسیار به صرفه است زیرا تنها یک اشاره گر ارسال می شود؛ و اگر تابعی شیء ارسال " +"شده به عنوان آرگومان را تغییر دهد، فراخواننده ی تابع آن تغییر را مشاهده " +"خواهد کرد — این مسئله نیاز به دو مکانیسم مختلف برای ارسال آرگومان مانند " +"پاسکال را از بین می برد." #: ../../tutorial/classes.rst:61 +#, fuzzy msgid "Python Scopes and Namespaces" -msgstr "" +msgstr "حوزه ها و فضای نام در پایتون" #: ../../tutorial/classes.rst:63 +#, fuzzy msgid "" "Before introducing classes, I first have to tell you something about " "Python's scope rules. Class definitions play some neat tricks with " @@ -104,38 +154,65 @@ msgid "" "understand what's going on. Incidentally, knowledge about this subject is " "useful for any advanced Python programmer." msgstr "" +"قبل از معرفی کلاس ها، ابتدا باید در مورد قوانین حوزه در پایتون به شما " +"بگویم. تعریف کلاس ها در فضای نام برخی ترفندهای جالب به کار می برند و برای " +"درک کامل اینکه چه اتفاقی می افتد، باید با چگونگی عملکرد حوزه ها و فضای نام " +"آشنا باشید. به طور اتفاقی، دانش در این موضوع برای هر برنامه نویس پیشرفته ی " +"پایتون مفید است." #: ../../tutorial/classes.rst:69 +#, fuzzy msgid "Let's begin with some definitions." -msgstr "" +msgstr "بیایید با چند تعریف شروع کنیم." #: ../../tutorial/classes.rst:71 +#, fuzzy msgid "" "A *namespace* is a mapping from names to objects. Most namespaces are " "currently implemented as Python dictionaries, but that's normally not " "noticeable in any way (except for performance), and it may change in the " "future. Examples of namespaces are: the set of built-in names (containing " "functions such as :func:`abs`, and built-in exception names); the global " -"names in a module; and the local names in a function invocation. In a sense " -"the set of attributes of an object also form a namespace. The important " +"names in a module; and the local names in a function invocation. In a sense" +" the set of attributes of an object also form a namespace. The important " "thing to know about namespaces is that there is absolutely no relation " "between names in different namespaces; for instance, two different modules " "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" +"یک *namespace* نگاشت نام ها به اشیاء است. بیشتر فضاهای نام در حال حاضر به " +"صورت دیکشنری های پایتون پیاده سازی شده اند، اما این معمولاً به هیچ وجه قابل " +"مشاهده نیست (به جز از نظر عملکردی) و ممکن است در آینده تغییر کند. مثال هایی " +"از فضاهای نام عبارت اند از: مجموعه ای از نام های داخلی (که حاوی توابعی مانند" +" :func:`abs` و نام های استثناء داخلی اند)؛ نام های جهانی در یک ماژول؛ و نام " +"های محلی در فراخوانی یک تابع. به یک معنا، مجموعه ای از ویژگی های یک شیء نیز " +"یک فضای نام تشکیل می دهند. نکته مهم درباره فضاهای نام این است که هیچ رابطه " +"ای بین نام ها در فضاهای نام مختلف وجود ندارد؛ برای مثال، دو ماژول مختلف ممکن" +" است هر دو تابعی به نام ``maximize`` تعریف کنند بدون ایجاد سردرگمی — کاربران" +" این ماژول ها باید آن را با نام ماژول پیشوند کنند." #: ../../tutorial/classes.rst:82 +#, fuzzy msgid "" "By the way, I use the word *attribute* for any name following a dot --- for " "example, in the expression ``z.real``, ``real`` is an attribute of the " "object ``z``. Strictly speaking, references to names in modules are " -"attribute references: in the expression ``modname.funcname``, ``modname`` is " -"a module object and ``funcname`` is an attribute of it. In this case there " -"happens to be a straightforward mapping between the module's attributes and " -"the global names defined in the module: they share the same namespace! [#]_" -msgstr "" +"attribute references: in the expression ``modname.funcname``, ``modname`` is" +" a module object and ``funcname`` is an attribute of it. In this case there" +" happens to be a straightforward mapping between the module's attributes and" +" the global names defined in the module: they share the same namespace! " +"[#]_" +msgstr "" +"در ضمن، من از واژهٔ *attribute* برای هر نامی که پس از نقطه می آید استفاده می" +" کنم --- برای مثال، در عبارت ``z.real``، ``real`` یک ویژگی از شیء ``z`` است." +" به طور دقیق بگوییم، ارجاع به نام ها در ماژول ها ارجاعات ویژگی هستند: در " +"عبارت ``modname.funcname``، ``modname`` یک شیء ماژول است و ``funcname`` یک " +"ویژگی از آن است. در این مورد، یک نگاشت مستقیم بین ویژگی های ماژول و نام های " +"سراسری تعریف شده در ماژول وجود دارد: آن ها فضای نام یکسانی را به اشتراک می " +"گذارند!" #: ../../tutorial/classes.rst:90 +#, fuzzy msgid "" "Attributes may be read-only or writable. In the latter case, assignment to " "attributes is possible. Module attributes are writable: you can write " @@ -144,8 +221,15 @@ msgid "" "remove the attribute :attr:`!the_answer` from the object named by " "``modname``." msgstr "" +"ویژگی ها می توانند فقط خواندنی یا قابل نوشتن باشند. در حالت دوم، می توان به " +"ویژگی ها مقدار داد. ویژگی های ماژول قابل نوشتن هستند: شما می توانید " +"``modname.the_answer = 42`` را بنویسید. ویژگی های قابل نوشتن همچنین می " +"توانند با دستور :keyword:`del` حذف شوند. برای مثال، ``del " +"modname.the_answer`` ویژگی :attr:`!the_answer` را از شیء نام گذاری شده توسط " +"``modname`` حذف خواهد کرد." #: ../../tutorial/classes.rst:96 +#, fuzzy msgid "" "Namespaces are created at different moments and have different lifetimes. " "The namespace containing the built-in names is created when the Python " @@ -153,116 +237,189 @@ msgid "" "module is created when the module definition is read in; normally, module " "namespaces also last until the interpreter quits. The statements executed " "by the top-level invocation of the interpreter, either read from a script " -"file or interactively, are considered part of a module called :mod:" -"`__main__`, so they have their own global namespace. (The built-in names " -"actually also live in a module; this is called :mod:`builtins`.)" -msgstr "" +"file or interactively, are considered part of a module called " +":mod:`__main__`, so they have their own global namespace. (The built-in " +"names actually also live in a module; this is called :mod:`builtins`.)" +msgstr "" +"فضاهای نام در لحظات مختلفی ایجاد می شوند و طول عمر متفاوتی دارند. فضای نام " +"حاوی نام های داخلی وقتی که مفسر پایتون شروع به کار می کند، ایجاد می شود و " +"هرگز حذف نمی شود. فضای نام جهانی برای یک ماژول وقتی که تعریف ماژول خوانده می" +" شود، ایجاد می گردد؛ به طور معمول، فضاهای نام ماژول نیز تا زمانی که مفسر " +"خاتمه یابد، باقی می مانند. دستوراتی که توسط فراخوانی سطح بالای مفسر اجرا می " +"شوند، چه از یک فایل اسکریپت خوانده شوند یا به صورت تعاملی، به عنوان بخشی از " +"یک ماژول به نام :mod:`__main__` در نظر گرفته می شوند، بنابراین فضای نام " +"جهانی خود را دارند. (نام های داخلی در واقع در یک ماژول نیز قرار دارند؛ این " +"ماژول به نام :mod:`builtins` است.)" #: ../../tutorial/classes.rst:106 +#, fuzzy msgid "" "The local namespace for a function is created when the function is called, " "and deleted when the function returns or raises an exception that is not " -"handled within the function. (Actually, forgetting would be a better way to " -"describe what actually happens.) Of course, recursive invocations each have " -"their own local namespace." +"handled within the function. (Actually, forgetting would be a better way to" +" describe what actually happens.) Of course, recursive invocations each " +"have their own local namespace." msgstr "" +"فضای نام محلی برای یک تابع زمانی ایجاد می شود که تابع فراخوانی شود و زمانی " +"که تابع بازگردد یا یک استثنایی رخ دهد که در داخل تابع مدیریت نمی شود، حذف می" +" شود. (در واقع، فراموش کردن راه بهتری برای توصیف چیزی است که واقعاً اتفاق می" +" افتد.) البته، هر فراخوانی بازگشتی فضای نام محلی خاص خود را دارد." #: ../../tutorial/classes.rst:112 +#, fuzzy msgid "" "A *scope* is a textual region of a Python program where a namespace is " -"directly accessible. \"Directly accessible\" here means that an unqualified " -"reference to a name attempts to find the name in the namespace." +"directly accessible. \"Directly accessible\" here means that an unqualified" +" reference to a name attempts to find the name in the namespace." msgstr "" +"ناحیه \"*scope*\" بخشی متنی از یک برنامه پایتون است که در آن یک فضای نام به " +"طور مستقیم قابل دسترسی است. \"به طور مستقیم قابل دسترسی\" به این معنی است که" +" در ارجاعی بدون پیشوند به یک نام، تلاش می شود تا آن نام در فضای نام پیدا " +"شود." #: ../../tutorial/classes.rst:116 +#, fuzzy msgid "" -"Although scopes are determined statically, they are used dynamically. At any " -"time during execution, there are 3 or 4 nested scopes whose namespaces are " +"Although scopes are determined statically, they are used dynamically. At any" +" time during execution, there are 3 or 4 nested scopes whose namespaces are " "directly accessible:" msgstr "" +"اگرچه حوزه ها به صورت ایستا تعیین می شوند، اما به صورت پویا استفاده می شوند." +" در هر زمانی در طول اجرا، ۳ یا ۴ حوزه تو در تو وجود دارد که فضای نام هایشان " +"به طور مستقیم قابل دسترسی است:" #: ../../tutorial/classes.rst:120 +#, fuzzy msgid "the innermost scope, which is searched first, contains the local names" -msgstr "" +msgstr "کوچک ترین محدوده که ابتدا جستجو می شود، شامل نام های محلی است." #: ../../tutorial/classes.rst:121 +#, fuzzy msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" msgstr "" +"دایره های توابع محصورکننده، که جستجو از نزدیک ترین دایره محصورکننده شروع می " +"شود، شامل نام هایی هستند که نه محلی اند و نه سراسری." #: ../../tutorial/classes.rst:123 +#, fuzzy msgid "the next-to-last scope contains the current module's global names" -msgstr "" +msgstr "قلمرو ماقبل آخر شامل نام های سراسری ماژول فعلی است." #: ../../tutorial/classes.rst:124 +#, fuzzy msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" msgstr "" +"بیرونی ترین حوزه (که در پایان جستجو می شود) فضایی از نام ها است که شامل نام " +"های داخلی می باشد." #: ../../tutorial/classes.rst:126 +#, fuzzy msgid "" "If a name is declared global, then all references and assignments go " -"directly to the next-to-last scope containing the module's global names. To " -"rebind variables found outside of the innermost scope, the :keyword:" -"`nonlocal` statement can be used; if not declared nonlocal, those variables " -"are read-only (an attempt to write to such a variable will simply create a " -"*new* local variable in the innermost scope, leaving the identically named " -"outer variable unchanged)." -msgstr "" +"directly to the next-to-last scope containing the module's global names. To" +" rebind variables found outside of the innermost scope, the " +":keyword:`nonlocal` statement can be used; if not declared nonlocal, those " +"variables are read-only (an attempt to write to such a variable will simply " +"create a *new* local variable in the innermost scope, leaving the " +"identically named outer variable unchanged)." +msgstr "" +"اگر نامی به صورت ``global`` اعلام شود، تمام ارجاعات و تخصیص ها به صورت " +"مستقیم به آخرین محدوده ای که شامل نام های سراسری ماژول است، می روند. برای " +"تغییر مقدار متغیرهایی که خارج از محدوده داخلی ترین قرار دارند، می توان از " +"عبارت ``nonlocal`` استفاده کرد؛ اگر به صورت ``nonlocal`` اعلام نشوند، آن " +"متغیرها فقط خواندنی خواهند بود (تلاش برای نوشتن در چنین متغیری به سادگی یک " +"متغیر محلی با نام ``*new*`` را در داخلی ترین محدوده ایجاد می کند و متغیر " +"خارجی با همان نام بدون تغییر باقی می ماند)." #: ../../tutorial/classes.rst:133 +#, fuzzy msgid "" "Usually, the local scope references the local names of the (textually) " "current function. Outside functions, the local scope references the same " "namespace as the global scope: the module's namespace. Class definitions " "place yet another namespace in the local scope." msgstr "" +"به طور معمول، حوزه محلی به نام های محلی تابع (از نظر متنی) جاری اشاره می " +"کند. خارج از توابع، حوزه محلی به همان فضای نامی که حوزه سراسری اشاره دارد، " +"اشاره می کند: فضای نام ماژول. تعریف کلاس ها فضای نام دیگری را در حوزه محلی " +"قرار می دهد." #: ../../tutorial/classes.rst:138 +#, fuzzy msgid "" "It is important to realize that scopes are determined textually: the global " "scope of a function defined in a module is that module's namespace, no " "matter from where or by what alias the function is called. On the other " "hand, the actual search for names is done dynamically, at run time --- " -"however, the language definition is evolving towards static name resolution, " -"at \"compile\" time, so don't rely on dynamic name resolution! (In fact, " +"however, the language definition is evolving towards static name resolution," +" at \"compile\" time, so don't rely on dynamic name resolution! (In fact, " "local variables are already determined statically.)" msgstr "" +"متناظرهای متغیرها به صورت متنی تعیین می شوند: گستره جهانی تابعی که در یک " +"ماژول تعریف شده است، فضای نام آن ماژول است، بدون توجه به اینکه تابع از کجا " +"یا با چه نام مستعاری فراخوانی می شود. از طرف دیگر، جستجوی واقعی برای نام ها " +"به صورت پویا انجام می شود، یعنی در زمان اجرا --- با این حال، تعریف زبان در " +"حال حرکت به سمت حل نام ها به صورت ایستا، در زمان \"کامپایل\" است، بنابراین " +"به حل نام ها به صورت پویا وابسته نباشید! (در واقع، متغیرهای محلی در حال حاضر" +" به صورت ایستا تعیین می شوند.)" #: ../../tutorial/classes.rst:146 +#, fuzzy msgid "" -"A special quirk of Python is that -- if no :keyword:`global` or :keyword:" -"`nonlocal` statement is in effect -- assignments to names always go into the " -"innermost scope. Assignments do not copy data --- they just bind names to " -"objects. The same is true for deletions: the statement ``del x`` removes " -"the binding of ``x`` from the namespace referenced by the local scope. In " -"fact, all operations that introduce new names use the local scope: in " -"particular, :keyword:`import` statements and function definitions bind the " -"module or function name in the local scope." -msgstr "" +"A special quirk of Python is that -- if no :keyword:`global` or " +":keyword:`nonlocal` statement is in effect -- assignments to names always go" +" into the innermost scope. Assignments do not copy data --- they just bind " +"names to objects. The same is true for deletions: the statement ``del x`` " +"removes the binding of ``x`` from the namespace referenced by the local " +"scope. In fact, all operations that introduce new names use the local " +"scope: in particular, :keyword:`import` statements and function definitions " +"bind the module or function name in the local scope." +msgstr "" +"یکی از ویژگی های خاص پایتون این است که اگر هیچ بیانیه ای از نوع " +":keyword:`global` یا :keyword:`nonlocal` وجود نداشته باشد، اختصاص دادن به " +"نام ها همیشه درون محدودترین دامنه اتفاق می افتد. اختصاص دادن ها داده ها را " +"کپی نمی کند --- آنها فقط نام ها را به اشیاء متصل می کنند. همین موضوع درباره " +"ی حذف ها نیز صدق می کند: بیانیه ی ``del x`` اتصال ``x`` را از فضای نامی که " +"توسط دامنه ی محلی ارجاع داده شده است، حذف می کند. در واقع، تمام عملیاتی که " +"نام های جدیدی معرفی می کنند از دامنه ی محلی استفاده می کنند: به ویژه، بیانیه" +" های :keyword:`import` و تعاریف تابع نام ماژول یا تابع را در دامنه ی محلی " +"متصل می کنند." #: ../../tutorial/classes.rst:154 +#, fuzzy msgid "" "The :keyword:`global` statement can be used to indicate that particular " -"variables live in the global scope and should be rebound there; the :keyword:" -"`nonlocal` statement indicates that particular variables live in an " -"enclosing scope and should be rebound there." +"variables live in the global scope and should be rebound there; the " +":keyword:`nonlocal` statement indicates that particular variables live in an" +" enclosing scope and should be rebound there." msgstr "" +"عبارت :keyword:`global` می تواند برای نشان دادن این نکته استفاده شود که " +"متغیرهای خاصی در دامنهٔ جهانی قرار دارند و باید در آنجا دوباره به مقدار " +"دیگری متصل شوند؛ عبارت :keyword:`nonlocal` نشان می دهد که متغیرهای خاصی در " +"یک دامنهٔ محصور قرار دارند و باید در آنجا دوباره به مقدار دیگری متصل شوند." #: ../../tutorial/classes.rst:162 +#, fuzzy msgid "Scopes and Namespaces Example" -msgstr "" +msgstr "مثال هایی از حوزه ها و نام فضاها" #: ../../tutorial/classes.rst:164 +#, fuzzy msgid "" "This is an example demonstrating how to reference the different scopes and " "namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " "variable binding::" msgstr "" +"این یک مثال است که نشان می دهد چگونه به حوزه ها و فضای نام های مختلف ارجاع " +"داده می شود و چگونه :keyword:`global` و :keyword:`nonlocal` بر پیوند متغیر " +"تأثیر می گذارند::" #: ../../tutorial/classes.rst:168 +#, fuzzy msgid "" "def scope_test():\n" " def do_local():\n" @@ -287,52 +444,97 @@ msgid "" "scope_test()\n" "print(\"In global scope:\", spam)" msgstr "" +"```python\n" +"def scope_test():\n" +" def do_local():\n" +" spam = \"local spam\"\n" +"\n" +" def do_nonlocal():\n" +" nonlocal spam\n" +" spam = \"nonlocal spam\"\n" +"\n" +" def do_global():\n" +" global spam\n" +" spam = \"global spam\"\n" +"\n" +" spam = \"test spam\"\n" +" do_local()\n" +" print(\"پس از انتساب محلی:\", spam)\n" +" do_nonlocal()\n" +" print(\"پس از انتساب غیرمحلی:\", spam)\n" +" do_global()\n" +" print(\"پس از انتساب سراسری:\", spam)\n" +"\n" +"scope_test()\n" +"print(\"در حوزه سراسری:\", spam)\n" +"```" #: ../../tutorial/classes.rst:191 +#, fuzzy msgid "The output of the example code is:" -msgstr "" +msgstr "خروجی کد مثال به صورت زیر است:" #: ../../tutorial/classes.rst:193 +#, fuzzy msgid "" "After local assignment: test spam\n" "After nonlocal assignment: nonlocal spam\n" "After global assignment: nonlocal spam\n" "In global scope: global spam" msgstr "" +"پس از انتساب محلی: test spam \n" +"پس از انتساب nonlocal: nonlocal spam \n" +"پس از انتساب جهانی: nonlocal spam \n" +"در دامنه سراسری: global spam " #: ../../tutorial/classes.rst:200 +#, fuzzy msgid "" "Note how the *local* assignment (which is default) didn't change " "*scope_test*\\'s binding of *spam*. The :keyword:`nonlocal` assignment " "changed *scope_test*\\'s binding of *spam*, and the :keyword:`global` " "assignment changed the module-level binding." msgstr "" +"توجه کنید که انتساب *local* (که پیش فرض است) پیوند *scope_test* مربوط به " +"*spam* را تغییر نداد. انتساب :keyword:`nonlocal` پیوند *scope_test* مربوط به" +" *spam* را تغییر داد و انتساب :keyword:`global` پیوند در سطح ماژول را تغییر " +"داد." #: ../../tutorial/classes.rst:205 +#, fuzzy msgid "" -"You can also see that there was no previous binding for *spam* before the :" -"keyword:`global` assignment." +"You can also see that there was no previous binding for *spam* before the " +":keyword:`global` assignment." msgstr "" +"همچنین می توانید ببینید که هیچ پیوند قبلی برای *spam* قبل از تخصیص " +":keyword:`global` وجود نداشت." #: ../../tutorial/classes.rst:212 +#, fuzzy msgid "A First Look at Classes" -msgstr "" +msgstr "نگاهی اولیه به کلاس ها" #: ../../tutorial/classes.rst:214 +#, fuzzy msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." msgstr "" +"کلاس ها مقدار کمی نحو جدید، سه نوع شیء جدید و برخی معناشناسی های جدید را " +"معرفی می کنند." #: ../../tutorial/classes.rst:221 +#, fuzzy msgid "Class Definition Syntax" -msgstr "" +msgstr "نحوه تعریف کلاس" #: ../../tutorial/classes.rst:223 +#, fuzzy msgid "The simplest form of class definition looks like this::" -msgstr "" +msgstr "ساده ترین شکل تعریف کلاس به این صورت است::" #: ../../tutorial/classes.rst:225 +#, fuzzy msgid "" "class ClassName:\n" " \n" @@ -341,62 +543,103 @@ msgid "" " .\n" " " msgstr "" +"کلاس با نام `ClassName`:\n" +" \n" +"````\n" +"<بیانیه-۱>\n" +".\n" +".\n" +".\n" +"<بیانیه-N>\n" +"````" #: ../../tutorial/classes.rst:232 +#, fuzzy msgid "" "Class definitions, like function definitions (:keyword:`def` statements) " "must be executed before they have any effect. (You could conceivably place " "a class definition in a branch of an :keyword:`if` statement, or inside a " "function.)" msgstr "" +"تعاریف کلاس، مانند تعاریف تابع (عبارت های :keyword:`def`) باید قبل از اینکه " +"تأثیری داشته باشند اجرا شوند. (ممکن است بتوانید تعریف یک کلاس را در شاخه ای " +"از یک عبارت :keyword:`if` یا داخل یک تابع قرار دهید.)" #: ../../tutorial/classes.rst:236 +#, fuzzy msgid "" "In practice, the statements inside a class definition will usually be " -"function definitions, but other statements are allowed, and sometimes useful " -"--- we'll come back to this later. The function definitions inside a class " -"normally have a peculiar form of argument list, dictated by the calling " +"function definitions, but other statements are allowed, and sometimes useful" +" --- we'll come back to this later. The function definitions inside a class" +" normally have a peculiar form of argument list, dictated by the calling " "conventions for methods --- again, this is explained later." msgstr "" +"در عمل، بیانیه های درون یک تعریف کلاس معمولاً تعریف توابع هستند، اما سایر " +"بیانیه ها نیز مجاز بوده و گاهی مفید هستند --- به این موضوع بعداً خواهیم " +"پرداخت. تعریف توابع درون یک کلاس معمولاً نوع خاصی از فهرست آرگومان ها را " +"دارند که توسط الگوهای فراخوانی برای متدها تعیین می شود --- این موضوع نیز در " +"ادامه توضیح داده خواهد شد." #: ../../tutorial/classes.rst:242 +#, fuzzy msgid "" "When a class definition is entered, a new namespace is created, and used as " "the local scope --- thus, all assignments to local variables go into this " -"new namespace. In particular, function definitions bind the name of the new " -"function here." +"new namespace. In particular, function definitions bind the name of the new" +" function here." msgstr "" +"زمانی که یک تعریف کلاس وارد می شود، یک فضای نام جدید ایجاد می شود و به عنوان" +" حوزه محلی استفاده می شود — بنابراین، تمامی انتساب ها به متغیرهای محلی به " +"این فضای نام جدید وارد می شوند. به ویژه، تعریف توابع، نام تابع جدید را در " +"اینجا پیوند می کند." #: ../../tutorial/classes.rst:247 +#, fuzzy msgid "" "When a class definition is left normally (via the end), a *class object* is " "created. This is basically a wrapper around the contents of the namespace " -"created by the class definition; we'll learn more about class objects in the " -"next section. The original local scope (the one in effect just before the " +"created by the class definition; we'll learn more about class objects in the" +" next section. The original local scope (the one in effect just before the " "class definition was entered) is reinstated, and the class object is bound " -"here to the class name given in the class definition header (:class:`!" -"ClassName` in the example)." +"here to the class name given in the class definition header " +"(:class:`!ClassName` in the example)." msgstr "" +"زمانی که تعریف یک کلاس به طور عادی (با رسیدن به انتها) خاتمه می یابد، یک " +"*class object* ایجاد می شود. این در واقع یک پوششی پیرامون محتوای فضای نام " +"ایجادشده توسط تعریف کلاس است. ما در بخش بعدی بیشتر درباره اشیاء کلاس خواهیم " +"آموخت. محدوده محلی اصلی (همان که درست قبل از وارد شدن به تعریف کلاس در اثر " +"بود) دوباره برقرار می شود و شیء کلاس در اینجا به نام کلاسی که در سرآیند " +"تعریف کلاس داده شده است (در مثال :class:`!ClassName`) متصل می شود." #: ../../tutorial/classes.rst:259 +#, fuzzy msgid "Class Objects" -msgstr "" +msgstr "اشیاء کلاس ها" #: ../../tutorial/classes.rst:261 +#, fuzzy msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." msgstr "" +"اشیای کلاس از دو نوع عملیات پشتیبانی می کنند: ارجاعات به ویژگی ها و نمونه " +"سازی." #: ../../tutorial/classes.rst:264 +#, fuzzy msgid "" "*Attribute references* use the standard syntax used for all attribute " -"references in Python: ``obj.name``. Valid attribute names are all the names " -"that were in the class's namespace when the class object was created. So, " +"references in Python: ``obj.name``. Valid attribute names are all the names" +" that were in the class's namespace when the class object was created. So, " "if the class definition looked like this::" msgstr "" +"*Attribute references* از نحو استاندارد استفاده کنید که برای همه ارجاعات به " +"ویژگی ها در پایتون استفاده می شود: ``obj.name``. نام های معتبر ویژگی تمام " +"نام هایی هستند که در فضای نام کلاس در زمانی که شی کلاس ایجاد شد وجود داشتند." +" بنابراین، اگر تعریف کلاس به این صورت بود:" #: ../../tutorial/classes.rst:269 +#, fuzzy msgid "" "class MyClass:\n" " \"\"\"A simple example class\"\"\"\n" @@ -405,8 +648,15 @@ msgid "" " def f(self):\n" " return 'hello world'" msgstr "" +"کلاس MyClass:\n" +" \"\"\"یک کلاس مثال ساده\"\"\"\n" +" i = 12345\n" +"\n" +" def f(self):\n" +" return 'hello world'" #: ../../tutorial/classes.rst:276 +#, fuzzy msgid "" "then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " "returning an integer and a function object, respectively. Class attributes " @@ -414,54 +664,89 @@ msgid "" "assignment. :attr:`~type.__doc__` is also a valid attribute, returning the " "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" +"در این صورت، ``MyClass.i`` و ``MyClass.f`` ارجاعات معتبر به ویژگی ها هستند " +"که به ترتیب یک عدد صحیح و یک شیء تابع را برمی گردانند. ویژگی های کلاس نیز می" +" توانند به آنها مقدار داده شود، بنابراین می توانید مقدار ``MyClass.i`` را با" +" اختصاص دادن تغییر دهید. :attr:`~type.__doc__` نیز یک ویژگی معتبر است که " +"رشته توضیحی مربوط به کلاس را برمی گرداند: ``\"A simple example class\"``." #: ../../tutorial/classes.rst:282 +#, fuzzy msgid "" "Class *instantiation* uses function notation. Just pretend that the class " -"object is a parameterless function that returns a new instance of the class. " -"For example (assuming the above class)::" +"object is a parameterless function that returns a new instance of the class." +" For example (assuming the above class)::" msgstr "" +"کلاس *instantiation* از نماد تابع استفاده می کند. فرض کنید که شیء کلاس یک " +"تابع بدون پارامتر است که یک نمونه جدید از کلاس بازمی گرداند. به عنوان مثال " +"(با فرض کلاس فوق):" #: ../../tutorial/classes.rst:286 ../../tutorial/classes.rst:303 +#, fuzzy msgid "x = MyClass()" -msgstr "" +msgstr "```x = MyClass()``` یک نمونه از کلاس ``MyClass`` ایجاد می کند." #: ../../tutorial/classes.rst:288 +#, fuzzy msgid "" "creates a new *instance* of the class and assigns this object to the local " "variable ``x``." msgstr "" +"یک *instance* جدید از کلاس ایجاد می کند و این شیء را به متغیر محلی ``x`` " +"اختصاص می دهد." #: ../../tutorial/classes.rst:291 +#, fuzzy msgid "" "The instantiation operation (\"calling\" a class object) creates an empty " "object. Many classes like to create objects with instances customized to a " -"specific initial state. Therefore a class may define a special method named :" -"meth:`~object.__init__`, like this::" +"specific initial state. Therefore a class may define a special method named " +":meth:`~object.__init__`, like this::" msgstr "" +"عملیات نمونه سازی (پراخوانی یک شیء کلاس) یک شیء خالی ایجاد می کند. بسیاری از" +" کلاس ها علاقه دارند تا اشیاء با نمونه هایی که به یک حالت اولیه خاص سفارشی " +"شده اند، ایجاد شوند. بنابراین یک کلاس می تواند یک متد ویژه به نام " +":meth:`~object.__init__` تعریف کند، به این صورت:" #: ../../tutorial/classes.rst:296 +#, fuzzy msgid "" "def __init__(self):\n" " self.data = []" msgstr "" +"```python\n" +"def __init__(self):\n" +" self.data = []\n" +"```\n" +"\n" +"از این تابع برای مقداردهی اولیه به یک شیء جدید استفاده می شود. در اینجا، ویژگی `data` به عنوان یک لیست خالی تعریف شده است." #: ../../tutorial/classes.rst:299 +#, fuzzy msgid "" -"When a class defines an :meth:`~object.__init__` method, class instantiation " -"automatically invokes :meth:`!__init__` for the newly created class " +"When a class defines an :meth:`~object.__init__` method, class instantiation" +" automatically invokes :meth:`!__init__` for the newly created class " "instance. So in this example, a new, initialized instance can be obtained " "by::" msgstr "" +"وقتی یک کلاس متد :meth:`~object.__init__` را تعریف می کند، ایجاد یک نمونه از" +" کلاس به صورت خودکار :meth:`!__init__` را برای نمونه ی تازه ایجاد شده " +"فراخوانی می کند. بنابراین در این مثال، یک نمونه ی جدید و مقداردهی شده به این" +" صورت می تواند به دست بیاید::" #: ../../tutorial/classes.rst:305 +#, fuzzy msgid "" "Of course, the :meth:`~object.__init__` method may have arguments for " "greater flexibility. In that case, arguments given to the class " "instantiation operator are passed on to :meth:`!__init__`. For example, ::" msgstr "" +"البته، متد :meth:`~object.__init__` ممکن است برای انعطاف پذیری بیشتر دارای " +"آرگومان هایی باشد. در این صورت، آرگومان های داده شده به عملگر ایجاد کلاس به " +":meth:`!__init__` منتقل می شوند. به عنوان مثال: ::" #: ../../tutorial/classes.rst:309 +#, fuzzy msgid "" ">>> class Complex:\n" "... def __init__(self, realpart, imagpart):\n" @@ -472,19 +757,35 @@ msgid "" ">>> x.r, x.i\n" "(3.0, -4.5)" msgstr "" +"```python\n" +">>> class Complex:\n" +"... def __init__(self, realpart, imagpart):\n" +"... self.r = realpart\n" +"... self.i = imagpart\n" +"...\n" +">>> x = Complex(3.0, -4.5)\n" +">>> x.r, x.i\n" +"(3.0, -4.5)\n" +"```" #: ../../tutorial/classes.rst:322 +#, fuzzy msgid "Instance Objects" -msgstr "" +msgstr "اشیای نمونه" #: ../../tutorial/classes.rst:324 +#, fuzzy msgid "" -"Now what can we do with instance objects? The only operations understood by " -"instance objects are attribute references. There are two kinds of valid " +"Now what can we do with instance objects? The only operations understood by" +" instance objects are attribute references. There are two kinds of valid " "attribute names: data attributes and methods." msgstr "" +"حالا با اشیاء نمونه چه کاری می توانیم انجام دهیم؟ تنها عملیاتی که توسط اشیاء" +" نمونه قابل فهم است، ارجاعات به ویژگی ها است. دو نوع نام ویژگی معتبر وجود " +"دارد: ویژگی های داده ای و متدها." #: ../../tutorial/classes.rst:328 +#, fuzzy msgid "" "*data attributes* correspond to \"instance variables\" in Smalltalk, and to " "\"data members\" in C++. Data attributes need not be declared; like local " @@ -493,8 +794,15 @@ msgid "" "following piece of code will print the value ``16``, without leaving a " "trace::" msgstr "" +"*data attributes* معادل \"متغیرهای نمونه\" در Smalltalk و \"اعضای داده\" در " +"C++ می باشد. ویژگی های داده نیازی به اعلام شدن ندارند؛ درست مانند متغیرهای " +"محلی، هنگامی که برای اولین بار به آنها مقدار اختصاص داده می شود، وجود می " +"یابند. به عنوان مثال، اگر ``x`` نمونه ای از :class:`!MyClass` است که در بالا" +" ایجاد شده، قطعه کد زیر مقدار ``16`` را چاپ خواهد کرد، بدون آنکه هیچ اثری " +"بگذارد::" #: ../../tutorial/classes.rst:334 +#, fuzzy msgid "" "x.counter = 1\n" "while x.counter < 10:\n" @@ -502,14 +810,25 @@ msgid "" "print(x.counter)\n" "del x.counter" msgstr "" +"```python\n" +"x.counter = 1\n" +"while x.counter < 10:\n" +" x.counter = x.counter * 2\n" +"print(x.counter)\n" +"del x.counter\n" +"```" #: ../../tutorial/classes.rst:340 +#, fuzzy msgid "" "The other kind of instance attribute reference is a *method*. A method is a " "function that \"belongs to\" an object." msgstr "" +"نوع دیگری از ارجاع به صفت شیء، «*method*» است. یک متد تابعی است که به یک شیء" +" \"تعلق دارد\"." #: ../../tutorial/classes.rst:345 +#, fuzzy msgid "" "Valid method names of an instance object depend on its class. By " "definition, all attributes of a class that are function objects define " @@ -518,82 +837,127 @@ msgid "" "not, since ``MyClass.i`` is not. But ``x.f`` is not the same thing as " "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" +"نام های معتبر متد در یک شیء نمونه به کلاس آن بستگی دارد. بر اساس تعریف، تمام" +" ویژگی های یک کلاس که اشیای تابع هستند، متدهای متناظر با نمونه های آن را " +"تعریف می کنند. بنابراین در مثال ما، ``x.f`` یک ارجاع معتبر به متد است، زیرا " +"``MyClass.f`` یک تابع است، اما ``x.i`` معتبر نیست، زیرا ``MyClass.i`` یک " +"تابع نیست. اما ``x.f`` با ``MyClass.f`` یکسان نیست --- این یک *method " +"object* است، نه یک شیء تابع." #: ../../tutorial/classes.rst:356 +#, fuzzy msgid "Method Objects" -msgstr "" +msgstr "اشیاء متد" #: ../../tutorial/classes.rst:358 +#, fuzzy msgid "Usually, a method is called right after it is bound::" -msgstr "" +msgstr "معمولاً یک متد بلافاصله پس از این که متصل می شود فراخوانی می شود::" #: ../../tutorial/classes.rst:360 +#, fuzzy msgid "x.f()" -msgstr "" +msgstr "x.f()" #: ../../tutorial/classes.rst:362 +#, fuzzy msgid "" "In the :class:`!MyClass` example, this will return the string ``'hello " "world'``. However, it is not necessary to call a method right away: ``x.f`` " "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" +"در مثال :class:`!MyClass`، این کد رشته ``'hello world'`` را برمی گرداند. با " +"این حال، لازم نیست یک متد را بلافاصله فراخوانی کنید: ``x.f`` یک شیء متد است " +"و می تواند ذخیره شده و در زمانی دیگر فراخوانی شود. برای مثال::" #: ../../tutorial/classes.rst:366 +#, fuzzy msgid "" "xf = x.f\n" "while True:\n" " print(xf())" msgstr "" +"\n" +"``xf = x.f`` \n" +"در حالی که ``True`` است: \n" +"    ``print(xf())`` " #: ../../tutorial/classes.rst:370 +#, fuzzy msgid "will continue to print ``hello world`` until the end of time." -msgstr "" +msgstr "تا پایان زمان به چاپ ``hello world`` ادامه خواهد داد." #: ../../tutorial/classes.rst:372 +#, fuzzy msgid "" -"What exactly happens when a method is called? You may have noticed that ``x." -"f()`` was called without an argument above, even though the function " +"What exactly happens when a method is called? You may have noticed that " +"``x.f()`` was called without an argument above, even though the function " "definition for :meth:`!f` specified an argument. What happened to the " -"argument? Surely Python raises an exception when a function that requires an " -"argument is called without any --- even if the argument isn't actually " +"argument? Surely Python raises an exception when a function that requires an" +" argument is called without any --- even if the argument isn't actually " "used..." msgstr "" +"وقتی یک متد فراخوانی می شود دقیقاً چه اتفاقی می افتد؟ شما ممکن است متوجه شده" +" باشید که ``x.f()`` در بالا بدون آرگومان فراخوانی شد، حتی اگر تعریف تابع " +":meth:`!f` یک آرگومان را مشخص کرده بود. چه اتفاقی برای آرگومان افتاد؟ قطعاً " +"پایتون یک استثنا ایجاد می کند زمانی که تابعی که به آرگومان نیاز دارد بدون " +"هیچ آرگومانی فراخوانی شود --- حتی اگر آن آرگومان واقعاً استفاده نشود..." #: ../../tutorial/classes.rst:378 +#, fuzzy msgid "" "Actually, you may have guessed the answer: the special thing about methods " -"is that the instance object is passed as the first argument of the " -"function. In our example, the call ``x.f()`` is exactly equivalent to " -"``MyClass.f(x)``. In general, calling a method with a list of *n* arguments " -"is equivalent to calling the corresponding function with an argument list " +"is that the instance object is passed as the first argument of the function." +" In our example, the call ``x.f()`` is exactly equivalent to " +"``MyClass.f(x)``. In general, calling a method with a list of *n* arguments" +" is equivalent to calling the corresponding function with an argument list " "that is created by inserting the method's instance object before the first " "argument." msgstr "" +"در واقع، ممکن است پاسخ را حدس زده باشید: نکته خاص در مورد متدها این است که " +"شیء نمونه به عنوان اولین آرگومان تابع ارسال می شود. در مثال ما، فراخوانی " +"``x.f()`` دقیقا معادل ``MyClass.f(x)`` است. به طور کلی، فراخوانی یک متد با " +"لیستی از آرگومان های *n* معادل فراخوانی تابع مربوطه با لیستی از آرگومان ها " +"است که با وارد کردن شیء نمونه متد قبل از اولین آرگومان ایجاد می شود." #: ../../tutorial/classes.rst:385 +#, fuzzy msgid "" "In general, methods work as follows. When a non-data attribute of an " "instance is referenced, the instance's class is searched. If the name " "denotes a valid class attribute that is a function object, references to " "both the instance object and the function object are packed into a method " "object. When the method object is called with an argument list, a new " -"argument list is constructed from the instance object and the argument list, " -"and the function object is called with this new argument list." +"argument list is constructed from the instance object and the argument list," +" and the function object is called with this new argument list." msgstr "" +"به طور کلی، روش ها به صورت زیر عمل می کنند. وقتی یک ویژگی غیر داده ای از یک " +"نمونه مورد ارجاع قرار می گیرد، کلاس مربوط به آن نمونه جستجو می شود. اگر نام " +"ویژگی نشان دهنده یک ویژگی معتبر کلاس باشد که یک آبجکت تابع است، ارجاعات به " +"هر دو، آبجکت نمونه و آبجکت تابع، در یک آبجکت متدی بسته بندی می شوند. وقتی که" +" آبجکت متد با یک لیست از آرگومان ها فراخوانی می شود، یک لیست جدید از آرگومان" +" ها از آبجکت نمونه و لیست آرگومان ها ساخته شده و آبجکت تابع با این لیست جدید" +" آرگومان ها فراخوانی می شود." #: ../../tutorial/classes.rst:398 +#, fuzzy msgid "Class and Instance Variables" -msgstr "" +msgstr "متغیرهای کلاس و نمونه" #: ../../tutorial/classes.rst:400 +#, fuzzy msgid "" "Generally speaking, instance variables are for data unique to each instance " "and class variables are for attributes and methods shared by all instances " "of the class::" msgstr "" +"به طور کلی، متغیرهای نمونه برای داده هایی که به هر نمونه خاص تعلق دارند، " +"استفاده می شوند و متغیرهای کلاس برای ویژگی ها و متدهایی که توسط تمام نمونه " +"های آن کلاس به اشتراک گذاشته می شوند، به کار می روند::" #: ../../tutorial/classes.rst:404 +#, fuzzy msgid "" "class Dog:\n" "\n" @@ -613,8 +977,26 @@ msgid "" ">>> e.name # unique to e\n" "'Buddy'" msgstr "" +"کلاس `Dog`:\n" +"\n" +"    kind = 'canine'     # متغیر کلاس که توسط همه نمونه ها به اشتراک گذاشته می شود\n" +"\n" +"    def __init__(self, name):\n" +"        self.name = name     # متغیر نمونه که برای هر نمونه منحصر به فرد است\n" +"\n" +">>> d = `Dog`('Fido')\n" +">>> e = `Dog`('Buddy')\n" +">>> `d.kind` # به اشتراک گذاشته شده توسط همه سگ ها\n" +"'canine'\n" +">>> `e.kind` # به اشتراک گذاشته شده توسط همه سگ ها\n" +"'canine'\n" +">>> `d.name` # منحصر به فرد برای d\n" +"'Fido'\n" +">>> `e.name` # منحصر به فرد برای e\n" +"'Buddy'" #: ../../tutorial/classes.rst:422 +#, fuzzy msgid "" "As discussed in :ref:`tut-object`, shared data can have possibly surprising " "effects with involving :term:`mutable` objects such as lists and " @@ -622,8 +1004,14 @@ msgid "" "not be used as a class variable because just a single list would be shared " "by all *Dog* instances::" msgstr "" +"همانطور که در :ref:`tut-object` مورد بحث قرار گرفت، داده های مشترک می توانند" +" اثرات شگفت آوری با درگیر کردن اشیاء :term:`mutable` مانند لیست ها و دیکشنری" +" ها داشته باشند. به عنوان مثال، لیست *tricks* در کد زیر نباید به عنوان یک " +"متغیر کلاس استفاده شود زیرا تنها یک لیست توسط تمام نمونه های *Dog* به اشتراک" +" گذاشته می شود::" #: ../../tutorial/classes.rst:428 +#, fuzzy msgid "" "class Dog:\n" "\n" @@ -642,12 +1030,30 @@ msgid "" ">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" msgstr "" +"کلاس Dog:\n" +"\n" +"```tricks``` = [] # استفاده اشتباه از یک متغیر کلاسی\n" +"\n" +"```def __init__(self, name):```\n" +"```self.name = name```\n" +"\n" +"```def add_trick(self, trick):```\n" +"```self.tricks.append(trick)```\n" +"\n" +"```>>> d = Dog('Fido')```\n" +"```>>> e = Dog('Buddy')```\n" +"```>>> d.add_trick('roll over')```\n" +"```>>> e.add_trick('play dead')```\n" +"```>>> d.tricks # به طور غیرمنتظره ای بین تمام سگ ها به اشتراک گذاشته می شود```\n" +"['roll over', 'play dead']" #: ../../tutorial/classes.rst:445 +#, fuzzy msgid "Correct design of the class should use an instance variable instead::" -msgstr "" +msgstr "طراحی صحیح کلاس باید به جای آن از یک متغیر نمونه استفاده کند::" #: ../../tutorial/classes.rst:447 +#, fuzzy msgid "" "class Dog:\n" "\n" @@ -667,18 +1073,42 @@ msgid "" ">>> e.tricks\n" "['play dead']" msgstr "" +"کلاس Dog:\n" +"\n" +"```python\n" +" def __init__(self, name):\n" +" self.name = name\n" +" self.tricks = [] # ایجاد یک لیست خالی جدید برای هر سگ\n" +"\n" +" def add_trick(self, trick):\n" +" self.tricks.append(trick)\n" +"\n" +">>> d = Dog('Fido')\n" +">>> e = Dog('Buddy')\n" +">>> d.add_trick('roll over')\n" +">>> e.add_trick('play dead')\n" +">>> d.tricks\n" +"['roll over']\n" +">>> e.tricks\n" +"['play dead']\n" +"```" #: ../../tutorial/classes.rst:469 +#, fuzzy msgid "Random Remarks" -msgstr "" +msgstr "نکات تصادفی" #: ../../tutorial/classes.rst:473 +#, fuzzy msgid "" "If the same attribute name occurs in both an instance and in a class, then " "attribute lookup prioritizes the instance::" msgstr "" +"اگر نام صفتی هم در یک نمونه و هم در یک کلاس تکرار شود، جستجوی صفت ابتدا " +"نمونه را در اولویت قرار می دهد::" #: ../../tutorial/classes.rst:476 +#, fuzzy msgid "" ">>> class Warehouse:\n" "... purpose = 'storage'\n" @@ -692,54 +1122,100 @@ msgid "" ">>> print(w2.purpose, w2.region)\n" "storage east" msgstr "" +"```پایتون\n" +">>> class Warehouse:\n" +"... purpose = 'storage'\n" +"... region = 'west'\n" +"...\n" +">>> w1 = Warehouse()\n" +">>> print(w1.purpose, w1.region)\n" +"storage west\n" +">>> w2 = Warehouse()\n" +">>> w2.region = 'east'\n" +">>> print(w2.purpose, w2.region)\n" +"storage east\n" +"```" #: ../../tutorial/classes.rst:488 +#, fuzzy msgid "" "Data attributes may be referenced by methods as well as by ordinary users " "(\"clients\") of an object. In other words, classes are not usable to " "implement pure abstract data types. In fact, nothing in Python makes it " "possible to enforce data hiding --- it is all based upon convention. (On " -"the other hand, the Python implementation, written in C, can completely hide " -"implementation details and control access to an object if necessary; this " +"the other hand, the Python implementation, written in C, can completely hide" +" implementation details and control access to an object if necessary; this " "can be used by extensions to Python written in C.)" msgstr "" +"ویژگی های داده می توانند توسط متدها و همچنین کاربران عادی (\"کلاینت ها\") یک" +" شیء مورد اشاره قرار گیرند. به عبارت دیگر، کلاس ها قابل استفاده برای پیاده " +"سازی انواع داده های کاملاً انتزاعی نیستند. در واقع، هیچ چیزی در پایتون وجود " +"ندارد که امکان پنهان سازی داده ها را به صورت اجباری فراهم کند --- این موضوع " +"کاملاً بر اساس قرارداد است. (از سوی دیگر، پیاده سازی پایتون که به زبان C " +"نوشته شده، می تواند جزئیات پیاده سازی را به طور کامل پنهان کند و در صورت " +"لزوم دسترسی به یک شیء را کنترل نماید؛ این قابلیت می تواند توسط افزونه های " +"نوشته شده به زبان C برای پایتون استفاده شود.)" #: ../../tutorial/classes.rst:496 +#, fuzzy msgid "" "Clients should use data attributes with care --- clients may mess up " "invariants maintained by the methods by stamping on their data attributes. " -"Note that clients may add data attributes of their own to an instance object " -"without affecting the validity of the methods, as long as name conflicts are " -"avoided --- again, a naming convention can save a lot of headaches here." +"Note that clients may add data attributes of their own to an instance object" +" without affecting the validity of the methods, as long as name conflicts " +"are avoided --- again, a naming convention can save a lot of headaches here." msgstr "" +"مشتری ها باید با احتیاط از ویژگی های داده استفاده کنند --- مشتری ها ممکن است" +" با تغییر دادن ویژگی های داده ای، قوانین ثابتی که توسط متدها حفظ می شوند را " +"خراب کنند. توجه داشته باشید که مشتری ها می توانند بدون تحت تأثیر قرار دادن " +"اعتبار متدها، ویژگی های داده ای خود را به یک شیء نمونه اضافه کنند، مادامی که" +" از تداخل اسامی جلوگیری شود --- باز هم، یک قرارداد نام گذاری می تواند بسیاری" +" از مشکلات را در اینجا برطرف کند." #: ../../tutorial/classes.rst:502 +#, fuzzy msgid "" "There is no shorthand for referencing data attributes (or other methods!) " -"from within methods. I find that this actually increases the readability of " -"methods: there is no chance of confusing local variables and instance " +"from within methods. I find that this actually increases the readability of" +" methods: there is no chance of confusing local variables and instance " "variables when glancing through a method." msgstr "" +"هیچ روش کوتاه تری برای ارجاع به ویژگی های داده ها (یا روش های دیگر!) از داخل" +" متدها وجود ندارد. من معتقدم که این موضوع در واقع خوانایی متدها را افزایش می" +" دهد: هنگامی که نگاهی سریع به یک متد می کنیم، هیچ احتمالی برای اشتباه گرفتن " +"متغیرهای محلی و متغیرهای نمونه وجود ندارد." #: ../../tutorial/classes.rst:507 +#, fuzzy msgid "" "Often, the first argument of a method is called ``self``. This is nothing " "more than a convention: the name ``self`` has absolutely no special meaning " "to Python. Note, however, that by not following the convention your code " -"may be less readable to other Python programmers, and it is also conceivable " -"that a *class browser* program might be written that relies upon such a " +"may be less readable to other Python programmers, and it is also conceivable" +" that a *class browser* program might be written that relies upon such a " "convention." msgstr "" +"اغلباً، اولین آرگومان یک متد ``self`` نامیده می شود. این موضوع چیزی جز یک " +"عرف نیست: نام ``self`` به هیچ عنوان برای پایتون معنای خاصی ندارد. اما توجه " +"داشته باشید که با رعایت نکردن این عرف، کد شما ممکن است برای دیگر برنامه " +"نویسان پایتون کمتر قابل خواندن باشد و همچنین ممکن است یک برنامه *class " +"browser* نوشته شود که به چنین عُرفی وابسته باشد." #: ../../tutorial/classes.rst:513 +#, fuzzy msgid "" -"Any function object that is a class attribute defines a method for instances " -"of that class. It is not necessary that the function definition is " -"textually enclosed in the class definition: assigning a function object to a " -"local variable in the class is also ok. For example::" +"Any function object that is a class attribute defines a method for instances" +" of that class. It is not necessary that the function definition is " +"textually enclosed in the class definition: assigning a function object to a" +" local variable in the class is also ok. For example::" msgstr "" +"هر شیء تابع که یک ویژگی کلاس باشد، یک متد برای نمونه های آن کلاس تعریف می " +"کند. ضروری نیست که تعریف تابع به صورت متنی در تعریف کلاس قرار داشته باشد: " +"اختصاص دادن یک شیء تابع به یک متغیر محلی در کلاس نیز مجاز است. به عنوان " +"مثال::" #: ../../tutorial/classes.rst:518 +#, fuzzy msgid "" "# Function defined outside the class\n" "def f1(self, x, y):\n" @@ -753,22 +1229,42 @@ msgid "" "\n" " h = g" msgstr "" +"# تابعی که خارج از کلاس تعریف شده است\n" +"def f1(self, x, y):\n" +" return min(x, x+y)\n" +"\n" +"class C:\n" +" f = f1\n" +"\n" +" def g(self):\n" +" return 'hello world'\n" +"\n" +" h = g" #: ../../tutorial/classes.rst:530 +#, fuzzy msgid "" "Now ``f``, ``g`` and ``h`` are all attributes of class :class:`!C` that " "refer to function objects, and consequently they are all methods of " "instances of :class:`!C` --- ``h`` being exactly equivalent to ``g``. Note " "that this practice usually only serves to confuse the reader of a program." msgstr "" +"اکنون ``f``، ``g`` و ``h`` همگی ویژگی های کلاس :class:`!C` هستند که به اشیاء" +" تابع اشاره می کنند و در نتیجه همگی روش ها (متدها)ی نمونه های :class:`!C` " +"هستند --- و ``h`` کاملاً معادل ``g`` است. توجه داشته باشید که این رویکرد " +"معمولاً فقط برای خواننده برنامه گیج کننده است." #: ../../tutorial/classes.rst:535 +#, fuzzy msgid "" "Methods may call other methods by using method attributes of the ``self`` " "argument::" msgstr "" +"روش ها می توانند با استفاده از ویژگی های متدی از آرگومان ``self``، متدهای " +"دیگر را فراخوانی کنند::" #: ../../tutorial/classes.rst:538 +#, fuzzy msgid "" "class Bag:\n" " def __init__(self):\n" @@ -781,8 +1277,19 @@ msgid "" " self.add(x)\n" " self.add(x)" msgstr "" +"کلاس `Bag`:\n" +" \n" +" `def __init__(self):`\n" +" این یک تابع سازنده است که یک لیست خالی به نام `data` ایجاد می کند.\n" +" \n" +" `def add(self, x):`\n" +" این تابع مقدار `x` را به لیست `data` اضافه می کند.\n" +"\n" +" `def addtwice(self, x):`\n" +" این تابع مقدار `x` را دو بار به لیست `data` اضافه می کند. در اینجا، از تابع `add` دو بار استفاده می شود." #: ../../tutorial/classes.rst:549 +#, fuzzy msgid "" "Methods may reference global names in the same way as ordinary functions. " "The global scope associated with a method is the module containing its " @@ -791,28 +1298,46 @@ msgid "" "legitimate uses of the global scope: for one thing, functions and modules " "imported into the global scope can be used by methods, as well as functions " "and classes defined in it. Usually, the class containing the method is " -"itself defined in this global scope, and in the next section we'll find some " -"good reasons why a method would want to reference its own class." -msgstr "" +"itself defined in this global scope, and in the next section we'll find some" +" good reasons why a method would want to reference its own class." +msgstr "" +"متدها می توانند به همان شیوه ای که توابع عادی به نام های سراسری ارجاع می " +"دهند، به نام های سراسری دسترسی داشته باشند. دامنه سراسری مرتبط با یک متد، " +"ماژولی است که تعریف آن را در بر دارد. (یک کلاس هرگز به عنوان دامنه سراسری " +"استفاده نمی شود.) اگرچه بندرت دلیلی خوب برای استفاده از داده های سراسری در " +"یک متد وجود دارد، اما استفاده های موجه فراوانی برای دامنه سراسری وجود دارد: " +"به عنوان مثال، توابع و ماژول هایی که در دامنه سراسری وارد شده اند، می توانند" +" توسط متدها، و همچنین توابع و کلاس های تعریف شده در آن استفاده شوند. به طور " +"معمول، کلاسی که متد را در خود دارد، خود در این دامنه سراسری تعریف شده است و " +"در بخش بعدی، دلایل خوبی خواهیم یافت که چرا یک متد ممکن است بخواهد به کلاس " +"خودش ارجاع دهد." #: ../../tutorial/classes.rst:559 +#, fuzzy msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." msgstr "" +"هر مقدار یک شیء است و به همین دلیل دارای یک *class* (که به آن *type* نیز " +"گفته می شود) است. این مقدار به صورت ``object.__class__`` ذخیره می شود." #: ../../tutorial/classes.rst:566 +#, fuzzy msgid "Inheritance" -msgstr "" +msgstr "وراثت" #: ../../tutorial/classes.rst:568 +#, fuzzy msgid "" "Of course, a language feature would not be worthy of the name \"class\" " "without supporting inheritance. The syntax for a derived class definition " "looks like this::" msgstr "" +"البته، یک ویژگی زبان بدون پشتیبانی از ارث بری شایسته نام \"کلاس\" نخواهد " +"بود. سینتکس تعریف یک کلاس مشتق شده به این شکل است::" #: ../../tutorial/classes.rst:572 +#, fuzzy msgid "" "class DerivedClassName(BaseClassName):\n" " \n" @@ -821,30 +1346,49 @@ msgid "" " .\n" " " msgstr "" +"کلاس `DerivedClassName` که از `BaseClassName` ارث بری می کند:\n" +" <بیانیه-۱>\n" +" .\n" +" .\n" +" .\n" +" <بیانیه-N>" #: ../../tutorial/classes.rst:579 +#, fuzzy msgid "" "The name :class:`!BaseClassName` must be defined in a namespace accessible " "from the scope containing the derived class definition. In place of a base " "class name, other arbitrary expressions are also allowed. This can be " "useful, for example, when the base class is defined in another module::" msgstr "" +"نام :class:`!BaseClassName` باید در یک فضای نام که از حوزه ای که تعریف کلاس " +"مشتق را شامل می شود، قابل دسترسی باشد. به جای نام کلاس پایه، سایر عبارات " +"دلخواه نیز مجاز هستند. به عنوان مثال، این مورد می تواند زمانی مفید باشد که " +"کلاس پایه در ماژول دیگری تعریف شده باشد:" #: ../../tutorial/classes.rst:585 +#, fuzzy msgid "class DerivedClassName(modname.BaseClassName):" -msgstr "" +msgstr "کلاس `DerivedClassName(modname.BaseClassName):`" #: ../../tutorial/classes.rst:587 +#, fuzzy msgid "" "Execution of a derived class definition proceeds the same as for a base " "class. When the class object is constructed, the base class is remembered. " -"This is used for resolving attribute references: if a requested attribute is " -"not found in the class, the search proceeds to look in the base class. This " -"rule is applied recursively if the base class itself is derived from some " -"other class." +"This is used for resolving attribute references: if a requested attribute is" +" not found in the class, the search proceeds to look in the base class. " +"This rule is applied recursively if the base class itself is derived from " +"some other class." msgstr "" +"اجرای تعریف یک کلاس مشتق شده به همان روشی که برای یک کلاس پایه انجام می شود،" +" پیش می رود. هنگامی که شیء کلاس ساخته می شود، کلاس پایه در حافظه نگه داشته " +"می شود. این موضوع برای حل ارجاعات ویژگی ها استفاده می شود: اگر یک ویژگی " +"درخواست شده در کلاس یافت نشود، جست وجو به کلاس پایه منتقل می شود. این قاعده " +"به صورت بازگشتی اعمال می شود اگر خود کلاس پایه از کلاس دیگری مشتق شده باشد." #: ../../tutorial/classes.rst:593 +#, fuzzy msgid "" "There's nothing special about instantiation of derived classes: " "``DerivedClassName()`` creates a new instance of the class. Method " @@ -852,56 +1396,91 @@ msgid "" "searched, descending down the chain of base classes if necessary, and the " "method reference is valid if this yields a function object." msgstr "" +"در نمونه سازی از کلاس های مشتق گرفته شده هیچ چیز ویژه ای وجود ندارد: با " +"``DerivedClassName()`` یک نمونه جدید از کلاس ایجاد می شود. ارجاع به متدها به" +" صورت زیر حل می شوند: ابتدا ویژگی کلاس مربوطه جستجو می شود، و در صورت لزوم " +"به سمت پایین زنجیره کلاس های پایه می رود، و ارجاع به متد معتبر است اگر در " +"نهایت یک شیء تابع به دست آید." #: ../../tutorial/classes.rst:599 +#, fuzzy msgid "" -"Derived classes may override methods of their base classes. Because methods " -"have no special privileges when calling other methods of the same object, a " -"method of a base class that calls another method defined in the same base " +"Derived classes may override methods of their base classes. Because methods" +" have no special privileges when calling other methods of the same object, a" +" method of a base class that calls another method defined in the same base " "class may end up calling a method of a derived class that overrides it. " "(For C++ programmers: all methods in Python are effectively ``virtual``.)" msgstr "" +"کلاس های مشتق شده ممکن است متدهای کلاس های پایه خود را بازنویسی کنند. از " +"آنجایی که متدها هنگام فراخوانی سایر متدها از همان شیء هیچ گونه امتیاز ویژه " +"ای ندارند، متدی از یک کلاس پایه که متد دیگری را که در همان کلاس پایه تعریف " +"شده است فراخوانی می کند ممکن است در نهایت یک متدی از کلاس مشتق شده که آن را " +"بازنویسی کرده است فراخوانی کند. (برای برنامه نویسان C++: تمام متدها در " +"پایتون به صورت ``virtual`` عمل می کنند.)" #: ../../tutorial/classes.rst:605 +#, fuzzy msgid "" "An overriding method in a derived class may in fact want to extend rather " "than simply replace the base class method of the same name. There is a " -"simple way to call the base class method directly: just call ``BaseClassName." -"methodname(self, arguments)``. This is occasionally useful to clients as " -"well. (Note that this only works if the base class is accessible as " -"``BaseClassName`` in the global scope.)" -msgstr "" +"simple way to call the base class method directly: just call " +"``BaseClassName.methodname(self, arguments)``. This is occasionally useful " +"to clients as well. (Note that this only works if the base class is " +"accessible as ``BaseClassName`` in the global scope.)" +msgstr "" +"ممکن است یک متد بازنویسی شده در یک کلاس مشتق بخواهد که به جای اینکه فقط متد " +"کلاس پایه با همان نام را جایگزین کند، آن را گسترش دهد. یک روش ساده برای " +"فراخوانی مستقیم متد کلاس پایه وجود دارد: تنها کافی است " +"``BaseClassName.methodname(self, arguments)`` را فراخوانی کنید. این روش گاهی" +" اوقات برای کاربران نیز مفید است. (توجه داشته باشید که این فقط در صورتی کار " +"می کند که کلاس پایه به عنوان ``BaseClassName`` در دامنه ی جهانی قابل دسترسی " +"باشد.)" #: ../../tutorial/classes.rst:612 +#, fuzzy msgid "Python has two built-in functions that work with inheritance:" -msgstr "" +msgstr "پایتون دارای دو تابع داخلی است که با وراثت کار می کنند:" #: ../../tutorial/classes.rst:614 +#, fuzzy msgid "" -"Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)`` " -"will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " +"Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)``" +" will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " "derived from :class:`int`." msgstr "" +"از :func:`isinstance` برای بررسی نوع یک نمونه استفاده کنید: " +"``isinstance(obj, int)`` تنها زمانی ``True`` خواهد بود که ``obj.__class__`` " +"برابر با :class:`int` یا یک کلاس مشتق شده از :class:`int` باشد." #: ../../tutorial/classes.rst:618 +#, fuzzy msgid "" -"Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)`` " -"is ``True`` since :class:`bool` is a subclass of :class:`int`. However, " +"Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)``" +" is ``True`` since :class:`bool` is a subclass of :class:`int`. However, " "``issubclass(float, int)`` is ``False`` since :class:`float` is not a " "subclass of :class:`int`." msgstr "" +"برای بررسی وراثت کلاس از :func:`issubclass` استفاده کنید: ``issubclass(bool," +" int)`` یک ``True`` است زیرا :class:`bool` زیرکلاسی از :class:`int` است. " +"اما، ``issubclass(float, int)`` یک ``False`` نیست زیرا :class:`float` " +"زیرکلاسی از :class:`int` نیست." #: ../../tutorial/classes.rst:628 +#, fuzzy msgid "Multiple Inheritance" -msgstr "" +msgstr "وراثت چندگانه" #: ../../tutorial/classes.rst:630 +#, fuzzy msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" msgstr "" +"پایتون از یک نوع وراثت چندگانه نیز پشتیبانی می کند. تعریف یک کلاس با چند " +"کلاس پایه به این صورت است::" #: ../../tutorial/classes.rst:633 +#, fuzzy msgid "" "class DerivedClassName(Base1, Base2, Base3):\n" " \n" @@ -910,19 +1489,34 @@ msgid "" " .\n" " " msgstr "" +"کلاس `DerivedClassName` (پایه1، پایه2، پایه3):\n" +" <دستورا لعمل-۱>\n" +" .\n" +" .\n" +" .\n" +" <دستورا لعمل-N>" #: ../../tutorial/classes.rst:640 +#, fuzzy msgid "" "For most purposes, in the simplest cases, you can think of the search for " "attributes inherited from a parent class as depth-first, left-to-right, not " "searching twice in the same class where there is an overlap in the " -"hierarchy. Thus, if an attribute is not found in :class:`!DerivedClassName`, " -"it is searched for in :class:`!Base1`, then (recursively) in the base " +"hierarchy. Thus, if an attribute is not found in :class:`!DerivedClassName`," +" it is searched for in :class:`!Base1`, then (recursively) in the base " "classes of :class:`!Base1`, and if it was not found there, it was searched " "for in :class:`!Base2`, and so on." msgstr "" +"برای اکثر اهداف، در ساده ترین حالت ها، می توانید جستجو برای ویژگی هایی که از" +" یک کلاس والد به ارث می رسند را به صورت عمق-اول، از چپ به راست در نظر " +"بگیرید، به طوری که در همان کلاسی که در سلسله مراتب همپوشانی وجود دارد، دوبار" +" جستجو نمی شود. بنابراین، اگر یک ویژگی در `:class:`!DerivedClassName`` پیدا " +"نشود، در `:class:`!Base1`` جستجو می شود، سپس (به صورت بازگشتی) در کلاس های " +"پایه `:class:`!Base1`` و اگر در آنجا پیدا نشد، در `:class:`!Base2`` و به " +"همین ترتیب جستجو می شود." #: ../../tutorial/classes.rst:647 +#, fuzzy msgid "" "In fact, it is slightly more complex than that; the method resolution order " "changes dynamically to support cooperative calls to :func:`super`. This " @@ -930,8 +1524,14 @@ msgid "" "method and is more powerful than the super call found in single-inheritance " "languages." msgstr "" +"در واقع، این موضوع کمی پیچیده تر از این است؛ ترتیب اولویت روش ها به صورت " +"پویا تغییر می کند تا از فراخوانی های هماهنگ به `:func:`super`` پشتیبانی کند." +" این رویکرد در برخی زبان های با ارث بری چندگانه به عنوان call-next-method " +"شناخته می شود و از فراخوانی super که در زبان های با ارث بری تکگانه یافت می " +"شود، قدرتمندتر است." #: ../../tutorial/classes.rst:653 +#, fuzzy msgid "" "Dynamic ordering is necessary because all cases of multiple inheritance " "exhibit one or more diamond relationships (where at least one of the parent " @@ -946,46 +1546,81 @@ msgid "" "properties make it possible to design reliable and extensible classes with " "multiple inheritance. For more detail, see :ref:`python_2.3_mro`." msgstr "" +"ترتیب دهی پویا ضروری است زیرا همه موارد وراثت چندگانه یک یا چند رابطه الماسی" +" را نشان می دهند (که در آن حداقل یکی از کلاس های والد می تواند از طریق " +"مسیرهای متعدد از کلاس پایین تر دسترسی پیدا کند). به عنوان مثال، همه کلاس ها " +"از `:class:`object`` ارث می برند، بنابراین هر مورد از وراثت چندگانه بیش از " +"یک مسیر برای رسیدن به `:class:`object`` فراهم می کند. برای جلوگیری از دسترسی" +" به کلاس های پایه بیش از یک بار، الگوریتم پویا ترتیب جستجو را به صورت خطی و " +"به گونه ای تنظیم می کند که ترتیب چپ به راست مشخص شده در هر کلاس را حفظ کند، " +"هر والد را تنها یک بار صدا بزند و یکنواخت باشد (به این معنی که یک کلاس می " +"تواند بدون تأثیر بر ترتیب اولویت والدین زیرکلاس شود). با هم، این ویژگی ها " +"امکان طراحی کلاس های قابل اعتماد و قابل توسعه با وراثت چندگانه را فراهم می " +"سازند. برای جزئیات بیشتر، به `:ref:`python_2.3_mro`` مراجعه کنید." #: ../../tutorial/classes.rst:670 +#, fuzzy msgid "Private Variables" -msgstr "" +msgstr "متغیرهای خصوصی" #: ../../tutorial/classes.rst:672 +#, fuzzy msgid "" -"\"Private\" instance variables that cannot be accessed except from inside an " -"object don't exist in Python. However, there is a convention that is " +"\"Private\" instance variables that cannot be accessed except from inside an" +" object don't exist in Python. However, there is a convention that is " "followed by most Python code: a name prefixed with an underscore (e.g. " "``_spam``) should be treated as a non-public part of the API (whether it is " "a function, a method or a data member). It should be considered an " "implementation detail and subject to change without notice." msgstr "" +"در پایتون، متغیرهای نمونه «خصوصی» که نمی توان به آنها دسترسی داشت مگر از " +"داخل یک شی، وجود ندارند. با این حال، یک قاعده وجود دارد که بیشتر کدهای " +"پایتون از آن پیروی می کنند: نامی که با یک زیرخط (مانند ``_spam``) شروع می " +"شود، باید به عنوان بخشی غیرعمومی از API در نظر گرفته شود (چه این نام یک " +"تابع، یک روش یا یک عضو داده باشد). این باید به عنوان جزئیات پیاده سازی در " +"نظر گرفته شود و ممکن است بدون اطلاع قبلی تغییر کند." #: ../../tutorial/classes.rst:682 +#, fuzzy msgid "" "Since there is a valid use-case for class-private members (namely to avoid " "name clashes of names with names defined by subclasses), there is limited " "support for such a mechanism, called :dfn:`name mangling`. Any identifier " "of the form ``__spam`` (at least two leading underscores, at most one " "trailing underscore) is textually replaced with ``_classname__spam``, where " -"``classname`` is the current class name with leading underscore(s) " -"stripped. This mangling is done without regard to the syntactic position of " -"the identifier, as long as it occurs within the definition of a class." -msgstr "" +"``classname`` is the current class name with leading underscore(s) stripped." +" This mangling is done without regard to the syntactic position of the " +"identifier, as long as it occurs within the definition of a class." +msgstr "" +"از آنجایی که کاربرد معتبری برای اعضای خصوصی کلاس وجود دارد (یعنی جلوگیری از " +"تداخل نام ها با نام هایی که توسط زیرکلاس ها تعریف می شوند)، پشتیبانی محدودی " +"برای این مکانیزم، که به آن :dfn:`تغییر نام` گفته می شود، وجود دارد. هر شناسه" +" ای از فرم ``__spam`` (که حداقل شامل دو زیرخط در ابتدا و حداکثر یک زیرخط در " +"انتها باشد) به صورت متنی با ``_classname__spam`` جایگزین می شود، که در اینجا" +" ``classname`` نام کلاس جاری با حذف زیرخط های ابتدایی است. این تغییر نام " +"بدون توجه به موقعیت نحوی شناسه انجام می شود، تا زمانی که در تعریف یک کلاس " +"ظاهر شود." #: ../../tutorial/classes.rst:693 +#, fuzzy msgid "" "The :ref:`private name mangling specifications ` for " "details and special cases." msgstr "" +":ref:`private name mangling specifications ` برای " +"جزئیات و موارد خاص." #: ../../tutorial/classes.rst:696 +#, fuzzy msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" msgstr "" +"نام گذاری مبهم برای این مفید است که به زیرکلاس ها اجازه دهد تا متدها را بدون" +" خراب کردن فراخوانی های متد داخل کلاس، بازنویسی کنند. برای مثال:" #: ../../tutorial/classes.rst:699 +#, fuzzy msgid "" "class Mapping:\n" " def __init__(self, iterable):\n" @@ -1006,24 +1641,52 @@ msgid "" " for item in zip(keys, values):\n" " self.items_list.append(item)" msgstr "" +"کلاس `Mapping`:\n" +" تعریف `__init__` (خود، تکراری):\n" +" خود.لیست_آیتم ها = []\n" +" خود.__به روزرسانی(تکراری)\n" +"\n" +" تعریف به روزرسانی(self, iterable):\n" +" برای آیتم در تکراری:\n" +" خود.لیست_آیتم ها.اضافه کردن(آیتم)\n" +"\n" +" __به روزرسانی = به روزرسانی # نسخه کپی خصوصی از روش اصلی به روزرسانی()\n" +"\n" +"کلاس `MappingSubclass` (`Mapping`):\n" +"\n" +" تعریف به روزرسانی(خود، کلیدها، مقادیر):\n" +" # امضای جدیدی برای به روزرسانی فراهم می کند\n" +" # اما ملاک `__init__()` را نمی شکند\n" +" برای آیتم در `zip(keys, values)`:\n" +" خود.لیست_آیتم ها.اضافه کردن(آیتم)" #: ../../tutorial/classes.rst:718 +#, fuzzy msgid "" -"The above example would work even if ``MappingSubclass`` were to introduce a " -"``__update`` identifier since it is replaced with ``_Mapping__update`` in " +"The above example would work even if ``MappingSubclass`` were to introduce a" +" ``__update`` identifier since it is replaced with ``_Mapping__update`` in " "the ``Mapping`` class and ``_MappingSubclass__update`` in the " "``MappingSubclass`` class respectively." msgstr "" +"نمونه ی بالا حتی اگر ``MappingSubclass`` یک شناسه ی ``__update`` معرفی کند " +"نیز کار خواهد کرد، زیرا به ترتیب در کلاس ``Mapping`` با ``_Mapping__update``" +" و در کلاس ``MappingSubclass`` با ``_MappingSubclass__update`` جایگزین می " +"شود." #: ../../tutorial/classes.rst:723 +#, fuzzy msgid "" "Note that the mangling rules are designed mostly to avoid accidents; it " -"still is possible to access or modify a variable that is considered " -"private. This can even be useful in special circumstances, such as in the " -"debugger." +"still is possible to access or modify a variable that is considered private." +" This can even be useful in special circumstances, such as in the debugger." msgstr "" +"توجه داشته باشید که قوانین \"mangling\" عمدتاً برای جلوگیری از تصادفات طراحی" +" شده اند؛ همچنان ممکن است که بتوان به یک متغیر که خصوصی در نظر گرفته شده است" +" دسترسی پیدا کرد یا آن را تغییر داد. این مورد می تواند در شرایط خاص، مثل " +"مواقعی که به دیباگر نیاز است، مفید باشد." #: ../../tutorial/classes.rst:727 +#, fuzzy msgid "" "Notice that code passed to ``exec()`` or ``eval()`` does not consider the " "classname of the invoking class to be the current class; this is similar to " @@ -1032,19 +1695,31 @@ msgid "" "applies to ``getattr()``, ``setattr()`` and ``delattr()``, as well as when " "referencing ``__dict__`` directly." msgstr "" +"توجه داشته باشید که کدی که به ```exec()``` یا ```eval()``` ارسال می شود، " +"classname کلاس فراخوانی را به عنوان کلاس جاری در نظر نمی گیرد؛ این مشابه اثر" +" دستور ```global``` است که اثر آن نیز به کدی محدود می شود که به صورت بایت " +"کامپایل شده با هم است. همین محدودیت برای ```getattr()```، ```setattr()``` و " +"```delattr()``` نیز اعمال می شود، و همچنین وقتی که مستقیم به ```__dict__``` " +"ارجاع داده می شود." #: ../../tutorial/classes.rst:738 +#, fuzzy msgid "Odds and Ends" -msgstr "" +msgstr "ریز و درشت ها" #: ../../tutorial/classes.rst:740 +#, fuzzy msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " "or C \"struct\", bundling together a few named data items. The idiomatic " "approach is to use :mod:`dataclasses` for this purpose::" msgstr "" +"گاهی اوقات مفید است که یک نوع داده ای مشابه با \"record\" در زبان پاسکال یا " +"\"struct\" در زبان C داشته باشیم که چندین مورد داده نام گذاری شده را با هم " +"گروه بندی کند. روش ایدئال استفاده از :mod:`dataclasses` برای این منظور است::" #: ../../tutorial/classes.rst:744 +#, fuzzy msgid "" "from dataclasses import dataclass\n" "\n" @@ -1054,8 +1729,12 @@ msgid "" " dept: str\n" " salary: int" msgstr "" +"از ماژول `dataclasses`، کلاس `Employee` با استفاده از دکوراتور `@dataclass` " +"تعریف شده است. این کلاس شامل سه ویژگی به نام های `name`، `dept` و `salary` " +"است که به ترتیب از نوع داده ای `str`، `str` و `int` هستند." #: ../../tutorial/classes.rst:754 +#, fuzzy msgid "" ">>> john = Employee('john', 'computer lab', 1000)\n" ">>> john.dept\n" @@ -1063,36 +1742,58 @@ msgid "" ">>> john.salary\n" "1000" msgstr "" +">>> جان = Employee('john', 'computer lab', 1000)\n" +">>> جان.dept\n" +"'computer lab'\n" +">>> جان.salary\n" +"1000" #: ../../tutorial/classes.rst:760 +#, fuzzy msgid "" "A piece of Python code that expects a particular abstract data type can " -"often be passed a class that emulates the methods of that data type " -"instead. For instance, if you have a function that formats some data from a " -"file object, you can define a class with methods :meth:`~io.TextIOBase.read` " -"and :meth:`~io.TextIOBase.readline` that get the data from a string buffer " +"often be passed a class that emulates the methods of that data type instead." +" For instance, if you have a function that formats some data from a file " +"object, you can define a class with methods :meth:`~io.TextIOBase.read` and " +":meth:`~io.TextIOBase.readline` that get the data from a string buffer " "instead, and pass it as an argument." msgstr "" +"یک قطعه کد پایتون که انتظار یک نوع داده انتزاعی خاصی را دارد، اغلب می تواند " +"به جای آن از یک کلاس که متدهای آن نوع داده را شبیه سازی می کند، استفاده کند." +" به عنوان مثال، اگر تابعی دارید که برخی از داده ها را از یک شی فایل قالب " +"بندی می کند، می توانید کلاسی با متدهای :meth:`~io.TextIOBase.read` و " +":meth:`~io.TextIOBase.readline` تعریف کنید که داده ها را به جای آن از یک " +"بافر رشته ای دریافت کند و آن را به عنوان یک آرگومان ارسال کند." #: ../../tutorial/classes.rst:772 +#, fuzzy msgid "" -":ref:`Instance method objects ` have attributes, too: :" -"attr:`m.__self__ ` is the instance object with the method :" -"meth:`!m`, and :attr:`m.__func__ ` is the :ref:`function " +":ref:`Instance method objects ` have attributes, too: " +":attr:`m.__self__ ` is the instance object with the method " +":meth:`!m`, and :attr:`m.__func__ ` is the :ref:`function " "object ` corresponding to the method." msgstr "" +":ref:`Instance method objects ` نیز ویژگی هایی دارند: " +":attr:`m.__self__ ` شیء نمونه به همراه متد :meth:`!m` است و" +" :attr:`m.__func__ ` برابر است با :ref:`function object " +"` مربوط به آن متد." #: ../../tutorial/classes.rst:782 +#, fuzzy msgid "Iterators" -msgstr "" +msgstr "ایتریتورها" #: ../../tutorial/classes.rst:784 +#, fuzzy msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" msgstr "" +"احتمالاً تا به حال متوجه شده اید که اکثر اشیاء کانتینر را می توان با استفاده" +" از عبارت `for` مرور کرد:" #: ../../tutorial/classes.rst:787 +#, fuzzy msgid "" "for element in [1, 2, 3]:\n" " print(element)\n" @@ -1105,21 +1806,52 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end='')" msgstr "" +"```python\n" +"for element in [1, 2, 3]:\n" +" print(element)\n" +"for element in (1, 2, 3):\n" +" print(element)\n" +"for key in {'one':1, 'two':2}:\n" +" print(key)\n" +"for char in \"123\":\n" +" print(char)\n" +"for line in open(\"myfile.txt\"):\n" +" print(line, end='')\n" +"``` \n" +"\n" +"برای تکرار بر روی المان های لیستی مانند `[1, 2, 3]` از حلقه `for` استفاده می شود و هر المان به وسیله `print` چاپ می شود. به طور مشابه، این امر برای تاپل ها مانند `(1, 2, 3)` نیز انجام می گیرد. \n" +"\n" +"در عبارت دیکشنری `{'one':1, 'two':2}`، حلقه `for` بر روی کلیدها تکرار می کند و هر کلید به وسیله `print` نمایش داده می شود.\n" +"\n" +"برای رشته ها مانند `\"123\"`، حلقه `for` از طریق هر کاراکتر تکرار می کند و نتیجه هر کاراکتر به وسیله `print` چاپ می شود.\n" +"\n" +"در مورد فایل ها، حلقه `for` می تواند بر روی هر خط در فایل باز شده با نام \"myfile.txt\" تکرار کند و هر خط را با `print` همراه با حذف خط پایانی پیش فرض چاپ کند." #: ../../tutorial/classes.rst:798 +#, fuzzy msgid "" "This style of access is clear, concise, and convenient. The use of " -"iterators pervades and unifies Python. Behind the scenes, the :keyword:" -"`for` statement calls :func:`iter` on the container object. The function " -"returns an iterator object that defines the method :meth:`~iterator." -"__next__` which accesses elements in the container one at a time. When " -"there are no more elements, :meth:`~iterator.__next__` raises a :exc:" -"`StopIteration` exception which tells the :keyword:`!for` loop to " -"terminate. You can call the :meth:`~iterator.__next__` method using the :" -"func:`next` built-in function; this example shows how it all works::" -msgstr "" +"iterators pervades and unifies Python. Behind the scenes, the " +":keyword:`for` statement calls :func:`iter` on the container object. The " +"function returns an iterator object that defines the method " +":meth:`~iterator.__next__` which accesses elements in the container one at a" +" time. When there are no more elements, :meth:`~iterator.__next__` raises a" +" :exc:`StopIteration` exception which tells the :keyword:`!for` loop to " +"terminate. You can call the :meth:`~iterator.__next__` method using the " +":func:`next` built-in function; this example shows how it all works::" +msgstr "" +"این سبک دسترسی واضح، مختصر و راحت است. استفاده از تکرارگرها در پایتون گسترده" +" و یکپارچه است. در پشت صحنه، دستور :keyword:`for`، :func:`iter` را روی شیء " +"کانتینر فراخوانی می کند. این تابع یک شیء تکرارگر را برمی گرداند که متد " +":meth:`~iterator.__next__` را تعریف می کند و عناصر درون کانتینر را یکی یکی " +"دسترسی می دهد. زمانی که دیگر عنصری باقی نمانده باشد، " +":meth:`~iterator.__next__` یک استثنای :exc:`StopIteration` را مطرح می کند که" +" به حلقه :keyword:`!for` می گوید پایان یابد. شما می توانید متد " +":meth:`~iterator.__next__` را با استفاده از تابع ساخته شده :func:`next` " +"فراخوانی کنید؛ این مثال نشان می دهد که چگونه همه ی اینها کار می کند::" #: ../../tutorial/classes.rst:807 +#, fuzzy msgid "" ">>> s = 'abc'\n" ">>> it = iter(s)\n" @@ -1137,17 +1869,41 @@ msgid "" " next(it)\n" "StopIteration" msgstr "" +"```python\n" +">>> s = 'abc'\n" +">>> it = iter(s)\n" +">>> it\n" +"\n" +">>> next(it)\n" +"'a'\n" +">>> next(it)\n" +"'b'\n" +">>> next(it)\n" +"'c'\n" +">>> next(it)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" next(it)\n" +"StopIteration\n" +"```" #: ../../tutorial/classes.rst:823 +#, fuzzy msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " "iterator behavior to your classes. Define an :meth:`~container.__iter__` " -"method which returns an object with a :meth:`~iterator.__next__` method. If " -"the class defines :meth:`!__next__`, then :meth:`!__iter__` can just return " -"``self``::" +"method which returns an object with a :meth:`~iterator.__next__` method. If" +" the class defines :meth:`!__next__`, then :meth:`!__iter__` can just return" +" ``self``::" msgstr "" +"اکنون که با مکانیزم های پشت پروتکل iterator آشنا شده اید، افزودن رفتار " +"iterator به کلاس هایتان آسان است. یک متد :meth:`~container.__iter__` تعریف " +"کنید که یک شیء با متد :meth:`~iterator.__next__` برگرداند. اگر کلاس " +":meth:`!__next__` را تعریف کند، در آن صورت :meth:`!__iter__` می تواند تنها " +"``self`` را برگرداند::" #: ../../tutorial/classes.rst:828 +#, fuzzy msgid "" "class Reverse:\n" " \"\"\"Iterator for looping over a sequence backwards.\"\"\"\n" @@ -1164,8 +1920,23 @@ msgid "" " self.index = self.index - 1\n" " return self.data[self.index]" msgstr "" +"کلاس Reverse:\n" +" \"\"\"یک تکرارگر برای پیمایش معکوس بر روی یک دنباله.\"\"\"\n" +" def __init__(self, data):\n" +" self.data = data\n" +" self.index = len(data)\n" +"\n" +" def __iter__(self):\n" +" return self\n" +"\n" +" def __next__(self):\n" +" اگر self.index به 0 برسد:\n" +" یک استثناء StopIteration ایجاد کن\n" +" self.index را به اندازه یک واحد کم کن\n" +" بازگردان data[self.index] را" #: ../../tutorial/classes.rst:845 +#, fuzzy msgid "" ">>> rev = Reverse('spam')\n" ">>> iter(rev)\n" @@ -1178,29 +1949,61 @@ msgid "" "p\n" "s" msgstr "" +">>> rev = Reverse('spam')\n" +">>> iter(rev)\n" +"<__main__.Reverse object at 0x00A1DB50>\n" +">>> for char in rev:\n" +"... print(char)\n" +"...\n" +"m\n" +"a\n" +"p\n" +"s" #: ../../tutorial/classes.rst:860 +#, fuzzy msgid "Generators" -msgstr "" +msgstr "مولدها" #: ../../tutorial/classes.rst:862 +#, fuzzy msgid "" ":term:`Generators ` are a simple and powerful tool for creating " -"iterators. They are written like regular functions but use the :keyword:" -"`yield` statement whenever they want to return data. Each time :func:`next` " -"is called on it, the generator resumes where it left off (it remembers all " -"the data values and which statement was last executed). An example shows " -"that generators can be trivially easy to create::" -msgstr "" +"iterators. They are written like regular functions but use the " +":keyword:`yield` statement whenever they want to return data. Each time " +":func:`next` is called on it, the generator resumes where it left off (it " +"remembers all the data values and which statement was last executed). An " +"example shows that generators can be trivially easy to create::" +msgstr "" +":term:`Generators ` ابزاری ساده و قدرتمند برای ایجاد iterator ها " +"هستند. آن ها مثل توابع معمولی نوشته می شوند اما هر زمان که بخواهند داده ای " +"بازگردانند، از دستور :keyword:`yield` استفاده می کنند. هر بار که " +":func:`next` روی آن فراخوانی می شود، generator از جایی که متوقف شده بود " +"ادامه می دهد (تمام مقادیر داده و این که کدام دستور آخرین بار اجرا شده را به " +"خاطر می سپارد). یک مثال نشان می دهد که generator ها می توانند به راحتی ساخته" +" شوند::" #: ../../tutorial/classes.rst:869 +#, fuzzy msgid "" "def reverse(data):\n" " for index in range(len(data)-1, -1, -1):\n" " yield data[index]" msgstr "" +"```python\n" +"def reverse(data):\n" +" for index in range(len(data)-1, -1, -1):\n" +" yield data[index]\n" +"```\n" +"\n" +"```farsi\n" +"def reverse(data):\n" +" برای index در بازه range(len(data)-1, -1, -1):\n" +" yield data[index]\n" +"```\n" #: ../../tutorial/classes.rst:875 +#, fuzzy msgid "" ">>> for char in reverse('golf'):\n" "... print(char)\n" @@ -1210,50 +2013,85 @@ msgid "" "o\n" "g" msgstr "" +"```python\n" +">>> for char in reverse('گلف'):\n" +"... print(char)\n" +"...\n" +"ف\n" +"ل\n" +"و\n" +"گ\n" +"```" #: ../../tutorial/classes.rst:883 +#, fuzzy msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " -"compact is that the :meth:`~iterator.__iter__` and :meth:`~generator." -"__next__` methods are created automatically." +"compact is that the :meth:`~iterator.__iter__` and " +":meth:`~generator.__next__` methods are created automatically." msgstr "" +"هر چیزی که بتوان با تولیدکننده ها انجام داد، می توان با استفاده از " +"تکرارگرهای مبتنی بر کلاس که در بخش قبلی توضیح داده شد، نیز انجام داد. آنچه " +"که تولیدکننده ها را این چنین فشرده می کند این است که متدهای " +"``:meth:`~iterator.__iter__``` و ``:meth:`~generator.__next__``` به صورت " +"خودکار ایجاد می شوند." #: ../../tutorial/classes.rst:888 +#, fuzzy msgid "" "Another key feature is that the local variables and execution state are " "automatically saved between calls. This made the function easier to write " -"and much more clear than an approach using instance variables like ``self." -"index`` and ``self.data``." +"and much more clear than an approach using instance variables like " +"``self.index`` and ``self.data``." msgstr "" +"ویژگی کلیدی دیگر این است که متغیرهای محلی و وضعیت اجرای برنامه به صورت " +"خودکار بین فراخوانی ها ذخیره می شوند. این امر نوشتن تابع را ساده تر و بسیار " +"واضح تر از رویکردی با استفاده از متغیرهای نمونه ای مانند ``self.index`` و " +"``self.data`` می کند." #: ../../tutorial/classes.rst:893 +#, fuzzy msgid "" "In addition to automatic method creation and saving program state, when " "generators terminate, they automatically raise :exc:`StopIteration`. In " "combination, these features make it easy to create iterators with no more " "effort than writing a regular function." msgstr "" +"علاوه بر ایجاد خودکار روش ها و ذخیره وضعیت برنامه، هنگامی که ژنراتورها خاتمه" +" می یابند، به طور خودکار `:exc:`StopIteration`` را به وجود می آورند. این " +"ویژگی ها در کنار هم، ایجاد پیمایش گرها را به همان اندازه ساده می سازند که یک" +" تابع معمولی را می نویسید." #: ../../tutorial/classes.rst:902 +#, fuzzy msgid "Generator Expressions" -msgstr "" +msgstr "تعبیرات مولد" #: ../../tutorial/classes.rst:904 +#, fuzzy msgid "" -"Some simple generators can be coded succinctly as expressions using a syntax " -"similar to list comprehensions but with parentheses instead of square " +"Some simple generators can be coded succinctly as expressions using a syntax" +" similar to list comprehensions but with parentheses instead of square " "brackets. These expressions are designed for situations where the generator " -"is used right away by an enclosing function. Generator expressions are more " -"compact but less versatile than full generator definitions and tend to be " +"is used right away by an enclosing function. Generator expressions are more" +" compact but less versatile than full generator definitions and tend to be " "more memory friendly than equivalent list comprehensions." msgstr "" +"برخی تولیدکننده های ساده را می توان به صورت عبارت هایی مختصر با استفاده از " +"نحوی مشابه comprehension لیست ها ولی با پرانتز به جای کروشه ها نوشت. این " +"عبارت ها برای موقعیت هایی طراحی شده اند که تولیدکننده بلافاصله توسط یک تابع " +"محصور مورد استفاده قرار می گیرد. عبارت های تولیدکننده از نظر نوشتاری جمع " +"وجورتر هستند ولی تنوع کمتری نسبت به تعریف کامل تولیدکننده ها دارند و معمولاً" +" از نظر حافظه بهینه تر از لیست comprehensionهای معادل عمل می کنند." #: ../../tutorial/classes.rst:911 +#, fuzzy msgid "Examples::" -msgstr "" +msgstr "مثال ها::" #: ../../tutorial/classes.rst:913 +#, fuzzy msgid "" ">>> sum(i*i for i in range(10)) # sum of squares\n" "285\n" @@ -1265,19 +2103,37 @@ msgid "" "\n" ">>> unique_words = set(word for line in page for word in line.split())\n" "\n" -">>> valedictorian = max((student.gpa, student.name) for student in " -"graduates)\n" +">>> valedictorian = max((student.gpa, student.name) for student in graduates)\n" "\n" ">>> data = 'golf'\n" ">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" "['f', 'l', 'o', 'g']" msgstr "" +"```python\n" +">>> sum(i*i for i in range(10)) # sum of squares\n" +"285\n" +"\n" +">>> xvec = [10, 20, 30]\n" +">>> yvec = [7, 5, 3]\n" +">>> sum(x*y for x,y in zip(xvec, yvec)) # محاسبه حاصلضرب نقطه ای\n" +"260\n" +"\n" +">>> unique_words = set(word for line in page for word in line.split()) # کلمات یکتا\n" +"\n" +">>> valedictorian = max((student.gpa, student.name) for student in graduates) # پیدا کردن دانش آموز برتر\n" +"\n" +">>> data = 'golf'\n" +">>> list(data[i] for i in range(len(data)-1, -1, -1)) # برعکس کردن داده ها\n" +"['f', 'l', 'o', 'g']\n" +"```" #: ../../tutorial/classes.rst:932 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "یادداشت ها" #: ../../tutorial/classes.rst:933 +#, fuzzy msgid "" "Except for one thing. Module objects have a secret read-only attribute " "called :attr:`~object.__dict__` which returns the dictionary used to " @@ -1286,19 +2142,28 @@ msgid "" "namespace implementation, and should be restricted to things like post-" "mortem debuggers." msgstr "" +"به جز یک مورد. اشیاء ماژول دارای یک ویژگی مخفی و فقط خواندنی به نام " +":attr:`~object.__dict__` هستند که دیکشنری استفاده شده برای پیاده سازی فضای " +"نام ماژول را بازمی گرداند؛ نام ``__dict__`` یک ویژگی است اما یک نام سراسری " +"نیست. مشخص است که استفاده از این ویژگی نقض انتزاع پیاده سازی فضای نام است و " +"باید به مواردی مانند اشکال زدایی پس از مرگ محدود شود." #: ../../tutorial/classes.rst:343 +#, fuzzy msgid "object" -msgstr "" +msgstr "شیء" #: ../../tutorial/classes.rst:343 +#, fuzzy msgid "method" -msgstr "" +msgstr "متد" #: ../../tutorial/classes.rst:679 +#, fuzzy msgid "name" -msgstr "" +msgstr "نام" #: ../../tutorial/classes.rst:679 +#, fuzzy msgid "mangling" -msgstr "" +msgstr "مخفی سازی نام" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 6f0bcf01b..1b8637459 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -14,35 +14,41 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/controlflow.rst:5 +#, fuzzy msgid "More Control Flow Tools" -msgstr "" +msgstr "ابزارهای کنترل جریان بیشتر" #: ../../tutorial/controlflow.rst:7 +#, fuzzy msgid "" -"As well as the :keyword:`while` statement just introduced, Python uses a few " -"more that we will encounter in this chapter." +"As well as the :keyword:`while` statement just introduced, Python uses a few" +" more that we will encounter in this chapter." msgstr "" +"علاوه بر عبارت :keyword:`while` که به تازگی معرفی شد، پایتون از چند عبارت " +"دیگر نیز استفاده می کند که در این فصل با آن ها روبرو خواهیم شد." #: ../../tutorial/controlflow.rst:14 +#, fuzzy msgid ":keyword:`!if` Statements" -msgstr "" +msgstr "بیانیه های :keyword:`!if`" #: ../../tutorial/controlflow.rst:16 +#, fuzzy msgid "" "Perhaps the most well-known statement type is the :keyword:`if` statement. " "For example::" -msgstr "" +msgstr "شاید مشهورترین نوع گزاره، گزاره :keyword:`if` باشد. برای مثال::" #: ../../tutorial/controlflow.rst:19 +#, fuzzy msgid "" ">>> x = int(input(\"Please enter an integer: \"))\n" "Please enter an integer: 42\n" @@ -58,39 +64,71 @@ msgid "" "...\n" "More" msgstr "" +"```>>> x = int(input(\"لطفاً یک عدد صحیح وارد کنید: \"))\n" +"لطفاً یک عدد صحیح وارد کنید: 42\n" +">>> if x < 0:\n" +"... x = 0\n" +"... print('منفی به صفر تغییر یافت')\n" +"... elif x == 0:\n" +"... print('صفر')\n" +"... elif x == 1:\n" +"... print('تکی')\n" +"... else:\n" +"... print('بیشتر')\n" +"...\n" +"بیشتر```" #: ../../tutorial/controlflow.rst:33 +#, fuzzy msgid "" "There can be zero or more :keyword:`elif` parts, and the :keyword:`else` " "part is optional. The keyword ':keyword:`!elif`' is short for 'else if', " -"and is useful to avoid excessive indentation. An :keyword:`!if` ... :" -"keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " +"and is useful to avoid excessive indentation. An :keyword:`!if` ... " +":keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " "``switch`` or ``case`` statements found in other languages." msgstr "" +"می تواند صفر یا چندین بخش :keyword:`elif` وجود داشته باشد، و بخش " +":keyword:`else` اختیاری است. کلیدواژه ':keyword:`!elif`' به معنی 'else if' " +"است و برای جلوگیری از تورفتگی بیش از حد مفید است. دنباله ای از " +":keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... جایگزینی برای " +"دستورات ``switch`` یا ``case`` که در زبان های دیگر یافت می شود." #: ../../tutorial/controlflow.rst:39 +#, fuzzy msgid "" "If you're comparing the same value to several constants, or checking for " "specific types or attributes, you may also find the :keyword:`!match` " "statement useful. For more details see :ref:`tut-match`." msgstr "" +"اگر در حال مقایسه یک مقدار با چندین ثابت هستید، یا در حال بررسی نوع ها یا " +"ویژگی های خاصی هستید، ممکن است بیانیه :keyword:`!match` نیز برایتان مفید " +"باشد. برای جزئیات بیشتر به :ref:`tut-match` مراجعه کنید." #: ../../tutorial/controlflow.rst:46 +#, fuzzy msgid ":keyword:`!for` Statements" -msgstr "" +msgstr "اظهارات :keyword:`!for`" #: ../../tutorial/controlflow.rst:51 +#, fuzzy msgid "" "The :keyword:`for` statement in Python differs a bit from what you may be " "used to in C or Pascal. Rather than always iterating over an arithmetic " "progression of numbers (like in Pascal), or giving the user the ability to " -"define both the iteration step and halting condition (as C), Python's :" -"keyword:`!for` statement iterates over the items of any sequence (a list or " -"a string), in the order that they appear in the sequence. For example (no " +"define both the iteration step and halting condition (as C), Python's " +":keyword:`!for` statement iterates over the items of any sequence (a list or" +" a string), in the order that they appear in the sequence. For example (no " "pun intended):" msgstr "" +"بیانیهٔ :keyword:`for` در پایتون کمی با آن چه که ممکن است در C یا پاسکال به " +"آن عادت کرده باشید متفاوت است. به جای اینکه همیشه بر روی یک پیشرفت حسابی از " +"اعداد تکرار کند (مانند پاسکال)، یا به کاربر امکان تعریف هم گام تکرار و هم " +"شرط توقف را بدهد (مثل C)، بیانیهٔ :keyword:`!for` پایتون بر روی آیتم های هر " +"دنباله ای (یک لیست یا یک رشته) تکرار می کند، به ترتیبی که در دنباله ظاهر می " +"شوند. برای مثال:" #: ../../tutorial/controlflow.rst:63 +#, fuzzy msgid "" ">>> # Measure some strings:\n" ">>> words = ['cat', 'window', 'defenestrate']\n" @@ -101,15 +139,30 @@ msgid "" "window 6\n" "defenestrate 12" msgstr "" +" ```>>> # اندازه گیری چند رشته:\n" +">>> words = ['cat', 'window', 'defenestrate']\n" +">>> for w in words:\n" +"... print(w, len(w))\n" +"...\n" +"cat 3\n" +"window 6\n" +"defenestrate 12\n" +"```" #: ../../tutorial/controlflow.rst:72 +#, fuzzy msgid "" "Code that modifies a collection while iterating over that same collection " -"can be tricky to get right. Instead, it is usually more straight-forward to " -"loop over a copy of the collection or to create a new collection::" +"can be tricky to get right. Instead, it is usually more straight-forward to" +" loop over a copy of the collection or to create a new collection::" msgstr "" +"هنگامی که کدی در حال پیمایش یک مجموعه است و همزمان آن مجموعه را تغییر می " +"دهد، ممکن است پیاده سازی آن به درستی دشوار باشد. به جای این کار، معمولاً " +"ساده تر است که بر روی یک نسخه ی کپی از مجموعه پیمایش کنید یا یک مجموعه جدید " +"ایجاد کنید::" #: ../../tutorial/controlflow.rst:76 +#, fuzzy msgid "" "# Create a sample collection\n" "users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" @@ -125,18 +178,36 @@ msgid "" " if status == 'active':\n" " active_users[user] = status" msgstr "" +"# ایجاد یک مجموعه نمونه\n" +"users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" +"\n" +"# استراتژی: تکرار بر روی یک کپی\n" +"for user, status in users.copy().items():\n" +" if status == 'inactive':\n" +" del users[user]\n" +"\n" +"# استراتژی: ایجاد یک مجموعه جدید\n" +"active_users = {}\n" +"for user, status in users.items():\n" +" if status == 'active':\n" +" active_users[user] = status" #: ../../tutorial/controlflow.rst:94 +#, fuzzy msgid "The :func:`range` Function" -msgstr "" +msgstr "تابع :func:`range`" #: ../../tutorial/controlflow.rst:96 +#, fuzzy msgid "" -"If you do need to iterate over a sequence of numbers, the built-in function :" -"func:`range` comes in handy. It generates arithmetic progressions::" +"If you do need to iterate over a sequence of numbers, the built-in function " +":func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" +"اگر نیاز دارید که بر روی یک دنباله از اعداد تکرار کنید، تابع داخلی `range()`" +" بسیار مفید است. این تابع توالی های حسابی تولید می کند:" #: ../../tutorial/controlflow.rst:99 +#, fuzzy msgid "" ">>> for i in range(5):\n" "... print(i)\n" @@ -147,16 +218,33 @@ msgid "" "3\n" "4" msgstr "" +"```\n" +">>> for i in range(5):\n" +"... print(i)\n" +"...\n" +"0\n" +"1\n" +"2\n" +"3\n" +"4\n" +"```" #: ../../tutorial/controlflow.rst:108 +#, fuzzy msgid "" "The given end point is never part of the generated sequence; ``range(10)`` " -"generates 10 values, the legal indices for items of a sequence of length " -"10. It is possible to let the range start at another number, or to specify " -"a different increment (even negative; sometimes this is called the 'step')::" +"generates 10 values, the legal indices for items of a sequence of length 10." +" It is possible to let the range start at another number, or to specify a " +"different increment (even negative; sometimes this is called the 'step')::" msgstr "" +"نقطه ی پایانی که داده شده، هرگز جزئی از دنباله ی تولید شده نیست؛ " +"````range(10)```` ده مقدار تولید می کند، این شاخص های قانونی برای آیتم های " +"یک دنباله به طول ۱۰ است. همچنین این امکان وجود دارد که دامنه از عدد دیگری " +"شروع شود، یا یک افزاینده ی متفاوت (حتی منفی؛ گاهی اوقات به آن «گام» گفته می " +"شود) مشخص شود." #: ../../tutorial/controlflow.rst:113 +#, fuzzy msgid "" ">>> list(range(5, 10))\n" "[5, 6, 7, 8, 9]\n" @@ -167,14 +255,28 @@ msgid "" ">>> list(range(-10, -100, -30))\n" "[-10, -40, -70]" msgstr "" +"```python\n" +">>> list(range(5, 10))\n" +"[5, 6, 7, 8, 9]\n" +"\n" +">>> list(range(0, 10, 3))\n" +"[0, 3, 6, 9]\n" +"\n" +">>> list(range(-10, -100, -30))\n" +"[-10, -40, -70]\n" +"```" #: ../../tutorial/controlflow.rst:122 +#, fuzzy msgid "" -"To iterate over the indices of a sequence, you can combine :func:`range` " -"and :func:`len` as follows::" +"To iterate over the indices of a sequence, you can combine :func:`range` and" +" :func:`len` as follows::" msgstr "" +"برای پیمایش بر روی شاخص های یک دنباله، می توانید ``:func:`range``` و " +"``:func:`len``` را به صورت زیر ترکیب کنید::" #: ../../tutorial/controlflow.rst:125 +#, fuzzy msgid "" ">>> a = ['Mary', 'had', 'a', 'little', 'lamb']\n" ">>> for i in range(len(a)):\n" @@ -186,64 +288,107 @@ msgid "" "3 little\n" "4 lamb" msgstr "" +">>> a = ['Mary', 'had', 'a', 'little', 'lamb']\n" +">>> for i in range(len(a)):\n" +"... print(i, a[i])\n" +"...\n" +"0 Mary\n" +"1 had\n" +"2 a\n" +"3 little\n" +"4 lamb" #: ../../tutorial/controlflow.rst:135 +#, fuzzy msgid "" "In most such cases, however, it is convenient to use the :func:`enumerate` " "function, see :ref:`tut-loopidioms`." msgstr "" +"در بیشتر این موارد، استفاده از تابع :func:`enumerate` راحت تر است، به " +":ref:`tut-loopidioms` مراجعه کنید." #: ../../tutorial/controlflow.rst:138 +#, fuzzy msgid "A strange thing happens if you just print a range::" -msgstr "" +msgstr "اتفاق عجیبی می افتد اگر فقط یک `range` را چاپ کنید::" #: ../../tutorial/controlflow.rst:140 +#, fuzzy msgid "" ">>> range(10)\n" "range(0, 10)" msgstr "" +"```python\n" +">>> range(10)\n" +"range(0, 10)\n" +"```" #: ../../tutorial/controlflow.rst:143 +#, fuzzy msgid "" "In many ways the object returned by :func:`range` behaves as if it is a " "list, but in fact it isn't. It is an object which returns the successive " "items of the desired sequence when you iterate over it, but it doesn't " "really make the list, thus saving space." msgstr "" +"به طرق مختلف، شیء بازگردانده شده توسط :func:`range` به گونه ای رفتار می کند " +"که انگار یک لیست است، اما در واقع لیست نیست. این یک شیء است که هنگام پیمایش " +"بر روی آن، آیتم های پی در پی از دنباله مورد نظر را باز می گرداند، اما واقعاً" +" لیست را ایجاد نمی کند و به این ترتیب فضای حافظه را ذخیره می کند." #: ../../tutorial/controlflow.rst:148 +#, fuzzy msgid "" -"We say such an object is :term:`iterable`, that is, suitable as a target for " -"functions and constructs that expect something from which they can obtain " -"successive items until the supply is exhausted. We have seen that the :" -"keyword:`for` statement is such a construct, while an example of a function " -"that takes an iterable is :func:`sum`::" +"We say such an object is :term:`iterable`, that is, suitable as a target for" +" functions and constructs that expect something from which they can obtain " +"successive items until the supply is exhausted. We have seen that the " +":keyword:`for` statement is such a construct, while an example of a function" +" that takes an iterable is :func:`sum`::" msgstr "" +"ما چنین شی ای را :term:`iterable` می نامیم، به این معنی که برای استفاده با " +"توابع و ساختارهایی مناسب است که انتظار دارند بتوانند از آن مبدا، آیتم های " +"متوالی را دریافت کنند تا زمانی که منابع تمام شود. ما دیده ایم که دستور " +":keyword:`for` یک چنین ساختاری است، در حالی که مثالی از یک تابع که یک " +"iterable را می پذیرد، :func:`sum` است." #: ../../tutorial/controlflow.rst:154 +#, fuzzy msgid "" ">>> sum(range(4)) # 0 + 1 + 2 + 3\n" "6" msgstr "" +"```python\n" +">>> sum(range(4)) # 0 + 1 + 2 + 3\n" +"6\n" +"```" #: ../../tutorial/controlflow.rst:157 +#, fuzzy msgid "" -"Later we will see more functions that return iterables and take iterables as " -"arguments. In chapter :ref:`tut-structures`, we will discuss in more detail " -"about :func:`list`." +"Later we will see more functions that return iterables and take iterables as" +" arguments. In chapter :ref:`tut-structures`, we will discuss in more " +"detail about :func:`list`." msgstr "" +"در ادامه، توابع بیشتری را خواهیم دید که قابل تکرارها (iterables) را بازمی " +"گردانند و آنها را به عنوان آرگومان می پذیرند. در فصل :ref:`tut-structures` " +"درباره :func:`list` با جزئیات بیشتری بحث خواهیم کرد." #: ../../tutorial/controlflow.rst:164 +#, fuzzy msgid ":keyword:`!break` and :keyword:`!continue` Statements" -msgstr "" +msgstr "بیانیه های :keyword:`!break` و :keyword:`!continue`" #: ../../tutorial/controlflow.rst:166 +#, fuzzy msgid "" -"The :keyword:`break` statement breaks out of the innermost enclosing :" -"keyword:`for` or :keyword:`while` loop::" +"The :keyword:`break` statement breaks out of the innermost enclosing " +":keyword:`for` or :keyword:`while` loop::" msgstr "" +"دستور :keyword:`break` از درونی ترین حلقه ی :keyword:`for` یا " +":keyword:`while` خارج می شود::" #: ../../tutorial/controlflow.rst:169 +#, fuzzy msgid "" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" @@ -256,14 +401,27 @@ msgid "" "8 equals 2 * 4\n" "9 equals 3 * 3" msgstr "" +"```python\n" +">>> for n in range(2, 10):\n" +"... for x in range(2, n):\n" +"... if n % x == 0:\n" +"... print(f\"{n} برابر است با {x} ضربدر {n//x}\")\n" +"... break\n" +"... else:\n" +"... print(f\"{n} یک عدد اول است\")\n" +"6 برابر است با 2 ضربدر 3\n" +"9 برابر است با 3 ضربدر 3\n" +"```" #: ../../tutorial/controlflow.rst:180 +#, fuzzy msgid "" "The :keyword:`continue` statement continues with the next iteration of the " "loop::" -msgstr "" +msgstr "بیانیه :keyword:`continue` با تکرار بعدی حلقه ادامه می یابد::" #: ../../tutorial/controlflow.rst:183 +#, fuzzy msgid "" ">>> for num in range(2, 10):\n" "... if num % 2 == 0:\n" @@ -280,46 +438,82 @@ msgid "" "Found an even number 8\n" "Found an odd number 9" msgstr "" +"```\n" +">>> for num in range(2, 10):\n" +"... if num % 2 == 0:\n" +"... print(f\"Found an even number {num}\")\n" +"... continue\n" +"... print(f\"Found an odd number {num}\")\n" +"...\n" +"```\n" +"عدد زوج یافت شد 2\n" +"عدد فرد یافت شد 3\n" +"عدد زوج یافت شد 4\n" +"عدد فرد یافت شد 5\n" +"عدد زوج یافت شد 6\n" +"عدد فرد یافت شد 7\n" +"عدد زوج یافت شد 8\n" +"عدد فرد یافت شد 9" #: ../../tutorial/controlflow.rst:202 +#, fuzzy msgid ":keyword:`!else` Clauses on Loops" -msgstr "" +msgstr "بندهای :keyword:`!else` در مورد حلقه ها" #: ../../tutorial/controlflow.rst:204 +#, fuzzy msgid "" "In a :keyword:`!for` or :keyword:`!while` loop the :keyword:`!break` " "statement may be paired with an :keyword:`!else` clause. If the loop " "finishes without executing the :keyword:`!break`, the :keyword:`!else` " "clause executes." msgstr "" +"در یک حلقه :keyword:`!for` یا :keyword:`!while`، عبارت :keyword:`!break` " +"ممکن است با یک بخش :keyword:`!else` همراه شود. اگر حلقه بدون اجرای " +":keyword:`!break` به پایان برسد، بخش :keyword:`!else` اجرا می شود." #: ../../tutorial/controlflow.rst:208 +#, fuzzy msgid "" "In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " "loop finishes its final iteration, that is, if no break occurred." msgstr "" +"در یک حلقه :keyword:`for`، بخش :keyword:`!else` پس از اتمام آخرین تکرار حلقه" +" اجرا می شود، یعنی اگر هیچ توقفی اتفاق نیفتاده باشد." #: ../../tutorial/controlflow.rst:211 +#, fuzzy msgid "" -"In a :keyword:`while` loop, it's executed after the loop's condition becomes " -"false." +"In a :keyword:`while` loop, it's executed after the loop's condition becomes" +" false." msgstr "" +"در یک حلقه :keyword:`while`، این دستور پس از نادرست شدن شرط حلقه اجرا می " +"شود." #: ../../tutorial/controlflow.rst:213 +#, fuzzy msgid "" "In either kind of loop, the :keyword:`!else` clause is **not** executed if " "the loop was terminated by a :keyword:`break`. Of course, other ways of " "ending the loop early, such as a :keyword:`return` or a raised exception, " "will also skip execution of the :keyword:`else` clause." msgstr "" +"در هر نوع حلقه، بند :keyword:`!else` در صورتی **not** اجرا می شود که حلقه با" +" یک :keyword:`break` خاتمه یافته باشد. البته، روش های دیگری برای خاتمه " +"زودهنگام حلقه مانند یک :keyword:`return` یا بروز یک استثنا وجود دارد که " +"اجرای بند :keyword:`else` را نیز نادیده می گیرد." #: ../../tutorial/controlflow.rst:218 +#, fuzzy msgid "" "This is exemplified in the following :keyword:`!for` loop, which searches " "for prime numbers::" msgstr "" +"این در حلقه ی :keyword:`!for` زیر که به جستجوی اعداد اول می پردازد، نشان " +"داده شده است::" #: ../../tutorial/controlflow.rst:221 +#, fuzzy msgid "" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" @@ -339,23 +533,50 @@ msgid "" "8 equals 2 * 4\n" "9 equals 3 * 3" msgstr "" +"```\n" +">>> for n in range(2, 10):\n" +"... for x in range(2, n):\n" +"... if n % x == 0:\n" +"... print(n, 'برابر است با', x, '*', n // x)\n" +"... break\n" +"... else:\n" +"... print(n, 'یک عدد اول است')\n" +"2 یک عدد اول است\n" +"3 یک عدد اول است\n" +"4 برابر است با 2 * 2\n" +"5 یک عدد اول است\n" +"6 برابر است با 2 * 3\n" +"7 یک عدد اول است\n" +"8 برابر است با 2 * 4\n" +"9 برابر است با 3 * 3\n" +"```" #: ../../tutorial/controlflow.rst:239 +#, fuzzy msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the ``for`` loop, **not** the ``if`` statement.)" msgstr "" +"(بله، این کد درست است. با دقت نگاه کنید: بند ``else`` به حلقه ``for`` تعلق " +"دارد، **not** به عبارت ``if``.)" #: ../../tutorial/controlflow.rst:242 +#, fuzzy msgid "" "One way to think of the else clause is to imagine it paired with the ``if`` " -"inside the loop. As the loop executes, it will run a sequence like if/if/if/" -"else. The ``if`` is inside the loop, encountered a number of times. If the " -"condition is ever true, a ``break`` will happen. If the condition is never " -"true, the ``else`` clause outside the loop will execute." +"inside the loop. As the loop executes, it will run a sequence like " +"if/if/if/else. The ``if`` is inside the loop, encountered a number of times." +" If the condition is ever true, a ``break`` will happen. If the condition is" +" never true, the ``else`` clause outside the loop will execute." msgstr "" +"یک راه برای فکر کردن به بخش else این است که فرض کنید همراه با ``if`` درون " +"حلقه آمده است. همان طور که حلقه اجرا می شود، یک دنباله مانند if/if/if/else " +"را اجرا خواهد کرد. ``if`` درون حلقه قرار دارد و چندین بار برخورد می کند. اگر" +" شرطی درست باشد، یک ``break`` رخ خواهد داد. اگر شرط هیچ وقت درست نباشد، بخش " +"``else`` بیرون از حلقه اجرا خواهد شد." #: ../../tutorial/controlflow.rst:248 +#, fuzzy msgid "" "When used with a loop, the ``else`` clause has more in common with the " "``else`` clause of a :keyword:`try` statement than it does with that of " @@ -364,71 +585,115 @@ msgid "" "occurs. For more on the ``try`` statement and exceptions, see :ref:`tut-" "handling`." msgstr "" +"هنگامی که با یک حلقه استفاده می شود، عبارت ``else`` بیشتر با عبارت ``else`` " +"یک دستور :keyword:`try` وجه اشتراک دارد تا با عبارت دستورات ``if``: بخش " +"``else`` یک دستور ``try`` زمانی اجرا می شود که هیچ استثنایی رخ ندهد، و بخش " +"``else`` یک حلقه زمانی اجرا می شود که هیچ ``break`` رخ ندهد. برای اطلاعات " +"بیشتر درباره دستور ``try`` و استثناها، به :ref:`tut-handling` مراجعه کنید." #: ../../tutorial/controlflow.rst:257 +#, fuzzy msgid ":keyword:`!pass` Statements" -msgstr "" +msgstr "ایکس ای اس دی اف00 بیانیه ها" #: ../../tutorial/controlflow.rst:259 +#, fuzzy msgid "" "The :keyword:`pass` statement does nothing. It can be used when a statement " "is required syntactically but the program requires no action. For example::" msgstr "" +"\n" +"عبارت :keyword:`pass` هیچ کاری انجام نمی دهد. از آن می توان زمانی استفاده کرد که به لحاظ نحوی یک عبارت لازم است ولی برنامه به هیچ اقدامی نیاز ندارد. برای مثال::" #: ../../tutorial/controlflow.rst:262 +#, fuzzy msgid "" ">>> while True:\n" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." msgstr "" +"```>>> while True:\n" +"... pass # انتظار بیهوده برای وقفه صفحه کلید (Ctrl+C)\n" +"...```" #: ../../tutorial/controlflow.rst:266 +#, fuzzy msgid "This is commonly used for creating minimal classes::" -msgstr "" +msgstr "این معمولاً برای ایجاد کلاس های حداقلی استفاده می شود::" #: ../../tutorial/controlflow.rst:268 +#, fuzzy msgid "" ">>> class MyEmptyClass:\n" "... pass\n" "..." msgstr "" +"```python\n" +">>> class MyEmptyClass:\n" +"... pass\n" +"...\n" +"```" #: ../../tutorial/controlflow.rst:272 +#, fuzzy msgid "" "Another place :keyword:`pass` can be used is as a place-holder for a " "function or conditional body when you are working on new code, allowing you " -"to keep thinking at a more abstract level. The :keyword:`!pass` is silently " -"ignored::" +"to keep thinking at a more abstract level. The :keyword:`!pass` is silently" +" ignored::" msgstr "" +"مکان دیگری که \":keyword:`pass`\" می تواند استفاده شود به عنوان یک جای " +"نگهدار برای یک تابع یا بدنه شرطی است وقتی که در حال کار بر روی کد جدید " +"هستید، به شما اجازه می دهد تا به تفکر در سطحی انتزاعی تر ادامه دهید. " +"\":keyword:`!pass`\" به صورت بی صدا نادیده گرفته می شود::" #: ../../tutorial/controlflow.rst:276 +#, fuzzy msgid "" ">>> def initlog(*args):\n" "... pass # Remember to implement this!\n" "..." msgstr "" +"```python\n" +">>> def initlog(*args):\n" +"... pass # به یاد داشته باشید که این را پیاده سازی کنید!\n" +"...\n" +"```" #: ../../tutorial/controlflow.rst:284 +#, fuzzy msgid ":keyword:`!match` Statements" -msgstr "" +msgstr "اظهارات :keyword:`!match`" #: ../../tutorial/controlflow.rst:286 +#, fuzzy msgid "" "A :keyword:`match` statement takes an expression and compares its value to " -"successive patterns given as one or more case blocks. This is superficially " -"similar to a switch statement in C, Java or JavaScript (and many other " -"languages), but it's more similar to pattern matching in languages like Rust " -"or Haskell. Only the first pattern that matches gets executed and it can " +"successive patterns given as one or more case blocks. This is superficially" +" similar to a switch statement in C, Java or JavaScript (and many other " +"languages), but it's more similar to pattern matching in languages like Rust" +" or Haskell. Only the first pattern that matches gets executed and it can " "also extract components (sequence elements or object attributes) from the " "value into variables." msgstr "" +"یک عبارت :keyword:`match` یک عبارت را می گیرد و مقدار آن را با الگوهای پیاپی" +" که به صورت یک یا چند بلوک `case` داده شده اند، مقایسه می کند. این از نظر " +"ظاهری مشابه با یک عبارت switch در زبان های C، Java یا JavaScript (و بسیاری " +"دیگر از زبان ها) است، اما بیشتر با تطبیق الگو در زبان هایی مانند Rust یا " +"Haskell شباهت دارد. تنها اولین الگویی که مطابقت پیدا کند، اجرا می شود و می " +"تواند اجزا (عناصر دنباله ای یا ویژگی های شیء) را از مقدار استخراج کرده و در " +"متغیرها قرار دهد." #: ../../tutorial/controlflow.rst:294 +#, fuzzy msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" +"ساده ترین شکل مقایسه، یک مقدار موضوع را با یک یا چند مقدار ادبی مقایسه می " +"کند::" #: ../../tutorial/controlflow.rst:296 +#, fuzzy msgid "" "def http_error(status):\n" " match status:\n" @@ -441,31 +706,57 @@ msgid "" " case _:\n" " return \"Something's wrong with the internet\"" msgstr "" +"```python\n" +"def خطا_http(وضعیت):\n" +" تطبیق وضعیت:\n" +" مورد 400:\n" +" بازگرداندن \"درخواست نامعتبر\"\n" +" مورد 404:\n" +" بازگرداندن \"یافت نشد\"\n" +" مورد 418:\n" +" بازگرداندن \"من یک قوری هستم\"\n" +" مورد _: \n" +" بازگرداندن \"مشکلی در اینترنت وجود دارد\"\n" +"```" #: ../../tutorial/controlflow.rst:307 +#, fuzzy msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." msgstr "" +"به بلوک آخر توجه کنید: \"نام متغیر\" ``_`` به عنوان *wildcard* عمل می کند و " +"هرگز در تطابق شکست نمی خورد. اگر هیچ کدام از موارد مطابقت نداشته باشد، هیچ " +"کدام از شاخه ها اجرا نمی شوند." #: ../../tutorial/controlflow.rst:310 +#, fuzzy msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" +"می توانید چندین لیترال را در یک الگو با استفاده از ``|`` (\"یا\") ترکیب " +"کنید::" #: ../../tutorial/controlflow.rst:312 +#, fuzzy msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" msgstr "" +"مورد ۴۰۱ | ۴۰۳ | ۴۰۴:\n" +" بازگرداندن \"مجاز نیست\"" #: ../../tutorial/controlflow.rst:315 +#, fuzzy msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" msgstr "" +"الگوها می توانند شبیه تخصیص های بازگشایی باشند و می توانند برای متصل کردن " +"متغیرها استفاده شوند::" #: ../../tutorial/controlflow.rst:318 +#, fuzzy msgid "" "# point is an (x, y) tuple\n" "match point:\n" @@ -480,25 +771,50 @@ msgid "" " case _:\n" " raise ValueError(\"Not a point\")" msgstr "" +"```python\n" +"# نقطه یک جفت (x, y) است\n" +"match point:\n" +" case (0, 0):\n" +" print(\"مبدأ\")\n" +" case (0, y):\n" +" print(f\"Y={y}\")\n" +" case (x, 0):\n" +" print(f\"X={x}\")\n" +" case (x, y):\n" +" print(f\"X={x}, Y={y}\")\n" +" case _:\n" +" raise ValueError(\"نقطه نیست\")\n" +"```" #: ../../tutorial/controlflow.rst:331 +#, fuzzy msgid "" "Study that one carefully! The first pattern has two literals, and can be " -"thought of as an extension of the literal pattern shown above. But the next " -"two patterns combine a literal and a variable, and the variable *binds* a " -"value from the subject (``point``). The fourth pattern captures two values, " -"which makes it conceptually similar to the unpacking assignment ``(x, y) = " +"thought of as an extension of the literal pattern shown above. But the next" +" two patterns combine a literal and a variable, and the variable *binds* a " +"value from the subject (``point``). The fourth pattern captures two values," +" which makes it conceptually similar to the unpacking assignment ``(x, y) = " "point``." msgstr "" +"با دقت آن را مطالعه کنید! الگوی اول شامل دو قسمت لغوی است و می توان آن را به" +" عنوان یک گسترش از الگوی لغوی که در بالا نشان داده شده، در نظر گرفت. اما دو " +"الگوی بعدی شامل یک لغو و یک متغیر هستند و متغیر *binds* یک مقدار از موضوع " +"(``point``) دریافت می کند. الگوی چهارم دو مقدار را می گیرد که از نظر مفهومی " +"شبیه به تخصیص گشودن ``(x, y) = point`` است." #: ../../tutorial/controlflow.rst:338 +#, fuzzy msgid "" "If you are using classes to structure your data you can use the class name " "followed by an argument list resembling a constructor, but with the ability " "to capture attributes into variables::" msgstr "" +"اگر از کلاس ها برای ساختاردهی داده های خود استفاده می کنید، می توانید از نام" +" کلاس به همراه یک لیست از آرگومان ها که شبیه به یک سازنده است، اما با قابلیت" +" ضبط ویژگی ها در متغیرها استفاده کنید::" #: ../../tutorial/controlflow.rst:342 +#, fuzzy msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -518,43 +834,87 @@ msgid "" " case _:\n" " print(\"Not a point\")" msgstr "" +"کلاس `Point`:\n" +"```python\n" +" def __init__(self, x, y):\n" +" self.x = x\n" +" self.y = y\n" +"\n" +"def where_is(point):\n" +" match point:\n" +" case Point(x=0, y=0):\n" +" print(\"مبدأ\")\n" +" case Point(x=0, y=y):\n" +" print(f\"Y={y}\")\n" +" case Point(x=x, y=0):\n" +" print(f\"X={x}\")\n" +" case Point():\n" +" print(\"جای دیگر\")\n" +" case _:\n" +" print(\"نقطه نیست\")\n" +"```" #: ../../tutorial/controlflow.rst:360 +#, fuzzy 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`` " +"``__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 "" +"شما می توانید از پارامترهای موقعیتی با برخی کلاس های داخلی که برای ویژگی " +"هایشان یک ترتیب ارائه می دهند (مثلاً \"dataclasses\") استفاده کنید. همچنین " +"می توانید با تنظیم ویژگی خاص \"``__match_args__``\" در کلاس های خود، موقعیت " +"خاصی برای ویژگی ها در الگوها تعریف کنید. اگر این ویژگی به (\"x\", \"y\") " +"تنظیم شده باشد، الگوهای زیر همگی معادل هستند (و همگی ویژگی \"``y``\" را به " +"متغیر \"``var``\" متصل می کنند):" #: ../../tutorial/controlflow.rst:366 +#, fuzzy msgid "" "Point(1, var)\n" "Point(1, y=var)\n" "Point(x=1, y=var)\n" "Point(y=var, x=1)" msgstr "" +"``Point(1, var)`` \n" +"``Point(1, y=var)`` \n" +"``Point(x=1, y=var)`` \n" +"``Point(y=var, x=1)`` " #: ../../tutorial/controlflow.rst:371 +#, fuzzy msgid "" -"A recommended way to read patterns is to look at them as an extended form of " -"what you would put on the left of an assignment, to understand which " +"A recommended way to read patterns is to look at them as an extended form of" +" what you would put on the left of an assignment, to understand which " "variables would be set to what. Only the standalone names (like ``var`` " -"above) are assigned to by a match statement. Dotted names (like ``foo." -"bar``), attribute names (the ``x=`` and ``y=`` above) or class names " +"above) are assigned to by a match statement. Dotted names (like " +"``foo.bar``), attribute names (the ``x=`` and ``y=`` above) or class names " "(recognized by the \"(...)\" next to them like ``Point`` above) are never " "assigned to." msgstr "" +"روش توصیه شده برای خواندن الگوها این است که به آن ها به عنوان شکلی گسترده از" +" چیزی که در سمت چپ یک تخصیص قرار می دهید نگاه کنید، تا بفهمید که کدام " +"متغیرها به چه چیزی تنظیم می شوند. تنها نام های مستقل (مانند ``var`` در بالا)" +" با یک عبارت match تخصیص داده می شوند. نام های نقطه دار (مانند ``foo.bar``)،" +" نام های ویژگی (مانند ``x=`` و ``y=`` در بالا) یا نام های کلاس (که با \"()\"" +" در کنار آن ها مانند ``Point`` در بالا شناخته می شوند) هرگز تخصیص داده نمی " +"شوند." #: ../../tutorial/controlflow.rst:378 +#, fuzzy msgid "" -"Patterns can be arbitrarily nested. For example, if we have a short list of " -"Points, with ``__match_args__`` added, we could match it like this::" +"Patterns can be arbitrarily nested. For example, if we have a short list of" +" Points, with ``__match_args__`` added, we could match it like this::" msgstr "" +"الگوها می توانند به صورت دلخواه تو در تو باشند. به عنوان مثال، اگر ما فهرستی" +" کوتاه از نقطه ها داشته باشیم که \"``__match_args__``\" به آن اضافه شده است،" +" می توانیم آن را به این صورت مطابقت دهیم:" #: ../../tutorial/controlflow.rst:381 +#, fuzzy msgid "" "class Point:\n" " __match_args__ = ('x', 'y')\n" @@ -574,15 +934,37 @@ msgid "" " case _:\n" " print(\"Something else\")" msgstr "" +"کلاس Point:\n" +" __match_args__ = ('x', 'y')\n" +" def __init__(self, x, y):\n" +" self.x = x\n" +" self.y = y\n" +"\n" +"بررسی points:\n" +" در صورتی که []:\n" +" چاپ کن \"هیچ نقطه ای وجود ندارد\"\n" +" در صورتی که [Point(0, 0)]:\n" +" چاپ کن \"مبدا\"\n" +" در صورتی که [Point(x, y)]:\n" +" چاپ کن f\"نقطه ای منفرد {x}, {y}\"\n" +" در صورتی که [Point(0, y1), Point(0, y2)]:\n" +" چاپ کن f\"دو نقطه روی محور Y در {y1}, {y2}\"\n" +" در غیر این صورت:\n" +" چاپ کن \"چیز دیگری\"" #: ../../tutorial/controlflow.rst:399 +#, fuzzy msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " "value capture happens before the guard is evaluated::" msgstr "" +"ما می توانیم یک بند ``if`` به یک الگو اضافه کنیم که به نام \"نگهبان\" شناخته" +" می شود. اگر نگهبان نادرست باشد، ``match`` به بلوک حالت بعدی می رود. توجه " +"کنید که پیش از ارزیابی نگهبان، مقدار ضبط می شود::" #: ../../tutorial/controlflow.rst:403 +#, fuzzy msgid "" "match point:\n" " case Point(x, y) if x == y:\n" @@ -590,61 +972,97 @@ msgid "" " case Point(x, y):\n" " print(f\"Not on the diagonal\")" msgstr "" +"نقطه تطبیق:\n" +" درصورت Point(x, y) اگر x == y:\n" +" print(f\"Y=X در {x}\")\n" +" درصورت Point(x, y):\n" +" print(f\"روی قطر نیست\")" #: ../../tutorial/controlflow.rst:409 +#, fuzzy msgid "Several other key features of this statement:" -msgstr "" +msgstr "ویژگی های کلیدی دیگری از این عبارت:" #: ../../tutorial/controlflow.rst:411 +#, fuzzy msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. An important exception is " "that they don't match iterators or strings." msgstr "" +"همانند تخصیص های بازکردن، الگوهای تاپل و لیست دقیقا همان معنا را دارند و در " +"واقع با دنباله های دلخواه تطابق دارند. یک استثنای مهم این است که آن ها با " +"تکرارگرها یا رشته ها تطابق ندارند." #: ../../tutorial/controlflow.rst:415 +#, fuzzy msgid "" -"Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y, " -"*rest)`` work similar to unpacking assignments. The name after ``*`` may " +"Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y," +" *rest)`` work similar to unpacking assignments. The name after ``*`` may " "also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items " "without binding the remaining items." msgstr "" +"الگوهای توالی از بازکردن گسترده پشتیبانی می کنند: ```[x, y, *rest]``` و " +"```(x, y, *rest)``` مشابه انتساب های بازکردن کار می کنند. نام بعد از ```*```" +" نیز می تواند ```_``` باشد، بنابراین ```(x, y, *_)``` با یک دنباله حداقل دو " +"آیتم بدون اتصال آیتم های باقی مانده مطابقت دارد." #: ../../tutorial/controlflow.rst:420 +#, fuzzy msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike " "sequence patterns, extra keys are ignored. An unpacking like ``**rest`` is " "also supported. (But ``**_`` would be redundant, so it is not allowed.)" msgstr "" +"الگوهای نگاشت: ``{\"bandwidth\": b, \"latency\": l}`` مقادیر " +"``\"bandwidth\"`` و ``\"latency\"`` را از یک دیکشنری استخراج می کند. برخلاف " +"الگوهای ترتیبی، کلیدهای اضافی نادیده گرفته می شوند. یک بازگشایی مانند " +"``**rest`` نیز پشتیبانی می شود. (اما ``**_`` اضافی است، بنابراین مجاز نیست.)" #: ../../tutorial/controlflow.rst:425 +#, fuzzy msgid "Subpatterns may be captured using the ``as`` keyword::" -msgstr "" +msgstr "زیرالگوها ممکن است با استفاده از کلیدواژه ```as``` ضبط شوند::" #: ../../tutorial/controlflow.rst:427 +#, fuzzy msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "" +"```python\n" +"case (Point(x1, y1), Point(x2, y2) as p2): ...\n" +"```" #: ../../tutorial/controlflow.rst:429 +#, fuzzy msgid "" -"will capture the second element of the input as ``p2`` (as long as the input " -"is a sequence of two points)" +"will capture the second element of the input as ``p2`` (as long as the input" +" is a sequence of two points)" msgstr "" +"عنصر دوم ورودی را به عنوان ``p2`` ضبط خواهد کرد (تا زمانی که ورودی دنباله ای" +" از دو نقطه باشد)." #: ../../tutorial/controlflow.rst:432 +#, fuzzy msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" +"بیشتر نوع های داده به صورت برابری مقایسه می شوند، اما تک گزینه های " +"```True```، ```False``` و ```None``` بر اساس شناسه مقایسه می شوند." #: ../../tutorial/controlflow.rst:435 +#, fuzzy msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" msgstr "" +"الگوها می توانند از ثابت های نام گذاری شده استفاده کنند. این ثابت ها باید " +"نام های نقطه گذاری شده باشند تا از تفسیر آن ها به عنوان متغیرهای اسیر " +"جلوگیری شود::" #: ../../tutorial/controlflow.rst:438 +#, fuzzy msgid "" "from enum import Enum\n" "class Color(Enum):\n" @@ -662,24 +1080,48 @@ msgid "" " case Color.BLUE:\n" " print(\"I'm feeling the blues :(\")" msgstr "" +"```python\n" +"from enum import Enum\n" +"class Color(Enum):\n" +" RED = 'red'\n" +" GREEN = 'green'\n" +" BLUE = 'blue'\n" +"\n" +"color = Color(input(\"انتخاب خود را بین 'red'، 'blue' یا 'green' وارد کنید: \"))\n" +"\n" +"match color:\n" +" case Color.RED:\n" +" print(\"من قرمز می بینم!\")\n" +" case Color.GREEN:\n" +" print(\"چمن سبز است\")\n" +" case Color.BLUE:\n" +" print(\"احساس ناراحتی می کنم :(\")\n" +"```" #: ../../tutorial/controlflow.rst:454 +#, fuzzy msgid "" -"For a more detailed explanation and additional examples, you can look into :" -"pep:`636` which is written in a tutorial format." +"For a more detailed explanation and additional examples, you can look into " +":pep:`636` which is written in a tutorial format." msgstr "" +"برای توضیحات دقیق تر و مثال های بیشتر، می توانید به :pep:`636` که به صورت " +"آموزشی نوشته شده است، مراجعه کنید." #: ../../tutorial/controlflow.rst:460 +#, fuzzy msgid "Defining Functions" -msgstr "" +msgstr "تعریف توابع" #: ../../tutorial/controlflow.rst:462 +#, fuzzy msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" msgstr "" +"می توانیم یک تابع ایجاد کنیم که سری فیبوناچی را تا یک حد دلخواه بنویسد::" #: ../../tutorial/controlflow.rst:465 +#, fuzzy msgid "" ">>> def fib(n): # write Fibonacci series less than n\n" "... \"\"\"Print a Fibonacci series less than n.\"\"\"\n" @@ -693,27 +1135,51 @@ msgid "" ">>> fib(2000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" msgstr "" +"```>>> def fib(n): # تولید دنباله فیبوناچی کمتر از n```\n" +"```... \"\"\"چاپ دنباله فیبوناچی کمتر از n.\"\"\"```\n" +"```... a, b = 0, 1```\n" +"```... while a < n:```\n" +"```... print(a, end=' ')```\n" +"```... a, b = b, a+b```\n" +"```... print()```\n" +"```...```\n" +"```>>> # اکنون تابعی که تعریف کرده ایم را فراخوانی می کنیم:```\n" +"```>>> fib(2000)```\n" +"```0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597```" #: ../../tutorial/controlflow.rst:482 +#, fuzzy msgid "" "The keyword :keyword:`def` introduces a function *definition*. It must be " "followed by the function name and the parenthesized list of formal " "parameters. The statements that form the body of the function start at the " "next line, and must be indented." msgstr "" +"کلمه کلیدی :keyword:`def` یک تابع *definition* را معرفی می کند. بعد از آن " +"باید نام تابع و لیست پرانتزدار پارامترهای رسمی بیاید. دستورات تشکیل دهنده " +"بدنه تابع در خط بعدی شروع می شوند و باید تو رفتگی داشته باشند." #: ../../tutorial/controlflow.rst:487 +#, fuzzy msgid "" -"The first statement of the function body can optionally be a string literal; " -"this string literal is the function's documentation string, or :dfn:" -"`docstring`. (More about docstrings can be found in the section :ref:`tut-" -"docstrings`.) There are tools which use docstrings to automatically produce " -"online or printed documentation, or to let the user interactively browse " -"through code; it's good practice to include docstrings in code that you " -"write, so make a habit of it." -msgstr "" +"The first statement of the function body can optionally be a string literal;" +" this string literal is the function's documentation string, or " +":dfn:`docstring`. (More about docstrings can be found in the section " +":ref:`tut-docstrings`.) There are tools which use docstrings to " +"automatically produce online or printed documentation, or to let the user " +"interactively browse through code; it's good practice to include docstrings " +"in code that you write, so make a habit of it." +msgstr "" +"اولین دستور در بدنه ی تابع، می تواند به صورت اختیاری یک رشته ی متنی («string" +" literal») باشد؛ این رشته ی متنی، رشته ی مستندات تابع یا :dfn:`docstring` " +"نامیده می شود. (اطلاعات بیشتر درباره ی docstringها در بخش :ref:`tut-" +"docstrings` یافت می شود.) ابزارهایی وجود دارند که از docstringها برای تولید " +"خودکار مستندات آنلاین یا چاپی استفاده می کنند، یا به کاربر اجازه می دهند به " +"صورت تعاملی کد را مرور کند؛ بنابراین، قراردادن docstringها در کدی که می " +"نویسید یک عادت خوب است." #: ../../tutorial/controlflow.rst:494 +#, fuzzy msgid "" "The *execution* of a function introduces a new symbol table used for the " "local variables of the function. More precisely, all variable assignments " @@ -726,26 +1192,49 @@ msgid "" "for variables of enclosing functions, named in a :keyword:`nonlocal` " "statement), although they may be referenced." msgstr "" +"معرفی *execution* در یک تابع جدول نماد جدیدی برای متغیرهای محلی تابع ایجاد " +"می کند. به طور دقیق تر، تمامی تخصیص های متغیر در یک تابع، مقدار را در جدول " +"نماد محلی ذخیره می کنند؛ در حالی که ارجاعات متغیر ابتدا به جدول نماد محلی " +"نگاه می کنند، سپس به جدول نماد محلی توابع محصور کننده، سپس به جدول نماد " +"سراسری و در نهایت به جدول نام های داخلی مراجعه می کنند. بنابراین، متغیرهای " +"سراسری و متغیرهای توابع محصور کننده نمی توانند به طور مستقیم در درون یک تابع" +" مقداری تخصیص داده شوند (مگر اینکه، برای متغیرهای سراسری، در یک بیانیه " +":keyword:`global` نام گذاری شده باشند، یا برای متغیرهای توابع محصور کننده، " +"در یک بیانیه :keyword:`nonlocal` نام گذاری شده باشند)، هرچند ممکن است به " +"آنها ارجاع شود." #: ../../tutorial/controlflow.rst:505 +#, fuzzy msgid "" "The actual parameters (arguments) to a function call are introduced in the " -"local symbol table of the called function when it is called; thus, arguments " -"are passed using *call by value* (where the *value* is always an object " +"local symbol table of the called function when it is called; thus, arguments" +" are passed using *call by value* (where the *value* is always an object " "*reference*, not the value of the object). [#]_ When a function calls " "another function, or calls itself recursively, a new local symbol table is " "created for that call." msgstr "" +"پارامترهای واقعی (آرگومان ها) در یک فراخوانی تابع، زمانی که تابع فراخوانی می" +" شود، در جدول نماد های محلی تابع مورد نظر معرفی می شوند؛ بنابراین، آرگومان " +"ها با استفاده از *call by value* منتقل می شوند (که در آن *value* همیشه یک " +"شیء *reference* است، نه مقدار شیء). [#]_ هنگامی که یک تابع، تابع دیگری را " +"فراخوانی می کند یا به طور بازگشتی خود را فراخوانی می کند، یک جدول نماد محلی " +"جدید برای آن فراخوانی ایجاد می شود." #: ../../tutorial/controlflow.rst:512 +#, fuzzy msgid "" "A function definition associates the function name with the function object " "in the current symbol table. The interpreter recognizes the object pointed " "to by that name as a user-defined function. Other names can also point to " "that same function object and can also be used to access the function::" msgstr "" +"تعریف یک تابع، نام تابع را با شیء تابع در جدول نماد فعلی مرتبط می کند. مفسر،" +" شیء اشاره شده توسط آن نام را به عنوان یک تابع تعریف شده توسط کاربر تشخیص می" +" دهد. نام های دیگری نیز می توانند به همان شیء تابع اشاره کنند و برای دسترسی " +"به تابع استفاده شوند:" #: ../../tutorial/controlflow.rst:517 +#, fuzzy msgid "" ">>> fib\n" "\n" @@ -753,32 +1242,57 @@ msgid "" ">>> f(100)\n" "0 1 1 2 3 5 8 13 21 34 55 89" msgstr "" +"```plaintext\n" +">>> fib\n" +"\n" +">>> f = fib\n" +">>> f(100)\n" +"0 1 1 2 3 5 8 13 21 34 55 89\n" +"```" #: ../../tutorial/controlflow.rst:523 +#, fuzzy msgid "" -"Coming from other languages, you might object that ``fib`` is not a function " -"but a procedure since it doesn't return a value. In fact, even functions " +"Coming from other languages, you might object that ``fib`` is not a function" +" but a procedure since it doesn't return a value. In fact, even functions " "without a :keyword:`return` statement do return a value, albeit a rather " "boring one. This value is called ``None`` (it's a built-in name). Writing " "the value ``None`` is normally suppressed by the interpreter if it would be " -"the only value written. You can see it if you really want to using :func:" -"`print`::" +"the only value written. You can see it if you really want to using " +":func:`print`::" msgstr "" +"اگر از زبان های دیگر آمده اید، ممکن است بگویید که ``fib`` یک تابع نیست بلکه " +"یک رویه است چرا که مقداری را برنمی گرداند. در حقیقت، حتی توابعی که بیان " +":keyword:`return` ندارند نیز مقداری را برمی گردانند، هرچند که این مقدار " +"بسیار کسل کننده است. این مقدار را ``None`` (یک نام داخلی) می نامند. نوشتن " +"مقدار ``None`` به طور معمول توسط مفسر نادیده گرفته می شود اگر این مقدار تنها" +" مقداری باشد که نوشته شود. اگر واقعاً بخواهید می توانید با استفاده از " +":func:`print` آن را ببینید::" #: ../../tutorial/controlflow.rst:530 +#, fuzzy msgid "" ">>> fib(0)\n" ">>> print(fib(0))\n" "None" msgstr "" +"```python\n" +">>> fib(0)\n" +">>> print(fib(0))\n" +"هیچ\n" +"```" #: ../../tutorial/controlflow.rst:534 +#, fuzzy msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" msgstr "" +"نوشتن یک تابع که لیستی از اعداد دنباله فیبوناچی را برمی گرداند، به جای چاپ " +"کردن آن، ساده است::" #: ../../tutorial/controlflow.rst:537 +#, fuzzy msgid "" ">>> def fib2(n): # return Fibonacci series up to n\n" "... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" @@ -793,55 +1307,96 @@ msgid "" ">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" msgstr "" +"```python\n" +">>> def fib2(n): # بازگرداندن سری فیبوناچی تا n\n" +"... \"\"\"یک لیست حاوی سری فیبوناچی تا n را برمی گرداند.\"\"\"\n" +"... result = []\n" +"... a, b = 0, 1\n" +"... while a < n:\n" +"... result.append(a) # به توضیحات زیر مراجعه کنید\n" +"... a, b = b, a+b\n" +"... return result\n" +"...\n" +">>> f100 = fib2(100) # فراخوانی تابع\n" +">>> f100 # نوشتن نتیجه\n" +"[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]\n" +"```" #: ../../tutorial/controlflow.rst:550 +#, fuzzy msgid "This example, as usual, demonstrates some new Python features:" msgstr "" +"این مثال، مانند همیشه، تعدادی از ویژگی های جدید Python را نشان می دهد:" #: ../../tutorial/controlflow.rst:552 +#, fuzzy msgid "" -"The :keyword:`return` statement returns with a value from a function. :" -"keyword:`!return` without an expression argument returns ``None``. Falling " +"The :keyword:`return` statement returns with a value from a function. " +":keyword:`!return` without an expression argument returns ``None``. Falling " "off the end of a function also returns ``None``." msgstr "" +"عبارت :keyword:`return` مقداری را از یک تابع برمی گرداند. :keyword:`!return`" +" بدون یک عبارت، مقدار ``None`` را بازمی گرداند. خروج از انتهای یک تابع نیز " +"``None`` را بازمی گرداند." #: ../../tutorial/controlflow.rst:556 +#, fuzzy msgid "" "The statement ``result.append(a)`` calls a *method* of the list object " -"``result``. A method is a function that 'belongs' to an object and is named " -"``obj.methodname``, where ``obj`` is some object (this may be an " +"``result``. A method is a function that 'belongs' to an object and is named" +" ``obj.methodname``, where ``obj`` is some object (this may be an " "expression), and ``methodname`` is the name of a method that is defined by " "the object's type. Different types define different methods. Methods of " "different types may have the same name without causing ambiguity. (It is " -"possible to define your own object types and methods, using *classes*, see :" -"ref:`tut-classes`) The method :meth:`!append` shown in the example is " +"possible to define your own object types and methods, using *classes*, see " +":ref:`tut-classes`) The method :meth:`!append` shown in the example is " "defined for list objects; it adds a new element at the end of the list. In " "this example it is equivalent to ``result = result + [a]``, but more " "efficient." msgstr "" +"دستور ``result.append(a)`` یک *method* از شیء لیست ``result`` را فراخوانی می" +" کند. یک متد، تابعی است که به یک شیء «تعلق دارد» و به نام ``obj.methodname``" +" شناخته می شود، که در آن ``obj`` برخی شیء (که ممکن است یک عبارت باشد)، و " +"``methodname`` نام یک متد است که توسط نوع شیء تعریف شده است. انواع مختلف " +"متدهای مختلفی را تعریف می کنند. متدهای انواع مختلف ممکن است نام یکسانی داشته" +" باشند بدون اینکه سردرگمی ایجاد کنند. (امکان تعریف انواع و متدهای شیء " +"خودتان، با استفاده از *classes* وجود دارد، به :ref:`tut-classes` مراجعه " +"کنید) متد :meth:`!append` که در مثال نشان داده شده، برای اشیاء لیست تعریف " +"شده است؛ این متد یک عنصر جدید را به انتهای لیست اضافه می کند. در این مثال " +"معادل با ``result = result + [a]`` است، اما به صورت کارآمدتر." #: ../../tutorial/controlflow.rst:571 +#, fuzzy msgid "More on Defining Functions" -msgstr "" +msgstr "بیشتر دربارهٔ تعریف توابع" #: ../../tutorial/controlflow.rst:573 +#, fuzzy msgid "" -"It is also possible to define functions with a variable number of arguments. " -"There are three forms, which can be combined." +"It is also possible to define functions with a variable number of arguments." +" There are three forms, which can be combined." msgstr "" +"همچنین می توان توابعی با تعداد متغیری از آرگومان ها تعریف کرد. سه نوع وجود " +"دارد که می توان آن ها را ترکیب کرد." #: ../../tutorial/controlflow.rst:580 +#, fuzzy msgid "Default Argument Values" -msgstr "" +msgstr "مقادیر پیش فرض آرگومان ها" #: ../../tutorial/controlflow.rst:582 +#, fuzzy msgid "" "The most useful form is to specify a default value for one or more " "arguments. This creates a function that can be called with fewer arguments " "than it is defined to allow. For example::" msgstr "" +"مفیدترین شکل این است که یک مقدار پیش فرض برای یک یا چند آرگومان مشخص کنید. " +"این کار یک تابع ایجاد می کند که می تواند با آرگومان های کمتری نسبت به آنچه " +"تعریف شده، فراخوانی شود. برای مثال:" #: ../../tutorial/controlflow.rst:586 +#, fuzzy msgid "" "def ask_ok(prompt, retries=4, reminder='Please try again!'):\n" " while True:\n" @@ -855,41 +1410,71 @@ msgid "" " raise ValueError('invalid user response')\n" " print(reminder)" msgstr "" +"```python\n" +"def ask_ok(prompt, retries=4, reminder='لطفا دوباره امتحان کنید!'):\n" +" while True:\n" +" reply = input(prompt)\n" +" if reply in {'y', 'ye', 'yes'}:\n" +" return True\n" +" if reply in {'n', 'no', 'nop', 'nope'}:\n" +" return False\n" +" retries = retries - 1\n" +" if retries < 0:\n" +" raise ValueError('پاسخ کاربر نامعتبر است')\n" +" print(reminder)\n" +"```" #: ../../tutorial/controlflow.rst:598 +#, fuzzy msgid "This function can be called in several ways:" -msgstr "" +msgstr "این تابع می تواند به روش های مختلفی فراخوانی شود:" #: ../../tutorial/controlflow.rst:600 +#, fuzzy msgid "" -"giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" +"giving only the mandatory argument: ``ask_ok('Do you really want to " +"quit?')``" msgstr "" +"فقط آرگومان اجباری را ارائه می دهید: ``ask_ok('Do you really want to " +"quit?')``" #: ../../tutorial/controlflow.rst:602 +#, fuzzy msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" +"دادن یکی از آرگومان های اختیاری: ``ask_ok('OK to overwrite the file?', 2)``" #: ../../tutorial/controlflow.rst:604 +#, fuzzy msgid "" -"or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " -"on, only yes or no!')``" +"or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come" +" on, only yes or no!')``" msgstr "" +"یا حتی ارسال همه آرگومان ها: ``ask_ok('OK to overwrite the file?', 2, 'Come " +"on, only yes or no!')``" #: ../../tutorial/controlflow.rst:607 +#, fuzzy msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." msgstr "" +"این مثال همچنین کلمه کلیدی :keyword:`in` را معرفی می کند. این تست بررسی می " +"کند که آیا یک دنباله شامل یک مقدار خاص است یا خیر." #: ../../tutorial/controlflow.rst:610 +#, fuzzy msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" msgstr "" +"مقادیر پیش فرض در نقطه تعریف تابع در حوزه *defining* ارزیابی می شوند، " +"بنابراین ::" #: ../../tutorial/controlflow.rst:613 +#, fuzzy msgid "" "i = 5\n" "\n" @@ -899,20 +1484,38 @@ msgid "" "i = 6\n" "f()" msgstr "" +"```python\n" +"i = 5\n" +"\n" +"def f(arg=i):\n" +" print(arg)\n" +"\n" +"i = 6\n" +"f()\n" +"```\n" +"\n" +"در این کد، ابتدا متغیر `i` با مقدار ۵ تعریف شده است. سپس تابعی به نام `f` تعریف می شود که یک آرگومان دارد که مقدار پیش فرض آن برابر با `i` است. پس از تعریف تابع، مقدار `i` به ۶ تغییر داده می شود. در نهایت، تابع `f` بدون ارسال آرگومان فراخوانی می شود، بنابراین مقدار پیش فرض `i` که ۵ بود، چاپ می شود." #: ../../tutorial/controlflow.rst:621 +#, fuzzy msgid "will print ``5``." -msgstr "" +msgstr "چاپ خواهد کرد ``5``." #: ../../tutorial/controlflow.rst:623 +#, fuzzy msgid "" -"**Important warning:** The default value is evaluated only once. This makes " -"a difference when the default is a mutable object such as a list, " +"**Important warning:** The default value is evaluated only once. This makes" +" a difference when the default is a mutable object such as a list, " "dictionary, or instances of most classes. For example, the following " "function accumulates the arguments passed to it on subsequent calls::" msgstr "" +"ارزش پیش فرض تنها یک بار ارزیابی می شود. این موضوع زمانی تفاوت ایجاد می کند " +"که مقدار پیش فرض یک شیء قابل تغییر مانند یک لیست، دیکشنری یا نمونه ای از " +"اکثر کلاس ها باشد. به عنوان مثال، تابع زیر مقادیر آرگومان هایی که در " +"فراخوانی های بعدی به آن ارسال می شود را جمع می کند::" #: ../../tutorial/controlflow.rst:628 +#, fuzzy msgid "" "def f(a, L=[]):\n" " L.append(a)\n" @@ -922,25 +1525,45 @@ msgid "" "print(f(2))\n" "print(f(3))" msgstr "" +"```python\n" +"def f(a, L=[]):\n" +" L.append(a)\n" +" return L\n" +"\n" +"print(f(1))\n" +"print(f(2))\n" +"print(f(3))\n" +"```" #: ../../tutorial/controlflow.rst:636 +#, fuzzy msgid "This will print ::" -msgstr "" +msgstr "این چاپ خواهد شد ::" #: ../../tutorial/controlflow.rst:638 +#, fuzzy msgid "" "[1]\n" "[1, 2]\n" "[1, 2, 3]" msgstr "" +"[۱]\n" +"\n" +"[۱, ۲]\n" +"\n" +"[۱, ۲, ۳]" #: ../../tutorial/controlflow.rst:642 +#, fuzzy msgid "" -"If you don't want the default to be shared between subsequent calls, you can " -"write the function like this instead::" +"If you don't want the default to be shared between subsequent calls, you can" +" write the function like this instead::" msgstr "" +"اگر نمی خواهید مقدار پیش فرض بین فراخوانی های بعدی به اشتراک گذاشته شود، می " +"توانید تابع را به این صورت بنویسید::" #: ../../tutorial/controlflow.rst:645 +#, fuzzy msgid "" "def f(a, L=None):\n" " if L is None:\n" @@ -948,19 +1571,31 @@ msgid "" " L.append(a)\n" " return L" msgstr "" +"```python\n" +"def f(a, L=None):\n" +" if L is None:\n" +" L = []\n" +" L.append(a)\n" +" return L\n" +"```" #: ../../tutorial/controlflow.rst:655 +#, fuzzy msgid "Keyword Arguments" -msgstr "" +msgstr "آرگومان های کلیدی" #: ../../tutorial/controlflow.rst:657 +#, fuzzy msgid "" "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " "function::" msgstr "" +"توابع را می توان با استفاده از :term:`keyword arguments ` " +"به شکل ``kwarg=value`` فراخوانی کرد. برای مثال، تابع زیر::" #: ../../tutorial/controlflow.rst:660 +#, fuzzy msgid "" "def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" " print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -968,52 +1603,81 @@ msgid "" " print(\"-- Lovely plumage, the\", type)\n" " print(\"-- It's\", state, \"!\")" msgstr "" +"```python\n" +"def parrot(voltage, state='خشک شده', action='پوووم', type='آبی نروژی'):\n" +" print(\"-- این طوطی\", action, \"نخواهد کرد\", end=' ')\n" +" print(\"اگر\", voltage, \"ولت برق از آن عبور بدهید.\")\n" +" print(\"-- پرهای زیبایی دارد،\", type)\n" +" print(\"-- این\", state, \"است!\")\n" +"```" #: ../../tutorial/controlflow.rst:666 +#, fuzzy msgid "" "accepts one required argument (``voltage``) and three optional arguments " "(``state``, ``action``, and ``type``). This function can be called in any " "of the following ways::" msgstr "" +"یک آرگومان اجباری (``voltage``) و سه آرگومان اختیاری (``state``, ``action``," +" و ``type``) می پذیرد. این تابع می تواند به هر یک از روش های زیر فراخوانی " +"شود::" #: ../../tutorial/controlflow.rst:670 +#, fuzzy msgid "" -"parrot(1000) # 1 positional " -"argument\n" +"parrot(1000) # 1 positional argument\n" "parrot(voltage=1000) # 1 keyword argument\n" "parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments\n" "parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments\n" -"parrot('a million', 'bereft of life', 'jump') # 3 positional " -"arguments\n" -"parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 " -"keyword" +"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(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')``` # ۱ مکانی، ۱ کلیدی" #: ../../tutorial/controlflow.rst:677 +#, fuzzy msgid "but all the following calls would be invalid::" -msgstr "" +msgstr "اما همه ی فراخوانی های زیر نامعتبر خواهند بود:" #: ../../tutorial/controlflow.rst:679 +#, fuzzy msgid "" "parrot() # required argument missing\n" -"parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword " -"argument\n" +"parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword argument\n" "parrot(110, voltage=220) # duplicate value for the same argument\n" "parrot(actor='John Cleese') # unknown keyword argument" msgstr "" +"```parrot()``` # آرگومان مورد نیاز وجود ندارد\n" +"```parrot(voltage=5.0, 'dead')``` # آرگومان بدون کلیدواژه بعد از آرگومان کلیدواژه دار\n" +"```parrot(110, voltage=220)``` # مقدار تکراری برای همان آرگومان\n" +"```parrot(actor='John Cleese')``` # آرگومان کلیدواژه ناشناخته" #: ../../tutorial/controlflow.rst:684 +#, fuzzy 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`` " +"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 "" +"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)`` نیز معتبر " +"است). هیچ آرگومانی نباید بیش از یک بار مقدار دریافت کند. در اینجا مثالی " +"آورده شده است که به دلیل این محدودیت با شکست مواجه می شود:" #: ../../tutorial/controlflow.rst:692 +#, fuzzy msgid "" ">>> def function(a):\n" "... pass\n" @@ -1023,19 +1687,35 @@ msgid "" " File \"\", line 1, in \n" "TypeError: function() got multiple values for argument 'a'" msgstr "" +">>> def function(a):\n" +"... pass\n" +"...\n" +">>> function(0, a=0)\n" +"آخرین فراخوانی اخیر:\n" +" فایل \"\", خط 1، در \n" +"TypeError: function() دریافت کرد مقادیر متعدد برای آرگومان 'a'" #: ../../tutorial/controlflow.rst:700 +#, fuzzy msgid "" -"When a final formal parameter of the form ``**name`` is present, it receives " -"a dictionary (see :ref:`typesmapping`) containing all keyword arguments " +"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`` " +"باشد.) به عنوان مثال، اگر تابعی به این صورت تعریف کنیم:" #: ../../tutorial/controlflow.rst:708 +#, fuzzy msgid "" "def cheeseshop(kind, *arguments, **keywords):\n" " print(\"-- Do you have any\", kind, \"?\")\n" @@ -1046,12 +1726,24 @@ msgid "" " for kw in keywords:\n" " print(kw, \":\", keywords[kw])" msgstr "" +"```python\n" +"def cheeseshop(kind, *arguments, **keywords):\n" +" print(\"-- Do you have any\", kind, \"?\")\n" +" print(\"-- I'm sorry, we're all out of\", kind)\n" +" for arg in arguments:\n" +" print(arg)\n" +" print(\"-\" * 40)\n" +" for kw in keywords:\n" +" print(kw, \":\", keywords[kw])\n" +"```" #: ../../tutorial/controlflow.rst:717 +#, fuzzy msgid "It could be called like this::" -msgstr "" +msgstr "می تواند به این صورت فراخوانی شود::" #: ../../tutorial/controlflow.rst:719 +#, fuzzy msgid "" "cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" " \"It's really very, VERY runny, sir.\",\n" @@ -1059,12 +1751,21 @@ msgid "" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" msgstr "" +"```python\n" +"cheeseshop(\"لیمبورگر\", \"آقا، این خیلی روان است.\",\n" +" \"آقا، این واقعاً خیلی، خیلی روان است.\",\n" +" shopkeeper=\"مایکل پیلین\",\n" +" client=\"جان کلیز\",\n" +" sketch=\"طرح فروشگاه پنیر\")\n" +"```" #: ../../tutorial/controlflow.rst:725 +#, fuzzy msgid "and of course it would print:" -msgstr "" +msgstr "و البته این به صورت زیر چاپ می شود:" #: ../../tutorial/controlflow.rst:727 +#, fuzzy msgid "" "-- Do you have any Limburger ?\n" "-- I'm sorry, we're all out of Limburger\n" @@ -1075,31 +1776,52 @@ msgid "" "client : John Cleese\n" "sketch : Cheese Shop Sketch" msgstr "" +"\n" +"-- آیا «Limburger» دارید؟\n" +"-- متأسفم، «Limburger» تمام کرده ایم.\n" +"خیلی آبکی است، قربان.\n" +"واقعاً خیلی، خیلی آبکی است، قربان.\n" +"----------------------------------------\n" +"فروشنده : مایکل پیلین\n" +"مشتری : جان کلیز\n" +"طرح : طرح «Cheese Shop Sketch»" #: ../../tutorial/controlflow.rst:738 +#, fuzzy msgid "" -"Note that the order in which the keyword arguments are printed is guaranteed " -"to match the order in which they were provided in the function call." +"Note that the order in which the keyword arguments are printed is guaranteed" +" to match the order in which they were provided in the function call." msgstr "" +"توجه داشته باشید که ترتیب چاپ آرگومان های کلیدی تضمین شده است که مطابق با " +"ترتیبی باشد که در فراخوانی تابع ارائه شده اند." #: ../../tutorial/controlflow.rst:742 +#, fuzzy msgid "Special parameters" -msgstr "" +msgstr "پارامترهای ویژه" #: ../../tutorial/controlflow.rst:744 +#, fuzzy msgid "" "By default, arguments may be passed to a Python function either by position " -"or explicitly by keyword. For readability and performance, it makes sense to " -"restrict the way arguments can be passed so that a developer need only look " -"at the function definition to determine if items are passed by position, by " -"position or keyword, or by keyword." +"or explicitly by keyword. For readability and performance, it makes sense to" +" restrict the way arguments can be passed so that a developer need only look" +" at the function definition to determine if items are passed by position, by" +" position or keyword, or by keyword." msgstr "" +"به طور پیش فرض، آرگومان ها می توانند به یک تابع Python یا به وسیله مکان و یا" +" صراحتاً به وسیله کلیدواژه گذرانده شوند. برای خوانایی و عملکرد بهتر، منطقی " +"است که نحوه گذراندن آرگومان ها محدود شود به طوری که توسعه دهنده تنها با نگاه" +" کردن به تعریف تابع بتواند تعیین کند که آیا موارد به وسیله مکان، به وسیله " +"مکان یا کلیدواژه، یا به وسیله کلیدواژه گذرانده می شوند." #: ../../tutorial/controlflow.rst:750 +#, fuzzy msgid "A function definition may look like:" -msgstr "" +msgstr "یک تعریف تابع ممکن است به این شکل باشد:" #: ../../tutorial/controlflow.rst:752 +#, fuzzy msgid "" "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" " ----------- ---------- ----------\n" @@ -1108,68 +1830,106 @@ msgid "" " | - Keyword only\n" " -- Positional only" msgstr "" +"```\n" +"def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" +" ----------- ---------- ----------\n" +" | | |\n" +" | مکانی یا کلیدواژه ای |\n" +" | - فقط کلیدواژه ای\n" +" -- فقط مکانی\n" +"```" #: ../../tutorial/controlflow.rst:761 +#, fuzzy 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." +"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 "" +"جایی که ``/`` و ``*`` انتخابی هستند. در صورت استفاده، این نمادها نوع پارامتر" +" را بر اساس چگونگی ارسال آرگومان ها به تابع تعیین می کنند: فقط مقامی، مقامی " +"یا کلیدی، و فقط کلیدی. پارامترهای کلیدی به عنوان پارامترهای نام گذاری شده " +"نیز شناخته می شوند." #: ../../tutorial/controlflow.rst:768 +#, fuzzy msgid "Positional-or-Keyword Arguments" -msgstr "" +msgstr "آرگومان های مکانی یا کلیدواژه ای" #: ../../tutorial/controlflow.rst:770 +#, fuzzy msgid "" -"If ``/`` and ``*`` are not present in the function definition, arguments may " -"be passed to a function by position or by keyword." +"If ``/`` and ``*`` are not present in the function definition, arguments may" +" be passed to a function by position or by keyword." msgstr "" +"اگر ``/`` و ``*`` در تعریف تابع حضور نداشته باشند، آرگومان ها ممکن است به " +"صورت موقعیتی یا با استفاده از کلیدواژه به یک تابع منتقل شوند." #: ../../tutorial/controlflow.rst:775 +#, fuzzy msgid "Positional-Only Parameters" -msgstr "" +msgstr "پارامترهای فقط موقعیتی" #: ../../tutorial/controlflow.rst:777 +#, fuzzy 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 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 "" +"با بررسی دقیق تر، می توان برخی از پارامترها را به عنوان *positional-only* " +"علامت گذاری کرد. اگر *positional-only*، ترتیب پارامترها مهم است و پارامترها " +"نمی توانند با استفاده از کلیدواژه ارسال شوند. پارامترهای فقط موقعیتی قبل از " +"یک ``/`` (خط مورب) قرار می گیرند. ``/`` برای جداسازی منطقی پارامترهای فقط " +"موقعیتی از بقیه پارامترها استفاده می شود. اگر در تعریف تابع ``/`` وجود " +"نداشته باشد، پارامترهای فقط موقعیتی وجود ندارند." #: ../../tutorial/controlflow.rst:785 +#, fuzzy msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." msgstr "" +"پارامترهایی که پس از ``/`` می آیند ممکن است *positional-or-keyword* یا " +"*keyword-only* باشند." #: ../../tutorial/controlflow.rst:789 +#, fuzzy msgid "Keyword-Only Arguments" -msgstr "" +msgstr "آرگومان های فقط-کلیدواژه ای" #: ../../tutorial/controlflow.rst:791 +#, fuzzy msgid "" "To mark parameters as *keyword-only*, indicating the parameters must be " -"passed by keyword argument, place an ``*`` in the arguments list just before " -"the first *keyword-only* parameter." +"passed by keyword argument, place an ``*`` in the arguments list just before" +" the first *keyword-only* parameter." msgstr "" +"برای مشخص کردن پارامترها به عنوان *keyword-only* که نشان می دهد پارامترها " +"باید با آرگومان کلیدواژه ای ارسال شوند، یک ``*`` را در لیست آرگومان ها، درست" +" قبل از اولین پارامتر *keyword-only* قرار دهید." #: ../../tutorial/controlflow.rst:797 +#, fuzzy msgid "Function Examples" -msgstr "" +msgstr "مثال های تابع" #: ../../tutorial/controlflow.rst:799 +#, fuzzy msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" msgstr "" +"تعاریف مثال تابع زیر را در نظر بگیرید و به علامت های ``/`` و ``*`` با دقت " +"توجه کنید::" #: ../../tutorial/controlflow.rst:802 +#, fuzzy msgid "" ">>> def standard_arg(arg):\n" "... print(arg)\n" @@ -1183,15 +1943,33 @@ msgid "" ">>> def combined_example(pos_only, /, standard, *, kwd_only):\n" "... print(pos_only, standard, kwd_only)" msgstr "" +"```python\n" +">>> def standard_arg(arg):\n" +"... print(arg)\n" +"...\n" +">>> def pos_only_arg(arg, /):\n" +"... print(arg)\n" +"...\n" +">>> def kwd_only_arg(*, arg):\n" +"... print(arg)\n" +"...\n" +">>> def combined_example(pos_only, /, standard, *, kwd_only):\n" +"... print(pos_only, standard, kwd_only)\n" +"```" #: ../../tutorial/controlflow.rst:815 +#, fuzzy msgid "" "The first function definition, ``standard_arg``, the most familiar form, " -"places no restrictions on the calling convention and arguments may be passed " -"by position or keyword::" +"places no restrictions on the calling convention and arguments may be passed" +" by position or keyword::" msgstr "" +"اولین تعریف تابع، ``standard_arg``، که به صورت معمولی ترین فرم است، محدودیتی" +" بر شیوه فراخوانی ندارد و آرگومان ها می توانند به صورت موقعیتی یا کلیدواژه " +"ای ارسال شوند::" #: ../../tutorial/controlflow.rst:819 +#, fuzzy msgid "" ">>> standard_arg(2)\n" "2\n" @@ -1199,14 +1977,23 @@ msgid "" ">>> standard_arg(arg=2)\n" "2" msgstr "" +">>> standard_arg(2)\n" +"2\n" +"\n" +">>> standard_arg(arg=2)\n" +"2" #: ../../tutorial/controlflow.rst:825 +#, fuzzy 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`` محدود به استفاده تنها از پارامترهای موقعیتی است " +"زیرا در تعریف تابع یک ``/`` وجود دارد::" #: ../../tutorial/controlflow.rst:828 +#, fuzzy msgid "" ">>> pos_only_arg(1)\n" "1\n" @@ -1214,17 +2001,29 @@ msgid "" ">>> pos_only_arg(arg=1)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -"TypeError: pos_only_arg() got some positional-only arguments passed as " -"keyword arguments: 'arg'" +"TypeError: pos_only_arg() got some positional-only arguments passed as keyword arguments: 'arg'" msgstr "" +"```python\n" +">>> pos_only_arg(1)\n" +"1\n" +"\n" +">>> pos_only_arg(arg=1)\n" +"ردیابی اخیر (آخرین فراخوان):\n" +" فایل \"\"، خط 1، در \n" +"TypeError: تابع pos_only_arg() تعدادی از آرگومان هایی که فقط به صورت موقعیتی باید ارسال شوند را به صورت کلیدواژه ای دریافت کرده است: 'arg'\n" +"```" #: ../../tutorial/controlflow.rst:836 +#, fuzzy msgid "" "The third function ``kwd_only_arg`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" msgstr "" +"سومین تابع ``kwd_only_arg`` تنها استفاده از آرگومان های کلید واژه ای را " +"اجازه می دهد، همانطور که با ``*`` در تعریف تابع نشان داده شده است::" #: ../../tutorial/controlflow.rst:839 +#, fuzzy msgid "" ">>> kwd_only_arg(3)\n" "Traceback (most recent call last):\n" @@ -1234,14 +2033,26 @@ msgid "" ">>> kwd_only_arg(arg=3)\n" "3" msgstr "" +"```\n" +">>> kwd_only_arg(3)\n" +"ردیابی اخیر تماس آخر:\n" +" فایل \"\", خط 1، در \n" +"TypeError: تابع kwd_only_arg() هیچ آرگومان موضعی نمی پذیرد اما 1 آرگومان داده شده است\n" +"\n" +">>> kwd_only_arg(arg=3)\n" +"3\n" +"```" #: ../../tutorial/controlflow.rst:847 +#, fuzzy msgid "" "And the last uses all three calling conventions in the same function " "definition::" msgstr "" +"و در آخری از هر سه قرارداد فراخوانی در تعریف یک تابع استفاده شده است::" #: ../../tutorial/controlflow.rst:850 +#, fuzzy msgid "" ">>> combined_example(1, 2, 3)\n" "Traceback (most recent call last):\n" @@ -1257,30 +2068,60 @@ msgid "" ">>> combined_example(pos_only=1, standard=2, kwd_only=3)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -"TypeError: combined_example() got some positional-only arguments passed as " -"keyword arguments: 'pos_only'" +"TypeError: combined_example() got some positional-only arguments passed as keyword arguments: 'pos_only'" msgstr "" +"```>>> combined_example(1, 2, 3)``` \n" +"دریابی خطا (آخرین تماس اخیر): \n" +"  فایل \"\"، خط 1، در \n" +"TypeError: تابع \"combined_example\" تعداد 2 آرگومان به صورت موضعی می پذیرد اما 3 آرگومان داده شده است\n" +"\n" +"```>>> combined_example(1, 2, kwd_only=3)``` \n" +"1 2 3\n" +"\n" +"```>>> combined_example(1, standard=2, kwd_only=3)``` \n" +"1 2 3\n" +"\n" +"```>>> combined_example(pos_only=1, standard=2, kwd_only=3)``` \n" +"دریابی خطا (آخرین تماس اخیر): \n" +"  فایل \"\"، خط 1، در \n" +"TypeError: تابع \"combined_example\" برخی از آرگومان های فقط-موضعی را به صورت آرگومان های کلیدواژه ای دریافت کرده است: 'pos_only'" #: ../../tutorial/controlflow.rst:867 +#, fuzzy 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`` به عنوان کلید است، وجود " +"داشته باشد::" #: ../../tutorial/controlflow.rst:869 +#, fuzzy msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" msgstr "" +"```python\n" +"def foo(name, **kwds):\n" +" return 'name' in kwds\n" +"```\n" +"\n" +"این تابع یک آرگومان با نام `name` و تعداد نامشخصی از آرگومان های کلیدی (`**kwds`) می پذیرد و بررسی می کند که آیا کلید `'name'` در آرگومان های کلیدی وجود دارد یا خیر. ⟩" #: ../../tutorial/controlflow.rst:872 +#, fuzzy msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" msgstr "" +"هیچ فراخوانی ای وجود ندارد که بتوان آن را به گونه ای انجام داد که ``True`` " +"برگردد، زیرا کلیدواژه ``'name'`` همیشه به اولین پارامتر متصل خواهد شد. برای " +"مثال::" #: ../../tutorial/controlflow.rst:875 +#, fuzzy msgid "" ">>> foo(1, **{'name': 2})\n" "Traceback (most recent call last):\n" @@ -1288,15 +2129,25 @@ msgid "" "TypeError: foo() got multiple values for argument 'name'\n" ">>>" msgstr "" +">>> foo(1, **{'name': 2})\n" +"آخرین بازبینی (خطایابی):\n" +" فایل \"\", خط 1، در \n" +"TypeError: تابع foo() مقدارهای متعددی برای پارامتر 'name' دریافت کرده است\n" +">>>" #: ../../tutorial/controlflow.rst:881 +#, fuzzy 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'`` را به عنوان یک " +"کلید در آرگومان های کلیدی می پذیرد::" #: ../../tutorial/controlflow.rst:883 +#, fuzzy msgid "" ">>> def foo(name, /, **kwds):\n" "... return 'name' in kwds\n" @@ -1304,81 +2155,138 @@ msgid "" ">>> foo(1, **{'name': 2})\n" "True" msgstr "" +">>> def foo(name, /, **kwds):\n" +"... return 'name' in kwds\n" +"...\n" +">>> foo(1, **{'name': 2})\n" +"درست" #: ../../tutorial/controlflow.rst:889 +#, fuzzy msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." msgstr "" +"به عبارت دیگر، نام های پارامترهای فقط موقعیتی می توانند در ``**kwds`` بدون " +"ابهام استفاده شوند." #: ../../tutorial/controlflow.rst:894 +#, fuzzy msgid "Recap" -msgstr "" +msgstr "خلاصه" #: ../../tutorial/controlflow.rst:896 +#, fuzzy msgid "" "The use case will determine which parameters to use in the function " "definition::" msgstr "" +"موارد استفاده تعیین خواهند کرد که کدام پارامترها را در تعریف تابع استفاده " +"کنید::" #: ../../tutorial/controlflow.rst:898 +#, fuzzy msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "" +"```python\n" +"def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" +"```\n" +"\n" +"تعریف تابعی به نام `f` با آرگومان های زیر:\n" +"\n" +"- `pos1` و `pos2`: آرگومان های موقعیتی که باید به طور اجباری موقعیتی فرستاده شوند.\n" +"- `pos_or_kwd`: آرگومانی که می تواند به صورت موقعیتی یا کلمه کلیدی فرستاده شود.\n" +"- `kwd1` و `kwd2`: آرگومان های کلمه کلیدی که باید به طور اجباری با نامشان فرستاده شوند." #: ../../tutorial/controlflow.rst:900 +#, fuzzy msgid "As guidance:" -msgstr "" +msgstr "به عنوان راهنما:" #: ../../tutorial/controlflow.rst:902 +#, fuzzy 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 " +"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 "" +"زمانی که می خواهید نام پارامترها در دسترس کاربر نباشد، از پارامترهای فقط " +"موقعیت دار استفاده کنید. این زمانی مفید است که نام پارامترها معنی واقعی " +"ندارند، اگر می خواهید ترتیب آرگومان ها هنگام فراخوانی تابع رعایت شود، یا اگر" +" نیاز دارید برخی پارامترهای موقعیت دار و کلیدواژه های دلخواه را بپذیرید." #: ../../tutorial/controlflow.rst:907 +#, fuzzy 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 " +"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 "" +"از کلمات کلیدی تنها زمانی استفاده کنید که نام ها دارای معنا هستند و تعریف " +"تابع با استفاده صریح از نام ها قابل فهم تر می شود یا می خواهید از اتکای " +"کاربران به موقعیت آرگومان در فراخوانی تابع جلوگیری کنید." #: ../../tutorial/controlflow.rst:910 +#, fuzzy msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." msgstr "" +"برای یک API، از «positional-only» استفاده کنید تا از ایجاد تغییرات شکسته در " +"API جلوگیری شود اگر نام پارامتر در آینده تغییر کند." #: ../../tutorial/controlflow.rst:916 +#, fuzzy msgid "Arbitrary Argument Lists" -msgstr "" +msgstr "فهرست آرگومان های دلخواه" #: ../../tutorial/controlflow.rst:921 +#, fuzzy msgid "" "Finally, the least frequently used option is to specify that a function can " "be called with an arbitrary number of arguments. These arguments will be " "wrapped up in a tuple (see :ref:`tut-tuples`). Before the variable number " "of arguments, zero or more normal arguments may occur. ::" msgstr "" +"در نهایت، کم استفاده ترین گزینه این است که مشخص کنیم یک تابع می تواند با " +"تعداد نامشخصی از آرگومان ها فراخوانی شود. این آرگومان ها در یک ``tuple`` " +"پیچیده می شوند (به :ref:`tut-tuples` مراجعه کنید). قبل از آرگومان های با " +"تعداد متغیر، ممکن است صفر یا تعداد بیشتری از آرگومان های معمولی وجود داشته " +"باشند. ::" #: ../../tutorial/controlflow.rst:926 +#, fuzzy msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" msgstr "" +"```python\n" +"def write_multiple_items(file, separator, *args):\n" +" file.write(separator.join(args))\n" +"```\n" +"\n" +"تابع `write_multiple_items` برای نوشتن چندین آیتم در یک فایل با استفاده از یک جداکننده." #: ../../tutorial/controlflow.rst:930 +#, fuzzy 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. ::" +"``*args`` parameter are 'keyword-only' arguments, meaning that they can only" +" be used as keywords rather than positional arguments. ::" msgstr "" +"به طور معمول، این آرگومان های *variadic* در انتهای لیست پارامترهای رسمی قرار" +" می گیرند، زیرا آن ها تمام آرگومان های ورودی باقی مانده را که به تابع ارسال " +"می شوند جمع آوری می کنند. هر پارامتر رسمی که بعد از پارامتر ``*args`` قرار " +"گیرد، به عنوان آرگومان های «فقط کلیدواژه ای» محسوب می شود، به این معنی که آن" +" ها فقط می توانند به عنوان کلیدواژه ها استفاده شوند و نه به عنوان آرگومان " +"های مکانی. ::" #: ../../tutorial/controlflow.rst:936 +#, fuzzy msgid "" ">>> def concat(*args, sep=\"/\"):\n" "... return sep.join(args)\n" @@ -1388,12 +2296,23 @@ msgid "" ">>> concat(\"earth\", \"mars\", \"venus\", sep=\".\")\n" "'earth.mars.venus'" msgstr "" +"```python\n" +">>> def concat(*args, sep=\"/\"):\n" +"... return sep.join(args)\n" +"...\n" +">>> concat(\"earth\", \"mars\", \"venus\")\n" +"'earth/mars/venus'\n" +">>> concat(\"earth\", \"mars\", \"venus\", sep=\".\")\n" +"'earth.mars.venus'\n" +"```" #: ../../tutorial/controlflow.rst:947 +#, fuzzy msgid "Unpacking Argument Lists" -msgstr "" +msgstr "بازکردن لیست های آرگومان" #: ../../tutorial/controlflow.rst:949 +#, fuzzy 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 " @@ -1402,53 +2321,86 @@ msgid "" "separately, write the function call with the ``*``\\ -operator to unpack " "the arguments out of a list or tuple::" msgstr "" +"وضعیت معکوس زمانی رخ می دهد که آرگومان ها در یک لیست یا تاپل قرار دارند اما " +"نیاز به بازکردن برای فراخوانی تابعی که به آرگومان های موقعیتی مجزا نیاز " +"دارد، وجود دارد. به عنوان مثال، تابع داخلی :func:`range` به آرگومان های " +"جداگانه *start* و *stop* نیاز دارد. اگر این آرگومان ها جداگانه در دسترس " +"نباشند، فراخوانی تابع را با عملگر ``*``\\ بنویسید تا آرگومان ها از یک لیست " +"یا تاپل باز شوند." #: ../../tutorial/controlflow.rst:956 +#, fuzzy msgid "" ">>> list(range(3, 6)) # normal call with separate arguments\n" "[3, 4, 5]\n" ">>> args = [3, 6]\n" -">>> list(range(*args)) # call with arguments unpacked from a " -"list\n" +">>> list(range(*args)) # call with arguments unpacked from a list\n" "[3, 4, 5]" msgstr "" +">>> list(range(3, 6)) # فراخوانی عادی با آرگومان های جداگانه\n" +"[3, 4, 5]\n" +">>> args = [3, 6]\n" +">>> list(range(*args)) # فراخوانی با باز کردن آرگومان ها از لیست\n" +"[3, 4, 5]" #: ../../tutorial/controlflow.rst:965 +#, fuzzy msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" msgstr "" +"به همین شکل، دیکشنری ها می توانند با استفاده از عملگر ``**``\\ آرگومان های " +"کلیدواژه ای را فراهم کنند::" #: ../../tutorial/controlflow.rst:968 +#, fuzzy msgid "" ">>> def parrot(voltage, state='a stiff', action='voom'):\n" "... print(\"-- This parrot wouldn't\", action, end=' ')\n" "... print(\"if you put\", voltage, \"volts through it.\", end=' ')\n" "... print(\"E's\", state, \"!\")\n" "...\n" -">>> d = {\"voltage\": \"four million\", \"state\": \"bleedin' demised\", " -"\"action\": \"VOOM\"}\n" +">>> d = {\"voltage\": \"four million\", \"state\": \"bleedin' demised\", \"action\": \"VOOM\"}\n" ">>> parrot(**d)\n" -"-- This parrot wouldn't VOOM if you put four million volts through it. E's " -"bleedin' demised !" +"-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !" msgstr "" +"```python\n" +">>> def parrot(voltage, state='a stiff', action='voom'):\n" +"... print(\"-- This parrot wouldn't\", action, end=' ')\n" +"... print(\"if you put\", voltage, \"volts through it.\", end=' ')\n" +"... print(\"E's\", state, \"!\")\n" +"...\n" +">>> d = {\"voltage\": \"four million\", \"state\": \"bleedin' demised\", \"action\": \"VOOM\"}\n" +">>> parrot(**d)\n" +"-- این طوطی نمی شد VOOM اگر شما گذاشتید چهار میلیون ولت از آن عبور کند. او مرده ی آشکار است!\n" +"```" #: ../../tutorial/controlflow.rst:981 +#, fuzzy msgid "Lambda Expressions" -msgstr "" +msgstr "عبارات \"Lambda\"" #: ../../tutorial/controlflow.rst:983 +#, fuzzy msgid "" -"Small anonymous functions can be created with the :keyword:`lambda` keyword. " -"This function returns the sum of its two arguments: ``lambda a, b: a+b``. " +"Small anonymous functions can be created with the :keyword:`lambda` keyword." +" This function returns the sum of its two arguments: ``lambda a, b: a+b``. " "Lambda functions can be used wherever function objects are required. They " -"are syntactically restricted to a single expression. Semantically, they are " -"just syntactic sugar for a normal function definition. Like nested function " -"definitions, lambda functions can reference variables from the containing " -"scope::" -msgstr "" +"are syntactically restricted to a single expression. Semantically, they are" +" just syntactic sugar for a normal function definition. Like nested " +"function definitions, lambda functions can reference variables from the " +"containing scope::" +msgstr "" +"توابع ناشناس کوچک می توانند با استفاده از کلمه کلیدی ``:keyword:`lambda``` " +"ایجاد شوند. این تابع مجموع دو آرگومان خود را برمی گرداند: ````lambda a, b: " +"a+b````. توابع ``lambda`` می توانند هر جایی که اشیاء تابعی مورد نیاز هستند " +"استفاده شوند. از نظر نحوی، آنها به یک عبارت واحد محدود می شوند. از نظر " +"معنایی، آنها فقط یک تراکم نحوی برای تعریف تابع عادی هستند. مانند تعریف توابع" +" تودرتو، توابع ``lambda`` می توانند به متغیرهای حوزه محاط دسترسی داشته " +"باشند::" #: ../../tutorial/controlflow.rst:991 +#, fuzzy msgid "" ">>> def make_incrementor(n):\n" "... return lambda x: x + n\n" @@ -1459,32 +2411,55 @@ msgid "" ">>> f(1)\n" "43" msgstr "" +"```python\n" +">>> def make_incrementor(n):\n" +"... return lambda x: x + n\n" +"...\n" +">>> f = make_incrementor(42)\n" +">>> f(0)\n" +"42\n" +">>> f(1)\n" +"43\n" +"```" #: ../../tutorial/controlflow.rst:1000 +#, fuzzy msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument::" msgstr "" +"مثال بالا از یک عبارت lambda برای بازگرداندن یک تابع استفاده می کند. استفاده" +" دیگر این است که یک تابع کوچک را به عنوان یک آرگومان ارسال کنیم::" #: ../../tutorial/controlflow.rst:1003 +#, fuzzy msgid "" ">>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" ">>> pairs.sort(key=lambda pair: pair[1])\n" ">>> pairs\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" msgstr "" +">>> جفت ها = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" +">>> جفت ها.sort(key=lambda pair: pair[1])\n" +">>> جفت ها\n" +"[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" #: ../../tutorial/controlflow.rst:1012 +#, fuzzy msgid "Documentation Strings" -msgstr "" +msgstr "رشته های مستندات" #: ../../tutorial/controlflow.rst:1019 +#, fuzzy msgid "" "Here are some conventions about the content and formatting of documentation " "strings." msgstr "" +"در اینجا برخی از قراردادها درباره محتوای متنی و فرمت بندی رشته های مستندات " +"آمده است." #: ../../tutorial/controlflow.rst:1022 +#, fuzzy msgid "" "The first line should always be a short, concise summary of the object's " "purpose. For brevity, it should not explicitly state the object's name or " @@ -1492,20 +2467,30 @@ msgid "" "to be a verb describing a function's operation). This line should begin " "with a capital letter and end with a period." msgstr "" +"اولین خط باید همیشه یک خلاصه ی کوتاه و مختصر از هدف شیء باشد. برای اختصار، " +"نباید به طور صریح نام یا نوع شیء ذکر شود، چون این اطلاعات از راه های دیگری " +"در دسترس است (به غیر از مواقعی که نام یک فعل توصیف گر عملکرد یک تابع باشد). " +"این خط باید با حرف بزرگ شروع شود و با نقطه به پایان برسد." #: ../../tutorial/controlflow.rst:1028 +#, fuzzy msgid "" "If there are more lines in the documentation string, the second line should " -"be blank, visually separating the summary from the rest of the description. " -"The following lines should be one or more paragraphs describing the object's " -"calling conventions, its side effects, etc." +"be blank, visually separating the summary from the rest of the description." +" The following lines should be one or more paragraphs describing the " +"object's calling conventions, its side effects, etc." msgstr "" +"اگر در رشته مستندات خطوط بیشتری وجود داشته باشد، خط دوم باید خالی باشد تا " +"بخش خلاصه به صورت تصویری از بقیه توضیحات جدا شود. خطوط بعدی باید شامل یک یا " +"چند پاراگراف باشند که به توصیف قرارداده های فراخوانی شیء، اثرات جانبی آن و " +"غیره می پردازند." #: ../../tutorial/controlflow.rst:1033 +#, fuzzy msgid "" -"The Python parser does not strip indentation from multi-line string literals " -"in Python, so tools that process documentation have to strip indentation if " -"desired. This is done using the following convention. The first non-blank " +"The Python parser does not strip indentation from multi-line string literals" +" in Python, so tools that process documentation have to strip indentation if" +" desired. This is done using the following convention. The first non-blank " "line *after* the first line of the string determines the amount of " "indentation for the entire documentation string. (We can't use the first " "line since it is generally adjacent to the string's opening quotes so its " @@ -1515,12 +2500,24 @@ msgid "" "they occur all their leading whitespace should be stripped. Equivalence of " "whitespace should be tested after expansion of tabs (to 8 spaces, normally)." msgstr "" +"تجزیه گر Python تورفتگی را از رشته های چندخطی در Python حذف نمی کند، " +"بنابراین ابزارهایی که مستندات را پردازش می کنند باید در صورت تمایل تورفتگی " +"را حذف کنند. این کار با استفاده از روش زیر انجام می شود. اولین خط غیر خالی " +"بعد از اولین خط رشته، مقدار تورفتگی کل رشته مستندات را تعیین می کند. (نمی " +"توانیم از خط اول استفاده کنیم زیرا معمولاً در کنار اولین کوتیشن های رشته " +"قرار دارد و تورفتگی آن در رشته مشخص نیست.) فاصله \"معادل\" با این تورفتگی " +"سپس از ابتدای تمامی خطوط رشته حذف می شود. خطوطی که تورفتگی کمتری دارند نباید" +" وجود داشته باشند، اما اگر وجود داشته باشند، تمامی فاصله های اولیه آن ها " +"باید حذف شود. معادل بودن فاصله گذاری باید بعد از گسترش تب ها (معمولاً به ۸ " +"فاصله) بررسی شود." #: ../../tutorial/controlflow.rst:1045 +#, fuzzy msgid "Here is an example of a multi-line docstring::" -msgstr "" +msgstr "در اینجا مثالی از یک `docstring` چند خطی آمده است::" #: ../../tutorial/controlflow.rst:1047 +#, fuzzy msgid "" ">>> def my_function():\n" "... \"\"\"Do nothing, but document it.\n" @@ -1534,31 +2531,60 @@ msgid "" "\n" " No, really, it doesn't do anything." msgstr "" +"```python\n" +">>> def my_function():\n" +"... \"\"\"هیچ کاری انجام نمی دهد، اما مستند شده است.\n" +"...\n" +"... نه، واقعا هیچ کاری انجام نمی دهد.\n" +"... \"\"\"\n" +"... pass\n" +"...\n" +">>> print(my_function.__doc__)\n" +"هیچ کاری انجام نمی دهد، اما مستند شده است.\n" +"\n" +" نه، واقعا هیچ کاری انجام نمی دهد.\n" +"```" #: ../../tutorial/controlflow.rst:1063 +#, fuzzy msgid "Function Annotations" -msgstr "" +msgstr "حاشیه نویسی توابع" #: ../../tutorial/controlflow.rst:1071 +#, fuzzy msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " "and :pep:`484` for more information)." msgstr "" +":ref:`Function annotations ` کاملاً اختیاری هستند و اطلاعات " +"متادیتا درباره نوع هایی که توسط توابع تعریف شده توسط کاربر استفاده می شوند " +"را ارائه می دهند (برای اطلاعات بیشتر به :pep:`3107` و :pep:`484` مراجعه " +"کنید)." #: ../../tutorial/controlflow.rst:1075 +#, fuzzy msgid "" -":term:`Annotations ` are stored in the :attr:`!" -"__annotations__` attribute of the function as a dictionary and have no " -"effect on any other part of the function. Parameter annotations are defined " -"by a colon after the parameter name, followed by an expression evaluating to " -"the value of the annotation. Return annotations are defined by a literal ``-" -">``, followed by an expression, between the parameter list and the colon " -"denoting the end of the :keyword:`def` statement. The following example has " -"a required argument, an optional argument, and the return value annotated::" -msgstr "" +":term:`Annotations ` are stored in the " +":attr:`!__annotations__` attribute of the function as a dictionary and have " +"no effect on any other part of the function. Parameter annotations are " +"defined by a colon after the parameter name, followed by an expression " +"evaluating to the value of the annotation. Return annotations are defined " +"by a literal ``->``, followed by an expression, between the parameter list " +"and the colon denoting the end of the :keyword:`def` statement. The " +"following example has a required argument, an optional argument, and the " +"return value annotated::" +msgstr "" +"ویژگی :attr:`!__annotations__` تابع به صورت یک دیکشنری ذخیره می شود و تأثیری" +" بر دیگر قسمت های تابع ندارد. توضیحات پارامترها با دو نقطه بعد از نام " +"پارامتر تعریف می شوند و با یک عبارت که مقدار توضیح را ارزیابی می کند، دنبال " +"می شوند. توضیحات بازگشت توسط یک ``->`` عبارتی، که بین لیست پارامترها و دو " +"نقطه نشان دهنده پایان بیانیه :keyword:`def` قرار دارد، تعریف می شود. مثال " +"زیر شامل یک آرگومان اجباری، یک آرگومان اختیاری و مقدار بازگشتی همراه با " +"توضیحات است::" #: ../../tutorial/controlflow.rst:1084 +#, fuzzy msgid "" ">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" "... print(\"Annotations:\", f.__annotations__)\n" @@ -1566,163 +2592,242 @@ msgid "" "... return ham + ' and ' + eggs\n" "...\n" ">>> f('spam')\n" -"Annotations: {'ham': , 'return': , 'eggs': }\n" +"Annotations: {'ham': , 'return': , 'eggs': }\n" "Arguments: spam eggs\n" "'spam and eggs'" msgstr "" +"```python\n" +">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" +"... print(\"Annotations:\", f.__annotations__)\n" +"... print(\"Arguments:\", ham, eggs)\n" +"... return ham + ' and ' + eggs\n" +"...\n" +">>> f('spam')\n" +"```\n" +"\n" +"```\n" +"Annotations: {'ham': , 'return': , 'eggs': }\n" +"Arguments: spam eggs\n" +"'spam and eggs'\n" +"```" #: ../../tutorial/controlflow.rst:1097 +#, fuzzy msgid "Intermezzo: Coding Style" -msgstr "" +msgstr "میان پرده: سبک کدنویسی" #: ../../tutorial/controlflow.rst:1102 +#, fuzzy msgid "" -"Now that you are about to write longer, more complex pieces of Python, it is " -"a good time to talk about *coding style*. Most languages can be written (or " -"more concise, *formatted*) in different styles; some are more readable than " -"others. Making it easy for others to read your code is always a good idea, " -"and adopting a nice coding style helps tremendously for that." +"Now that you are about to write longer, more complex pieces of Python, it is" +" a good time to talk about *coding style*. Most languages can be written " +"(or more concise, *formatted*) in different styles; some are more readable " +"than others. Making it easy for others to read your code is always a good " +"idea, and adopting a nice coding style helps tremendously for that." msgstr "" +"اکنون که قصد دارید بخش های طولانی تر و پیچیده تری از Python بنویسید، زمان " +"مناسبی است تا درباره ی *coding style* صحبت کنیم. بیشتر زبان ها را می توان به" +" روش های مختلفی نوشت (یا به عبارتی مختصرتر، *formatted*)؛ برخی از این سبک ها" +" خواناتر از بقیه هستند. اینکه کد شما به راحتی توسط دیگران خوانده شود، همیشه " +"ایده خوبی است و استفاده از یک سبک کدنویسی مناسب به شدت در این زمینه کمک می " +"کند." #: ../../tutorial/controlflow.rst:1108 +#, fuzzy msgid "" "For Python, :pep:`8` has emerged as the style guide that most projects " -"adhere to; it promotes a very readable and eye-pleasing coding style. Every " -"Python developer should read it at some point; here are the most important " +"adhere to; it promotes a very readable and eye-pleasing coding style. Every" +" Python developer should read it at some point; here are the most important " "points extracted for you:" msgstr "" +"برای پایتون، :pep:`8` به عنوان راهنمای سبک ظاهر شده است که اکثر پروژه ها به " +"آن پایبند هستند؛ این راهنما به یک سبک کدنویسی بسیار خوانا و خوش نما تاکید " +"دارد. هر توسعه دهنده پایتون باید در برخی مواقع آن را بخواند؛ در اینجا " +"مهمترین نکات استخراج شده برای شما آمده است:" #: ../../tutorial/controlflow.rst:1113 +#, fuzzy msgid "Use 4-space indentation, and no tabs." -msgstr "" +msgstr "برای تورفتگی از چهار فاصله استفاده کنید و از تب استفاده نکنید." #: ../../tutorial/controlflow.rst:1115 +#, fuzzy msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " "confusion, and are best left out." msgstr "" +"۴ فاصله یک مصالحه خوب بین تورفتگی کوچک (که عمق تو در تویی بیشتری را امکان " +"پذیر می کند) و تورفتگی بزرگ (که خواندن را آسان تر می کند) می باشد. استفاده " +"از tabها باعث سردرگمی می شود و بهتر است از آن ها استفاده نشود." #: ../../tutorial/controlflow.rst:1119 +#, fuzzy msgid "Wrap lines so that they don't exceed 79 characters." -msgstr "" +msgstr "خطوط را طوری بپیچانید که از ۷۹ کاراکتر تجاوز نکنند." #: ../../tutorial/controlflow.rst:1121 +#, fuzzy msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." msgstr "" +"این کار به کاربرانی که نمایشگرهای کوچکی دارند کمک می کند و امکان قرار دادن " +"چندین فایل کد را در کنار هم بر روی نمایشگرهای بزرگتر فراهم می آورد." #: ../../tutorial/controlflow.rst:1124 +#, fuzzy msgid "" -"Use blank lines to separate functions and classes, and larger blocks of code " -"inside functions." +"Use blank lines to separate functions and classes, and larger blocks of code" +" inside functions." msgstr "" +"از خطوط خالی برای جدا کردن توابع و کلاس ها، و بلوک های بزرگ تر کد داخل توابع" +" استفاده کنید." #: ../../tutorial/controlflow.rst:1127 +#, fuzzy msgid "When possible, put comments on a line of their own." -msgstr "" +msgstr "در صورت امکان، نظرات را در خطی مجزا قرار دهید." #: ../../tutorial/controlflow.rst:1129 +#, fuzzy msgid "Use docstrings." -msgstr "" +msgstr "از \"docstrings\" استفاده کنید." #: ../../tutorial/controlflow.rst:1131 +#, fuzzy msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" +"از فضاها در اطراف عملگرها و بعد از ویرگول ها استفاده کنید، اما به صورت " +"مستقیم در داخل ساختارهای براکت گذاری نه: ``a = f(1, 2) + g(3, 4)``." #: ../../tutorial/controlflow.rst:1134 +#, fuzzy msgid "" "Name your classes and functions consistently; the convention is to use " "``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " -"functions and methods. Always use ``self`` as the name for the first method " -"argument (see :ref:`tut-firstclasses` for more on classes and methods)." +"functions and methods. Always use ``self`` as the name for the first method" +" argument (see :ref:`tut-firstclasses` for more on classes and methods)." msgstr "" +"کلاس ها و توابع خود را به صورت یکدست نام گذاری کنید؛ طبق قراردادی که وجود " +"دارد از ``UpperCamelCase`` برای کلاس ها و از ``lowercase_with_underscores`` " +"برای توابع و متدها استفاده کنید. همیشه از ``self`` به عنوان نام اولین " +"آرگومان متد استفاده کنید (برای آگاهی بیشتر در مورد کلاس ها و متدها به " +":ref:`tut-firstclasses` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1139 +#, fuzzy msgid "" "Don't use fancy encodings if your code is meant to be used in international " -"environments. Python's default, UTF-8, or even plain ASCII work best in any " -"case." +"environments. Python's default, UTF-8, or even plain ASCII work best in any" +" case." msgstr "" +"اگر قصد دارید کد شما در محیط های بین المللی استفاده شود، از کدگذاری های " +"پیچیده استفاده نکنید. به طور کلی، کدگذاری پیش فرض Python یعنی UTF-8، یا حتی " +"ASCII ساده، بهترین عملکرد را خواهد داشت." #: ../../tutorial/controlflow.rst:1143 +#, fuzzy msgid "" -"Likewise, don't use non-ASCII characters in identifiers if there is only the " -"slightest chance people speaking a different language will read or maintain " -"the code." +"Likewise, don't use non-ASCII characters in identifiers if there is only the" +" slightest chance people speaking a different language will read or maintain" +" the code." msgstr "" +"به همین ترتیب، اگر حتی کوچک ترین احتمالی وجود دارد که افرادی با زبان های " +"متفاوت کد را بخوانند یا نگهداری کنند، از کاراکترهای غیر ASCII در شناسه ها " +"استفاده نکنید." #: ../../tutorial/controlflow.rst:1149 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پانویس ها" #: ../../tutorial/controlflow.rst:1150 +#, fuzzy msgid "" -"Actually, *call by object reference* would be a better description, since if " -"a mutable object is passed, the caller will see any changes the callee makes " -"to it (items inserted into a list)." +"Actually, *call by object reference* would be a better description, since if" +" a mutable object is passed, the caller will see any changes the callee " +"makes to it (items inserted into a list)." msgstr "" +"در واقع، *call by object reference* توصیف بهتری خواهد بود، زیرا اگر یک شیء " +"قابل تغییر ارسال شود، فردی که آن را فراخوانی کرده تغییراتی که فراخوانی شونده" +" بر روی آن اعمال می کند (اقلامی که در لیست درج می شوند) را مشاهده خواهد کرد." #: ../../tutorial/controlflow.rst:48 +#, fuzzy msgid "statement" -msgstr "" +msgstr "بیان" #: ../../tutorial/controlflow.rst:48 +#, fuzzy msgid "for" -msgstr "" +msgstr "برای" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 +#, fuzzy msgid "documentation strings" -msgstr "" +msgstr "رشته های مستندسازی" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 +#, fuzzy msgid "docstrings" -msgstr "" +msgstr "رشته های مستندات" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 +#, fuzzy msgid "strings, documentation" -msgstr "" +msgstr "رشته ها، مستندات" #: ../../tutorial/controlflow.rst:918 +#, fuzzy msgid "* (asterisk)" -msgstr "" +msgstr "ستاره (`*`)" #: ../../tutorial/controlflow.rst:918 ../../tutorial/controlflow.rst:962 +#, fuzzy msgid "in function calls" -msgstr "" +msgstr "در صدا زدن توابع" #: ../../tutorial/controlflow.rst:962 +#, fuzzy msgid "**" msgstr "" +"به نظر می رسد که متنی برای ترجمه فراهم نشده است. لطفاً متن مورد نظر خود را " +"برای ترجمه وارد کنید." #: ../../tutorial/controlflow.rst:1066 +#, fuzzy msgid "function" -msgstr "" +msgstr "تابع" #: ../../tutorial/controlflow.rst:1066 +#, fuzzy msgid "annotations" -msgstr "" +msgstr "حاشیه نویسی ها" #: ../../tutorial/controlflow.rst:1066 +#, fuzzy msgid "->" -msgstr "" +msgstr "لطفا متنی که می خواهید به فارسی ترجمه شود را برایم ارسال کنید." #: ../../tutorial/controlflow.rst:1066 +#, fuzzy msgid "function annotations" -msgstr "" +msgstr "یادداشت های توابع" #: ../../tutorial/controlflow.rst:1066 +#, fuzzy msgid ": (colon)" -msgstr "" +msgstr "دو نقطه (:)" #: ../../tutorial/controlflow.rst:1100 +#, fuzzy msgid "coding" -msgstr "" +msgstr "کدگذاری" #: ../../tutorial/controlflow.rst:1100 +#, fuzzy msgid "style" -msgstr "" +msgstr "سبک" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 5ef07f791..7b7768256 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -14,109 +14,148 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/datastructures.rst:5 +#, fuzzy msgid "Data Structures" -msgstr "" +msgstr "ساختارهای داده" #: ../../tutorial/datastructures.rst:7 +#, fuzzy msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." msgstr "" +"این فصل برخی از مواردی که قبلاً درباره آن ها یاد گرفته اید را با جزئیات " +"بیشتری توضیح می دهد و همچنین موارد جدیدی را نیز اضافه می کند." #: ../../tutorial/datastructures.rst:13 +#, fuzzy msgid "More on Lists" -msgstr "" +msgstr "بیشتر درباره لیست ها" #: ../../tutorial/datastructures.rst:15 +#, fuzzy msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" msgstr "" +"نوع داده ای فهرست دارای چندین متد اضافی است. در اینجا تمامی متدهای شیء های " +"فهرست آورده شده اند:" #: ../../tutorial/datastructures.rst:22 +#, fuzzy msgid "Add an item to the end of the list. Similar to ``a[len(a):] = [x]``." -msgstr "" +msgstr "یک آیتم به انتهای لیست اضافه کنید. مشابه ``a[len(a):] = [x]``." #: ../../tutorial/datastructures.rst:28 +#, fuzzy msgid "" "Extend the list by appending all the items from the iterable. Similar to " "``a[len(a):] = iterable``." msgstr "" +"لیست را با اضافه کردن همه آیتم ها از قابل تکرار گسترش دهید. مشابه " +"``a[len(a):] = iterable``." #: ../../tutorial/datastructures.rst:35 +#, fuzzy msgid "" "Insert an item at a given position. The first argument is the index of the " "element before which to insert, so ``a.insert(0, x)`` inserts at the front " "of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``." msgstr "" +"یک آیتم را در یک موقعیت مشخص وارد کنید. اولین آرگومان، شاخص المانی است که " +"قبل از آن قرار گیرد، بنابراین `insert(0, X)` آیتمی را در ابتدای لیست قرار می" +" دهد و `insert(1, X)` معادل `append(X)` است." #: ../../tutorial/datastructures.rst:43 +#, fuzzy msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " "a :exc:`ValueError` if there is no such item." msgstr "" +"اولین مورد را از لیست که مقدار آن برابر با *x* است حذف کنید. اگر چنین آیتمی " +"وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." #: ../../tutorial/datastructures.rst:50 +#, fuzzy msgid "" "Remove the item at the given position in the list, and return it. If no " "index is specified, ``a.pop()`` removes and returns the last item in the " "list. It raises an :exc:`IndexError` if the list is empty or the index is " "outside the list range." msgstr "" +"مورد در موقعیت داده شده در لیست را حذف کرده و آن را بازمی گرداند. اگر هیچ " +"اندیسی مشخص نشده باشد، ``a.pop()`` آخرین مورد در لیست را حذف و بازمی گرداند." +" اگر لیست خالی باشد یا اندیس خارج از محدوده لیست باشد، یک :exc:`IndexError` " +"ایجاد می کند." #: ../../tutorial/datastructures.rst:59 +#, fuzzy msgid "Remove all items from the list. Similar to ``del a[:]``." -msgstr "" +msgstr "همهٔ آیتم ها را از لیست حذف کنید. مشابه ``del a[:]``." #: ../../tutorial/datastructures.rst:65 +#, fuzzy msgid "" "Return zero-based index in the list of the first item whose value is equal " "to *x*. Raises a :exc:`ValueError` if there is no such item." msgstr "" +"برگرداندن شاخص بر مبنای صفر در لیست برای اولین موردی که مقدار آن برابر با " +"*x* است. اگر چنین موردی وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." #: ../../tutorial/datastructures.rst:68 +#, fuzzy msgid "" "The optional arguments *start* and *end* are interpreted as in the slice " -"notation and are used to limit the search to a particular subsequence of the " -"list. The returned index is computed relative to the beginning of the full " -"sequence rather than the *start* argument." +"notation and are used to limit the search to a particular subsequence of the" +" list. The returned index is computed relative to the beginning of the full" +" sequence rather than the *start* argument." msgstr "" +"استدلال های اختیاری *start* و *end* به همان صورت که در نشانه گذاری برش " +"استفاده می شوند تفسیر شده و برای محدود کردن جستجو به زیردنباله خاصی از لیست " +"به کار می روند. اندیس برگردانده شده نسبت به ابتدای کل دنباله محاسبه می شود و" +" نه نسبت به آرگومان *start*." #: ../../tutorial/datastructures.rst:77 +#, fuzzy msgid "Return the number of times *x* appears in the list." -msgstr "" +msgstr "تعداد دفعاتی که *x* در لیست ظاهر می شود را برگردانید." #: ../../tutorial/datastructures.rst:83 +#, fuzzy msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" +"اقلام لیست را به صورت درجا مرتب کنید (آرگومان ها می توانند برای سفارشی سازی " +"مرتب سازی استفاده شوند، برای توضیحات آن ها به :func:`sorted` مراجعه کنید)." #: ../../tutorial/datastructures.rst:90 +#, fuzzy msgid "Reverse the elements of the list in place." -msgstr "" +msgstr "عناصر لیست را به صورت درجا معکوس کنید." #: ../../tutorial/datastructures.rst:96 +#, fuzzy msgid "Return a shallow copy of the list. Similar to ``a[:]``." -msgstr "" +msgstr "یک کپی سطحی از لیست را برمی گرداند. مشابه با ``a[:]``." #: ../../tutorial/datastructures.rst:99 +#, fuzzy msgid "An example that uses most of the list methods::" -msgstr "" +msgstr "مثالی که از بیشتر متدهای لیست استفاده می کند::" #: ../../tutorial/datastructures.rst:101 +#, fuzzy msgid "" -">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', " -"'banana']\n" +">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']\n" ">>> fruits.count('apple')\n" "2\n" ">>> fruits.count('tangerine')\n" @@ -137,16 +176,60 @@ msgid "" ">>> fruits.pop()\n" "'pear'" msgstr "" +"```python\n" +">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']\n" +"```\n" +"```python\n" +">>> fruits.count('apple')\n" +"```\n" +"2\n" +"```python\n" +">>> fruits.count('tangerine')\n" +"```\n" +"0\n" +"```python\n" +">>> fruits.index('banana')\n" +"```\n" +"3\n" +"```python\n" +">>> fruits.index('banana', 4) # یافتن موز بعدی از موقعیت ۴\n" +"```\n" +"6\n" +"```python\n" +">>> fruits.reverse()\n" +">>> fruits\n" +"```\n" +"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']\n" +"```python\n" +">>> fruits.append('grape')\n" +">>> fruits\n" +"```\n" +"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']\n" +"```python\n" +">>> fruits.sort()\n" +">>> fruits\n" +"```\n" +"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']\n" +"```python\n" +">>> fruits.pop()\n" +"```\n" +"'pear'" #: ../../tutorial/datastructures.rst:122 +#, fuzzy msgid "" "You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " "that only modify the list have no return value printed -- they return the " "default ``None``. [#]_ This is a design principle for all mutable data " "structures in Python." msgstr "" +"ممکن است متوجه شده باشید که روش هایی مانند ```insert```، ```remove``` یا " +"```sort``` که فقط لیست را تغییر می دهند، هیچ مقدار بازگشتی چاپ نمی کنند -- " +"آن ها مقدار پیش فرض ```None``` را بازمی گردانند. [#]_ این یک اصل طراحی برای " +"تمام ساختارهای داده ای تغییرپذیر در پایتون است." #: ../../tutorial/datastructures.rst:127 +#, fuzzy msgid "" "Another thing you might notice is that not all data can be sorted or " "compared. For instance, ``[None, 'hello', 10]`` doesn't sort because " @@ -154,21 +237,34 @@ msgid "" "other types. Also, there are some types that don't have a defined ordering " "relation. For example, ``3+4j < 5+7j`` isn't a valid comparison." msgstr "" +"موضوع دیگری که ممکن است متوجه شوید این است که همه داده ها قابل مرتب سازی یا " +"مقایسه نیستند. به عنوان مثال، ``[None, 'hello', 10]`` مرتب نمی شود زیرا " +"اعداد صحیح نمی توانند با رشته ها مقایسه شوند و ``None`` نمی تواند با انواع " +"دیگر مقایسه شود. همچنین، برخی انواع وجود دارند که رابطه ترتیب بندی تعریف شده" +" ای ندارند. برای مثال، ``3+4j < 5+7j`` یک مقایسه معتبر نیست." #: ../../tutorial/datastructures.rst:138 +#, fuzzy msgid "Using Lists as Stacks" -msgstr "" +msgstr "استفاده از فهرست ها به عنوان پشته ها" #: ../../tutorial/datastructures.rst:143 +#, fuzzy msgid "" "The list methods make it very easy to use a list as a stack, where the last " "element added is the first element retrieved (\"last-in, first-out\"). To " "add an item to the top of the stack, use :meth:`!append`. To retrieve an " -"item from the top of the stack, use :meth:`!pop` without an explicit index. " -"For example::" +"item from the top of the stack, use :meth:`!pop` without an explicit index." +" For example::" msgstr "" +"روش های لیست استفاده از یک لیست به عنوان یک پشته را بسیار آسان می کنند، جایی" +" که آخرین عنصر اضافه شده اولین بخشی است که بازیابی می شود (\"آخرین ورودی، " +"اولین خروجی\"). برای اضافه کردن یک آیتم به بالای پشته، از " +"``:meth:`!append``` استفاده کنید. برای بازیابی یک آیتم از بالای پشته، از " +"``:meth:`!pop``` بدون اشاره گر مشخص استفاده کنید. برای مثال::" #: ../../tutorial/datastructures.rst:148 +#, fuzzy msgid "" ">>> stack = [3, 4, 5]\n" ">>> stack.append(6)\n" @@ -186,27 +282,55 @@ msgid "" ">>> stack\n" "[3, 4]" msgstr "" +"```python\n" +">>> stack = [3, 4, 5]\n" +">>> stack.append(6)\n" +">>> stack.append(7)\n" +">>> stack\n" +"[3, 4, 5, 6, 7]\n" +">>> stack.pop()\n" +"7\n" +">>> stack\n" +"[3, 4, 5, 6]\n" +">>> stack.pop()\n" +"6\n" +">>> stack.pop()\n" +"5\n" +">>> stack\n" +"[3, 4]\n" +"```" #: ../../tutorial/datastructures.rst:168 +#, fuzzy msgid "Using Lists as Queues" -msgstr "" +msgstr "استفاده از لیست ها به عنوان صف ها" #: ../../tutorial/datastructures.rst:172 +#, fuzzy msgid "" "It is also possible to use a list as a queue, where the first element added " -"is the first element retrieved (\"first-in, first-out\"); however, lists are " -"not efficient for this purpose. While appends and pops from the end of list " -"are fast, doing inserts or pops from the beginning of a list is slow " +"is the first element retrieved (\"first-in, first-out\"); however, lists are" +" not efficient for this purpose. While appends and pops from the end of " +"list are fast, doing inserts or pops from the beginning of a list is slow " "(because all of the other elements have to be shifted by one)." msgstr "" +"همچنین می توان از لیست به عنوان صف استفاده کرد، به طوری که اولین عنصر اضافه " +"شده، اولین عنصری است که برداشته می شود (اولین ورودی، اولین خروجی)؛ با این " +"حال، لیست ها برای این منظور کارآمد نیستند. باوجود اینکه اضافه کردن و برداشتن" +" از انتهای لیست سریع است، درج یا برداشتن از ابتدای لیست کند است (زیرا بقیه " +"عناصر باید به اندازه یک واحد جابه جا شوند)." #: ../../tutorial/datastructures.rst:178 +#, fuzzy msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" msgstr "" +"برای پیاده سازی یک صف، از :class:`collections.deque` استفاده کنید که برای " +"افزودن و حذف سریع از هر دو طرف طراحی شده است. به عنوان مثال:" #: ../../tutorial/datastructures.rst:181 +#, fuzzy msgid "" ">>> from collections import deque\n" ">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n" @@ -219,24 +343,43 @@ msgid "" ">>> queue # Remaining queue in order of arrival\n" "deque(['Michael', 'Terry', 'Graham'])" msgstr "" +">>> از collections ماژول `deque` را وارد کنید\n" +">>> صف = `deque`([\"Eric\"، \"John\"، \"Michael\"])\n" +">>> صف را با افزودن \"Terry\" گسترش دهید # Terry وارد می شود\n" +">>> صف را با افزودن \"Graham\" گسترش دهید # Graham وارد می شود\n" +">>> صف را از سمت چپ حذف کنید # اولین فرد وارد شده اکنون خارج می شود\n" +"'Eric'\n" +">>> صف را از سمت چپ حذف کنید # دومین فرد وارد شده اکنون خارج می شود\n" +"'John'\n" +">>> صف # صف باقی مانده به ترتیب ورود\n" +"`deque`(['Michael'، 'Terry'، 'Graham'])" #: ../../tutorial/datastructures.rst:196 +#, fuzzy msgid "List Comprehensions" -msgstr "" +msgstr "فهرست های فشرده نویسی (List Comprehensions)" #: ../../tutorial/datastructures.rst:198 +#, fuzzy msgid "" "List comprehensions provide a concise way to create lists. Common " "applications are to make new lists where each element is the result of some " "operations applied to each member of another sequence or iterable, or to " "create a subsequence of those elements that satisfy a certain condition." msgstr "" +"لیست کامپری هنشن ها یک روش مختصر برای ایجاد لیست ها ارائه می دهند. کاربردهای" +" رایج آن ها شامل ایجاد لیست های جدید است که در آن هر عنصر نتیجه ی برخی " +"عملیات ها است که بر روی هر عضو دنباله یا قابل iter اعمال می شود، یا برای " +"ایجاد یک زیر دنباله از آن عناصری که یک شرط خاص را برآورده می کنند، استفاده " +"می شوند." #: ../../tutorial/datastructures.rst:203 +#, fuzzy msgid "For example, assume we want to create a list of squares, like::" -msgstr "" +msgstr "به عنوان مثال، فرض کنیم می خواهیم لیستی از مربع ها ایجاد کنیم، مانند:" #: ../../tutorial/datastructures.rst:205 +#, fuzzy msgid "" ">>> squares = []\n" ">>> for x in range(10):\n" @@ -245,51 +388,81 @@ msgid "" ">>> squares\n" "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" msgstr "" +"```python\n" +">>> مربعات = []\n" +">>> برای x در محدوده(10):\n" +"... مربعات.اضافه کردن(x**2)\n" +"...\n" +">>> مربعات\n" +"[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]\n" +"```" #: ../../tutorial/datastructures.rst:212 +#, fuzzy msgid "" "Note that this creates (or overwrites) a variable named ``x`` that still " "exists after the loop completes. We can calculate the list of squares " "without any side effects using::" msgstr "" +"لطفاً توجه کنید که این یک متغیر به نام ``x`` ایجاد می کند (یا بازنویسی می " +"کند) که پس از اتمام حلقه همچنان وجود دارد. ما می توانیم لیست مربعات را بدون " +"هیچ اثر جانبی با استفاده از موارد زیر محاسبه کنیم::" #: ../../tutorial/datastructures.rst:216 +#, fuzzy msgid "squares = list(map(lambda x: x**2, range(10)))" -msgstr "" +msgstr "```squares``` = ```list(map(lambda x: x**2, range(10)))```" #: ../../tutorial/datastructures.rst:218 +#, fuzzy msgid "or, equivalently::" -msgstr "" +msgstr "یا به عبارت دیگر::" #: ../../tutorial/datastructures.rst:220 +#, fuzzy msgid "squares = [x**2 for x in range(10)]" -msgstr "" +msgstr "مربعات = [x**2 for x in range(10)]" #: ../../tutorial/datastructures.rst:222 +#, fuzzy msgid "which is more concise and readable." -msgstr "" +msgstr "که مختصرتر و خواناتر است." #: ../../tutorial/datastructures.rst:224 +#, fuzzy msgid "" "A list comprehension consists of brackets containing an expression followed " -"by a :keyword:`!for` clause, then zero or more :keyword:`!for` or :keyword:`!" -"if` clauses. The result will be a new list resulting from evaluating the " -"expression in the context of the :keyword:`!for` and :keyword:`!if` clauses " -"which follow it. For example, this listcomp combines the elements of two " -"lists if they are not equal::" -msgstr "" +"by a :keyword:`!for` clause, then zero or more :keyword:`!for` or " +":keyword:`!if` clauses. The result will be a new list resulting from " +"evaluating the expression in the context of the :keyword:`!for` and " +":keyword:`!if` clauses which follow it. For example, this listcomp combines " +"the elements of two lists if they are not equal::" +msgstr "" +"یک فهرست تفسیرشده از براکت هایی شامل یک عبارت ایجاد شده است که به دنبال آن " +"یک بند `:keyword:`!for`` و سپس صفر یا بیشتر از بندهای `:keyword:`!for`` یا " +"`:keyword:`!if`` قرار می گیرد. نتیجه یک لیست جدید خواهد بود که از ارزیابی " +"عبارت در متن بندهای `:keyword:`!for`` و `:keyword:`!if`` که بعد از آن می " +"آیند، به دست می آید. به عنوان مثال، این فهرست ترکیبی از عناصر دو فهرست را " +"اگر برابر نباشند، انجام می دهد." #: ../../tutorial/datastructures.rst:231 +#, fuzzy msgid "" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" +"```python\n" +">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" +"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]\n" +"```" #: ../../tutorial/datastructures.rst:234 +#, fuzzy msgid "and it's equivalent to::" -msgstr "" +msgstr "و معادل آن به صورت زیر است::" #: ../../tutorial/datastructures.rst:236 +#, fuzzy msgid "" ">>> combs = []\n" ">>> for x in [1,2,3]:\n" @@ -300,20 +473,37 @@ msgid "" ">>> combs\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" +"```python\n" +">>> combs = []\n" +">>> for x in [1,2,3]:\n" +"... for y in [3,1,4]:\n" +"... if x != y:\n" +"... combs.append((x, y))\n" +"...\n" +">>> combs\n" +"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]\n" +"```" #: ../../tutorial/datastructures.rst:245 +#, fuzzy msgid "" -"Note how the order of the :keyword:`for` and :keyword:`if` statements is the " -"same in both these snippets." +"Note how the order of the :keyword:`for` and :keyword:`if` statements is the" +" same in both these snippets." msgstr "" +"توجه داشته باشید که ترتیب دستورات :keyword:`for` و :keyword:`if` در هر دو " +"بخش کد مشابه است." #: ../../tutorial/datastructures.rst:248 +#, fuzzy msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" +"اگر عبارت یک تاپل باشد (مثلاً ``(x, y)`` در مثال قبلی)، باید در داخل پرانتز " +"قرار گیرد. ::" #: ../../tutorial/datastructures.rst:251 +#, fuzzy msgid "" ">>> vec = [-4, -2, 0, 2, 4]\n" ">>> # create a new list with the values doubled\n" @@ -343,36 +533,80 @@ msgid "" ">>> [num for elem in vec for num in elem]\n" "[1, 2, 3, 4, 5, 6, 7, 8, 9]" msgstr "" +"```\n" +">>> vec = [-4, -2, 0, 2, 4]\n" +">>> # یک لیست جدید با مقادیر دو برابر شده ایجاد کنید\n" +">>> [x*2 for x in vec]\n" +"[-8, -4, 0, 4, 8]\n" +">>> # filter the list to exclude negative numbers\n" +">>> [x for x in vec if x >= 0]\n" +"[0, 2, 4]\n" +">>> # apply a function to all the elements\n" +">>> [abs(x) for x in vec]\n" +"[4, 2, 0, 2, 4]\n" +">>> # call a method on each element\n" +">>> freshfruit = [' banana', ' loganberry ', 'passion fruit ']\n" +">>> [weapon.strip() for weapon in freshfruit]\n" +"['banana', 'loganberry', 'passion fruit']\n" +">>> # create a list of 2-tuples like (number, square)\n" +">>> [(x, x**2) for x in range(6)]\n" +"[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]\n" +">>> # the tuple must be parenthesized, otherwise an error is raised\n" +">>> [x, x**2 for x in range(6)]\n" +" File \"\", line 1\n" +" [x, x**2 for x in range(6)]\n" +" ^^^^^^^\n" +"SyntaxError: آیا پرانتزها را دور هدف درک کردن فراموش کرده اید؟\n" +">>> # یک لیست را با استفاده از یک لیست فهمی با دو 'for' صاف کنید\n" +">>> vec = [[1,2,3], [4,5,6], [7,8,9]]\n" +">>> [num for elem in vec for num in elem]\n" +"[1, 2, 3, 4, 5, 6, 7, 8, 9]\n" +"```" #: ../../tutorial/datastructures.rst:279 +#, fuzzy msgid "" "List comprehensions can contain complex expressions and nested functions::" -msgstr "" +msgstr "فهرست سازی می تواند شامل عبارات پیچیده و توابع تو در تو باشد::" #: ../../tutorial/datastructures.rst:281 +#, fuzzy msgid "" ">>> from math import pi\n" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" msgstr "" +"```python\n" +">>> from math import pi\n" +">>> [str(round(pi, i)) for i in range(1, 6)]\n" +"['3.1', '3.14', '3.142', '3.1416', '3.14159']\n" +"```" #: ../../tutorial/datastructures.rst:286 +#, fuzzy msgid "Nested List Comprehensions" -msgstr "" +msgstr "فهرست های تو در توی درک شده" #: ../../tutorial/datastructures.rst:288 +#, fuzzy msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." msgstr "" +"عبارت اولیه در یک \"list comprehension\" می تواند هر عبارت دلخواهی باشد، از " +"جمله یک \"list comprehension\" دیگر." #: ../../tutorial/datastructures.rst:291 +#, fuzzy msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" msgstr "" +"در نظر داشته باشید مثال زیر از یک ماتریس ۳x۴ که به صورت یک لیست از ۳ لیست با" +" طول ۴ پیاده سازی شده است:" #: ../../tutorial/datastructures.rst:294 +#, fuzzy msgid "" ">>> matrix = [\n" "... [1, 2, 3, 4],\n" @@ -380,25 +614,41 @@ msgid "" "... [9, 10, 11, 12],\n" "... ]" msgstr "" +"```python\n" +">>> matrix = [\n" +"... [1, 2, 3, 4],\n" +"... [5, 6, 7, 8],\n" +"... [9, 10, 11, 12],\n" +"... ]\n" +"```" #: ../../tutorial/datastructures.rst:300 +#, fuzzy msgid "The following list comprehension will transpose rows and columns::" -msgstr "" +msgstr "فهرست فهمی زیر سطر ها و ستون ها را جابه جا خواهد کرد::" #: ../../tutorial/datastructures.rst:302 +#, fuzzy msgid "" ">>> [[row[i] for row in matrix] for i in range(4)]\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" +">>> [[row[i] for row in matrix] for i in range(4)]\n" +"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" #: ../../tutorial/datastructures.rst:305 +#, fuzzy msgid "" -"As we saw in the previous section, the inner list comprehension is evaluated " -"in the context of the :keyword:`for` that follows it, so this example is " +"As we saw in the previous section, the inner list comprehension is evaluated" +" in the context of the :keyword:`for` that follows it, so this example is " "equivalent to::" msgstr "" +"همان طور که در بخش قبلی دیدیم، تفسیر «list comprehension» داخلی در زمینه " +"«:keyword:`for`» که پس از آن قرار دارد انجام می شود، بنابراین این مثال معادل" +" است با:" #: ../../tutorial/datastructures.rst:309 +#, fuzzy msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -407,12 +657,22 @@ msgid "" ">>> transposed\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" +"```python\n" +">>> transposed = []\n" +">>> for i in range(4):\n" +"... transposed.append([row[i] for row in matrix])\n" +"...\n" +">>> transposed\n" +"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]\n" +"```" #: ../../tutorial/datastructures.rst:316 +#, fuzzy msgid "which, in turn, is the same as::" -msgstr "" +msgstr "که به نوبه خود، مشابه است با::" #: ../../tutorial/datastructures.rst:318 +#, fuzzy msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -425,29 +685,55 @@ msgid "" ">>> transposed\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" +"```python\n" +">>> transposed = []\n" +">>> for i in range(4):\n" +"... # سه خط بعدی لیست تو در تو را پیاده سازی می کند\n" +"... transposed_row = []\n" +"... for row in matrix:\n" +"... transposed_row.append(row[i])\n" +"... transposed.append(transposed_row)\n" +"...\n" +">>> transposed\n" +"[[1, 5, 9], [2, 6، 10], [3, 7، 11], [4, 8، 12]]\n" +"```" #: ../../tutorial/datastructures.rst:329 +#, fuzzy msgid "" "In the real world, you should prefer built-in functions to complex flow " -"statements. The :func:`zip` function would do a great job for this use case::" +"statements. The :func:`zip` function would do a great job for this use " +"case::" msgstr "" +"در دنیای واقعی، شما باید توابع داخلی را به عبارات جریان پیچیده ترجیح دهید. " +"تابع :func:`zip` برای این مورد استفاده عالی عمل خواهد کرد::" #: ../../tutorial/datastructures.rst:332 +#, fuzzy msgid "" ">>> list(zip(*matrix))\n" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" msgstr "" +"```python\n" +">>> list(zip(*matrix))\n" +"[(۱, ۵, ۹), (۲, ۶, ۱۰), (۳, ۷, ۱۱), (۴, ۸, ۱۲)]\n" +"```" #: ../../tutorial/datastructures.rst:335 +#, fuzzy msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" +"برای جزئیات مربوط به ستاره در این خط، به :ref:`tut-unpacking-arguments` " +"مراجعه کنید." #: ../../tutorial/datastructures.rst:340 +#, fuzzy msgid "The :keyword:`!del` statement" -msgstr "" +msgstr "عبارت :keyword:`!del`" #: ../../tutorial/datastructures.rst:342 +#, fuzzy msgid "" "There is a way to remove an item from a list given its index instead of its " "value: the :keyword:`del` statement. This differs from the :meth:`!pop` " @@ -455,8 +741,14 @@ msgid "" "used to remove slices from a list or clear the entire list (which we did " "earlier by assignment of an empty list to the slice). For example::" msgstr "" +"برای حذف یک آیتم از لیست با داشتن اندیس آن به جای مقدارش، می توان از دستور " +":keyword:`del` استفاده کرد. این با متد :meth:`!pop` که مقداری را برمی " +"گرداند، متفاوت است. دستور :keyword:`!del` نیز می تواند برای حذف بخش هایی از " +"لیست یا خالی کردن کامل لیست استفاده شود (که پیش تر با تخصیص یک لیست خالی به " +"بخش انجام دادیم). به عنوان مثال::" #: ../../tutorial/datastructures.rst:348 +#, fuzzy msgid "" ">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n" ">>> del a[0]\n" @@ -469,40 +761,72 @@ msgid "" ">>> a\n" "[]" msgstr "" +"```python\n" +">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n" +">>> del a[0]\n" +">>> a\n" +"[1, 66.25، 333، 333، 1234.5]\n" +">>> del a[2:4]\n" +">>> a\n" +"[1, 66.25، 1234.5]\n" +">>> del a[:]\n" +">>> a\n" +"[]\n" +"```" #: ../../tutorial/datastructures.rst:359 +#, fuzzy msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" +":keyword:`del` می تواند برای حذف کل متغیرها نیز مورد استفاده قرار گیرد::" #: ../../tutorial/datastructures.rst:361 +#, fuzzy msgid ">>> del a" msgstr "" +">>> del a\n" +"\n" +"حذف متغیر `a` از فضای نام جاری." #: ../../tutorial/datastructures.rst:363 +#, fuzzy msgid "" "Referencing the name ``a`` hereafter is an error (at least until another " "value is assigned to it). We'll find other uses for :keyword:`del` later." msgstr "" +"ارجاع به نام ``a`` بعد از این یک خطا است (حداقل تا زمانی که مقدار دیگری به " +"آن اختصاص داده شود). بعداً برای :keyword:`del` استفاده های دیگری پیدا خواهیم" +" کرد." #: ../../tutorial/datastructures.rst:370 +#, fuzzy msgid "Tuples and Sequences" -msgstr "" +msgstr "تاپل ها و توالی ها" #: ../../tutorial/datastructures.rst:372 +#, fuzzy msgid "" "We saw that lists and strings have many common properties, such as indexing " -"and slicing operations. They are two examples of *sequence* data types " -"(see :ref:`typesseq`). Since Python is an evolving language, other sequence " -"data types may be added. There is also another standard sequence data type: " -"the *tuple*." +"and slicing operations. They are two examples of *sequence* data types (see" +" :ref:`typesseq`). Since Python is an evolving language, other sequence " +"data types may be added. There is also another standard sequence data type:" +" the *tuple*." msgstr "" +"ما دیدیم که لیست ها و رشته ها خواص مشترک زیادی دارند، مانند عملیات ایندکس " +"گذاری و برش. آنها دو نمونه از انواع داده *sequence* هستند (نگاه کنید به " +":ref:`typesseq`). از آنجایی که پایتون یک زبان در حال تکامل است، انواع داده " +"ترتیبی دیگر نیز ممکن است اضافه شوند. همچنین یک نوع داده ترتیبی استاندارد " +"دیگر نیز وجود دارد: *tuple*." #: ../../tutorial/datastructures.rst:378 +#, fuzzy msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" +"یک \"tuple\" شامل چندین مقدار است که با کاما از هم جدا شده اند، برای مثال:" #: ../../tutorial/datastructures.rst:380 +#, fuzzy msgid "" ">>> t = 12345, 54321, 'hello!'\n" ">>> t[0]\n" @@ -523,38 +847,78 @@ msgid "" ">>> v\n" "([1, 2, 3], [3, 2, 1])" msgstr "" +">>> t = 12345, 54321, 'hello!'\n" +">>> t[0]\n" +"12345\n" +">>> t\n" +"(12345, 54321, 'hello!')\n" +">>> # تاپل ها می توانند تو در تو باشند:\n" +">>> u = t, (1, 2, 3, 4, 5)\n" +">>> u\n" +"((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))\n" +">>> # تاپل ها تغییرناپذیر هستند:\n" +">>> t[0] = 88888\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: 'tuple' object does not support item assignment\n" +">>> # اما می توانند شامل اشیاء قابل تغییر باشند:\n" +">>> v = ([1, 2, 3], [3, 2, 1])\n" +">>> v\n" +"([1, 2, 3], [3, 2, 1])" #: ../../tutorial/datastructures.rst:400 +#, fuzzy msgid "" "As you see, on output tuples are always enclosed in parentheses, so that " "nested tuples are interpreted correctly; they may be input with or without " -"surrounding parentheses, although often parentheses are necessary anyway (if " -"the tuple is part of a larger expression). It is not possible to assign to " -"the individual items of a tuple, however it is possible to create tuples " +"surrounding parentheses, although often parentheses are necessary anyway (if" +" the tuple is part of a larger expression). It is not possible to assign to" +" the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" +"همان طور که مشاهده می کنید، در خروجی، تاپل ها همیشه در پرانتز قرار می گیرند " +"تا تاپل های تو در تو به درستی تفسیر شوند؛ آن ها می توانند بدون پرانتز محصور " +"کننده یا با آن وارد شوند، اگرچه اغلب پرانتزها در هر صورت لازم هستند (اگر " +"تاپل بخشی از یک عبارت بزرگتر باشد). امکان انتساب به آیتم های فردی یک تاپل " +"وجود ندارد، اما امکان ایجاد تاپل های حاوی اشیای قابل تغییر، مانند لیست ها " +"وجود دارد." #: ../../tutorial/datastructures.rst:407 +#, fuzzy msgid "" "Though tuples may seem similar to lists, they are often used in different " "situations and for different purposes. Tuples are :term:`immutable`, and " "usually contain a heterogeneous sequence of elements that are accessed via " "unpacking (see later in this section) or indexing (or even by attribute in " -"the case of :func:`namedtuples `). Lists are :term:" -"`mutable`, and their elements are usually homogeneous and are accessed by " -"iterating over the list." -msgstr "" +"the case of :func:`namedtuples `). Lists are " +":term:`mutable`, and their elements are usually homogeneous and are accessed" +" by iterating over the list." +msgstr "" +"اگرچه تاپل ها ممکن است شبیه به لیست ها به نظر برسند، اما معمولاً در شرایط و " +"اهداف متفاوتی مورد استفاده قرار می گیرند. تاپل ها \":term:`immutable`\" " +"هستند و معمولاً حاوی یک دنباله نامتجانس از عناصر می باشند که از طریق " +"\"unpacking\" (در ادامه این بخش ببینید) یا \"indexing\" (و یا حتی توسط صفت " +"در مورد \":func:`namedtuples `\") به آن ها دسترسی " +"پیدا می شود. لیست ها \":term:`mutable`\" هستند و عناصر آن ها معمولاً همگن " +"هستند و با تکرار در طول لیست به آن ها دسترسی پیدا می شود." #: ../../tutorial/datastructures.rst:415 +#, fuzzy msgid "" -"A special problem is the construction of tuples containing 0 or 1 items: the " -"syntax has some extra quirks to accommodate these. Empty tuples are " +"A special problem is the construction of tuples containing 0 or 1 items: the" +" syntax has some extra quirks to accommodate these. Empty tuples are " "constructed by an empty pair of parentheses; a tuple with one item is " "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" +"یک مشکل ویژه، ساخت تاپل هایی با ۰ یا ۱ عضو است: نحو آن چند ویژگی اضافی دارد " +"تا این موارد را در خود بگنجاند. تاپل های خالی با یک جفت پرانتز خالی ساخته می" +" شوند؛ یک تاپل با یک عضو با قرار دادن یک کاما بعد از مقدار مورد نظر ساخته می" +" شود (قرار دادن یک مقدار تکی در پرانتز به تنهایی کافی نیست). زشت، ولی موثر. " +"به عنوان مثال::" #: ../../tutorial/datastructures.rst:421 +#, fuzzy msgid "" ">>> empty = ()\n" ">>> singleton = 'hello', # <-- note trailing comma\n" @@ -565,32 +929,55 @@ msgid "" ">>> singleton\n" "('hello',)" msgstr "" +"```\n" +">>> empty = ()\n" +">>> singleton = 'hello', # <-- توجه داشته باشید کاما در انتهای خط\n" +">>> len(empty)\n" +"0\n" +">>> len(singleton)\n" +"1\n" +">>> singleton\n" +"('hello',)\n" +"```" #: ../../tutorial/datastructures.rst:430 +#, fuzzy msgid "" "The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" +"عبارت ``t = 12345, 54321, 'hello!'`` مثالی از *tuple packing* است: مقادیر " +"``12345``، ``54321`` و ``'hello!'`` در یک تاپل به هم بسته شده اند. عملیات " +"معکوس نیز ممکن است::" #: ../../tutorial/datastructures.rst:434 +#, fuzzy msgid ">>> x, y, z = t" -msgstr "" +msgstr "```>>> x, y, z = t```" #: ../../tutorial/datastructures.rst:436 +#, fuzzy msgid "" -"This is called, appropriately enough, *sequence unpacking* and works for any " -"sequence on the right-hand side. Sequence unpacking requires that there are " -"as many variables on the left side of the equals sign as there are elements " -"in the sequence. Note that multiple assignment is really just a combination " -"of tuple packing and sequence unpacking." +"This is called, appropriately enough, *sequence unpacking* and works for any" +" sequence on the right-hand side. Sequence unpacking requires that there " +"are as many variables on the left side of the equals sign as there are " +"elements in the sequence. Note that multiple assignment is really just a " +"combination of tuple packing and sequence unpacking." msgstr "" +"این به طور مناسب *sequence unpacking* نامیده می شود و برای هر دنباله ای در " +"سمت راست کار می کند. بازکردن دنباله نیازمند این است که به همان تعداد متغیر " +"در سمت چپ علامت مساوی باشد که عناصر در دنباله وجود دارند. توجه داشته باشید " +"که انتساب چندگانه در واقع تنها ترکیبی از بسته بندی تاپل و بازکردن دنباله " +"است." #: ../../tutorial/datastructures.rst:446 +#, fuzzy msgid "Sets" -msgstr "" +msgstr "مجموعه ها" #: ../../tutorial/datastructures.rst:448 +#, fuzzy msgid "" "Python also includes a data type for *sets*. A set is an unordered " "collection with no duplicate elements. Basic uses include membership " @@ -598,24 +985,34 @@ msgid "" "mathematical operations like union, intersection, difference, and symmetric " "difference." msgstr "" +"پایتون همچنین شامل یک نوع داده برای *sets* است. مجموعه یک کلکسیون نامرتب " +"بدون عناصر تکراری است. استفاده های اصلی شامل آزمایش عضویت و حذف ورودی های " +"تکراری می باشد. اشیاء مجموعه همچنین از عملیات های ریاضی مانند اجتماع، " +"اشتراک، تفاوت و تفاوت متقارن پشتیبانی می کنند." #: ../../tutorial/datastructures.rst:453 +#, fuzzy msgid "" "Curly braces or the :func:`set` function can be used to create sets. Note: " "to create an empty set you have to use ``set()``, not ``{}``; the latter " "creates an empty dictionary, a data structure that we discuss in the next " "section." msgstr "" +"آکولادها یا تابع :func:`set` می توانند برای ایجاد مجموعه ها استفاده شوند. " +"توجه: برای ایجاد یک مجموعه خالی باید از ``set()`` استفاده کنید، نه ``{}``؛ " +"مورد دوم یک دیکشنری خالی ایجاد می کند که یک ساختار داده است و در بخش بعد به " +"آن می پردازیم." #: ../../tutorial/datastructures.rst:457 +#, fuzzy msgid "Here is a brief demonstration::" -msgstr "" +msgstr "در اینجا یک نمایش کوتاه ارائه شده است::" #: ../../tutorial/datastructures.rst:459 +#, fuzzy msgid "" ">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n" -">>> print(basket) # show that duplicates have been " -"removed\n" +">>> print(basket) # show that duplicates have been removed\n" "{'orange', 'banana', 'pear', 'apple'}\n" ">>> 'orange' in basket # fast membership testing\n" "True\n" @@ -637,69 +1034,135 @@ msgid "" ">>> a ^ b # letters in a or b but not both\n" "{'r', 'd', 'b', 'm', 'z', 'l'}" msgstr "" +"```python\n" +">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n" +">>> print(basket) # نشان دادن اینکه موارد تکراری حذف شده اند\n" +"{'orange', 'banana', 'pear', 'apple'}\n" +">>> 'orange' in basket # آزمایش عضویت سریع\n" +"True\n" +">>> 'crabgrass' in basket\n" +"False\n" +"\n" +">>> # اعمال مجموعه را بر روی حروف منحصر به فرد از دو کلمه نمایش دهید\n" +">>>\n" +">>> a = set('abracadabra')\n" +">>> b = set('alacazam')\n" +">>> a # حروف منحصر به فرد در a\n" +"{'a', 'r', 'b', 'c', 'd'}\n" +">>> a - b # حروف موجود در a اما نه در b\n" +"{'r', 'd', 'b'}\n" +">>> a | b # حروف در a یا b یا هر دو\n" +"{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}\n" +">>> a & b # حروف مشترک در a و b\n" +"{'a', 'c'}\n" +">>> a ^ b # حروف موجود در a یا b اما نه هر دو\n" +"{'r', 'd', 'b', 'm', 'z', 'l'}\n" +"```" #: ../../tutorial/datastructures.rst:482 +#, fuzzy msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" msgstr "" +"به طور مشابه با :ref:`list comprehensions `، مفهوم مجموعه " +"سازی یا «set comprehensions» نیز پشتیبانی می شود::" #: ../../tutorial/datastructures.rst:485 +#, fuzzy msgid "" ">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n" ">>> a\n" "{'r', 'd'}" msgstr "" +"```python\n" +">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n" +">>> a\n" +"{'r', 'd'}\n" +"```" #: ../../tutorial/datastructures.rst:493 +#, fuzzy msgid "Dictionaries" -msgstr "" +msgstr "دیكشنری ها" #: ../../tutorial/datastructures.rst:495 +#, fuzzy msgid "" -"Another useful data type built into Python is the *dictionary* (see :ref:" -"`typesmapping`). Dictionaries are sometimes found in other languages as " -"\"associative memories\" or \"associative arrays\". Unlike sequences, which " -"are indexed by a range of numbers, dictionaries are indexed by *keys*, which " -"can be any immutable type; strings and numbers can always be keys. Tuples " -"can be used as keys if they contain only strings, numbers, or tuples; if a " -"tuple contains any mutable object either directly or indirectly, it cannot " -"be used as a key. You can't use lists as keys, since lists can be modified " -"in place using index assignments, slice assignments, or methods like :meth:`!" -"append` and :meth:`!extend`." -msgstr "" +"Another useful data type built into Python is the *dictionary* (see " +":ref:`typesmapping`). Dictionaries are sometimes found in other languages as" +" \"associative memories\" or \"associative arrays\". Unlike sequences, " +"which are indexed by a range of numbers, dictionaries are indexed by *keys*," +" which can be any immutable type; strings and numbers can always be keys. " +"Tuples can be used as keys if they contain only strings, numbers, or tuples;" +" if a tuple contains any mutable object either directly or indirectly, it " +"cannot be used as a key. You can't use lists as keys, since lists can be " +"modified in place using index assignments, slice assignments, or methods " +"like :meth:`!append` and :meth:`!extend`." +msgstr "" +"یکی دیگر از نوع داده های مفید ساخته شده در پایتون *dictionary* است (نگاه " +"کنید به :ref:`typesmapping`). دیکشنری ها گاهی در زبان های دیگر به عنوان " +"\"حافظه های انجمنی\" یا \"آرایه های انجمنی\" شناخته می شوند. برخلاف دنباله " +"ها که با یک بازه از اعداد ایندکس می شوند، دیکشنری ها با *keys* ایندکس می " +"شوند که می تواند هر نوع غیرقابل تغییر باشد؛ رشته ها و اعداد همیشه می توانند " +"کلید باشند. از تاپل ها می توان به عنوان کلید استفاده کرد اگر تنها شامل رشته " +"ها، اعداد، یا تاپل ها باشند؛ اگر یک تاپل به صورت مستقیم یا غیرمستقیم شامل هر" +" شیء قابل تغییری باشد، نمی توان از آن به عنوان کلید استفاده کرد. نمی توانید " +"از لیست ها به عنوان کلید استفاده کنید، زیرا لیست ها می توانند با استفاده از " +"تخصیص ایندکس، تخصیص برشی، یا روش هایی مانند :meth:`!append` و " +":meth:`!extend` به صورت محلی تغییر پیدا کنند." #: ../../tutorial/datastructures.rst:506 +#, fuzzy msgid "" -"It is best to think of a dictionary as a set of *key: value* pairs, with the " -"requirement that the keys are unique (within one dictionary). A pair of " +"It is best to think of a dictionary as a set of *key: value* pairs, with the" +" requirement that the keys are unique (within one dictionary). A pair of " "braces creates an empty dictionary: ``{}``. Placing a comma-separated list " "of key:value pairs within the braces adds initial key:value pairs to the " "dictionary; this is also the way dictionaries are written on output." msgstr "" +"بهترین راه برای تصور یک دیکشنری این است که آن را به صورت مجموعه ای از جفت " +"های *key: value* در نظر بگیرید، با این شرط که کلیدها باید یکتا باشند (در " +"داخل یک دیکشنری). یک جفت آکولاد، یک دیکشنری خالی ایجاد می کند: ``{}``. قرار " +"دادن لیستی از جفت های کلید:مقدار که با ویرگول از هم جدا شده اند درون " +"آکولادها، جفت های کلید:مقدار اولیه به دیکشنری اضافه می کند؛ این همچنین روشی " +"است که دیکشنری ها در خروجی نوشته می شوند." #: ../../tutorial/datastructures.rst:512 +#, fuzzy msgid "" "The main operations on a dictionary are storing a value with some key and " -"extracting the value given the key. It is also possible to delete a key:" -"value pair with ``del``. If you store using a key that is already in use, " -"the old value associated with that key is forgotten. It is an error to " -"extract a value using a non-existent key." +"extracting the value given the key. It is also possible to delete a " +"key:value pair with ``del``. If you store using a key that is already in " +"use, the old value associated with that key is forgotten. It is an error to" +" extract a value using a non-existent key." msgstr "" +"عملیات اصلی روی دیکشنری شامل ذخیره یک مقدار با استفاده از یک کلید و استخراج " +"مقدار با دادن کلید مربوطه است. همچنین امکان حذف یک جفت کلید:مقدار با " +"\"``del``\" وجود دارد. اگر از یک کلید که قبلاً مورد استفاده قرار گرفته است " +"برای ذخیره سازی استفاده کنید، مقدار قدیمی مرتبط با آن کلید به فراموشی سپرده " +"می شود. استخراج مقدار با استفاده از یک کلید غیر موجود یک خطا محسوب می شود." #: ../../tutorial/datastructures.rst:518 +#, fuzzy msgid "" "Performing ``list(d)`` on a dictionary returns a list of all the keys used " "in the dictionary, in insertion order (if you want it sorted, just use " "``sorted(d)`` instead). To check whether a single key is in the dictionary, " "use the :keyword:`in` keyword." msgstr "" +"انجام ``list(d)`` بر روی یک دیکشنری، لیستی از تمام کلیدهایی که در دیکشنری " +"استفاده شده اند را، به ترتیب ورود برمی گرداند (اگر می خواهید آن را مرتب " +"کنید، فقط از ``sorted(d)`` استفاده کنید). برای بررسی اینکه آیا یک کلید خاص " +"در دیکشنری وجود دارد یا خیر، از کلمه کلیدی :keyword:`in` استفاده کنید." #: ../../tutorial/datastructures.rst:523 +#, fuzzy msgid "Here is a small example using a dictionary::" -msgstr "" +msgstr "اینجا یک مثال کوچک با استفاده از یک دیکشنری آورده شده است:" #: ../../tutorial/datastructures.rst:525 +#, fuzzy msgid "" ">>> tel = {'jack': 4098, 'sape': 4139}\n" ">>> tel['guido'] = 4127\n" @@ -720,54 +1183,101 @@ msgid "" ">>> 'jack' not in tel\n" "False" msgstr "" +"```\n" +">>> tel = {'jack': 4098, 'sape': 4139}\n" +">>> tel['guido'] = 4127\n" +">>> tel\n" +"{'jack': 4098, 'sape': 4139, 'guido': 4127}\n" +">>> tel['jack']\n" +"4098\n" +">>> del tel['sape']\n" +">>> tel['irv'] = 4127\n" +">>> tel\n" +"{'jack': 4098, 'guido': 4127, 'irv': 4127}\n" +">>> list(tel)\n" +"['jack', 'guido', 'irv']\n" +">>> sorted(tel)\n" +"['guido', 'irv', 'jack']\n" +">>> 'guido' in tel\n" +"True\n" +">>> 'jack' not in tel\n" +"False\n" +"```" #: ../../tutorial/datastructures.rst:544 +#, fuzzy msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" msgstr "" +"سازنده :func:`dict` دیکشنری ها را مستقیماً از توالی های جفت کلید-مقدار می " +"سازد::" #: ../../tutorial/datastructures.rst:547 +#, fuzzy msgid "" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" msgstr "" +"```python\n" +">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" +"{'sape': 4139, 'guido': 4127, 'jack': 4098}\n" +"```" #: ../../tutorial/datastructures.rst:550 +#, fuzzy msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" msgstr "" +"علاوه بر این، از «dict comprehensions» می توان برای ایجاد دیکشنری ها از " +"عبارات کلید و مقدار دلخواه استفاده کرد::" #: ../../tutorial/datastructures.rst:553 +#, fuzzy msgid "" ">>> {x: x**2 for x in (2, 4, 6)}\n" "{2: 4, 4: 16, 6: 36}" msgstr "" +"```python\n" +"{2: 4, 4: 16, 6: 36} ```: x**2``` برای ساخت این دیکشنری، از «تعبیر دیکشنری» استفاده می کنیم که در آن هر کلید مربع مقدارش است و به این صورت تعریف می شود که برای هر x در (2، 4، 6) عبارت" #: ../../tutorial/datastructures.rst:556 +#, fuzzy msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" msgstr "" +"وقتی کلیدها رشته های ساده هستند، گاهی اوقات مشخص کردن جفت ها با استفاده از " +"آرگومان های کلیدی آسان تر است::" #: ../../tutorial/datastructures.rst:559 +#, fuzzy msgid "" ">>> dict(sape=4139, guido=4127, jack=4098)\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" msgstr "" +"```python\n" +">>> dict(sape=4139, guido=4127, jack=4098)\n" +"{'sape': 4139, 'guido': 4127, 'jack': 4098}\n" +"```" #: ../../tutorial/datastructures.rst:566 +#, fuzzy msgid "Looping Techniques" -msgstr "" +msgstr "تکنیک های تکرار" #: ../../tutorial/datastructures.rst:568 +#, fuzzy msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`~dict.items` method. ::" msgstr "" +"هنگام پیمایش در دیکشنری ها، کلید و مقدار مربوطه می توانند همزمان با استفاده " +"از متد :meth:`~dict.items` بازیابی شوند." #: ../../tutorial/datastructures.rst:571 +#, fuzzy msgid "" ">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n" ">>> for k, v in knights.items():\n" @@ -776,14 +1286,26 @@ msgid "" "gallahad the pure\n" "robin the brave" msgstr "" +"```python\n" +">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n" +">>> for k, v in knights.items():\n" +"... print(k, v)\n" +"...\n" +"gallahad the pure\n" +"robin the brave\n" +"```" #: ../../tutorial/datastructures.rst:578 +#, fuzzy msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" msgstr "" +"هنگام پیمایش یک دنباله، می توان به طور همزمان به شاخص موقعیت و مقدار مربوطه " +"با استفاده از تابع :func:`enumerate` دسترسی داشت." #: ../../tutorial/datastructures.rst:581 +#, fuzzy msgid "" ">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n" "... print(i, v)\n" @@ -792,14 +1314,26 @@ msgid "" "1 tac\n" "2 toe" msgstr "" +"```python\n" +">>> برای i و v در `enumerate(['tic', 'tac', 'toe']):`\n" +"... `print(i, v)`\n" +"...\n" +"0 tic\n" +"1 tac\n" +"2 toe\n" +"```" #: ../../tutorial/datastructures.rst:588 +#, fuzzy msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" msgstr "" +"برای پیمایش بر روی دو یا چند دنباله به طور همزمان، می توان ورودی ها را با " +"استفاده از تابع :func:`zip` جفت کرد. ::" #: ../../tutorial/datastructures.rst:591 +#, fuzzy msgid "" ">>> questions = ['name', 'quest', 'favorite color']\n" ">>> answers = ['lancelot', 'the holy grail', 'blue']\n" @@ -810,14 +1344,28 @@ msgid "" "What is your quest? It is the holy grail.\n" "What is your favorite color? It is blue." msgstr "" +"```python\n" +">>> questions = ['name', 'quest', 'favorite color']\n" +">>> answers = ['lancelot', 'the holy grail', 'blue']\n" +">>> for q, a in zip(questions, answers):\n" +"... print('What is your {0}? It is {1}.'.format(q, a))\n" +"...\n" +"What is your name? It is lancelot.\n" +"What is your quest? It is the holy grail.\n" +"What is your favorite color? It is blue.\n" +"```" #: ../../tutorial/datastructures.rst:600 +#, fuzzy msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" msgstr "" +"برای پیمایش یک دنباله به صورت معکوس، ابتدا دنباله را در جهت رو به جلو مشخص " +"کرده و سپس تابع :func:`reversed` را فراخوانی کنید. ::" #: ../../tutorial/datastructures.rst:603 +#, fuzzy msgid "" ">>> for i in reversed(range(1, 10, 2)):\n" "... print(i)\n" @@ -828,14 +1376,29 @@ msgid "" "3\n" "1" msgstr "" +"```python\n" +">>> for i in reversed(range(1, 10, 2)):\n" +"... print(i)\n" +"...\n" +"9\n" +"7\n" +"5\n" +"3\n" +"1\n" +"```" #: ../../tutorial/datastructures.rst:612 +#, fuzzy msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" +"برای پیمایش بر روی یک توالی به ترتیب مرتب شده، از تابع :func:`sorted` " +"استفاده کنید که یک لیست مرتب شده جدید بازمی گرداند در حالی که منبع را بدون " +"تغییر باقی می گذارد. ::" #: ../../tutorial/datastructures.rst:615 +#, fuzzy msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for i in sorted(basket):\n" @@ -848,16 +1411,33 @@ msgid "" "orange\n" "pear" msgstr "" +"```python\n" +">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" +">>> for i in sorted(basket):\n" +"... print(i)\n" +"...\n" +"apple\n" +"apple\n" +"banana\n" +"orange\n" +"orange\n" +"pear\n" +"```" #: ../../tutorial/datastructures.rst:626 +#, fuzzy msgid "" -"Using :func:`set` on a sequence eliminates duplicate elements. The use of :" -"func:`sorted` in combination with :func:`set` over a sequence is an " -"idiomatic way to loop over unique elements of the sequence in sorted " -"order. ::" +"Using :func:`set` on a sequence eliminates duplicate elements. The use of " +":func:`sorted` in combination with :func:`set` over a sequence is an " +"idiomatic way to loop over unique elements of the sequence in sorted order. " +"::" msgstr "" +"استفاده از :func:`set` بر روی یک دنباله، عناصر تکراری را حذف می کند. استفاده" +" از :func:`sorted` به همراه :func:`set` بر روی یک دنباله، روشی اصطلاحی برای " +"پیمایش عناصر یکتای دنباله به ترتیب مرتب شده است. ::" #: ../../tutorial/datastructures.rst:630 +#, fuzzy msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for f in sorted(set(basket)):\n" @@ -868,14 +1448,28 @@ msgid "" "orange\n" "pear" msgstr "" +"```python\n" +">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" +">>> for f in sorted(set(basket)):\n" +"... print(f)\n" +"...\n" +"سیب\n" +"موز\n" +"پرتقال\n" +"گلابی\n" +"```" #: ../../tutorial/datastructures.rst:639 +#, fuzzy msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" msgstr "" +"اغلب اوقات وسوسه انگیز است که در حالی که در حال پیمایش یک لیست هستید، آن را " +"تغییر دهید؛ اما اغلب ساده تر و امن تر است که یک لیست جدید ایجاد کنید." #: ../../tutorial/datastructures.rst:642 +#, fuzzy msgid "" ">>> import math\n" ">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]\n" @@ -887,18 +1481,36 @@ msgid "" ">>> filtered_data\n" "[56.2, 51.7, 55.3, 52.5, 47.8]" msgstr "" +"```python\n" +">>> import math\n" +">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]\n" +">>> filtered_data = []\n" +">>> for value in raw_data:\n" +"... if not math.isnan(value):\n" +"... filtered_data.append(value)\n" +"...\n" +">>> filtered_data\n" +"[56.2, 51.7, 55.3, 52.5, 47.8]\n" +"``` \n" +"\n" +"ماژول `math` را وارد می کنیم و یک لیست نام `raw_data` را تعریف می کنیم که شامل مقادیر عددی و `NaN` است. سپس، یک لیست خالی به نام `filtered_data` ایجاد می کنیم. برای هر مقدار در `raw_data`، بررسی می کنیم که آیا `NaN` نیست. اگر مقدار `NaN` نبود، آن را به `filtered_data` اضافه می کنیم. در نهایت، `filtered_data` را مشاهده می کنیم که شامل مقادیر عددی بدون `NaN` است: `[56.2, 51.7, 55.3, 52.5, 47.8]`." #: ../../tutorial/datastructures.rst:656 +#, fuzzy msgid "More on Conditions" -msgstr "" +msgstr "بیشتر درباره ی شرایط" #: ../../tutorial/datastructures.rst:658 +#, fuzzy msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." msgstr "" +"شرایطی که در دستورات ``while`` و ``if`` استفاده می شوند می توانند شامل هر " +"نوع عملیاتی باشند، نه فقط مقایسه ها." #: ../../tutorial/datastructures.rst:662 +#, fuzzy msgid "" "The comparison operators ``in`` and ``not in`` are membership tests that " "determine whether a value is in (or not in) a container. The operators " @@ -906,14 +1518,22 @@ msgid "" "object. All comparison operators have the same priority, which is lower " "than that of all numerical operators." msgstr "" +"عملگرهای مقایسه ای ``in`` و ``not in`` آزمون های عضویتی هستند که تعیین می " +"کنند آیا یک مقدار در یک ظرف وجود دارد (یا ندارد). عملگرهای ``is`` و ``is " +"not`` بررسی می کنند که آیا دو شیء واقعاً یک شیء هستند. تمامی عملگرهای مقایسه" +" ای دارای اولویت یکسانی هستند که پایین تر از تمامی عملگرهای عددی است." #: ../../tutorial/datastructures.rst:668 +#, fuzzy msgid "" -"Comparisons can be chained. For example, ``a < b == c`` tests whether ``a`` " -"is less than ``b`` and moreover ``b`` equals ``c``." +"Comparisons can be chained. For example, ``a < b == c`` tests whether ``a``" +" is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" +"مقایسه ها می توانند به هم زنجیره شوند. برای مثال، ``a < b == c`` بررسی می " +"کند که آیا ``a`` کمتر از ``b`` است و علاوه بر آن، ``b`` برابر با ``c`` است." #: ../../tutorial/datastructures.rst:671 +#, fuzzy msgid "" "Comparisons may be combined using the Boolean operators ``and`` and ``or``, " "and the outcome of a comparison (or of any other Boolean expression) may be " @@ -922,49 +1542,80 @@ msgid "" "lowest, so that ``A and not B or C`` is equivalent to ``(A and (not B)) or " "C``. As always, parentheses can be used to express the desired composition." msgstr "" +"مقایسه ها ممکن است با استفاده از عملگرهای بولی ``and`` و ``or`` ترکیب شوند و" +" نتیجه یک مقایسه (یا هر عبارت بولی دیگر) ممکن است با ``not`` نفی شود. این ها" +" اولویت های پایین تری از عملگرهای مقایسه دارند؛ بین آن ها، ``not`` بالاترین " +"اولویت و ``or`` پایین ترین اولویت را دارد، به طوری که ``A and not B or C`` " +"معادل ``(A and (not B)) or C`` است. همانطور که همیشه، می توان از پرانتزها " +"برای بیان ترکیب مورد نظر استفاده کرد." #: ../../tutorial/datastructures.rst:678 +#, fuzzy msgid "" "The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " "operators: their arguments are evaluated from left to right, and evaluation " -"stops as soon as the outcome is determined. For example, if ``A`` and ``C`` " -"are true but ``B`` is false, ``A and B and C`` does not evaluate the " +"stops as soon as the outcome is determined. For example, if ``A`` and ``C``" +" are true but ``B`` is false, ``A and B and C`` does not evaluate the " "expression ``C``. When used as a general value and not as a Boolean, the " "return value of a short-circuit operator is the last evaluated argument." msgstr "" +"عملگرهای بولینی ``and`` و ``or`` به عنوان عملگرهای *short-circuit* شناخته می" +" شوند: آرگومان های آنها از چپ به راست ارزیابی می شوند و ارزیابی به محض تعیین" +" نتیجه متوقف می شود. به عنوان مثال، اگر ``A`` و ``C`` درست باشند اما ``B`` " +"نادرست باشد، ``A and B and C`` عبارت ``C`` را ارزیابی نمی کند. هنگامی که به " +"عنوان یک مقدار کلی و نه به عنوان یک بولین استفاده می شوند، مقدار بازگشتی یک " +"عملگر کوتاه-مدار، آخرین آرگومان ارزیابی شده است." #: ../../tutorial/datastructures.rst:685 +#, fuzzy msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" msgstr "" +"امکان دارد نتیجه یک مقایسه یا یک عبارت بولی دیگر را به یک متغیر نسبت دهید. " +"برای مثال: ::" #: ../../tutorial/datastructures.rst:688 +#, fuzzy msgid "" ">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n" ">>> non_null = string1 or string2 or string3\n" ">>> non_null\n" "'Trondheim'" msgstr "" +"```\n" +">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n" +">>> non_null = string1 or string2 or string3\n" +">>> non_null\n" +"'Trondheim'\n" +"```" #: ../../tutorial/datastructures.rst:693 +#, fuzzy msgid "" "Note that in Python, unlike C, assignment inside expressions must be done " "explicitly with the :ref:`walrus operator ` ``:=``. This avoids a common class of problems encountered " "in C programs: typing ``=`` in an expression when ``==`` was intended." msgstr "" +"در پایتون، برخلاف C، تخصیص در داخل عبارات باید به صورت صریح با استفاده از " +":ref:`walrus operator ` " +"``:=`` انجام شود. این کار از یک دسته مشکلات رایج که در برنامه های C مشاهده " +"می شود جلوگیری می کند: وقتی که در یک عبارت ``=`` تایپ می شود در حالی که " +"منظور ``==`` بوده است." #: ../../tutorial/datastructures.rst:703 +#, fuzzy msgid "Comparing Sequences and Other Types" -msgstr "" +msgstr "مقایسه توالی ها و انواع دیگر" #: ../../tutorial/datastructures.rst:704 +#, fuzzy msgid "" "Sequence objects typically may be compared to other objects with the same " "sequence type. The comparison uses *lexicographical* ordering: first the " -"first two items are compared, and if they differ this determines the outcome " -"of the comparison; if they are equal, the next two items are compared, and " +"first two items are compared, and if they differ this determines the outcome" +" of the comparison; if they are equal, the next two items are compared, and " "so on, until either sequence is exhausted. If two items to be compared are " "themselves sequences of the same type, the lexicographical comparison is " "carried out recursively. If all items of two sequences compare equal, the " @@ -974,8 +1625,19 @@ msgid "" "order individual characters. Some examples of comparisons between sequences " "of the same type::" msgstr "" +"اشیای توالی معمولاً به اشیای دیگر از نوع توالی یکسان قابل مقایسه هستند. " +"مقایسه از ترتیب *lexicographical* استفاده می کند: ابتدا دو آیتم اول مقایسه " +"می شوند و اگر تفاوت داشته باشند، نتیجه مقایسه را تعیین می کند؛ اگر برابر " +"باشند، دو آیتم بعدی مقایسه می شوند و این روند ادامه می یابد تا زمانی که یک " +"توالی به پایان برسد. اگر دو آیتمی که باید مقایسه شوند خودشان توالی از همان " +"نوع باشند، مقایسه لغت نامه ای به صورت بازگشتی انجام می شود. اگر تمام آیتم " +"های دو توالی با هم برابر باشند، توالی ها برابر در نظر گرفته می شوند. اگر یک " +"توالی زیردنباله اولیه دیگری باشد، توالی کوتاه تر، کوچکتر در نظر گرفته می " +"شود. ترتیب لغت نامه ای رشته ها از شماره کد نقطه Unicode برای مرتب سازی " +"کاراکترها استفاده می کند. برخی مثال ها از مقایسه بین توالی های از همان نوع:" #: ../../tutorial/datastructures.rst:716 +#, fuzzy msgid "" "(1, 2, 3) < (1, 2, 4)\n" "[1, 2, 3] < [1, 2, 4]\n" @@ -985,22 +1647,40 @@ msgid "" "(1, 2, 3) == (1.0, 2.0, 3.0)\n" "(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)" msgstr "" +"(1، 2، 3) < (1، 2، 4)\n" +"[1، 2، 3] < [1، 2، 4]\n" +"'ABC' < 'C' < 'Pascal' < 'Python'\n" +"(1، 2، 3، 4) < (1، 2، 4)\n" +"(1، 2) < (1، 2، -1)\n" +"(1، 2، 3) == (1.0، 2.0، 3.0)\n" +"(1، 2، ('aa'، 'ab')) < (1، 2، ('abc'، 'a')، 4)" #: ../../tutorial/datastructures.rst:724 +#, fuzzy msgid "" "Note that comparing objects of different types with ``<`` or ``>`` is legal " -"provided that the objects have appropriate comparison methods. For example, " -"mixed numeric types are compared according to their numeric value, so 0 " +"provided that the objects have appropriate comparison methods. For example," +" mixed numeric types are compared according to their numeric value, so 0 " "equals 0.0, etc. Otherwise, rather than providing an arbitrary ordering, " "the interpreter will raise a :exc:`TypeError` exception." msgstr "" +"توجه داشته باشید که مقایسه اشیاء از انواع مختلف با \"``<``\" یا \"``>``\" " +"قانونی است، به شرطی که اشیاء دارای متدهای مقایسه مناسب باشند. برای مثال، " +"انواع عددی مختلط بر اساس مقدار عددی شان مقایسه می شوند، بنابراین ۰ برابر با " +"۰.۰ است، و غیره. در غیر این صورت، به جای ارائه یک ترتیب دلخواه، مفسر یک " +"استثنای \":exc:`TypeError`\" را فراخواهد خواند." #: ../../tutorial/datastructures.rst:732 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پانویس ها" #: ../../tutorial/datastructures.rst:733 +#, fuzzy msgid "" -"Other languages may return the mutated object, which allows method chaining, " -"such as ``d->insert(\"a\")->remove(\"b\")->sort();``." +"Other languages may return the mutated object, which allows method chaining," +" such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" +"زبان های دیگر ممکن است شیء تغییر یافته را برگردانند، که این کار زنجیره سازی " +"متدها، مانند ``d->insert(\"a\")->remove(\"b\")->sort();`` را امکان پذیر می " +"سازد." diff --git a/tutorial/errors.po b/tutorial/errors.po index af2a7b7cf..9ef950d58 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -14,36 +14,45 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/errors.rst:5 +#, fuzzy msgid "Errors and Exceptions" -msgstr "" +msgstr "خطاها و استثناها" #: ../../tutorial/errors.rst:7 +#, fuzzy msgid "" "Until now error messages haven't been more than mentioned, but if you have " "tried out the examples you have probably seen some. There are (at least) " "two distinguishable kinds of errors: *syntax errors* and *exceptions*." msgstr "" +"تا کنون پیام های خطا بیش از این ذکر نشده اند، اما اگر مثال ها را امتحان کرده" +" باشید احتمالاً برخی از آنها را مشاهده کرده اید. حداقل دو نوع خطای قابل " +"تشخیص وجود دارد: `*syntax errors*` و `*exceptions*`." #: ../../tutorial/errors.rst:15 +#, fuzzy msgid "Syntax Errors" -msgstr "" +msgstr "خطاهای نحوی" #: ../../tutorial/errors.rst:17 +#, fuzzy msgid "" "Syntax errors, also known as parsing errors, are perhaps the most common " "kind of complaint you get while you are still learning Python::" msgstr "" +"خطاهای نحوی که به عنوان خطاهای تجزیه نیز شناخته می شوند، شاید رایج ترین نوع " +"شکایتی باشند که هنگام یادگیری Python دریافت می کنید::" #: ../../tutorial/errors.rst:20 +#, fuzzy msgid "" ">>> while True print('Hello world')\n" " File \"\", line 1\n" @@ -51,22 +60,38 @@ msgid "" " ^^^^^\n" "SyntaxError: invalid syntax" msgstr "" +"```\n" +">>> while True print('Hello world')\n" +" File \"\", line 1\n" +" while True print('Hello world')\n" +" ^^^^^\n" +"SyntaxError: invalid syntax\n" +"```" #: ../../tutorial/errors.rst:26 +#, fuzzy msgid "" -"The parser repeats the offending line and displays little arrows pointing at " -"the token in the line where the error was detected. The error may be caused " -"by the absence of a token *before* the indicated token. In the example, the " -"error is detected at the function :func:`print`, since a colon (``':'``) is " -"missing before it. File name and line number are printed so you know where " -"to look in case the input came from a script." +"The parser repeats the offending line and displays little arrows pointing at" +" the token in the line where the error was detected. The error may be " +"caused by the absence of a token *before* the indicated token. In the " +"example, the error is detected at the function :func:`print`, since a colon " +"(``':'``) is missing before it. File name and line number are printed so " +"you know where to look in case the input came from a script." msgstr "" +"تجزیه گر خطی که باعث خطا شده را تکرار می کند و فلش های کوچکی را نمایش می دهد" +" که به سمت توکنی در خط اشاره می کنند که خطا در آن شناسایی شده است. خطا ممکن " +"است به دلیل عدم وجود توکن *before* در توکن نشان داده شده ایجاد شده باشد. در " +"این مثال، خطا در تابع :func:`print` شناسایی شده است، زیرا یک دو نقطه " +"(``':'``) قبل از آن وجود ندارد. نام فایل و شماره خط چاپ می شود تا بدانید کجا" +" را بررسی کنید در صورتی که ورودی از یک اسکریپت آمده باشد." #: ../../tutorial/errors.rst:37 +#, fuzzy msgid "Exceptions" -msgstr "" +msgstr "استثناها" #: ../../tutorial/errors.rst:39 +#, fuzzy msgid "" "Even if a statement or expression is syntactically correct, it may cause an " "error when an attempt is made to execute it. Errors detected during " @@ -75,8 +100,15 @@ msgid "" "not handled by programs, however, and result in error messages as shown " "here::" msgstr "" +"حتی اگر یک عبارت یا دستور به لحاظ نحوی صحیح باشد، ممکن است هنگام اجرای آن " +"باعث بروز خطا شود. خطاهایی که در زمان اجرا شناسایی می شوند، *exceptions* " +"نامیده می شوند و به طور قطعی مرگبار نیستند: به زودی یاد خواهید گرفت که چگونه" +" آن ها را در برنامه های Python مدیریت کنید. با این حال، اکثر استثناها توسط " +"برنامه ها مدیریت نمی شوند و منجر به نمایش پیام های خطا می شوند، همان طور که " +"در اینجا نشان داده شده است::" #: ../../tutorial/errors.rst:45 +#, fuzzy msgid "" ">>> 10 * (1/0)\n" "Traceback (most recent call last):\n" @@ -97,53 +129,100 @@ msgid "" " ~~~~^~~\n" "TypeError: can only concatenate str (not \"int\") to str" msgstr "" +"```\n" +">>> 10 * (1/0)\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" 10 * (1/0)\n" +" ~^~\n" +"ZeroDivisionError: division by zero\n" +">>> 4 + spam*3\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" 4 + spam*3\n" +" ^^^^\n" +"NameError: name 'spam' is not defined\n" +">>> '2' + 2\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" '2' + 2\n" +" ~~~~^~~\n" +"TypeError: can only concatenate str (not \"int\") to str\n" +"```" #: ../../tutorial/errors.rst:64 +#, fuzzy msgid "" "The last line of the error message indicates what happened. Exceptions come " "in different types, and the type is printed as part of the message: the " -"types in the example are :exc:`ZeroDivisionError`, :exc:`NameError` and :exc:" -"`TypeError`. The string printed as the exception type is the name of the " -"built-in exception that occurred. This is true for all built-in exceptions, " -"but need not be true for user-defined exceptions (although it is a useful " -"convention). Standard exception names are built-in identifiers (not reserved " -"keywords)." -msgstr "" +"types in the example are :exc:`ZeroDivisionError`, :exc:`NameError` and " +":exc:`TypeError`. The string printed as the exception type is the name of " +"the built-in exception that occurred. This is true for all built-in " +"exceptions, but need not be true for user-defined exceptions (although it is" +" a useful convention). Standard exception names are built-in identifiers " +"(not reserved keywords)." +msgstr "" +"خط آخر پیام خطا نشان می دهد که چه اتفاقی افتاده است. استثناها در انواع " +"مختلفی ظاهر می شوند و نوع آن ها به عنوان بخشی از پیام چاپ می شود: انواع " +"موجود در مثال عبارتند از :exc:`ZeroDivisionError`، :exc:`NameError` و " +":exc:`TypeError`. رشته ای که به عنوان نوع استثنا چاپ می شود، نام استثنای " +"داخلی اتفاق افتاده است. این امر برای تمام استثناهای داخلی صادق است، اما " +"لزوماً برای استثناهای تعریف شده توسط کاربر صدق نمی کند (هرچند که این یک " +"کنوانسیون مفید است). اسامی استثناهای استاندارد شناسه های داخلی هستند (نه " +"کلمات کلیدی رزرو شده)." #: ../../tutorial/errors.rst:72 +#, fuzzy msgid "" -"The rest of the line provides detail based on the type of exception and what " -"caused it." -msgstr "" +"The rest of the line provides detail based on the type of exception and what" +" caused it." +msgstr "بقیه خط بر اساس نوع استثنا و علت آن جزئیات را ارائه می دهد." #: ../../tutorial/errors.rst:75 +#, fuzzy msgid "" "The preceding part of the error message shows the context where the " -"exception occurred, in the form of a stack traceback. In general it contains " -"a stack traceback listing source lines; however, it will not display lines " +"exception occurred, in the form of a stack traceback. In general it contains" +" a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" +"قسم قبلی پیام خطا نشان دهنده ی محتوایی است که استثنا در آن رخ داده است، به " +"صورت یک گزارش از پشته ی فراخوانی (traceback). به طور کلی، این بخش شامل " +"گزارشی از پشته ی فراخوانی است که خطوط منبع را فهرست می کند؛ اما خطوطی که از " +"ورودی استاندارد خوانده می شوند را نمایش نمی دهد." #: ../../tutorial/errors.rst:80 +#, fuzzy msgid "" ":ref:`bltin-exceptions` lists the built-in exceptions and their meanings." msgstr "" +":ref:`bltin-exceptions` فهرستی از استثناهای داخلی و معانی آن ها را ارائه می " +"دهد." #: ../../tutorial/errors.rst:86 +#, fuzzy msgid "Handling Exceptions" -msgstr "" +msgstr "مدیریت استثناها" #: ../../tutorial/errors.rst:88 +#, fuzzy msgid "" "It is possible to write programs that handle selected exceptions. Look at " "the following example, which asks the user for input until a valid integer " -"has been entered, but allows the user to interrupt the program (using :kbd:" -"`Control-C` or whatever the operating system supports); note that a user-" -"generated interruption is signalled by raising the :exc:`KeyboardInterrupt` " -"exception. ::" -msgstr "" +"has been entered, but allows the user to interrupt the program (using " +":kbd:`Control-C` or whatever the operating system supports); note that a " +"user-generated interruption is signalled by raising the " +":exc:`KeyboardInterrupt` exception. ::" +msgstr "" +"امکان نوشتن برنامه هایی که استثناهای خاصی را مدیریت می کنند وجود دارد. به " +"مثال زیر توجه کنید، که از کاربر می خواهد تا زمانی که یک عدد صحیح معتبر وارد " +"نشده است، ورودی را وارد کند، اما به کاربر اجازه می دهد تا برنامه را قطع کند " +"(با استفاده از :kbd:`Control-C` یا هر چیزی که سیستم عامل پشتیبانی می کند)؛ " +"توجه کنید که یک قطع کاربر-ایجاد شده با برافراشته شدن استثنای " +":exc:`KeyboardInterrupt` اعلام می شود. ::" #: ../../tutorial/errors.rst:94 +#, fuzzy msgid "" ">>> while True:\n" "... try:\n" @@ -153,40 +232,67 @@ msgid "" "... print(\"Oops! That was no valid number. Try again...\")\n" "..." msgstr "" +"```python\n" +">>> while True:\n" +"... try:\n" +"... x = int(input(\"لطفاً یک عدد وارد کنید: \"))\n" +"... break\n" +"... except ValueError:\n" +"... print(\"اوه! این یک عدد معتبر نبود. دوباره تلاش کنید...\")\n" +"...\n" +"```" #: ../../tutorial/errors.rst:102 +#, fuzzy msgid "The :keyword:`try` statement works as follows." -msgstr "" +msgstr "دستور :keyword:`try` به صورت زیر عمل می کند." #: ../../tutorial/errors.rst:104 +#, fuzzy msgid "" -"First, the *try clause* (the statement(s) between the :keyword:`try` and :" -"keyword:`except` keywords) is executed." +"First, the *try clause* (the statement(s) between the :keyword:`try` and " +":keyword:`except` keywords) is executed." msgstr "" +"ابتدا، *try clause* (دستورات بین کلمات کلیدی :keyword:`try` و " +":keyword:`except`) اجرا می شود." #: ../../tutorial/errors.rst:107 +#, fuzzy msgid "" -"If no exception occurs, the *except clause* is skipped and execution of the :" -"keyword:`try` statement is finished." +"If no exception occurs, the *except clause* is skipped and execution of the " +":keyword:`try` statement is finished." msgstr "" +"اگر هیچ استثنایی رخ ندهد، *except clause* نادیده گرفته می شود و اجرای دستور " +":keyword:`try` به پایان می رسد." #: ../../tutorial/errors.rst:110 +#, fuzzy msgid "" "If an exception occurs during execution of the :keyword:`try` clause, the " "rest of the clause is skipped. Then, if its type matches the exception " "named after the :keyword:`except` keyword, the *except clause* is executed, " "and then execution continues after the try/except block." msgstr "" +"اگر یک استثناء در طول اجرای بخش :keyword:`try` رخ دهد، بقیه ی بخش نادیده " +"گرفته می شود. سپس، اگر نوع آن با استثناء نام برده شده پس از کلمه کلیدی " +":keyword:`except` مطابقت داشته باشد، *except clause* اجرا شده و سپس اجرا بعد" +" از بلوک try/except ادامه می یابد." #: ../../tutorial/errors.rst:115 +#, fuzzy msgid "" "If an exception occurs which does not match the exception named in the " "*except clause*, it is passed on to outer :keyword:`try` statements; if no " -"handler is found, it is an *unhandled exception* and execution stops with an " -"error message." +"handler is found, it is an *unhandled exception* and execution stops with an" +" error message." msgstr "" +"اگر استثنایی رخ دهد که با استثناء نام برده شده در \"*except clause*\" مطابقت" +" نداشته باشد، به \":keyword:`try`\" های بیرونی منتقل می شود؛ اگر هیچ مدیریت " +"کننده ای پیدا نشود، این یک \"*unhandled exception*\" بوده و اجرا با پیام خطا" +" متوقف می شود." #: ../../tutorial/errors.rst:119 +#, fuzzy msgid "" "A :keyword:`try` statement may have more than one *except clause*, to " "specify handlers for different exceptions. At most one handler will be " @@ -195,14 +301,24 @@ msgid "" "An *except clause* may name multiple exceptions as a parenthesized tuple, " "for example::" msgstr "" +"یک دستور :keyword:`try` ممکن است بیش از یک *except clause* داشته باشد تا " +"گرداننده هایی برای استثناهای مختلف مشخص کند. حداکثر یک گرداننده اجرا خواهد " +"شد. گرداننده ها فقط استثناهایی را که در *try clause* مربوط به خودشان رخ می " +"دهد را مدیریت می کنند، نه در گرداننده های دیگر همان دستور :keyword:`!try`. " +"یک *except clause* ممکن است چندین استثنا را به صورت یک ویژگی پرانتزی نام " +"گذاری کند، برای مثال:" #: ../../tutorial/errors.rst:125 +#, fuzzy msgid "" "... except (RuntimeError, TypeError, NameError):\n" "... pass" msgstr "" +"... به جز (RuntimeError، TypeError، NameError):\n" +"... pass" #: ../../tutorial/errors.rst:128 +#, fuzzy msgid "" "A class in an :keyword:`except` clause matches exceptions which are " "instances of the class itself or one of its derived classes (but not the " @@ -210,8 +326,14 @@ msgid "" "match instances of its base classes). For example, the following code will " "print B, C, D in that order::" msgstr "" +"کلاسی در یک قضیه :keyword:`except` با استثناهایی مطابقت دارد که نمونه هایی " +"از خود کلاس یا یکی از کلاس های مشتق شده از آن هستند (اما عکس این قضیه صادق " +"نیست --- یک فهرست *except clause* که یک کلاس مشتق شده را فهرست می کند، با " +"نمونه هایی از کلاس های پایه آن مطابقت ندارد). به عنوان مثال، کد زیر B، C، D " +"را به همان ترتیب چاپ خواهد کرد::" #: ../../tutorial/errors.rst:133 +#, fuzzy msgid "" "class B(Exception):\n" " pass\n" @@ -232,22 +354,57 @@ msgid "" " except B:\n" " print(\"B\")" msgstr "" +"```python\n" +"class B(Exception):\n" +" pass\n" +"\n" +"class C(B):\n" +" pass\n" +"\n" +"class D(C):\n" +" pass\n" +"\n" +"for cls in [B, C, D]:\n" +" try:\n" +" raise cls()\n" +" except D:\n" +" print(\"D\")\n" +" except C:\n" +" print(\"C\")\n" +" except B:\n" +" print(\"B\")\n" +"```\n" +"\n" +"این کد سه کلاس استثنا را تعریف می کند که کلاس های `C` و `D` به ترتیب زیرکلاس های کلاس `B` هستند. سپس در یک حلقه `for`، هر یک از این کلاس ها به ترتیب انجام شده و یک استثنا از هر کدام ایجاد و فراخوانی می شود. \n" +"\n" +"اگر استثنای `D` فراخوانی شود، بلوک `except D` اجرا شده و `D` چاپ می شود. اگر استثنای `C` فراخوانی شود، و چون `D` یک زیرکلاس از `C` است، بلوک `except C` اجرا شده و `C` چاپ می شود. در نهایت اگر استثنای `B` فراخوانی شود، که والد هر دو `C` و `D` است، بلوک `except B` اجرا شده و `B` چاپ می شود. \n" +"\n" +"بنابراین خروجی این کد به ترتیب `B`، `C` و `D` خواهد بود و این مراتب در هنگام اجرای استثنائات را نشان می دهد." #: ../../tutorial/errors.rst:152 +#, fuzzy msgid "" "Note that if the *except clauses* were reversed (with ``except B`` first), " "it would have printed B, B, B --- the first matching *except clause* is " "triggered." msgstr "" +"توجه داشته باشید که اگر *except clauses* معکوس می شد (با ``except B`` در " +"ابتدا)، آن گاه B، B، B چاپ می شد --- اولین *except clause* مطابق، اعمال می " +"شود." #: ../../tutorial/errors.rst:155 +#, fuzzy msgid "" "When an exception occurs, it may have associated values, also known as the " "exception's *arguments*. The presence and types of the arguments depend on " "the exception type." msgstr "" +"وقتی یک استثنا رخ می دهد، ممکن است مقادیر مرتبطی داشته باشد که به عنوان " +"*arguments* استثنا نیز شناخته می شود. حضور و انواع این آرگومان ها به نوع " +"استثنا بستگی دارد." #: ../../tutorial/errors.rst:159 +#, fuzzy msgid "" "The *except clause* may specify a variable after the exception name. The " "variable is bound to the exception instance which typically has an ``args`` " @@ -255,8 +412,14 @@ msgid "" "types define :meth:`~object.__str__` to print all the arguments without " "explicitly accessing ``.args``. ::" msgstr "" +"متغیر *except clause* ممکن است بعد از نام استثنا مشخص شود. این متغیر به " +"نمونه استثنا متصل می شود که معمولاً دارای یک ویژگی ``args`` است که آرگومان " +"ها را ذخیره می کند. برای سهولت، انواع استثناهای داخلی " +":meth:`~object.__str__` را تعریف می کنند تا بدون دسترسی صریح به ``.args``، " +"تمام آرگومان ها را چاپ کند. ::" #: ../../tutorial/errors.rst:165 +#, fuzzy msgid "" ">>> try:\n" "... raise Exception('spam', 'eggs')\n" @@ -264,8 +427,7 @@ msgid "" "... print(type(inst)) # the exception type\n" "... print(inst.args) # arguments stored in .args\n" "... print(inst) # __str__ allows args to be printed directly,\n" -"... # but may be overridden in exception " -"subclasses\n" +"... # but may be overridden in exception subclasses\n" "... x, y = inst.args # unpack args\n" "... print('x =', x)\n" "... print('y =', y)\n" @@ -276,40 +438,79 @@ msgid "" "x = spam\n" "y = eggs" msgstr "" +"```python\n" +">>> try:\n" +"... raise Exception('spam', 'eggs')\n" +"... except Exception as inst:\n" +"... print(type(inst)) # نوع استثنا\n" +"... print(inst.args) # آرگومان ها ذخیره شده در .args\n" +"... print(inst) # __str__ اجازه می دهد که آرگومان ها به طور مستقیم چاپ شوند،\n" +"... # اما ممکن است در زیردسته های استثنا بازنویسی شود\n" +"... x, y = inst.args # بازکردن آرگومان ها\n" +"... print('x =', x)\n" +"... print('y =', y)\n" +"...\n" +"\n" +"('spam', 'eggs')\n" +"('spam', 'eggs')\n" +"x = spam\n" +"y = eggs\n" +"```" #: ../../tutorial/errors.rst:182 +#, fuzzy msgid "" "The exception's :meth:`~object.__str__` output is printed as the last part " "('detail') of the message for unhandled exceptions." msgstr "" +"خروجی ``:meth:`~object.__str__``` این استثنا به عنوان آخرین بخش ('جزئیات') " +"پیام برای استثناهای پردازش نشده چاپ می شود." #: ../../tutorial/errors.rst:185 +#, fuzzy msgid "" ":exc:`BaseException` is the common base class of all exceptions. One of its " "subclasses, :exc:`Exception`, is the base class of all the non-fatal " "exceptions. Exceptions which are not subclasses of :exc:`Exception` are not " -"typically handled, because they are used to indicate that the program should " -"terminate. They include :exc:`SystemExit` which is raised by :meth:`sys." -"exit` and :exc:`KeyboardInterrupt` which is raised when a user wishes to " -"interrupt the program." -msgstr "" +"typically handled, because they are used to indicate that the program should" +" terminate. They include :exc:`SystemExit` which is raised by " +":meth:`sys.exit` and :exc:`KeyboardInterrupt` which is raised when a user " +"wishes to interrupt the program." +msgstr "" +"کلاس پایه مشترک تمامی استثناها، `:exc:`BaseException`` است. یکی از زیرکلاس " +"های آن، `:exc:`Exception``، کلاس پایه تمامی استثناهای غیرکشنده است. " +"استثناهایی که زیرکلاس `:exc:`Exception`` نیستند، به طور معمول مدیریت نمی " +"شوند زیرا از آن ها برای نشان دادن این استفاده می شود که برنامه باید خاتمه " +"یابد. آن ها شامل `:exc:`SystemExit`` هستند که توسط `:meth:`sys.exit`` ایجاد " +"می شوند و همچنین شامل `:exc:`KeyboardInterrupt`` که هنگامی که یک کاربر می " +"خواهد برنامه را متوقف کند، ایجاد می شود." #: ../../tutorial/errors.rst:193 +#, fuzzy msgid "" -":exc:`Exception` can be used as a wildcard that catches (almost) everything. " -"However, it is good practice to be as specific as possible with the types of " -"exceptions that we intend to handle, and to allow any unexpected exceptions " -"to propagate on." +":exc:`Exception` can be used as a wildcard that catches (almost) everything." +" However, it is good practice to be as specific as possible with the types " +"of exceptions that we intend to handle, and to allow any unexpected " +"exceptions to propagate on." msgstr "" +"`:exc:`Exception`` می تواند به عنوان یک کاراکتر جایگزین استفاده شود که " +"(تقریباً) همه چیز را می گیرد. با این حال، بهترین روش این است که تا حد امکان " +"به انواع خاصی از استثناها که قصد داریم مدیریت کنیم، محدود شویم و اجازه دهیم " +"هر استثنای غیرمنتظره ای به مسیر خود ادامه دهد." #: ../../tutorial/errors.rst:198 +#, fuzzy msgid "" -"The most common pattern for handling :exc:`Exception` is to print or log the " -"exception and then re-raise it (allowing a caller to handle the exception as " -"well)::" +"The most common pattern for handling :exc:`Exception` is to print or log the" +" exception and then re-raise it (allowing a caller to handle the exception " +"as well)::" msgstr "" +"الگوی رایج برای مدیریت :exc:`Exception` این است که استثنا را چاپ یا ثبت کرده" +" و سپس دوباره آن را بازنشانی کنید (به طوری که امکان مدیریت استثنا توسط " +"فراخوان نیز فراهم شود):" #: ../../tutorial/errors.rst:202 +#, fuzzy msgid "" "import sys\n" "\n" @@ -325,16 +526,36 @@ msgid "" " print(f\"Unexpected {err=}, {type(err)=}\")\n" " raise" msgstr "" +"```python\n" +"وارد کردن sys\n" +"\n" +"سعی کنید:\n" +" f را باز کنید('myfile.txt')\n" +" s = f.readline()\n" +" i = int(s.strip())\n" +"به جز OSError به عنوان err:\n" +" چاپ کنید (\"خطای سیستم عامل:\", err)\n" +"به جز ValueError:\n" +" چاپ کنید (\"امکان تبدیل داده به یک عدد صحیح وجود ندارد.\")\n" +"به جز Exception به عنوان err:\n" +" چاپ کنید (f\"غیرمنتظره {err=}, {type(err)=}\")\n" +" افزایش دهید\n" +"```" #: ../../tutorial/errors.rst:216 +#, fuzzy msgid "" "The :keyword:`try` ... :keyword:`except` statement has an optional *else " "clause*, which, when present, must follow all *except clauses*. It is " "useful for code that must be executed if the *try clause* does not raise an " "exception. For example::" msgstr "" +"بیانیه :keyword:`try` ... :keyword:`except` یک *else clause* اختیاری دارد که" +" در صورت وجود باید پس از تمام *except clauses* قرار گیرد. این برای کدی مفید " +"است که باید اجرا شود اگر *try clause* استثنایی ایجاد نکند. برای مثال:" #: ../../tutorial/errors.rst:221 +#, fuzzy msgid "" "for arg in sys.argv[1:]:\n" " try:\n" @@ -345,23 +566,44 @@ msgid "" " print(arg, 'has', len(f.readlines()), 'lines')\n" " f.close()" msgstr "" +"```python\n" +"برای arg در sys.argv[1:]:\n" +" سعی کنید:\n" +" f = open(arg, 'r')\n" +" به جز OSError:\n" +" print('نمی توان باز کرد', arg)\n" +" در غیر این صورت:\n" +" print(arg, 'دارای', len(f.readlines()), 'خطوط است')\n" +" f.close()\n" +"```" #: ../../tutorial/errors.rst:230 +#, fuzzy msgid "" -"The use of the :keyword:`!else` clause is better than adding additional code " -"to the :keyword:`try` clause because it avoids accidentally catching an " -"exception that wasn't raised by the code being protected by the :keyword:`!" -"try` ... :keyword:`!except` statement." +"The use of the :keyword:`!else` clause is better than adding additional code" +" to the :keyword:`try` clause because it avoids accidentally catching an " +"exception that wasn't raised by the code being protected by the " +":keyword:`!try` ... :keyword:`!except` statement." msgstr "" +"استفاده از بند :keyword:`!else` بهتر از افزودن کد اضافی به بند " +":keyword:`try` است، زیرا از گیر انداختن تصادفی یک استثنا که توسط کد محافظت " +"شده توسط عبارت :keyword:`!try` ... :keyword:`!except` مطرح نشده، جلوگیری می " +"کند." #: ../../tutorial/errors.rst:235 +#, fuzzy msgid "" "Exception handlers do not handle only exceptions that occur immediately in " -"the *try clause*, but also those that occur inside functions that are called " -"(even indirectly) in the *try clause*. For example::" +"the *try clause*, but also those that occur inside functions that are called" +" (even indirectly) in the *try clause*. For example::" msgstr "" +"مدیریت کننده های استثنا تنها استثناهایی که بلافاصله در *try clause* رخ می " +"دهند را مدیریت نمی کنند، بلکه استثناهایی که در داخل توابع فراخوانی شده (حتی " +"به طور غیرمستقیم) در *try clause* نیز رخ می دهند را پوشش می دهند. برای " +"مثال::" #: ../../tutorial/errors.rst:239 +#, fuzzy msgid "" ">>> def this_fails():\n" "... x = 1/0\n" @@ -373,18 +615,34 @@ msgid "" "...\n" "Handling run-time error: division by zero" msgstr "" +"```python\n" +">>> def this_fails():\n" +"... x = 1/0\n" +"...\n" +">>> try:\n" +"... this_fails()\n" +"... except ZeroDivisionError as err:\n" +"... print('رفع خطای زمان اجرا:', err)\n" +"...\n" +"رفع خطای زمان اجرا: division by zero\n" +"```" #: ../../tutorial/errors.rst:253 +#, fuzzy msgid "Raising Exceptions" -msgstr "" +msgstr "بالا بردن استثناها" #: ../../tutorial/errors.rst:255 +#, fuzzy msgid "" "The :keyword:`raise` statement allows the programmer to force a specified " "exception to occur. For example::" msgstr "" +"بیانیه :keyword:`raise` به برنامه نویس این امکان را می دهد که به طور عمد یک " +"استثناء تعیین شده را ایجاد کند. به عنوان مثال::" #: ../../tutorial/errors.rst:258 +#, fuzzy msgid "" ">>> raise NameError('HiThere')\n" "Traceback (most recent call last):\n" @@ -392,28 +650,48 @@ msgid "" " raise NameError('HiThere')\n" "NameError: HiThere" msgstr "" +"```>>> raise NameError('HiThere')\n" +"بازگشت به دنبال کردن خطا (آخرین تماس اخیر):\n" +" فایل \"\"، خط ۱، در \n" +" raise NameError('HiThere')\n" +"NameError: HiThere```" #: ../../tutorial/errors.rst:264 +#, fuzzy msgid "" "The sole argument to :keyword:`raise` indicates the exception to be raised. " "This must be either an exception instance or an exception class (a class " -"that derives from :class:`BaseException`, such as :exc:`Exception` or one of " -"its subclasses). If an exception class is passed, it will be implicitly " +"that derives from :class:`BaseException`, such as :exc:`Exception` or one of" +" its subclasses). If an exception class is passed, it will be implicitly " "instantiated by calling its constructor with no arguments::" msgstr "" +"تنها آرگومان برای :keyword:`raise` نشان دهنده استثنایی است که باید ایجاد " +"شود. این باید یا یک نمونه استثناء باشد یا یک کلاس استثناء (کلاسی که از " +":class:`BaseException` ارث برده باشد، مانند :exc:`Exception` یا یکی از " +"زیرکلاس های آن). اگر یک کلاس استثناء ارسال شود، با فراخوانی سازنده آن بدون " +"هیچ آرگومانی به صورت ضمنی نمونه سازی خواهد شد." #: ../../tutorial/errors.rst:270 +#, fuzzy msgid "raise ValueError # shorthand for 'raise ValueError()'" msgstr "" +"```python\n" +"raise ValueError # «خطای مقدار» را فراخوانی می کند. این معادل مختصر 'raise ValueError()' است.\n" +"```" #: ../../tutorial/errors.rst:272 +#, fuzzy msgid "" -"If you need to determine whether an exception was raised but don't intend to " -"handle it, a simpler form of the :keyword:`raise` statement allows you to re-" -"raise the exception::" +"If you need to determine whether an exception was raised but don't intend to" +" handle it, a simpler form of the :keyword:`raise` statement allows you to " +"re-raise the exception::" msgstr "" +"اگر نیاز دارید بررسی کنید که آیا یک استثنا رخ داده اما قصد ندارید آن را " +"مدیریت کنید، یک شکل ساده تر از عبارت :keyword:`raise` به شما این امکان را می" +" دهد که استثنا را مجدداً مطرح کنید::" #: ../../tutorial/errors.rst:276 +#, fuzzy msgid "" ">>> try:\n" "... raise NameError('HiThere')\n" @@ -427,19 +705,37 @@ msgid "" " raise NameError('HiThere')\n" "NameError: HiThere" msgstr "" +"```python\n" +">>> try:\n" +"... raise NameError('HiThere')\n" +"... except NameError:\n" +"... print('یک استثنا اتفاق افتاد!')\n" +"... raise\n" +"...\n" +"یک استثنا اتفاق افتاد!\n" +"Traceback (most recent call last):\n" +" File \"\", line 2, in \n" +" raise NameError('HiThere')\n" +"NameError: HiThere\n" +"```" #: ../../tutorial/errors.rst:292 +#, fuzzy msgid "Exception Chaining" -msgstr "" +msgstr "زنجیره استثناها" #: ../../tutorial/errors.rst:294 +#, fuzzy msgid "" "If an unhandled exception occurs inside an :keyword:`except` section, it " "will have the exception being handled attached to it and included in the " "error message::" msgstr "" +"اگر یک استثنای رسیدگی نشده در بخش :keyword:`except` رخ دهد، استثنای موردنظر " +"به آن پیوست شده و در پیام خطا گنجانده خواهد شد::" #: ../../tutorial/errors.rst:298 +#, fuzzy msgid "" ">>> try:\n" "... open(\"database.sqlite\")\n" @@ -459,24 +755,54 @@ msgid "" " raise RuntimeError(\"unable to handle error\")\n" "RuntimeError: unable to handle error" msgstr "" +"```python\n" +">>> try:\n" +"... open(\"database.sqlite\")\n" +"... except OSError:\n" +"... raise RuntimeError(\"unable to handle error\")\n" +"...\n" +"```\n" +"دریافت خطا (آخرین تماس اخیر):\n" +" فایل \"\", خط 2، در \n" +" `open(\"database.sqlite\")`\n" +" ~~~~^^^^^^^^^^^^^^^^^^^\n" +"`FileNotFoundError`: [Errno 2] عدم وجود چنین فایل یا دایرکتوری: 'database.sqlite'\n" +"\n" +"در هنگام پردازش استثناء فوق، استثناء دیگری رخ داد:\n" +"\n" +"دریافت خطا (آخرین تماس اخیر):\n" +" فایل \"\", خط 4، در \n" +" `raise RuntimeError(\"unable to handle error\")`\n" +"`RuntimeError`: unable to handle error" #: ../../tutorial/errors.rst:316 +#, fuzzy msgid "" -"To indicate that an exception is a direct consequence of another, the :" -"keyword:`raise` statement allows an optional :keyword:`from` clause::" +"To indicate that an exception is a direct consequence of another, the " +":keyword:`raise` statement allows an optional :keyword:`from` " +"clause::" msgstr "" +"برای نشان دادن این که یک استثنا نتیجه مستقیم دیگری است، عبارت " +":keyword:`raise` اجازه می دهد که یک بند اختیاری :keyword:`from` " +"استفاده شود::" #: ../../tutorial/errors.rst:319 +#, fuzzy msgid "" "# exc must be exception instance or None.\n" "raise RuntimeError from exc" msgstr "" +"# exc باید یک نمونه از استثناء یا None باشد.\n" +"raise RuntimeError from exc" #: ../../tutorial/errors.rst:322 +#, fuzzy msgid "This can be useful when you are transforming exceptions. For example::" msgstr "" +"این می تواند زمانی که شما استثناها را تبدیل می کنید مفید باشد. برای مثال::" #: ../../tutorial/errors.rst:324 +#, fuzzy msgid "" ">>> def func():\n" "... raise ConnectionError\n" @@ -500,14 +826,39 @@ msgid "" " raise RuntimeError('Failed to open database') from exc\n" "RuntimeError: Failed to open database" msgstr "" +"```>>> def func():\n" +"... raise ConnectionError\n" +"...\n" +">>> try:\n" +"... func()\n" +"... except ConnectionError as exc:\n" +"... raise RuntimeError('Failed to open database') from exc\n" +"...\n" +"Traceback (most recent call last):\n" +" File \"\", line 2, in \n" +" func()\n" +" ~~~~^^\n" +" File \"\", line 2, in func\n" +"ConnectionError\n" +"\n" +"این استثنای بالا علت مستقیم استثنای زیر بود:\n" +"\n" +"Traceback (most recent call last):\n" +" File \"\", line 4, in \n" +" raise RuntimeError('Failed to open database') from exc\n" +"RuntimeError: Failed to open database```" #: ../../tutorial/errors.rst:346 +#, fuzzy msgid "" "It also allows disabling automatic exception chaining using the ``from " "None`` idiom::" msgstr "" +"همچنین به شما این امکان را می دهد که زنجیره خودکار استثنا ها را با استفاده " +"از اصطلاح ``from None`` غیرفعال کنید::" #: ../../tutorial/errors.rst:349 +#, fuzzy msgid "" ">>> try:\n" "... open('database.sqlite')\n" @@ -519,56 +870,93 @@ msgid "" " raise RuntimeError from None\n" "RuntimeError" msgstr "" +"```python\n" +">>> try:\n" +"... open('database.sqlite')\n" +"... except OSError:\n" +"... raise RuntimeError from None\n" +"...\n" +"Traceback (most recent call last):\n" +" File \"\", line 4, in \n" +" raise RuntimeError from None\n" +"RuntimeError\n" +"```" #: ../../tutorial/errors.rst:359 +#, fuzzy msgid "" "For more information about chaining mechanics, see :ref:`bltin-exceptions`." msgstr "" +"برای کسب اطلاعات بیشتر درباره مکانیک زنجیره ای، به :ref:`bltin-exceptions` " +"مراجعه کنید." #: ../../tutorial/errors.rst:365 +#, fuzzy msgid "User-defined Exceptions" -msgstr "" +msgstr "استثناهای تعریف شده توسط کاربر" #: ../../tutorial/errors.rst:367 +#, fuzzy msgid "" "Programs may name their own exceptions by creating a new exception class " "(see :ref:`tut-classes` for more about Python classes). Exceptions should " "typically be derived from the :exc:`Exception` class, either directly or " "indirectly." msgstr "" +"برنامه ها می توانند استثناهای خود را با ایجاد یک کلاس استثنا جدید نام گذاری " +"کنند (برای اطلاعات بیشتر در مورد کلاس های پایتون به :ref:`tut-classes` " +"مراجعه کنید). استثناها معمولاً باید از کلاس :exc:`Exception`، به صورت مستقیم" +" یا غیرمستقیم مشتق شوند." #: ../../tutorial/errors.rst:371 +#, fuzzy msgid "" "Exception classes can be defined which do anything any other class can do, " -"but are usually kept simple, often only offering a number of attributes that " -"allow information about the error to be extracted by handlers for the " +"but are usually kept simple, often only offering a number of attributes that" +" allow information about the error to be extracted by handlers for the " "exception." msgstr "" +"کلاس های استثنا می توانند تعریف شوند به طوری که هر کاری که هر کلاس دیگری می " +"تواند انجام دهد را انجام دهند، اما معمولاً ساده نگه داشته می شوند و اغلب " +"تنها چند ویژگی ارائه می دهند که امکان استخراج اطلاعات درباره ی خطا توسط " +"هندلرهای استثنا را فراهم می کند." #: ../../tutorial/errors.rst:375 +#, fuzzy msgid "" -"Most exceptions are defined with names that end in \"Error\", similar to the " -"naming of the standard exceptions." +"Most exceptions are defined with names that end in \"Error\", similar to the" +" naming of the standard exceptions." msgstr "" +"بیشتر استثناها با نام هایی تعریف می شوند که به \"Error\" ختم می شوند، مشابه " +"نام گذاری استثناهای استاندارد." #: ../../tutorial/errors.rst:378 +#, fuzzy msgid "" "Many standard modules define their own exceptions to report errors that may " "occur in functions they define." msgstr "" +"بسیاری از ماژول های استاندارد استثناهای خاص خود را تعریف می کنند تا خطاهایی " +"را که ممکن است در توابعی که تعریف می کنند رخ دهد، گزارش دهند." #: ../../tutorial/errors.rst:385 +#, fuzzy msgid "Defining Clean-up Actions" -msgstr "" +msgstr "تعریف اقدامات پاک سازی" #: ../../tutorial/errors.rst:387 +#, fuzzy msgid "" "The :keyword:`try` statement has another optional clause which is intended " "to define clean-up actions that must be executed under all circumstances. " "For example::" msgstr "" +"عبارت :keyword:`try` دارای یک بند اختیاری دیگر است که برای تعریف اقداماتی " +"جهت پاکسازی در نظر گرفته شده است که باید تحت هر شرایطی اجرا شوند. برای " +"مثال::" #: ../../tutorial/errors.rst:391 +#, fuzzy msgid "" ">>> try:\n" "... raise KeyboardInterrupt\n" @@ -581,58 +969,99 @@ msgid "" " raise KeyboardInterrupt\n" "KeyboardInterrupt" msgstr "" +"```python\n" +">>> try:\n" +"... raise KeyboardInterrupt\n" +"... finally:\n" +"... print('خداحافظ، دنیا!')\n" +"...\n" +"خداحافظ، دنیا!\n" +"Traceback (most recent call last):\n" +" File \"\", line 2, in \n" +" raise KeyboardInterrupt\n" +"KeyboardInterrupt\n" +"```" #: ../../tutorial/errors.rst:402 +#, fuzzy msgid "" "If a :keyword:`finally` clause is present, the :keyword:`!finally` clause " -"will execute as the last task before the :keyword:`try` statement completes. " -"The :keyword:`!finally` clause runs whether or not the :keyword:`!try` " +"will execute as the last task before the :keyword:`try` statement completes." +" The :keyword:`!finally` clause runs whether or not the :keyword:`!try` " "statement produces an exception. The following points discuss more complex " "cases when an exception occurs:" msgstr "" +"اگر یک بند :keyword:`finally` وجود داشته باشد، بند :keyword:`!finally` به " +"عنوان آخرین وظیفه قبل از کامل شدن دستور :keyword:`try` اجرا خواهد شد. بند " +":keyword:`!finally` اجرا می شود، چه دستور :keyword:`!try` استثنایی تولید کند" +" یا نه. نکات زیر به بررسی موارد پیچیده تری می پردازند که وقتی استثنایی رخ می" +" دهد:" #: ../../tutorial/errors.rst:408 +#, fuzzy msgid "" "If an exception occurs during execution of the :keyword:`!try` clause, the " -"exception may be handled by an :keyword:`except` clause. If the exception is " -"not handled by an :keyword:`!except` clause, the exception is re-raised " +"exception may be handled by an :keyword:`except` clause. If the exception is" +" not handled by an :keyword:`!except` clause, the exception is re-raised " "after the :keyword:`!finally` clause has been executed." msgstr "" +"اگر یک استثنا در حین اجرای بخش :keyword:`!try` رخ دهد، ممکن است این استثنا " +"توسط یک بخش :keyword:`except` مورد پردازش قرار گیرد. اگر استثنا توسط بخش " +":keyword:`!except` پردازش نشود، بعد از اجرای بخش :keyword:`!finally`، استثنا" +" دوباره مطرح می شود." #: ../../tutorial/errors.rst:414 +#, fuzzy msgid "" -"An exception could occur during execution of an :keyword:`!except` or :" -"keyword:`!else` clause. Again, the exception is re-raised after the :keyword:" -"`!finally` clause has been executed." +"An exception could occur during execution of an :keyword:`!except` or " +":keyword:`!else` clause. Again, the exception is re-raised after the " +":keyword:`!finally` clause has been executed." msgstr "" +"ممکن است یک استثنا در زمان اجرای یک بند :keyword:`!except` یا " +":keyword:`!else` رخ دهد. مجدداً، استثنا پس از اجرای بند :keyword:`!finally` " +"دوباره پیش آمد می شود." #: ../../tutorial/errors.rst:418 +#, fuzzy msgid "" -"If the :keyword:`!finally` clause executes a :keyword:`break`, :keyword:" -"`continue` or :keyword:`return` statement, exceptions are not re-raised." +"If the :keyword:`!finally` clause executes a :keyword:`break`, " +":keyword:`continue` or :keyword:`return` statement, exceptions are not re-" +"raised." msgstr "" +"اگر بند :keyword:`!finally`، دستور :keyword:`break`، :keyword:`continue` یا " +":keyword:`return` را اجرا کند، استثناها دوباره برانگیخته نمی شوند." #: ../../tutorial/errors.rst:422 +#, fuzzy msgid "" -"If the :keyword:`!try` statement reaches a :keyword:`break`, :keyword:" -"`continue` or :keyword:`return` statement, the :keyword:`!finally` clause " -"will execute just prior to the :keyword:`!break`, :keyword:`!continue` or :" -"keyword:`!return` statement's execution." +"If the :keyword:`!try` statement reaches a :keyword:`break`, " +":keyword:`continue` or :keyword:`return` statement, the :keyword:`!finally` " +"clause will execute just prior to the :keyword:`!break`, " +":keyword:`!continue` or :keyword:`!return` statement's execution." msgstr "" +"اگر دستور :keyword:`!try` به یک دستور :keyword:`break`، :keyword:`continue` " +"یا :keyword:`return` برسد، بند :keyword:`!finally` درست قبل از اجرای دستور " +":keyword:`!break`، :keyword:`!continue` یا :keyword:`!return` اجرا می شود." #: ../../tutorial/errors.rst:428 +#, fuzzy msgid "" -"If a :keyword:`!finally` clause includes a :keyword:`!return` statement, the " -"returned value will be the one from the :keyword:`!finally` clause's :" -"keyword:`!return` statement, not the value from the :keyword:`!try` " +"If a :keyword:`!finally` clause includes a :keyword:`!return` statement, the" +" returned value will be the one from the :keyword:`!finally` clause's " +":keyword:`!return` statement, not the value from the :keyword:`!try` " "clause's :keyword:`!return` statement." msgstr "" +"اگر یک بند :keyword:`!finally` شامل یک عبارت :keyword:`!return` باشد، مقدار " +"بازگشتی از عبارت :keyword:`!return` بند :keyword:`!finally` خواهد بود، نه " +"مقدار عبارت :keyword:`!return` بند :keyword:`!try`." #: ../../tutorial/errors.rst:434 +#, fuzzy msgid "For example::" -msgstr "" +msgstr "برای مثال::" #: ../../tutorial/errors.rst:436 +#, fuzzy msgid "" ">>> def bool_return():\n" "... try:\n" @@ -643,12 +1072,24 @@ msgid "" ">>> bool_return()\n" "False" msgstr "" +"```python\n" +">>> def bool_return():\n" +"... try:\n" +"... return True\n" +"... finally:\n" +"... return False\n" +"...\n" +">>> bool_return()\n" +"False\n" +"```" #: ../../tutorial/errors.rst:445 +#, fuzzy msgid "A more complicated example::" -msgstr "" +msgstr "یک مثال پیچیده تر:" #: ../../tutorial/errors.rst:447 +#, fuzzy msgid "" ">>> def divide(x, y):\n" "... try:\n" @@ -677,86 +1118,160 @@ msgid "" " ~~^~~\n" "TypeError: unsupported operand type(s) for /: 'str' and 'str'" msgstr "" +"```python\n" +">>> def divide(x, y):\n" +"... try:\n" +"... result = x / y\n" +"... except ZeroDivisionError:\n" +"... print(\"تقسیم بر صفر!\")\n" +"... else:\n" +"... print(\"نتیجه\", result, \"است\")\n" +"... finally:\n" +"... print(\"اجرای بلوک نهایی\")\n" +"...\n" +">>> divide(2, 1)\n" +"نتیجه 2.0 است\n" +"اجرای بلوک نهایی\n" +">>> divide(2, 0)\n" +"تقسیم بر صفر!\n" +"اجرای بلوک نهایی\n" +">>> divide(\"2\", \"1\")\n" +"اجرای بلوک نهایی\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" divide(\"2\", \"1\")\n" +" ~~~~~~^^^^^^^^^^\n" +" File \"\", line 3, in divide\n" +" result = x / y\n" +" ~~^~~\n" +"TypeError: نوع های عملوند پشتیبانی نمی شوند برای /: 'str' و 'str'\n" +"```" #: ../../tutorial/errors.rst:474 +#, fuzzy msgid "" -"As you can see, the :keyword:`finally` clause is executed in any event. " -"The :exc:`TypeError` raised by dividing two strings is not handled by the :" -"keyword:`except` clause and therefore re-raised after the :keyword:`!" -"finally` clause has been executed." +"As you can see, the :keyword:`finally` clause is executed in any event. The" +" :exc:`TypeError` raised by dividing two strings is not handled by the " +":keyword:`except` clause and therefore re-raised after the " +":keyword:`!finally` clause has been executed." msgstr "" +"همانطور که می بینید، بخش :keyword:`finally` در هر رویدادی اجرا می شود. خطایی" +" که با تقسیم دو رشته ایجاد شده است با بخش :keyword:`except` مدیریت نمی شود و" +" بنابراین پس از اجرای بخش :keyword:`!finally` مجدداً ایجاد می شود." #: ../../tutorial/errors.rst:479 +#, fuzzy msgid "" "In real world applications, the :keyword:`finally` clause is useful for " "releasing external resources (such as files or network connections), " "regardless of whether the use of the resource was successful." msgstr "" +"در برنامه های کاربردی دنیای واقعی، عبارت :keyword:`finally` برای آزاد کردن " +"منابع خارجی (مانند فایل ها یا اتصالات شبکه)، بدون توجه به موفقیت آمیز بودن " +"استفاده از منبع، مفید است." #: ../../tutorial/errors.rst:487 +#, fuzzy msgid "Predefined Clean-up Actions" -msgstr "" +msgstr "اقدامات پاکسازی از پیش تعریف شده" #: ../../tutorial/errors.rst:489 +#, fuzzy msgid "" "Some objects define standard clean-up actions to be undertaken when the " -"object is no longer needed, regardless of whether or not the operation using " -"the object succeeded or failed. Look at the following example, which tries " +"object is no longer needed, regardless of whether or not the operation using" +" the object succeeded or failed. Look at the following example, which tries " "to open a file and print its contents to the screen. ::" msgstr "" +"برخی از اشیاء عملیات پاکسازی استانداردی را تعریف می کنند که باید زمانی که به" +" شی دیگر نیازی نیست، انجام شود، صرف نظر از اینکه عملیات با استفاده از شی " +"موفق بوده یا شکست خورده است. به مثال زیر نگاه کنید که تلاش می کند یک فایل را" +" باز کرده و محتوای آن را روی صفحه نمایش چاپ کند. ::" #: ../../tutorial/errors.rst:494 +#, fuzzy msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" msgstr "" +"برای خط در `open(\"myfile.txt\")`:\n" +" `print(line, end=\"\")`" #: ../../tutorial/errors.rst:497 +#, fuzzy msgid "" "The problem with this code is that it leaves the file open for an " "indeterminate amount of time after this part of the code has finished " "executing. This is not an issue in simple scripts, but can be a problem for " -"larger applications. The :keyword:`with` statement allows objects like files " -"to be used in a way that ensures they are always cleaned up promptly and " +"larger applications. The :keyword:`with` statement allows objects like files" +" to be used in a way that ensures they are always cleaned up promptly and " "correctly. ::" msgstr "" +"مشکل این کد این است که فایل را برای مدت زمانی نامشخص پس از اتمام اجرای این " +"بخش از کد باز می گذارد. این موضوع در اسکریپت های ساده مشکلی ایجاد نمی کند، " +"اما می تواند برای برنامه های بزرگتر مسئله ساز شود. دستور ``:keyword:`with```" +" اجازه می دهد تا اشیایی مانند فایل ها به گونه ای استفاده شوند که اطمینان " +"حاصل شود همیشه به طور سریع و صحیح پاک سازی می شوند. ::" #: ../../tutorial/errors.rst:503 +#, fuzzy msgid "" "with open(\"myfile.txt\") as f:\n" " for line in f:\n" " print(line, end=\"\")" msgstr "" +"```python\n" +"with open(\"myfile.txt\") as f:\n" +" for line in f:\n" +" print(line, end=\"\")\n" +"```\n" +"با استفاده از این کد، فایل \"myfile.txt\" باز می شود و سپس هر خط از این فایل به صورت جداگانه خوانده و چاپ می شود. پارامتر `end=\"\"` باعث می شود که بعد از هر خط، کاراکتر جدیدی به انتهای آن اضافه نشود." #: ../../tutorial/errors.rst:507 +#, fuzzy msgid "" "After the statement is executed, the file *f* is always closed, even if a " "problem was encountered while processing the lines. Objects which, like " "files, provide predefined clean-up actions will indicate this in their " "documentation." msgstr "" +"پس از اجرای دستورات، فایل *f* همیشه بسته می شود، حتی اگر در حین پردازش خطوط " +"مشکلی به وجود آمده باشد. اشیایی که مانند فایل ها، اقداماتی از پیش تعریف شده " +"برای پاک سازی را ارائه می دهند این موضوع را در مستندات خود نشان خواهند داد." #: ../../tutorial/errors.rst:515 +#, fuzzy msgid "Raising and Handling Multiple Unrelated Exceptions" -msgstr "" +msgstr "برخورد و مدیریت چند خطای نامرتبط" #: ../../tutorial/errors.rst:517 +#, fuzzy msgid "" -"There are situations where it is necessary to report several exceptions that " -"have occurred. This is often the case in concurrency frameworks, when " +"There are situations where it is necessary to report several exceptions that" +" have occurred. This is often the case in concurrency frameworks, when " "several tasks may have failed in parallel, but there are also other use " "cases where it is desirable to continue execution and collect multiple " "errors rather than raise the first exception." msgstr "" +"در شرایطی ممکن است لازم باشد چندین استثنا که رخ داده اند گزارش شوند. این " +"اغلب در چارچوب های هم زمانی اتفاق می افتد، زمانی که ممکن است چندین وظیفه به " +"صورت موازی با مشکل مواجه شده باشند، اما همچنین موارد استفاده دیگری وجود دارد" +" که در آن ادامه اجرای برنامه و جمع آوری چندین خطا به جای بالا بردن اولین " +"استثنا مطلوب است." #: ../../tutorial/errors.rst:523 +#, fuzzy msgid "" "The builtin :exc:`ExceptionGroup` wraps a list of exception instances so " "that they can be raised together. It is an exception itself, so it can be " "caught like any other exception. ::" msgstr "" +"تابع داخلی :exc:`ExceptionGroup` یک لیست از نمونه های استثنا را می پوشاند تا" +" بتوان آن ها را به صورت همزمان مطرح کرد. این خود یک استثنا است، بنابراین می " +"توان آن را مانند هر استثنای دیگری گرفت. ::" #: ../../tutorial/errors.rst:527 +#, fuzzy msgid "" ">>> def f():\n" "... excs = [OSError('error 1'), SystemError('error 2')]\n" @@ -783,17 +1298,51 @@ msgid "" "caught : e\n" ">>>" msgstr "" +"```python\n" +">>> def f():\n" +"... excs = [OSError('خطا ۱'), SystemError('خطا ۲')]\n" +"... raise ExceptionGroup('مشکلاتی وجود داشت', excs)\n" +"...\n" +">>> f()\n" +" + Exception Group Traceback (most recent call last):\n" +" | File \"\", line 1, in \n" +" | f()\n" +" | ~^^\n" +" | File \"\", line 3, in f\n" +" | raise ExceptionGroup('مشکلاتی وجود داشت', excs)\n" +" | ExceptionGroup: مشکلاتی وجود داشت (۲ زیر-استثنا)\n" +" +-+---------------- ۱ ----------------\n" +" | OSError: خطا ۱\n" +" +---------------- ۲ ----------------\n" +" | SystemError: خطا ۲\n" +" +------------------------------------\n" +">>> try:\n" +"... f()\n" +"... except Exception as e:\n" +"... print(f'caught {type(e)}: e')\n" +"...\n" +"caught : e\n" +">>>\n" +"```" #: ../../tutorial/errors.rst:552 +#, fuzzy msgid "" "By using ``except*`` instead of ``except``, we can selectively handle only " "the exceptions in the group that match a certain type. In the following " "example, which shows a nested exception group, each ``except*`` clause " -"extracts from the group exceptions of a certain type while letting all other " -"exceptions propagate to other clauses and eventually to be reraised. ::" +"extracts from the group exceptions of a certain type while letting all other" +" exceptions propagate to other clauses and eventually to be reraised. ::" msgstr "" +"با استفاده از ``except*`` به جای ``except``، ما می توانیم به صورت انتخابی " +"فقط استثناهای داخل گروه را که با نوع خاصی مطابقت دارند، مدیریت کنیم. در مثال" +" زیر که یک گروه استثنای تو در تو را نشان می دهد، هر جمله ``except*`` " +"استثناهایی از یک نوع خاص را از گروه استخراج می کند، در حالی که به سایر " +"استثناها اجازه می دهد تا به سایر جملات انتقال یابند و در نهایت مجدداً ایجاد " +"شوند. ::" #: ../../tutorial/errors.rst:559 +#, fuzzy msgid "" ">>> def f():\n" "... raise ExceptionGroup(\n" @@ -836,16 +1385,59 @@ msgid "" " +------------------------------------\n" ">>>" msgstr "" +"```>>> def f():\n" +"... raise ExceptionGroup(\n" +"... \"group1\",\n" +"... [\n" +"... OSError(1),\n" +"... SystemError(2),\n" +"... ExceptionGroup(\n" +"... \"group2\",\n" +"... [\n" +"... OSError(3),\n" +"... RecursionError(4)\n" +"... ]\n" +"... )\n" +"... ]\n" +"... )\n" +"...\n" +">>> try:\n" +"... f()\n" +"... except SystemError as e:\n" +"... print(\"There were SystemErrors\")\n" +"...\n" +"خطاهای OSError وجود داشتند\n" +"خطاهای SystemError وجود داشتند\n" +" + مسیر ردپای گروه استثنا (آخرین تماس اخیر):\n" +" | فایل \"\", خط 2، در \n" +" | f()\n" +" | ~^^\n" +" | فایل \"\", خط 2، در f\n" +" | raise ExceptionGroup(\n" +" | ...<12 lines>...\n" +" | )\n" +" | ExceptionGroup: گروه1 (۱ زیر-استثنا)\n" +" +-+---------------- ۱ ----------------\n" +" | ExceptionGroup: گروه2 (۱ زیر-استثنا)\n" +" +-+---------------- ۱ ----------------\n" +" | RecursionError: 4\n" +" +------------------------------------\n" +">>>```" #: ../../tutorial/errors.rst:600 +#, fuzzy msgid "" -"Note that the exceptions nested in an exception group must be instances, not " -"types. This is because in practice the exceptions would typically be ones " -"that have already been raised and caught by the program, along the following " -"pattern::" +"Note that the exceptions nested in an exception group must be instances, not" +" types. This is because in practice the exceptions would typically be ones " +"that have already been raised and caught by the program, along the following" +" pattern::" msgstr "" +"توجه داشته باشید که استثنائات تو در تو در یک گروه استثناء باید نمونه هایی " +"باشند، نه نوع ها. این به این دلیل است که در عمل، استثنائات معمولاً آن هایی " +"هستند که قبلاً توسط برنامه پرداخته و مدیریت شده اند، مطابق الگوی زیر:" #: ../../tutorial/errors.rst:605 +#, fuzzy msgid "" ">>> excs = []\n" "... for test in tests:\n" @@ -858,12 +1450,24 @@ msgid "" "... raise ExceptionGroup(\"Test Failures\", excs)\n" "..." msgstr "" +">>> excs = []\n" +"... for test in tests:\n" +"... try:\n" +"... test.run()\n" +"... except Exception as e:\n" +"... excs.append(e)\n" +"...\n" +">>> if excs:\n" +"... raise ExceptionGroup(\"اشکالات تست\", excs)\n" +"..." #: ../../tutorial/errors.rst:620 +#, fuzzy msgid "Enriching Exceptions with Notes" -msgstr "" +msgstr "غنی سازی استثناها با یادداشت ها" #: ../../tutorial/errors.rst:622 +#, fuzzy msgid "" "When an exception is created in order to be raised, it is usually " "initialized with information that describes the error that has occurred. " @@ -873,8 +1477,15 @@ msgid "" "standard traceback rendering includes all notes, in the order they were " "added, after the exception. ::" msgstr "" +"هنگامی که یک استثنا برای ایجاد شدن آماده می شود، معمولاً با اطلاعاتی که خطای" +" رخ داده را توصیف می کند، مقداردهی اولیه می شود. در برخی مواقع، افزودن " +"اطلاعات پس از دریافت استثنا مفید است. برای این منظور، استثناها یک متدی به " +"نام ``add_note(note)`` دارند که یک رشته را قبول کرده و آن را به لیست یادداشت" +" های استثنا اضافه می کند. ارائه استاندارد خلاصه سازی خطا شامل تمامی یادداشت " +"ها به ترتیبی که اضافه شده اند، پس از استثنا است." #: ../../tutorial/errors.rst:629 +#, fuzzy msgid "" ">>> try:\n" "... raise TypeError('bad type')\n" @@ -891,15 +1502,36 @@ msgid "" "Add some more information\n" ">>>" msgstr "" +"```>>> try:\n" +"... raise TypeError('نوع نامناسب')\n" +"... except Exception as e:\n" +"... e.add_note('افزودن برخی اطلاعات')\n" +"... e.add_note('افزودن اطلاعات بیشتر')\n" +"... raise\n" +"...\n" +"Traceback (most recent call last):\n" +" File \"\", line 2, in \n" +" raise TypeError('نوع نامناسب')\n" +"TypeError: نوع نامناسب\n" +"افزودن برخی اطلاعات\n" +"افزودن اطلاعات بیشتر\n" +">>>```" #: ../../tutorial/errors.rst:644 +#, fuzzy msgid "" -"For example, when collecting exceptions into an exception group, we may want " -"to add context information for the individual errors. In the following each " -"exception in the group has a note indicating when this error has occurred. ::" +"For example, when collecting exceptions into an exception group, we may want" +" to add context information for the individual errors. In the following each" +" exception in the group has a note indicating when this error has occurred. " +"::" msgstr "" +"به عنوان مثال، زمانی که خطاها را در یک گروه استثناء جمع آوری می کنیم، ممکن " +"است بخواهیم اطلاعات زمینه ای را برای هر یک از خطاهای فردی اضافه کنیم. در " +"مثال زیر، هر خطا در گروه دارای یادداشتی است که نشان می دهد این خطا چه زمانی " +"رخ داده است. ::" #: ../../tutorial/errors.rst:648 +#, fuzzy msgid "" ">>> def f():\n" "... raise OSError('operation failed')\n" @@ -947,3 +1579,49 @@ msgid "" " +------------------------------------\n" ">>>" msgstr "" +"```python\n" +">>> def f():\n" +"... raise OSError('operation failed')\n" +"...\n" +">>> excs = []\n" +">>> for i in range(3):\n" +"... try:\n" +"... f()\n" +"... except Exception as e:\n" +"... e.add_note(f'در تکرار {i+1} اتفاق افتاد')\n" +"... excs.append(e)\n" +"...\n" +">>> raise ExceptionGroup('ما چند مشکل داریم', excs)\n" +" + Exception Group Traceback (most recent call last):\n" +" | File \"\", line 1, in \n" +" | raise ExceptionGroup('ما چند مشکل داریم', excs)\n" +" | ExceptionGroup: ما چند مشکل داریم (3 زیر-استثناء)\n" +" +-+---------------- 1 ----------------\n" +" | Traceback (most recent call last):\n" +" | File \"\", line 3, in \n" +" | f()\n" +" | ~^^\n" +" | File \"\", line 2, in f\n" +" | raise OSError('operation failed')\n" +" | OSError: operation failed\n" +" | در تکرار 1 اتفاق افتاد\n" +" +---------------- 2 ----------------\n" +" | Traceback (most recent call last):\n" +" | File \"\", line 3, in \n" +" | f()\n" +" | ~^^\n" +" | File \"\", line 2, in f\n" +" | raise OSError('operation failed')\n" +" | OSError: operation failed\n" +" | در تکرار 2 اتفاق افتاد\n" +" +---------------- 3 ----------------\n" +" | Traceback (most recent call last):\n" +" | File \"\", line 3, in \n" +" | f()\n" +" | ~^^\n" +" | File \"\", line 2, in f\n" +" | raise OSError('operation failed')\n" +" | OSError: operation failed\n" +" | در تکرار 3 اتفاق افتاد\n" +" +------------------------------------\n" +"```" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index adf63c117..ffc9b682b 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -14,19 +14,20 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/floatingpoint.rst:10 +#, fuzzy msgid "Floating-Point Arithmetic: Issues and Limitations" -msgstr "" +msgstr "محاسبات اعداد اعشاری: مسائل و محدودیت ها" #: ../../tutorial/floatingpoint.rst:16 +#, fuzzy msgid "" "Floating-point numbers are represented in computer hardware as base 2 " "(binary) fractions. For example, the **decimal** fraction ``0.625`` has " @@ -35,66 +36,101 @@ msgid "" "values, the only real difference being that the first is written in base 10 " "fractional notation, and the second in base 2." msgstr "" +"اعداد اعشاری در سخت افزار کامپیوتر به عنوان کسرهای مبنای ۲ (باینری) نمایش " +"داده می شوند. به عنوان مثال، کسر **decimal** دارای مقدار 6/10 + 2/100 + " +"5/1000 است و به همین روش، کسر **binary** دارای مقدار 1/2 + 0/4 + 1/8 است. " +"این دو کسر معادلی با مقادیر مشابه دارند و تنها تفاوت واقعی این است که اولی " +"به صورت کسر مبنای ۱۰ نوشته شده و دومی به صورت کسر مبنای ۲." #: ../../tutorial/floatingpoint.rst:23 +#, fuzzy msgid "" "Unfortunately, most decimal fractions cannot be represented exactly as " "binary fractions. A consequence is that, in general, the decimal floating-" "point numbers you enter are only approximated by the binary floating-point " "numbers actually stored in the machine." msgstr "" +"متأسفانه، اکثر کسرهای اعشاری نمی توانند به طور دقیق به صورت کسرهای دودویی " +"نمایش داده شوند. نتیجه این است که، به طور کلی، اعداد اعشاری شناور که وارد می" +" کنید فقط به صورت تقریبی توسط اعداد شناور دودویی که واقعاً در ماشین ذخیره می" +" شوند، نمایش داده می شوند." #: ../../tutorial/floatingpoint.rst:28 +#, fuzzy msgid "" "The problem is easier to understand at first in base 10. Consider the " "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" +"در ابتدا، مسئله در مبنای ۱۰ آسان تر قابل درک است. به کسر 1/3 توجه کنید. می " +"توانید آن را به صورت یک کسر در مبنای ۱۰ تقریب بزنید:" #: ../../tutorial/floatingpoint.rst:31 +#, fuzzy msgid "0.3" -msgstr "" +msgstr "۰٫۳" #: ../../tutorial/floatingpoint.rst:33 ../../tutorial/floatingpoint.rst:37 +#, fuzzy msgid "or, better, ::" -msgstr "" +msgstr "یا، بهتر، ::" #: ../../tutorial/floatingpoint.rst:35 +#, fuzzy msgid "0.33" -msgstr "" +msgstr "۰٫۳۳" #: ../../tutorial/floatingpoint.rst:39 +#, fuzzy msgid "0.333" -msgstr "" +msgstr "۰٫۳۳۳" #: ../../tutorial/floatingpoint.rst:41 +#, fuzzy msgid "" "and so on. No matter how many digits you're willing to write down, the " "result will never be exactly 1/3, but will be an increasingly better " "approximation of 1/3." msgstr "" +"و به همین ترتیب. فرقی نمی کند که چقدر رقم بنویسید، نتیجه هرگز دقیقاً 1/3 " +"نخواهد بود، اما یک تقریب به طور فزاینده بهتر از 1/3 خواهد بود." #: ../../tutorial/floatingpoint.rst:45 +#, fuzzy msgid "" -"In the same way, no matter how many base 2 digits you're willing to use, the " -"decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " +"In the same way, no matter how many base 2 digits you're willing to use, the" +" decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " "base 2, 1/10 is the infinitely repeating fraction ::" msgstr "" +"به همین ترتیب، فرقی نمی کند چه تعداد رقم در مبنای ۲ بخواهید استفاده کنید، " +"مقدار اعشاری ۰.۱ نمی تواند به طور دقیق به عنوان یک کسر در مبنای ۲ نمایش داده" +" شود. در مبنای ۲، ۱/۱۰ یک کسر بی نهایت تکرارشونده است ::" #: ../../tutorial/floatingpoint.rst:49 +#, fuzzy msgid "0.0001100110011001100110011001100110011001100110011..." msgstr "" +"متن ارائه شده فقط شامل اعداد است و متنی برای ترجمه وجود ندارد. اگر توضیحات " +"بیشتری یا متن دیگری دارید که نیاز به ترجمه دارد، لطفاً آن را ارائه دهید." #: ../../tutorial/floatingpoint.rst:51 +#, fuzzy msgid "" "Stop at any finite number of bits, and you get an approximation. On most " "machines today, floats are approximated using a binary fraction with the " -"numerator using the first 53 bits starting with the most significant bit and " -"with the denominator as a power of two. In the case of 1/10, the binary " -"fraction is ``3602879701896397 / 2 ** 55`` which is close to but not exactly " -"equal to the true value of 1/10." -msgstr "" +"numerator using the first 53 bits starting with the most significant bit and" +" with the denominator as a power of two. In the case of 1/10, the binary " +"fraction is ``3602879701896397 / 2 ** 55`` which is close to but not exactly" +" equal to the true value of 1/10." +msgstr "" +"در هر تعداد محدودی از بیت ها متوقف شوید و یک تقریب به دست می آورید. در بیشتر" +" ماشین های امروزی، اعداد اعشاری به وسیله یک کسر دودویی تقریبی می شوند که " +"صورت آن با استفاده از ۵۳ بیت اول شروع از بیت با بیشترین اهمیت (بیت چپ ترین) " +"و مخرج آن به صورت توانی از دو است. در مورد 1/10، کسر دودویی " +"``3602879701896397 / 2 ** 55`` است که به مقدار واقعی 1/10 نزدیک است اما " +"دقیقاً برابر نیست." #: ../../tutorial/floatingpoint.rst:58 +#, fuzzy msgid "" "Many users are not aware of the approximation because of the way values are " "displayed. Python only prints a decimal approximation to the true decimal " @@ -102,32 +138,53 @@ msgid "" "if Python were to print the true decimal value of the binary approximation " "stored for 0.1, it would have to display::" msgstr "" +"بسیاری از کاربران به دلیل نحوه نمایش مقادیر، از تقریب مقادیر آگاه نیستند. " +"پایتون تنها یک تقریب اعشاری از مقدار واقعی اعشاری تقریب باینری ذخیره شده " +"توسط ماشین را چاپ می کند. در اکثر ماشین ها، اگر پایتون قرار بود مقدار واقعی " +"اعشاری تقریب باینری ذخیره شده برای 0.1 را چاپ کند، باید نمایش می داد::" #: ../../tutorial/floatingpoint.rst:64 +#, fuzzy msgid "" ">>> 0.1\n" "0.1000000000000000055511151231257827021181583404541015625" msgstr "" +"```\n" +">>> 0.1\n" +"0.1000000000000000055511151231257827021181583404541015625\n" +"```" #: ../../tutorial/floatingpoint.rst:67 +#, fuzzy msgid "" -"That is more digits than most people find useful, so Python keeps the number " -"of digits manageable by displaying a rounded value instead:" +"That is more digits than most people find useful, so Python keeps the number" +" of digits manageable by displaying a rounded value instead:" msgstr "" +"این تعداد رقم بیشتر از چیزی است که اکثر افراد مفید می یابند، بنابراین پایتون" +" تعداد ارقام را با نمایش یک مقدار گرد شده مدیریت می کند:" #: ../../tutorial/floatingpoint.rst:70 +#, fuzzy msgid "" ">>> 1 / 10\n" "0.1" msgstr "" +"```python\n" +">>> 1 / 10\n" +"0.1\n" +"```" #: ../../tutorial/floatingpoint.rst:75 +#, fuzzy msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." msgstr "" +"فقط به خاطر داشته باشید که حتی اگر نتیجه چاپ شده به نظر مانند مقدار دقیق " +"1/10 برسد، مقدار واقعی ذخیره شده نزدیک ترین کسر دودویی قابل نمایش است." #: ../../tutorial/floatingpoint.rst:78 +#, fuzzy msgid "" "Interestingly, there are many different decimal numbers that share the same " "nearest approximate binary fraction. For example, the numbers ``0.1`` and " @@ -137,31 +194,53 @@ msgid "" "values share the same approximation, any one of them could be displayed " "while still preserving the invariant ``eval(repr(x)) == x``." msgstr "" +"جالب است که بسیاری از اعداد اعشاری مختلف وجود دارند که عدد کسری باینری " +"نزدیکی مشابهی با یکدیگر دارند. برای مثال، اعداد ``0.1`` و " +"``0.10000000000000001`` و " +"``0.1000000000000000055511151231257827021181583404541015625`` همگی با " +"``3602879701896397 / 2 ** 55`` تخمین زده می شوند. از آنجایی که همه این " +"مقادیر اعشاری همان تخمین را به اشتراک می گذارند، هر یک از آنها می تواند " +"نمایش داده شود در حالی که هنوز ویژگی ثابت ``eval(repr(x)) == x`` حفظ می شود." #: ../../tutorial/floatingpoint.rst:86 +#, fuzzy msgid "" "Historically, the Python prompt and built-in :func:`repr` function would " "choose the one with 17 significant digits, ``0.10000000000000001``. " -"Starting with Python 3.1, Python (on most systems) is now able to choose the " -"shortest of these and simply display ``0.1``." +"Starting with Python 3.1, Python (on most systems) is now able to choose the" +" shortest of these and simply display ``0.1``." msgstr "" +"به طور تاریخی، اعلان Python و تابع داخلی :func:`repr` احتمالاً عددی را " +"انتخاب می کردند که دارای 17 رقم معنادار باشد، یعنی ``0.10000000000000001``. " +"از نسخه Python 3.1 به بعد، حالا Python (روی اکثر سیستم ها) می تواند کوتاه " +"ترین مقدار از بین این ها را انتخاب کند و به طور ساده ``0.1`` را نمایش دهد." #: ../../tutorial/floatingpoint.rst:91 +#, fuzzy msgid "" -"Note that this is in the very nature of binary floating point: this is not a " -"bug in Python, and it is not a bug in your code either. You'll see the same " -"kind of thing in all languages that support your hardware's floating-point " -"arithmetic (although some languages may not *display* the difference by " -"default, or in all output modes)." +"Note that this is in the very nature of binary floating point: this is not a" +" bug in Python, and it is not a bug in your code either. You'll see the " +"same kind of thing in all languages that support your hardware's floating-" +"point arithmetic (although some languages may not *display* the difference " +"by default, or in all output modes)." msgstr "" +"توجه داشته باشید که این مسئله از ذات اعداد اعشاری دودویی ناشی می شود: این یک" +" باگ در پایتون نیست و همچنین یک باگ در کد شما هم نیست. شما همین نوع مسائل را" +" در تمامی زبان هایی که از محاسبات اعشاری شناور سخت افزار شما پشتیبانی می " +"کنند مشاهده خواهید کرد (اگرچه برخی زبان ها ممکن است به طور پیش فرض یا در همه" +" حالت های خروجی تفاوت را نشان ندهند)." #: ../../tutorial/floatingpoint.rst:97 +#, fuzzy msgid "" -"For more pleasant output, you may wish to use string formatting to produce a " -"limited number of significant digits:" +"For more pleasant output, you may wish to use string formatting to produce a" +" limited number of significant digits:" msgstr "" +"برای خروجی بهتر، ممکن است بخواهید از قالب بندی رشته ای استفاده کنید تا تعداد" +" محدودی از ارقام معنادار تولید کنید:" #: ../../tutorial/floatingpoint.rst:100 +#, fuzzy msgid "" ">>> format(math.pi, '.12g') # give 12 significant digits\n" "'3.14159265359'\n" @@ -172,75 +251,128 @@ msgid "" ">>> repr(math.pi)\n" "'3.141592653589793'" msgstr "" +"```python\n" +">>> format(math.pi, '.12g') # ارائه 12 رقم معنادار\n" +"'3.14159265359'\n" +"\n" +">>> format(math.pi, '.2f') # ارائه 2 رقم بعد از نقطه\n" +"'3.14'\n" +"\n" +">>> repr(math.pi)\n" +"'3.141592653589793'\n" +"```" #: ../../tutorial/floatingpoint.rst:111 +#, fuzzy msgid "" -"It's important to realize that this is, in a real sense, an illusion: you're " -"simply rounding the *display* of the true machine value." +"It's important to realize that this is, in a real sense, an illusion: you're" +" simply rounding the *display* of the true machine value." msgstr "" +"مهم است که بدانید این در واقعیت یک توهم است: شما به سادگی در حال گرد کردن " +"*display* از مقدار واقعی ماشین هستید." #: ../../tutorial/floatingpoint.rst:114 +#, fuzzy msgid "" -"One illusion may beget another. For example, since 0.1 is not exactly 1/10, " -"summing three values of 0.1 may not yield exactly 0.3, either:" +"One illusion may beget another. For example, since 0.1 is not exactly 1/10," +" summing three values of 0.1 may not yield exactly 0.3, either:" msgstr "" +"یک توهم ممکن است توهم دیگری را به وجود آورد. برای مثال، از آنجا که 0.1 " +"دقیقاً برابر 1/10 نیست، جمع سه مقدار 0.1 ممکن است به طور دقیق برابر با 0.3 " +"نباشد:" #: ../../tutorial/floatingpoint.rst:117 +#, fuzzy msgid "" ">>> 0.1 + 0.1 + 0.1 == 0.3\n" "False" msgstr "" +"```>>> 0.1 + 0.1 + 0.1 == 0.3\n" +"False```" #: ../../tutorial/floatingpoint.rst:122 +#, fuzzy msgid "" -"Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3 " -"cannot get any closer to the exact value of 3/10, then pre-rounding with :" -"func:`round` function cannot help:" +"Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3" +" cannot get any closer to the exact value of 3/10, then pre-rounding with " +":func:`round` function cannot help:" msgstr "" +"از آنجا که عدد 0.1 نمی تواند به مقدار دقیق 1/10 نزدیک تر شود و عدد 0.3 نیز " +"نمی تواند به مقدار دقیق 3/10 نزدیک تر شود، تولید اعشاری توسط تابع " +"\"`:func:`round``\" نمی تواند کمکی کند:" #: ../../tutorial/floatingpoint.rst:126 +#, fuzzy msgid "" ">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" "False" msgstr "" +"```python\n" +">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" +"False\n" +"```" #: ../../tutorial/floatingpoint.rst:131 +#, fuzzy msgid "" -"Though the numbers cannot be made closer to their intended exact values, " -"the :func:`math.isclose` function can be useful for comparing inexact values:" +"Though the numbers cannot be made closer to their intended exact values, the" +" :func:`math.isclose` function can be useful for comparing inexact values:" msgstr "" +"اگرچه نمی توان مقادیر عددی را به مقادیر دقیق مورد نظرشان نزدیک تر کرد، تابع " +":func:`math.isclose` می تواند برای مقایسه مقادیر غیر دقیق مفید باشد:" #: ../../tutorial/floatingpoint.rst:134 +#, fuzzy msgid "" ">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" "True" msgstr "" +"```>>> math.isclose(0.1 + 0.1 + 0.1, 0.3)``` \n" +"درست" #: ../../tutorial/floatingpoint.rst:139 +#, fuzzy msgid "" "Alternatively, the :func:`round` function can be used to compare rough " "approximations:" msgstr "" +"به طور متناوب، می توان از تابع :func:`round` برای مقایسه تقریب های تقریبی " +"استفاده کرد:" #: ../../tutorial/floatingpoint.rst:142 +#, fuzzy msgid "" ">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" "True" msgstr "" +"```python\n" +">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" +"درست\n" +"```" #: ../../tutorial/floatingpoint.rst:147 +#, fuzzy msgid "" "Binary floating-point arithmetic holds many surprises like this. The " "problem with \"0.1\" is explained in precise detail below, in the " "\"Representation Error\" section. See `Examples of Floating Point Problems " -"`_ for " -"a pleasant summary of how binary floating point works and the kinds of " -"problems commonly encountered in practice. Also see `The Perils of Floating " -"Point `_ for a more complete " +"`_ for" +" a pleasant summary of how binary floating point works and the kinds of " +"problems commonly encountered in practice. Also see `The Perils of Floating" +" Point `_ for a more complete " "account of other common surprises." msgstr "" +"محاسبات ممیز شناور دودویی می تواند شگفتی های زیادی مانند این داشته باشد. " +"مشکل \"0.1\" به طور دقیق در بخش \"خطای نمایش\" توضیح داده شده است. برای " +"خلاصه ای دلپذیر از نحوه کارکرد ممیز شناور دودویی و مشکلاتی که به طور مکرر در" +" عمل با آنها مواجه می شویم، به `Examples of Floating Point Problems " +"`_ " +"مراجعه کنید. همچنین برای شرح کامل تری از دیگر شگفتی های رایج به `The Perils " +"of Floating Point `_ مراجعه " +"کنید." #: ../../tutorial/floatingpoint.rst:156 +#, fuzzy msgid "" "As that says near the end, \"there are no easy answers.\" Still, don't be " "unduly wary of floating point! The errors in Python float operations are " @@ -250,97 +382,156 @@ msgid "" "decimal arithmetic and that every float operation can suffer a new rounding " "error." msgstr "" +"همان طور که در انتها گفته شد، \"جواب های ساده ای وجود ندارد.\" با این حال، " +"بیش از حد از نقطه شناور نگران نباشید! خطاها در عملیات نقطه شناور در پایتون " +"از سخت افزار نقطه شناور به ارث برده شده اند و در بیشتر ماشین ها در حدی هستند" +" که در هر عملیات بیش از 1 قسمت در 2\\*\\*53 نمی باشند. این برای اکثر وظایف " +"کافی است، اما باید به خاطر داشته باشید که این حساب دهدهی نیست و هر عملیات با" +" نقطه شناور می تواند دچار یک خطای گرد کردن جدید گردد." #: ../../tutorial/floatingpoint.rst:163 +#, fuzzy msgid "" "While pathological cases do exist, for most casual use of floating-point " "arithmetic you'll see the result you expect in the end if you simply round " "the display of your final results to the number of decimal digits you " -"expect. :func:`str` usually suffices, and for finer control see the :meth:" -"`str.format` method's format specifiers in :ref:`formatstrings`." +"expect. :func:`str` usually suffices, and for finer control see the " +":meth:`str.format` method's format specifiers in :ref:`formatstrings`." msgstr "" +"هرچند موارد خاص وجود دارند، اما در بیشتر استفاده های معمول از حساب های ممیز " +"شناور، در نهایت نتیجه ای را که انتظار دارید مشاهده خواهید کرد اگر نمایش " +"نتایج نهایی خود را به تعداد ارقام اعشاری مورد نظر خود گرد کنید. " +"\":func:`str`\" معمولاً کافی است و برای کنترل دقیق تر، به مشخص کننده های " +"قالب متد \":meth:`str.format`\" در \":ref:`formatstrings`\" مراجعه کنید." #: ../../tutorial/floatingpoint.rst:169 +#, fuzzy msgid "" -"For use cases which require exact decimal representation, try using the :mod:" -"`decimal` module which implements decimal arithmetic suitable for accounting " -"applications and high-precision applications." +"For use cases which require exact decimal representation, try using the " +":mod:`decimal` module which implements decimal arithmetic suitable for " +"accounting applications and high-precision applications." msgstr "" +"برای موارد استفاده ای که به نمایش اعشاری دقیق نیاز دارند، سعی کنید از ماژول " +"`:mod:`decimal`` استفاده کنید که حساب اعشاری مناسب برای برنامه های حسابداری " +"و برنامه های با دقت بالا را پیاده سازی می کند." #: ../../tutorial/floatingpoint.rst:173 +#, fuzzy msgid "" -"Another form of exact arithmetic is supported by the :mod:`fractions` module " -"which implements arithmetic based on rational numbers (so the numbers like " +"Another form of exact arithmetic is supported by the :mod:`fractions` module" +" which implements arithmetic based on rational numbers (so the numbers like " "1/3 can be represented exactly)." msgstr "" +"نوع دیگری از حساب دقیق توسط ماژول :mod:`fractions` پشتیبانی می شود که حسابی " +"مبتنی بر اعداد گویا را پیاده سازی می کند (به طوری که می توان اعدادی مانند " +"1/3 را به طور دقیق نمایش داد)." #: ../../tutorial/floatingpoint.rst:177 +#, fuzzy msgid "" "If you are a heavy user of floating-point operations you should take a look " "at the NumPy package and many other packages for mathematical and " -"statistical operations supplied by the SciPy project. See ." +"statistical operations supplied by the SciPy project. See " +"." msgstr "" +"اگر زیاد از عملیات اعشاری استفاده می کنید، باید نگاهی به پکیج NumPy و بسیاری" +" دیگر از پکیج های موجود برای عملیات ریاضی و آماری که توسط پروژه SciPy ارائه " +"می شوند، بیندازید. به مراجعه کنید." #: ../../tutorial/floatingpoint.rst:181 +#, fuzzy msgid "" "Python provides tools that may help on those rare occasions when you really " -"*do* want to know the exact value of a float. The :meth:`float." -"as_integer_ratio` method expresses the value of a float as a fraction:" +"*do* want to know the exact value of a float. The " +":meth:`float.as_integer_ratio` method expresses the value of a float as a " +"fraction:" msgstr "" +"پایتون ابزارهایی فراهم می کند که ممکن است در مواقع نادری که واقعاً می خواهید" +" مقدار دقیق یک \"float\" را بدانید، به شما کمک کنند. روش " +"\":meth:`float.as_integer_ratio`\" مقدار یک \"float\" را به عنوان یک کسر " +"بیان می کند:" #: ../../tutorial/floatingpoint.rst:186 +#, fuzzy msgid "" ">>> x = 3.14159\n" ">>> x.as_integer_ratio()\n" "(3537115888337719, 1125899906842624)" msgstr "" +"```>>> x = 3.14159\n" +">>> x.as_integer_ratio()\n" +"(3537115888337719, 1125899906842624)```" #: ../../tutorial/floatingpoint.rst:192 +#, fuzzy msgid "" -"Since the ratio is exact, it can be used to losslessly recreate the original " -"value:" +"Since the ratio is exact, it can be used to losslessly recreate the original" +" value:" msgstr "" +"از آنجایی که نسبت به طور دقیق است، می توان از آن برای بازسازی بدون از دست " +"دادن مقدار اصلی استفاده کرد:" #: ../../tutorial/floatingpoint.rst:195 +#, fuzzy msgid "" ">>> x == 3537115888337719 / 1125899906842624\n" "True" msgstr "" +"``` python\n" +">>> x == 3537115888337719 / 1125899906842624\n" +"درست\n" +"```" #: ../../tutorial/floatingpoint.rst:200 +#, fuzzy msgid "" "The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " "again giving the exact value stored by your computer:" msgstr "" +"روش :meth:`float.hex` یک عدد اعشاری را به صورت هگزادسیمال (پایه ۱۶) نمایش می" +" دهد و مقدار دقیقی که توسط رایانه شما ذخیره شده است را ارائه می کند:" #: ../../tutorial/floatingpoint.rst:203 +#, fuzzy msgid "" ">>> x.hex()\n" "'0x1.921f9f01b866ep+1'" msgstr "" +"```>>> x.hex()\n" +"'0x1.921f9f01b866ep+1'```" #: ../../tutorial/floatingpoint.rst:208 +#, fuzzy msgid "" -"This precise hexadecimal representation can be used to reconstruct the float " -"value exactly:" +"This precise hexadecimal representation can be used to reconstruct the float" +" value exactly:" msgstr "" +"این نمایش دقیق شانزده شانزدهی می تواند برای بازسازی دقیق مقدار «float» " +"استفاده شود:" #: ../../tutorial/floatingpoint.rst:211 +#, fuzzy msgid "" ">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" "True" msgstr "" +">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" +"درست" #: ../../tutorial/floatingpoint.rst:216 +#, fuzzy msgid "" "Since the representation is exact, it is useful for reliably porting values " "across different versions of Python (platform independence) and exchanging " "data with other languages that support the same format (such as Java and " "C99)." msgstr "" +"از آنجایی که نمایش دقیق است، این امر برای انتقال مطمئن مقادیر بین نسخه های " +"مختلف پایتون (استقلال از پلتفرم) و تبادل داده با زبان های دیگر که از همان " +"قالب پشتیبانی می کنند (مانند Java و C99) مفید است." #: ../../tutorial/floatingpoint.rst:220 +#, fuzzy msgid "" "Another helpful tool is the :func:`sum` function which helps mitigate loss-" "of-precision during summation. It uses extended precision for intermediate " @@ -348,16 +539,29 @@ msgid "" "difference in overall accuracy so that the errors do not accumulate to the " "point where they affect the final total:" msgstr "" +"ابزار مفید دیگر، تابع :func:`sum` است که به کاهش خطای از دست رفتن دقت در طی " +"جمع کمک می کند. این تابع از دقت بالاتر برای مراحل میانگین گیری هنگام اضافه " +"شدن مقادیر به مجموع در حال اجرا استفاده می کند. این موضوع می تواند تفاوت " +"قابل توجهی در دقت کلی ایجاد کند تا خطاها به حدی نرسند که بر مجموع نهایی " +"تأثیر بگذارند:" #: ../../tutorial/floatingpoint.rst:226 +#, fuzzy msgid "" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" "False\n" ">>> sum([0.1] * 10) == 1.0\n" "True" msgstr "" +"```python \n" +">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0 \n" +"نادرست \n" +">>> sum([0.1] * 10) == 1.0 \n" +"درست \n" +"```" #: ../../tutorial/floatingpoint.rst:233 +#, fuzzy msgid "" "The :func:`math.fsum` goes further and tracks all of the \"lost digits\" as " "values are added onto a running total so that the result has only a single " @@ -365,8 +569,14 @@ msgid "" "uncommon cases where large magnitude inputs mostly cancel each other out " "leaving a final sum near zero:" msgstr "" +"نسخه :func:`math.fsum` فراتر می رود و تمام \"ارقام از دست رفته\" را در حالی " +"که مقادیر به مجموع افزوده می شوند دنبال می کند تا نتیجه فقط یک بار گرد شود. " +"این روش نسبت به :func:`sum` کندتر است اما در موارد غیرمعمولی که ورودی های با" +" مقدار بزرگ عمدتاً یکدیگر را خنثی می کنند و یک جمع نهایی نزدیک به صفر باقی " +"می گذارند، دقیق تر خواهد بود." #: ../../tutorial/floatingpoint.rst:239 +#, fuzzy msgid "" ">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" "... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" @@ -374,31 +584,50 @@ msgid "" "8.042173697819788e-13\n" ">>> math.fsum(arr) # Single rounding\n" "8.042173697819788e-13\n" -">>> sum(arr) # Multiple roundings in extended " -"precision\n" +">>> sum(arr) # Multiple roundings in extended precision\n" "8.042178034628478e-13\n" ">>> total = 0.0\n" ">>> for x in arr:\n" -"... total += x # Multiple roundings in standard " -"precision\n" +"... total += x # Multiple roundings in standard precision\n" "...\n" -">>> total # Straight addition has no correct " -"digits!\n" +">>> total # Straight addition has no correct digits!\n" "-0.0051575902860057365" msgstr "" +"```python\n" +">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" +"... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" +">>> float(sum(map(Fraction, arr))) # جمع دقیق با یک بار گرد کردن\n" +"8.042173697819788e-13\n" +">>> math.fsum(arr) # یک بار گرد کردن\n" +"8.042173697819788e-13\n" +">>> sum(arr) # گرد کردن های متعدد با دقت گسترش یافته\n" +"8.042178034628478e-13\n" +">>> total = 0.0\n" +">>> for x in arr:\n" +"... total += x # گرد کردن های متعدد با دقت استاندارد\n" +"...\n" +">>> total # جمع معمولی هیچ رقم صحیحی ندارد!\n" +"-0.0051575902860057365\n" +"```" #: ../../tutorial/floatingpoint.rst:260 +#, fuzzy msgid "Representation Error" -msgstr "" +msgstr "خطای نمایش" #: ../../tutorial/floatingpoint.rst:262 +#, fuzzy msgid "" "This section explains the \"0.1\" example in detail, and shows how you can " "perform an exact analysis of cases like this yourself. Basic familiarity " "with binary floating-point representation is assumed." msgstr "" +"این بخش مثال \"0.1\" را به طور دقیق توضیح می دهد و نشان می دهد که چگونه می " +"توانید تجزیه و تحلیل دقیقی از مواردی مانند این را خودتان انجام دهید. آشنایی " +"اولیه با نمایش اعداد اعشاری در مبنای دودویی فرض شده است." #: ../../tutorial/floatingpoint.rst:266 +#, fuzzy msgid "" ":dfn:`Representation error` refers to the fact that some (most, actually) " "decimal fractions cannot be represented exactly as binary (base 2) " @@ -406,137 +635,205 @@ msgid "" "Fortran, and many others) often won't display the exact decimal number you " "expect." msgstr "" +":dfn:`خطای نمایش` به این واقعیت اشاره دارد که برخی (در واقع بیشتر) کسرهای " +"اعشاری نمی توانند به طور دقیق به صورت کسرهای دودویی (مبتنی بر ۲) نمایش داده " +"شوند. این مهم ترین دلیلی است که چرا پایتون (یا پرل، C، C++، جاوا، فورترن و " +"بسیاری زبان های دیگر) اغلب عدد اعشاری دقیقی که انتظار دارید را نمایش نمی " +"دهد." #: ../../tutorial/floatingpoint.rst:271 +#, fuzzy msgid "" -"Why is that? 1/10 is not exactly representable as a binary fraction. Since " -"at least 2000, almost all machines use IEEE 754 binary floating-point " +"Why is that? 1/10 is not exactly representable as a binary fraction. Since" +" at least 2000, almost all machines use IEEE 754 binary floating-point " "arithmetic, and almost all platforms map Python floats to IEEE 754 binary64 " "\"double precision\" values. IEEE 754 binary64 values contain 53 bits of " "precision, so on input the computer strives to convert 0.1 to the closest " -"fraction it can of the form *J*/2**\\ *N* where *J* is an integer containing " -"exactly 53 bits. Rewriting ::" +"fraction it can of the form *J*/2**\\ *N* where *J* is an integer containing" +" exactly 53 bits. Rewriting ::" msgstr "" +"چرا اینطور است؟ 1/10 به طور دقیق به صورت یک کسر باینری قابل نمایش نیست. از " +"حداقل سال 2000، تقریباً تمام ماشین ها از حساب اعشاری شناوری باینری IEEE 754 " +"استفاده می کنند و تقریباً تمام پلتفرم ها اعداد اعشاری شناور پایتون را به " +"مقادیر \"دقت دوگانه\" باینری64 IEEE 754 نگاشت می کنند. مقادیر باینری64 IEEE " +"754 شامل 53 بیت دقت هستند، بنابراین در ورودی، کامپیوتر تلاش می کند 0.1 را به" +" نزدیک ترین کسری که می تواند تبدیل کند، تبدیل کند به فرم *J*/2**\\ *N* where" +" *J* که یک عدد صحیح است که دقیقاً 53 بیت دارد. بازنویسی ::" #: ../../tutorial/floatingpoint.rst:280 +#, fuzzy msgid "1 / 10 ~= J / (2**N)" -msgstr "" +msgstr "۱ / ۱۰ تقریباً برابر است با J / (۲**N)" #: ../../tutorial/floatingpoint.rst:282 +#, fuzzy msgid "as ::" -msgstr "" +msgstr "به عنوان ::" #: ../../tutorial/floatingpoint.rst:284 +#, fuzzy msgid "J ~= 2**N / 10" -msgstr "" +msgstr "J تقریباً برابر است با 2**N تقسیم بر 10" #: ../../tutorial/floatingpoint.rst:286 +#, fuzzy msgid "" "and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " "2**53``), the best value for *N* is 56:" msgstr "" +"و به یاد داشته باشید که *J* دقیقاً ۵۳ بیت دارد (همان ``>= 2**52`` اما ``< " +"2**53`` می باشد)، بهترین مقدار برای *N* برابر با ۵۶ است:" #: ../../tutorial/floatingpoint.rst:289 +#, fuzzy msgid "" ">>> 2**52 <= 2**56 // 10 < 2**53\n" "True" -msgstr "" +msgstr "راست می باشد" #: ../../tutorial/floatingpoint.rst:294 +#, fuzzy msgid "" -"That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits. " -"The best possible value for *J* is then that quotient rounded:" +"That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits." +" The best possible value for *J* is then that quotient rounded:" msgstr "" +"یعنی ۵۶ تنها مقداری است برای *N* که *J* را دقیقاً با ۵۳ بیت باقی می گذارد. " +"بهترین مقدار ممکن برای *J*، سپس آن خارج قسمت گرد شده است:" #: ../../tutorial/floatingpoint.rst:297 +#, fuzzy msgid "" ">>> q, r = divmod(2**56, 10)\n" ">>> r\n" "6" msgstr "" +"```python\n" +">>> q, r = divmod(2**56, 10)\n" +">>> r\n" +"6\n" +"```" #: ../../tutorial/floatingpoint.rst:303 +#, fuzzy msgid "" "Since the remainder is more than half of 10, the best approximation is " "obtained by rounding up:" msgstr "" +"از آنجا که باقیمانده بیشتر از نصف 10 است، بهترین تقریب با گرد کردن به بالا " +"به دست می آید:" #: ../../tutorial/floatingpoint.rst:306 +#, fuzzy msgid "" ">>> q+1\n" "7205759403792794" -msgstr "" +msgstr "۷۲۰۵۷۵۹۴۰۳۷۹۲۷۹۴" #: ../../tutorial/floatingpoint.rst:313 +#, fuzzy msgid "" "Therefore the best possible approximation to 1/10 in IEEE 754 double " "precision is::" msgstr "" +"بنابراین بهترین تقریب ممکن برای 1/10 در دقت مضاعف IEEE 754 به صورت زیر است::" #: ../../tutorial/floatingpoint.rst:316 +#, fuzzy msgid "7205759403792794 / 2 ** 56" -msgstr "" +msgstr "۷۲۰۵۷۵۹۴۰۳۷۹۲۷۹۴ / ۲ ** ۵۶" #: ../../tutorial/floatingpoint.rst:318 +#, fuzzy msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" -msgstr "" +msgstr "با تقسیم کردن صورت و مخرج بر دو، کسر به شکل زیر ساده می شود::" #: ../../tutorial/floatingpoint.rst:320 +#, fuzzy msgid "3602879701896397 / 2 ** 55" -msgstr "" +msgstr "۳۶۰۲۸۷۹۷۰۱۸۹۶۳۹۷ / ۲ ** ۵۵" #: ../../tutorial/floatingpoint.rst:322 +#, fuzzy msgid "" "Note that since we rounded up, this is actually a little bit larger than " "1/10; if we had not rounded up, the quotient would have been a little bit " "smaller than 1/10. But in no case can it be *exactly* 1/10!" msgstr "" +"توجه داشته باشید که چون رو به بالا گرد کردیم، این در واقع کمی بزرگ تر از " +"1/10 است؛ اگر رو به بالا گرد نمی کردیم، خارج قسمت کمی کوچک تر از 1/10 می شد." +" اما در هیچ حالتی نمی تواند *exactly* 1/10 باشد!" #: ../../tutorial/floatingpoint.rst:326 +#, fuzzy msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best IEEE 754 double approximation it can get:" msgstr "" +"بنابراین کامپیوتر هرگز 1/10 را \"نمی بیند\": آنچه می بیند دقیقاً همان کسری " +"است که در بالا داده شده، بهترین تقریب مضاعف IEEE 754 که می تواند بدست آورد:" #: ../../tutorial/floatingpoint.rst:329 +#, fuzzy msgid "" ">>> 0.1 * 2 ** 55\n" "3602879701896397.0" msgstr "" +">>> 0.1 * 55\n" +"3602879701896397.0" #: ../../tutorial/floatingpoint.rst:334 +#, fuzzy msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits:" msgstr "" +"اگر آن کسر را در 10\\*\\*55 ضرب کنیم، می توانیم مقدار آن را تا ۵۵ رقم اعشار " +"ببینیم:" #: ../../tutorial/floatingpoint.rst:337 +#, fuzzy msgid "" ">>> 3602879701896397 * 10 ** 55 // 2 ** 55\n" "1000000000000000055511151231257827021181583404541015625" msgstr "" +">>> 3602879701896397 * 10 ** 55 // 2 ** 55\n" +"1000000000000000055511151231257827021181583404541015625" #: ../../tutorial/floatingpoint.rst:342 +#, fuzzy msgid "" -"meaning that the exact number stored in the computer is equal to the decimal " -"value 0.1000000000000000055511151231257827021181583404541015625. Instead of " -"displaying the full decimal value, many languages (including older versions " -"of Python), round the result to 17 significant digits:" +"meaning that the exact number stored in the computer is equal to the decimal" +" value 0.1000000000000000055511151231257827021181583404541015625. Instead of" +" displaying the full decimal value, many languages (including older versions" +" of Python), round the result to 17 significant digits:" msgstr "" +"به این معنا که عدد دقیق ذخیره شده در کامپیوتر برابر با مقدار اعشاری " +"0.1000000000000000055511151231257827021181583404541015625 است. به جای نمایش " +"مقدار کامل اعشاری، بسیاری از زبان ها (از جمله نسخه های قدیمی تر Python) " +"نتیجه را به 17 رقم معنی دار گرد می کنند:" #: ../../tutorial/floatingpoint.rst:347 +#, fuzzy msgid "" ">>> format(0.1, '.17f')\n" "'0.10000000000000001'" msgstr "" +"```python\n" +">>> format(0.1, '.17f')\n" +"'0.10000000000000001'\n" +"```" #: ../../tutorial/floatingpoint.rst:352 +#, fuzzy msgid "" -"The :mod:`fractions` and :mod:`decimal` modules make these calculations easy:" +"The :mod:`fractions` and :mod:`decimal` modules make these calculations " +"easy:" msgstr "" +"ماژول های :mod:`fractions` و :mod:`decimal` این محاسبات را آسان می کنند:" #: ../../tutorial/floatingpoint.rst:355 +#, fuzzy msgid "" ">>> from decimal import Decimal\n" ">>> from fractions import Fraction\n" @@ -553,3 +850,17 @@ msgid "" ">>> format(Decimal.from_float(0.1), '.17')\n" "'0.10000000000000001'" msgstr "" +">>> from decimal import Decimal \n" +">>> from fractions import Fraction \n" +"\n" +">>> Fraction.from_float(0.1) \n" +"Fraction(3602879701896397, 36028797018963968) \n" +"\n" +">>> (0.1).as_integer_ratio() \n" +"(3602879701896397, 36028797018963968) \n" +"\n" +">>> Decimal.from_float(0.1) \n" +"Decimal('0.1000000000000000055511151231257827021181583404541015625') \n" +"\n" +">>> format(Decimal.from_float(0.1), '.17') \n" +"'0.10000000000000001'" diff --git a/tutorial/index.po b/tutorial/index.po index 30e995ff0..55ddb0547 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -14,19 +14,20 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/index.rst:5 +#, fuzzy msgid "The Python Tutorial" -msgstr "" +msgstr "راهنمای پایتون" #: ../../tutorial/index.rst:7 +#, fuzzy msgid "" "Python is an easy to learn, powerful programming language. It has efficient " "high-level data structures and a simple but effective approach to object-" @@ -34,8 +35,14 @@ msgid "" "with its interpreted nature, make it an ideal language for scripting and " "rapid application development in many areas on most platforms." msgstr "" +"پایتون یک زبان برنامه نویسی قدرتمند و آسان برای یادگیری است. این زبان دارای " +"ساختارهای داده ای سطح بالا و کارآمد و همچنین رویکردی ساده اما مؤثر به برنامه" +" نویسی شیء گرا است. سینتکس زیبا و نوع دهی پویا در پایتون، به همراه طبیعت " +"تفسیری آن، این زبان را به گزینه ای ایده آل برای اسکریپت نویسی و توسعه سریع " +"برنامه ها در بسیاری از حوزه ها و بر روی اکثر پلتفرم ها تبدیل کرده است." #: ../../tutorial/index.rst:13 +#, fuzzy msgid "" "The Python interpreter and the extensive standard library are freely " "available in source or binary form for all major platforms from the Python " @@ -43,40 +50,68 @@ msgid "" "site also contains distributions of and pointers to many free third party " "Python modules, programs and tools, and additional documentation." msgstr "" +"مفسر پایتون و کتابخانه استاندارد گسترده آن به صورت رایگان در قالب های منبع " +"یا دودویی برای تمام پلتفرم های اصلی از وب سایت پایتون، " +"https://www.python.org/، در دسترس هستند و می توانند به صورت آزادانه توزیع " +"شوند. این سایت همچنین شامل توزیع ها و پیوندهایی به بسیاری از ماژول های " +"پایتون شخص ثالث رایگان، برنامه ها و ابزارها و مستندات اضافی است." #: ../../tutorial/index.rst:19 +#, fuzzy msgid "" "The Python interpreter is easily extended with new functions and data types " -"implemented in C or C++ (or other languages callable from C). Python is also " -"suitable as an extension language for customizable applications." +"implemented in C or C++ (or other languages callable from C). Python is also" +" suitable as an extension language for customizable applications." msgstr "" +"مفسر پایتون به راحتی با توابع و نوع داده های جدید که در C یا C++ (یا زبان " +"های دیگر قابل فراخوانی از C) پیاده سازی شده اند، قابل گسترش است. پایتون " +"همچنین به عنوان یک زبان الحاقی برای برنامه های قابل تنظیم مناسب است." #: ../../tutorial/index.rst:23 +#, fuzzy msgid "" "This tutorial introduces the reader informally to the basic concepts and " "features of the Python language and system. It helps to have a Python " "interpreter handy for hands-on experience, but all examples are self-" "contained, so the tutorial can be read off-line as well." msgstr "" +"این آموزش به طور غیررسمی خواننده را با مفاهیم و ویژگی های اساسی زبان و سیستم" +" Python آشنا می کند. بهتر است یک مفسر Python در دسترس باشد تا تجربه عملی به " +"دست آورید، اما تمام مثال ها به صورت خودکفا هستند، بنابراین آموزش را می توان " +"به صورت آفلاین نیز خواند." #: ../../tutorial/index.rst:28 +#, fuzzy msgid "" -"For a description of standard objects and modules, see :ref:`library-" -"index`. :ref:`reference-index` gives a more formal definition of the " -"language. To write extensions in C or C++, read :ref:`extending-index` and :" -"ref:`c-api-index`. There are also several books covering Python in depth." +"For a description of standard objects and modules, see :ref:`library-index`." +" :ref:`reference-index` gives a more formal definition of the language. To " +"write extensions in C or C++, read :ref:`extending-index` and :ref:`c-api-" +"index`. There are also several books covering Python in depth." msgstr "" +"برای توضیحات اشیاء و ماژول های استاندارد، به :ref:`library-index` مراجعه " +"کنید. :ref:`reference-index` تعریف رسمی تری از زبان ارائه می دهد. برای نوشتن" +" افزونه ها به زبان C یا C++، :ref:`extending-index` و :ref:`c-api-index` را " +"مطالعه کنید. همچنین چندین کتاب وجود دارد که به طور عمیق به زبان پایتون " +"پرداخته اند." #: ../../tutorial/index.rst:33 +#, fuzzy msgid "" "This tutorial does not attempt to be comprehensive and cover every single " -"feature, or even every commonly used feature. Instead, it introduces many of " -"Python's most noteworthy features, and will give you a good idea of the " +"feature, or even every commonly used feature. Instead, it introduces many of" +" Python's most noteworthy features, and will give you a good idea of the " "language's flavor and style. After reading it, you will be able to read and " -"write Python modules and programs, and you will be ready to learn more about " -"the various Python library modules described in :ref:`library-index`." +"write Python modules and programs, and you will be ready to learn more about" +" the various Python library modules described in :ref:`library-index`." msgstr "" +"این آموزش سعی ندارد که جامع باشد و هر ویژگی، یا حتی هر ویژگی پرکاربردی را " +"پوشش دهد. بلکه، بسیاری از ویژگی های برجسته پایتون را معرفی می کند و به شما " +"ایده ای خوب از سبک و طعم زبان پایتون می دهد. پس از خواندن آن، شما قادر " +"خواهید بود ماژول ها و برنامه های پایتون را بخوانید و بنویسید و آماده هستید " +"تا در مورد ماژول های کتابخانه مختلف پایتون که در :ref:`library-index` توضیح " +"داده شده اند، بیشتر یاد بگیرید." #: ../../tutorial/index.rst:40 +#, fuzzy msgid "The :ref:`glossary` is also worth going through." -msgstr "" +msgstr "عبور از :ref:`glossary` نیز ارزش خود را دارد." diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 501d89d3c..75189948c 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -14,71 +14,104 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/inputoutput.rst:5 +#, fuzzy msgid "Input and Output" -msgstr "" +msgstr "ورودی و خروجی" #: ../../tutorial/inputoutput.rst:7 +#, fuzzy msgid "" "There are several ways to present the output of a program; data can be " "printed in a human-readable form, or written to a file for future use. This " "chapter will discuss some of the possibilities." msgstr "" +"راه های مختلفی برای ارائه خروجی یک برنامه وجود دارد؛ داده ها می توانند به " +"شکلی قابل خواندن برای انسان چاپ شوند یا برای استفاده های آتی در یک فایل " +"نوشته شوند. این فصل برخی از این امکانات را بررسی خواهد کرد." #: ../../tutorial/inputoutput.rst:15 +#, fuzzy msgid "Fancier Output Formatting" -msgstr "" +msgstr "قالب بندی پیشرفته تر خروجی" #: ../../tutorial/inputoutput.rst:17 +#, fuzzy msgid "" -"So far we've encountered two ways of writing values: *expression statements* " -"and the :func:`print` function. (A third way is using the :meth:`~io." -"TextIOBase.write` method of file objects; the standard output file can be " -"referenced as ``sys.stdout``. See the Library Reference for more information " -"on this.)" +"So far we've encountered two ways of writing values: *expression statements*" +" and the :func:`print` function. (A third way is using the " +":meth:`~io.TextIOBase.write` method of file objects; the standard output " +"file can be referenced as ``sys.stdout``. See the Library Reference for more" +" information on this.)" msgstr "" +"تا کنون با دو روش برای نوشتن مقادیر روبرو شده ایم: *expression statements* و" +" تابع :func:`print`. (روش سوم استفاده از متد :meth:`~io.TextIOBase.write` " +"اشیاء فایل است؛ فایل خروجی استاندارد می تواند به صورت ``sys.stdout`` اشاره " +"شود. برای اطلاعات بیشتر به مرجع کتابخانه مراجعه کنید.)" #: ../../tutorial/inputoutput.rst:22 +#, fuzzy msgid "" "Often you'll want more control over the formatting of your output than " "simply printing space-separated values. There are several ways to format " "output." msgstr "" +"اغلباً شما نیاز دارید که کنترل بیشتری بر قالب بندی خروجی خود داشته باشید تا " +"اینکه صرفاً مقادیری که با فاصله جدا شده اند را چاپ کنید. روش های مختلفی برای" +" قالب بندی خروجی وجود دارد." #: ../../tutorial/inputoutput.rst:25 +#, fuzzy msgid "" -"To use :ref:`formatted string literals `, begin a string with " -"``f`` or ``F`` before the opening quotation mark or triple quotation mark. " -"Inside this string, you can write a Python expression between ``{`` and ``}" -"`` characters that can refer to variables or literal values." +"To use :ref:`formatted string literals `, begin a string with" +" ``f`` or ``F`` before the opening quotation mark or triple quotation mark. " +"Inside this string, you can write a Python expression between ``{`` and " +"``}`` characters that can refer to variables or literal values." msgstr "" +"برای استفاده از :ref:`formatted string literals `، یک رشته را" +" با ``f`` یا ``F`` قبل از علامت نقل قول باز یا علامت نقل قول سه گانه شروع " +"کنید. در داخل این رشته، می توانید یک عبارت پایتون را بین نویسه های ``{`` و " +"``}`` بنویسید که می تواند به متغیرها یا مقادیر عددی ارجاع دهد." #: ../../tutorial/inputoutput.rst:32 +#, fuzzy msgid "" ">>> year = 2016\n" ">>> event = 'Referendum'\n" ">>> f'Results of the {year} {event}'\n" "'Results of the 2016 Referendum'" msgstr "" +"```python\n" +">>> سال = ۲۰۱۶\n" +">>> رویداد = 'همه پرسی'\n" +">>> f'نتایج {سال} {رویداد}'\n" +"'نتایج ۲۰۱۶ همه پرسی'\n" +"```" #: ../../tutorial/inputoutput.rst:37 +#, fuzzy msgid "" "The :meth:`str.format` method of strings requires more manual effort. " "You'll still use ``{`` and ``}`` to mark where a variable will be " "substituted and can provide detailed formatting directives, but you'll also " -"need to provide the information to be formatted. In the following code block " -"there are two examples of how to format variables:" +"need to provide the information to be formatted. In the following code block" +" there are two examples of how to format variables:" msgstr "" +"روش :meth:`str.format` در رشته ها نیاز به تلاش دستی بیشتری دارد. شما همچنان " +"از ``{`` و ``}`` برای مشخص کردن جایی که یک متغیر قرار داده خواهد شد استفاده " +"کرده و می توانید دستورالعمل های قالب بندی دقیق ارائه دهید، اما همچنین نیاز " +"خواهید داشت اطلاعاتی که باید قالب بندی شود را ارائه دهید. در بلوک کد زیر دو " +"نمونه از چگونگی قالب بندی متغیرها آورده شده است:" #: ../../tutorial/inputoutput.rst:46 +#, fuzzy msgid "" ">>> yes_votes = 42_572_654\n" ">>> total_votes = 85_705_149\n" @@ -86,47 +119,79 @@ msgid "" ">>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage)\n" "' 42572654 YES votes 49.67%'" msgstr "" +"```python\n" +">>> yes_votes = 42_572_654\n" +">>> total_votes = 85_705_149\n" +">>> percentage = yes_votes / total_votes\n" +">>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage)\n" +"' 42572654 YES votes 49.67%'\n" +"```" #: ../../tutorial/inputoutput.rst:52 +#, fuzzy msgid "" -"Notice how the ``yes_votes`` are padded with spaces and a negative sign only " -"for negative numbers. The example also prints ``percentage`` multiplied by " -"100, with 2 decimal places and followed by a percent sign (see :ref:" -"`formatspec` for details)." +"Notice how the ``yes_votes`` are padded with spaces and a negative sign only" +" for negative numbers. The example also prints ``percentage`` multiplied by " +"100, with 2 decimal places and followed by a percent sign (see " +":ref:`formatspec` for details)." msgstr "" +"توجه کنید که ``yes_votes`` با فاصله ها و علامت منفی تنها برای اعداد منفی پر " +"شده اند. در این مثال همچنین ``percentage`` ضربدر 100 چاپ می شود که دارای 2 " +"مکان اعشار است و با علامت درصد دنبال می شود (برای جزئیات به " +":ref:`formatspec` مراجعه کنید)." #: ../../tutorial/inputoutput.rst:57 +#, fuzzy msgid "" -"Finally, you can do all the string handling yourself by using string slicing " -"and concatenation operations to create any layout you can imagine. The " +"Finally, you can do all the string handling yourself by using string slicing" +" and concatenation operations to create any layout you can imagine. The " "string type has some methods that perform useful operations for padding " "strings to a given column width." msgstr "" +"در نهایت، می توانید تمام عملیات مربوط به رشته را با استفاده از برش رشته و " +"عملیات الحاق انجام دهید تا هر نوع چیدمانی که تصور می کنید را ایجاد کنید. نوع" +" داده ی رشته دارای برخی متدها است که عملیات مفیدی برای پر کردن رشته ها به " +"عرض ستون مشخصی انجام می دهند." #: ../../tutorial/inputoutput.rst:62 +#, fuzzy msgid "" "When you don't need fancy output but just want a quick display of some " -"variables for debugging purposes, you can convert any value to a string with " -"the :func:`repr` or :func:`str` functions." +"variables for debugging purposes, you can convert any value to a string with" +" the :func:`repr` or :func:`str` functions." msgstr "" +"وقتی به خروجی پر زرق و برق نیاز ندارید و فقط می خواهید برای اهداف اشکال " +"زدایی به سرعت چند متغیر را نمایش دهید، می توانید با استفاده از توابع " +"`:func:`repr`` یا `:func:`str`` هر مقداری را به یک رشته تبدیل کنید." #: ../../tutorial/inputoutput.rst:66 +#, fuzzy msgid "" "The :func:`str` function is meant to return representations of values which " "are fairly human-readable, while :func:`repr` is meant to generate " -"representations which can be read by the interpreter (or will force a :exc:" -"`SyntaxError` if there is no equivalent syntax). For objects which don't " -"have a particular representation for human consumption, :func:`str` will " -"return the same value as :func:`repr`. Many values, such as numbers or " -"structures like lists and dictionaries, have the same representation using " +"representations which can be read by the interpreter (or will force a " +":exc:`SyntaxError` if there is no equivalent syntax). For objects which " +"don't have a particular representation for human consumption, :func:`str` " +"will return the same value as :func:`repr`. Many values, such as numbers or" +" structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" +"تابع :func:`str` به منظور ارائه نمایش ارزش هایی است که به سادگی قابل درک " +"برای انسان باشند، در حالی که :func:`repr` به منظور تولید نمایشی است که توسط" +" مفسر قابل خواندن باشد (یا در صورت نبود سینتکس معادل، یک :exc:`SyntaxError` " +"را ایجاد می کند). برای اشیایی که نمایش خاصی برای مصرف انسانی ندارند، " +":func:`str` همان مقداری را بازمی گرداند که :func:`repr` بازمی گرداند. بسیاری" +" از ارزش ها، مانند اعداد یا ساختارهایی مانند لیست ها و دیکشنری ها، با " +"استفاده از هر دو تابع دارای نمایش یکسانی هستند. رشته ها به ویژه دارای دو " +"نمایش متمایز هستند." #: ../../tutorial/inputoutput.rst:75 +#, fuzzy msgid "Some examples::" -msgstr "" +msgstr "نمونه هایی:" #: ../../tutorial/inputoutput.rst:77 +#, fuzzy msgid "" ">>> s = 'Hello, world.'\n" ">>> str(s)\n" @@ -149,48 +214,94 @@ msgid "" ">>> repr((x, y, ('spam', 'eggs')))\n" "\"(32.5, 40000, ('spam', 'eggs'))\"" msgstr "" +"```python\n" +">>> s = 'Hello, world.'\n" +">>> str(s)\n" +"'Hello, world.'\n" +">>> repr(s)\n" +"\"'Hello, world.'\"\n" +">>> str(1/7)\n" +"'0.14285714285714285'\n" +">>> x = 10\n" +">>> y = 200\n" +">>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'\n" +">>> print(s)\n" +"مقدار x برابر با 10، و y برابر با 200...\n" +">>> # خروجی تابع repr() برای یک رشته، علامت نقل قول و بک اسلش ها را اضافه می کند:\n" +">>> hello = 'hello, world\\n'\n" +">>> hellos = repr(hello)\n" +">>> print(hellos)\n" +"'hello, world\\n'\n" +">>> # آرگومان تابع repr() می تواند هر شیء پایتون باشد:\n" +">>> repr((x, y, ('spam', 'eggs')))\n" +"\"(10, 200, ('spam', 'eggs'))\"\n" +"```" #: ../../tutorial/inputoutput.rst:98 +#, fuzzy msgid "" "The :mod:`string` module contains a :class:`~string.Template` class that " -"offers yet another way to substitute values into strings, using placeholders " -"like ``$x`` and replacing them with values from a dictionary, but offers " +"offers yet another way to substitute values into strings, using placeholders" +" like ``$x`` and replacing them with values from a dictionary, but offers " "much less control of the formatting." msgstr "" +"ماژول :mod:`string` شامل کلاسی به نام :class:`~string.Template` است که روشی " +"دیگر برای جایگزینی مقادیر در رشته ها با استفاده از مکان نماهایی مانند ``$x``" +" و جایگزینی آن ها با مقادیر یک دیکشنری ارائه می دهد، اما کنترل کمتری بر قالب" +" بندی دارد." #: ../../tutorial/inputoutput.rst:114 +#, fuzzy msgid "Formatted String Literals" -msgstr "" +msgstr "رشته های قالب بندی شده" #: ../../tutorial/inputoutput.rst:116 +#, fuzzy msgid "" ":ref:`Formatted string literals ` (also called f-strings for " "short) let you include the value of Python expressions inside a string by " "prefixing the string with ``f`` or ``F`` and writing expressions as " "``{expression}``." msgstr "" +"رشته های :ref:`Formatted string literals ` (که به اختصار " +"f-strings نامیده می شوند) به شما اجازه می دهند تا مقادیر عبارات پایتون را " +"درون یک رشته شامل کنید، به این صورت که رشته را با ``f`` یا ``F`` شروع کرده و" +" عبارات را به صورت ``{expression}`` بنویسید." #: ../../tutorial/inputoutput.rst:121 +#, fuzzy msgid "" "An optional format specifier can follow the expression. This allows greater " "control over how the value is formatted. The following example rounds pi to " "three places after the decimal::" msgstr "" +"یک مشخص کننده قالب اختیاری می تواند به دنبال عبارت بیاید. این امکان کنترل " +"بیشتری بر نحوه قالب بندی مقدار را می دهد. مثال زیر عدد پی را تا سه رقم اعشار" +" گرد می کند:" #: ../../tutorial/inputoutput.rst:125 +#, fuzzy msgid "" ">>> import math\n" ">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" "The value of pi is approximately 3.142." msgstr "" +"```>> import math\n" +">>> print(f'مقدار پی تقریباً {math.pi:.3f} است.')\n" +"مقدار پی تقریباً 3.142 است.```" #: ../../tutorial/inputoutput.rst:129 +#, fuzzy msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" +"قرار دادن یک عدد صحیح بعد از \"``':'``\" باعث می شود که آن بخش حداقل به " +"اندازه ی تعداد مشخصی از کاراکترها پهن باشد. این ویژگی برای هم تراز کردن ستون" +" ها مفید است." #: ../../tutorial/inputoutput.rst:132 +#, fuzzy msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}\n" ">>> for name, phone in table.items():\n" @@ -200,15 +311,29 @@ msgid "" "Jack ==> 4098\n" "Dcab ==> 7678" msgstr "" +"```python\n" +">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}\n" +">>> for name, phone in table.items():\n" +"... print(f'{name:10} ==> {phone:10d}')\n" +"...\n" +"Sjoerd ==> 4127\n" +"Jack ==> 4098\n" +"Dcab ==> 7678\n" +"```" #: ../../tutorial/inputoutput.rst:140 +#, fuzzy msgid "" -"Other modifiers can be used to convert the value before it is formatted. ``'!" -"a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " +"Other modifiers can be used to convert the value before it is formatted. " +"``'!a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" +"سایر تغییر دهنده ها می توانند برای تبدیل مقدار قبل از قالب بندی استفاده " +"شوند. ``'!a'`` برای :func:`ascii` اعمال می شود، ``'!s'`` برای :func:`str` " +"اعمال می شود، و ``'!r'`` برای :func:`repr` اعمال می شود::" #: ../../tutorial/inputoutput.rst:144 +#, fuzzy msgid "" ">>> animals = 'eels'\n" ">>> print(f'My hovercraft is full of {animals}.')\n" @@ -216,126 +341,207 @@ msgid "" ">>> print(f'My hovercraft is full of {animals!r}.')\n" "My hovercraft is full of 'eels'." msgstr "" +">>> animals = 'eels'\n" +">>> print(f'هورکرافت من پر از {animals} است.')\n" +"هورکرافت من پر از eels است.\n" +">>> print(f'هورکرافت من پر از {animals!r} است.')\n" +"هورکرافت من پر از 'eels' است." #: ../../tutorial/inputoutput.rst:150 +#, fuzzy msgid "" "The ``=`` specifier can be used to expand an expression to the text of the " "expression, an equal sign, then the representation of the evaluated " "expression:" msgstr "" +"می توان از مشخص کنندهٔ ``=`` برای گسترش یک عبارت به متن اصلی آن عبارت، یک " +"علامت تساوی، و سپس نمایش بازنمایی شدهٔ مقدار ارزیابی شدهٔ عبارت استفاده کرد:" #: ../../tutorial/inputoutput.rst:159 +#, fuzzy msgid "" "See :ref:`self-documenting expressions ` for more " "information on the ``=`` specifier. For a reference on these format " "specifications, see the reference guide for the :ref:`formatspec`." msgstr "" +"برای اطلاعات بیشتر درباره مشخص کننده ``=`` به :ref:`self-documenting " +"expressions ` مراجعه کنید. برای راهنمایی درباره این " +"مشخصات فرمت، به راهنمای مرجع برای :ref:`formatspec` مراجعه کنید." #: ../../tutorial/inputoutput.rst:166 +#, fuzzy msgid "The String format() Method" -msgstr "" +msgstr "متد `format()` رشته" #: ../../tutorial/inputoutput.rst:168 +#, fuzzy msgid "Basic usage of the :meth:`str.format` method looks like this::" -msgstr "" +msgstr "استفاده پایه از متد :meth:`str.format` به این شکل است::" #: ../../tutorial/inputoutput.rst:170 +#, fuzzy msgid "" ">>> print('We are the {} who say \"{}!\"'.format('knights', 'Ni'))\n" "We are the knights who say \"Ni!\"" msgstr "" +"```>>> print('ما {} هستیم که می گویند \"{}!\"'.format('شوالیه ها', 'نی'))\n" +"ما شوالیه ها هستیم که می گویند \"نی!\"\n" +"```" #: ../../tutorial/inputoutput.rst:173 +#, fuzzy msgid "" "The brackets and characters within them (called format fields) are replaced " -"with the objects passed into the :meth:`str.format` method. A number in the " -"brackets can be used to refer to the position of the object passed into the :" -"meth:`str.format` method. ::" +"with the objects passed into the :meth:`str.format` method. A number in the" +" brackets can be used to refer to the position of the object passed into the" +" :meth:`str.format` method. ::" msgstr "" +"کاراکترها و کروشه های درون آن ها (که به عنوان فیلدهای قالب شناخته می شوند) " +"با اشیایی که به روش :meth:`str.format` ارسال می شوند، جایگزین می گردند. برای" +" اشاره به موقعیت شیء ارسال شده به روش :meth:`str.format` می توان از یک عدد " +"درون کروشه ها استفاده کرد." #: ../../tutorial/inputoutput.rst:178 +#, fuzzy msgid "" ">>> print('{0} and {1}'.format('spam', 'eggs'))\n" "spam and eggs\n" ">>> print('{1} and {0}'.format('spam', 'eggs'))\n" "eggs and spam" msgstr "" +"```python\n" +">>> print('{0} و {1}'.format('spam', 'eggs'))\n" +"spam و eggs\n" +">>> print('{1} و {0}'.format('spam', 'eggs'))\n" +"eggs و spam\n" +"```" #: ../../tutorial/inputoutput.rst:183 +#, fuzzy msgid "" -"If keyword arguments are used in the :meth:`str.format` method, their values " -"are referred to by using the name of the argument. ::" +"If keyword arguments are used in the :meth:`str.format` method, their values" +" are referred to by using the name of the argument. ::" msgstr "" +"اگر در متد :meth:`str.format` از آرگومان های کلیدی استفاده شود، مقادیر آن ها" +" با استفاده از نام آرگومان ارجاع داده می شوند. ::" #: ../../tutorial/inputoutput.rst:186 +#, fuzzy msgid "" ">>> print('This {food} is {adjective}.'.format(\n" "... food='spam', adjective='absolutely horrible'))\n" "This spam is absolutely horrible." msgstr "" +"```python\n" +">>> print('این {food} است {adjective}.'.format(\n" +"... food='spam', adjective='کاملاً وحشتناک'))\n" +"این spam است کاملاً وحشتناک.\n" +"```" #: ../../tutorial/inputoutput.rst:190 +#, fuzzy msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" +"آرگومان های موقعیتی و کلیدواژه ای می توانند به صورت دلخواه با هم ترکیب " +"شوند::" #: ../../tutorial/inputoutput.rst:192 +#, fuzzy msgid "" ">>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',\n" "... other='Georg'))\n" "The story of Bill, Manfred, and Georg." msgstr "" +"```python\n" +">>> print('داستان {0}، {1} و {other}.'.format('بیل', 'مانفرد', other='گئورگ'))\n" +"داستان بیل، مانفرد و گئورگ.\n" +"```" #: ../../tutorial/inputoutput.rst:196 +#, fuzzy msgid "" "If you have a really long format string that you don't want to split up, it " "would be nice if you could reference the variables to be formatted by name " "instead of by position. This can be done by simply passing the dict and " "using square brackets ``'[]'`` to access the keys. ::" msgstr "" +"اگر رشته فرمت بسیار طولانی دارید که نمی خواهید آن را تقسیم کنید، خوب است اگر" +" بتوانید به متغیرهایی که باید قالب بندی شوند به جای موقعیت، با نام اشاره " +"کنید. این کار می تواند با عبور دادن دیکشنری و استفاده از کروشه برای دسترسی " +"به کلیدها انجام شود." #: ../../tutorial/inputoutput.rst:201 +#, fuzzy msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '\n" "... 'Dcab: {0[Dcab]:d}'.format(table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" msgstr "" +"```plaintext\n" +">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" +">>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '\n" +"... 'Dcab: {0[Dcab]:d}'.format(table))\n" +"Jack: 4098; Sjoerd: 4127; Dcab: 8637678\n" +"```" #: ../../tutorial/inputoutput.rst:206 +#, fuzzy msgid "" "This could also be done by passing the ``table`` dictionary as keyword " "arguments with the ``**`` notation. ::" msgstr "" +"این کار همچنین می تواند با انتقال دیکشنری ``table`` به عنوان آرگومان های " +"کلیدواژه با نماد ``**`` انجام شود. ::" #: ../../tutorial/inputoutput.rst:209 +#, fuzzy msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" -">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'." -"format(**table))\n" +">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" msgstr "" +"```python\n" +">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" +">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))\n" +"Jack: 4098; Sjoerd: 4127; Dcab: 8637678\n" +"```" #: ../../tutorial/inputoutput.rst:213 +#, fuzzy msgid "" -"This is particularly useful in combination with the built-in function :func:" -"`vars`, which returns a dictionary containing all local variables::" +"This is particularly useful in combination with the built-in function " +":func:`vars`, which returns a dictionary containing all local variables::" msgstr "" +"این مخصوصاً در ترکیب با تابع داخلی `:func:`vars`` بسیار مفید است، که یک " +"دیکشنری شامل تمام متغیرهای محلی را برمی گرداند::" #: ../../tutorial/inputoutput.rst:216 +#, fuzzy msgid "" ">>> table = {k: str(v) for k, v in vars().items()}\n" ">>> message = \" \".join([f'{k}: ' + '{' + k +'};' for k in table.keys()])\n" ">>> print(message.format(**table))\n" "__name__: __main__; __doc__: None; __package__: None; __loader__: ..." msgstr "" +"```python\n" +">>> table = {k: str(v) for k, v in vars().items()}\n" +">>> message = \" \".join([f'{k}: ' + '{' + k +'};' for k in table.keys()])\n" +">>> print(message.format(**table))\n" +"__name__: __main__; __doc__: None; __package__: None; __loader__: ...\n" +"```" #: ../../tutorial/inputoutput.rst:221 +#, fuzzy msgid "" "As an example, the following lines produce a tidily aligned set of columns " "giving integers and their squares and cubes::" msgstr "" +"به عنوان مثال، خطوط زیر مجموعه ای از ستون ها را تولید می کنند که به طور منظم" +" تراز شده و اعداد صحیح، مربع ها و مکعب های آن ها را نشان می دهند::" #: ../../tutorial/inputoutput.rst:224 +#, fuzzy msgid "" ">>> for x in range(1, 11):\n" "... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))\n" @@ -351,22 +557,44 @@ msgid "" " 9 81 729\n" "10 100 1000" msgstr "" +"```>>> for x in range(1, 11):\n" +"... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))\n" +"...\n" +" 1 1 1\n" +" 2 4 8\n" +" 3 9 27\n" +" 4 16 64\n" +" 5 25 125\n" +" 6 36 216\n" +" 7 49 343\n" +" 8 64 512\n" +" 9 81 729\n" +"10 100 1000\n" +"```" #: ../../tutorial/inputoutput.rst:238 +#, fuzzy msgid "" -"For a complete overview of string formatting with :meth:`str.format`, see :" -"ref:`formatstrings`." +"For a complete overview of string formatting with :meth:`str.format`, see " +":ref:`formatstrings`." msgstr "" +"برای مشاهده ی کامل قالب بندی رشته با :meth:`str.format`، به " +":ref:`formatstrings` مراجعه کنید." #: ../../tutorial/inputoutput.rst:243 +#, fuzzy msgid "Manual String Formatting" -msgstr "" +msgstr "قالب بندی دستی رشته ها" #: ../../tutorial/inputoutput.rst:245 +#, fuzzy msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" +"در اینجا همان جدول مربعات و مکعب ها را که به صورت دستی قالب بندی شده است، " +"مشاهده می کنید::" #: ../../tutorial/inputoutput.rst:247 +#, fuzzy msgid "" ">>> for x in range(1, 11):\n" "... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')\n" @@ -384,32 +612,68 @@ msgid "" " 9 81 729\n" "10 100 1000" msgstr "" +"```python\n" +">>> for x in range(1, 11):\n" +"... print(repr(x).rjust(2), repr(x*x*x).rjust(4))\n" +"...\n" +" 1 1 1\n" +" 2 4 8\n" +" 3 9 27\n" +" 4 16 64\n" +" 5 25 125\n" +" 6 36 216\n" +" 7 49 343\n" +" 8 64 512\n" +" 9 81 729\n" +"10 100 1000\n" +"```\n" +"\n" +"در این برنامه که در زبان پایتون نوشته شده، از یک حلقه ی `for` برای چاپ اعداد از ۱ تا ۱۰ و توان دوم و توان سوم آن ها استفاده می شود. به وسیله ی تابع `rjust`، اعداد (و همچنین توان های محاسبه شده ی مربوطه) به راست تراز می شوند تا ظاهری مرتب داشته باشند. این باعث می شود که هر عدد یا خروجی در جایگاه خود قرار گرفته و نمایش بهتری داشته باشند. \n" +"\n" +"در اینجا، هر خط، عدد، مربع آن عدد و مکعب آن عدد را چاپ می کند. برای مثال، در خط اول عدد ۱ و توان های دوم و سوم آن (۱ و ۱) نمایش داده می شود و در خط آخر عدد ۱۰ و توان های دوم و سوم آن (۱۰۰ و ۱۰۰۰) نمایش داده می شود." #: ../../tutorial/inputoutput.rst:263 +#, fuzzy msgid "" -"(Note that the one space between each column was added by the way :func:" -"`print` works: it always adds spaces between its arguments.)" +"(Note that the one space between each column was added by the way " +":func:`print` works: it always adds spaces between its arguments.)" msgstr "" +"توجه داشته باشید که یک فاصله بین هر ستون توسط روش :func:`print` اضافه شده " +"است: این روش همیشه بین آرگومان هایش فاصله اضافه می کند." #: ../../tutorial/inputoutput.rst:266 +#, fuzzy msgid "" -"The :meth:`str.rjust` method of string objects right-justifies a string in a " -"field of a given width by padding it with spaces on the left. There are " +"The :meth:`str.rjust` method of string objects right-justifies a string in a" +" field of a given width by padding it with spaces on the left. There are " "similar methods :meth:`str.ljust` and :meth:`str.center`. These methods do " "not write anything, they just return a new string. If the input string is " -"too long, they don't truncate it, but return it unchanged; this will mess up " -"your column lay-out but that's usually better than the alternative, which " +"too long, they don't truncate it, but return it unchanged; this will mess up" +" your column lay-out but that's usually better than the alternative, which " "would be lying about a value. (If you really want truncation you can always " "add a slice operation, as in ``x.ljust(n)[:n]``.)" msgstr "" +"متد :meth:`str.rjust` در اشیای رشته ای، یک رشته را در یک فیلد با عرض مشخص با" +" اضافه کردن فاصله ها در سمت چپ، راست چین می کند. متدهای مشابهی به نام های " +":meth:`str.ljust` و :meth:`str.center` نیز وجود دارند. این متدها چیزی نمی " +"نویسند، بلکه فقط یک رشته جدید برمی گردانند. اگر رشته ورودی بیش از حد طولانی " +"باشد، آن را کوتاه نمی کنند، بلکه همانطور به صورت تغییر نیافته برمی گردانند؛ " +"این ممکن است که ساختار ستون شما را به هم بریزد اما معمولاً بهتر از جایگزین " +"آن است که دروغ درباره یک مقدار بگوید. (اگر واقعاً می خواهید رشته را کوتاه " +"کنید، می توانید همیشه یک عمل بریدن اضافه کنید، همانطور که در " +"``x.ljust(n)[:n]`` می بینید.)" #: ../../tutorial/inputoutput.rst:275 +#, fuzzy msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" msgstr "" +"روش دیگری به نام :meth:`str.zfill` وجود دارد که یک رشته عددی را در سمت چپ با" +" صفر پر می کند. این روش علائم مثبت و منفی را نیز درک می کند::" #: ../../tutorial/inputoutput.rst:278 +#, fuzzy msgid "" ">>> '12'.zfill(5)\n" "'00012'\n" @@ -418,12 +682,22 @@ msgid "" ">>> '3.14159265359'.zfill(5)\n" "'3.14159265359'" msgstr "" +"```python\n" +">>> '12'.zfill(5)\n" +"'00012'\n" +">>> '-3.14'.zfill(7)\n" +"'-003.14'\n" +">>> '3.14159265359'.zfill(5)\n" +"'3.14159265359'\n" +"```" #: ../../tutorial/inputoutput.rst:287 +#, fuzzy msgid "Old string formatting" -msgstr "" +msgstr "فرمت بندی رشته های قدیمی" #: ../../tutorial/inputoutput.rst:289 +#, fuzzy msgid "" "The % operator (modulo) can also be used for string formatting. Given " "``format % values`` (where *format* is a string), ``%`` conversion " @@ -431,38 +705,61 @@ msgid "" "*values*. This operation is commonly known as string interpolation. For " "example::" msgstr "" +"عملگر % (مانده) می تواند برای قالب بندی رشته ای نیز استفاده شود. با توجه به " +"``format % values`` (که در آن *format* یک رشته است)، مشخصات تبدیل در " +"*format* با صفر یا بیشتر عناصر از *values* جایگزین می شوند. این عملیات " +"معمولاً به عنوان درج مقدار در رشته شناخته می شود. به عنوان مثال::" #: ../../tutorial/inputoutput.rst:296 +#, fuzzy msgid "" ">>> import math\n" ">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" "The value of pi is approximately 3.142." msgstr "" +"```python\n" +">>> import math\n" +">>> print('مقدار pi تقریباً %5.3f است.' % math.pi)\n" +"مقدار pi تقریباً 3.142 است.\n" +"```" #: ../../tutorial/inputoutput.rst:300 +#, fuzzy msgid "" "More information can be found in the :ref:`old-string-formatting` section." -msgstr "" +msgstr "اطلاعات بیشتر را می توان در بخش :ref:`old-string-formatting` یافت." #: ../../tutorial/inputoutput.rst:306 +#, fuzzy msgid "Reading and Writing Files" -msgstr "" +msgstr "خواندن و نوشتن فایل ها" #: ../../tutorial/inputoutput.rst:312 +#, fuzzy 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)``" #: ../../tutorial/inputoutput.rst:318 +#, fuzzy msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" msgstr "" +"```python\n" +">>> f = open('workfile', 'w', encoding=\"utf-8\")\n" +"```\n" +"\n" +"فایلی به نام `workfile` را با مجوز نوشتن (حالت `'w'`) و با استفاده از کدینگ `utf-8` باز می کند." #: ../../tutorial/inputoutput.rst:325 +#, fuzzy msgid "" -"The first argument is a string containing the filename. The second argument " -"is another string containing a few characters describing the way in which " +"The first argument is a string containing the filename. The second argument" +" is another string containing a few characters describing the way in which " "the file will be used. *mode* can be ``'r'`` when the file will only be " "read, ``'w'`` for only writing (an existing file with the same name will be " "erased), and ``'a'`` opens the file for appending; any data written to the " @@ -470,40 +767,71 @@ msgid "" "reading and writing. The *mode* argument is optional; ``'r'`` will be " "assumed if it's omitted." msgstr "" +"اولین آرگومان رشته ای است که حاوی نام فایل می باشد. آرگومان دوم یک رشته دیگر" +" است که شامل چند کاراکتر توصیف کننده نحوه استفاده از فایل می باشد. *mode* می" +" تواند ``'r'`` باشد زمانی که فایل فقط برای خواندن باز می شود، ``'w'`` برای " +"نوشتن (فایلی با همان نام اگر موجود باشد پاک می شود) و ``'a'`` فایل را برای " +"افزودن باز می کند؛ هر داده ای که به فایل نوشته شود خودکار به انتها اضافه می " +"شود. ``'r+'`` فایل را برای هر دو عمل خواندن و نوشتن باز می کند. آرگومان " +"*mode* اختیاری است؛ ``'r'`` اگر حذف شود فرض می شود." #: ../../tutorial/inputoutput.rst:334 +#, fuzzy msgid "" "Normally, files are opened in :dfn:`text mode`, that means, you read and " "write strings from and to the file, which are encoded in a specific " "*encoding*. If *encoding* is not specified, the default is platform " -"dependent (see :func:`open`). Because UTF-8 is the modern de-facto standard, " -"``encoding=\"utf-8\"`` is recommended unless you know that you need to use a " -"different encoding. Appending a ``'b'`` to the mode opens the file in :dfn:" -"`binary mode`. Binary mode data is read and written as :class:`bytes` " +"dependent (see :func:`open`). Because UTF-8 is the modern de-facto standard," +" ``encoding=\"utf-8\"`` is recommended unless you know that you need to use " +"a different encoding. Appending a ``'b'`` to the mode opens the file in " +":dfn:`binary mode`. Binary mode data is read and written as :class:`bytes` " "objects. You can not specify *encoding* when opening file in binary mode." msgstr "" +"به طور معمول، فایل ها در :dfn:`حالت متنی` باز می شوند، به این معنی که شما " +"رشته ها را از فایل می خوانید و به فایل می نویسید، که با یک *encoding* خاص " +"کدگذاری شده اند. اگر *encoding* مشخص نشده باشد، مقدار پیش فرض به پلتفرم " +"وابسته است (نگاه کنید به :func:`open`). از آنجایی که UTF-8 استاندارد مدرن " +"دوفاکتو است، ``encoding=\"utf-8\"`` توصیه می شود مگر اینکه بدانید که به " +"استفاده از یک کدگذاری متفاوت نیاز دارید. اضافه کردن یک ``'b'`` به حالت، فایل" +" را در :dfn:`حالت باینری` باز می کند. داده های حالت باینری به صورت اشیاء " +":class:`bytes` خوانده و نوشته می شوند. شما نمی توانید *encoding* را هنگام " +"باز کردن فایل در حالت باینری مشخص کنید." #: ../../tutorial/inputoutput.rst:344 +#, fuzzy msgid "" "In text mode, the default when reading is to convert platform-specific line " "endings (``\\n`` on Unix, ``\\r\\n`` on Windows) to just ``\\n``. When " "writing in text mode, the default is to convert occurrences of ``\\n`` back " "to platform-specific line endings. This behind-the-scenes modification to " -"file data is fine for text files, but will corrupt binary data like that in :" -"file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " +"file data is fine for text files, but will corrupt binary data like that in " +":file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " "reading and writing such files." msgstr "" +"در حالت متنی، به صورت پیش فرض هنگام خواندن، انتهاهای خطوط مخصوص پلتفرم " +"(``\\n`` در یونیکس، ``\\r\\n`` در ویندوز) به سادگی به ``\\n`` تبدیل می شوند." +" هنگام نوشتن در حالت متنی، به صورت پیش فرض وقوع های ``\\n`` به انتهاهای خطوط" +" مخصوص پلتفرم برگردانده می شوند. این تغییرات پشت صحنه در داده های فایل برای " +"فایل های متنی مناسب است، اما داده های باینری مانند آن ها در فایل های " +":file:`JPEG` یا :file:`EXE` را خراب می کند. هنگام خواندن و نوشتن چنین فایل " +"هایی بسیار دقت کنید تا از حالت باینری استفاده کنید." #: ../../tutorial/inputoutput.rst:352 +#, fuzzy msgid "" "It is good practice to use the :keyword:`with` keyword when dealing with " "file objects. The advantage is that the file is properly closed after its " -"suite finishes, even if an exception is raised at some point. Using :" -"keyword:`!with` is also much shorter than writing equivalent :keyword:" -"`try`\\ -\\ :keyword:`finally` blocks::" +"suite finishes, even if an exception is raised at some point. Using " +":keyword:`!with` is also much shorter than writing equivalent " +":keyword:`try`\\ -\\ :keyword:`finally` blocks::" msgstr "" +"هنگام کار با اشیاء فایل، استفاده از کلمه کلیدی :keyword:`with` عمل خوبی است." +" مزیت آن این است که فایل پس از پایان دنباله اش به درستی بسته می شود، حتی اگر" +" در نقطه ای یک استثنا رخ دهد. استفاده از :keyword:`!with` نیز بسیار کوتاه تر" +" از نوشتن بلوک های معادل :keyword:`try`-:keyword:`finally` است::" #: ../../tutorial/inputoutput.rst:358 +#, fuzzy msgid "" ">>> with open('workfile', encoding=\"utf-8\") as f:\n" "... read_data = f.read()\n" @@ -512,29 +840,52 @@ msgid "" ">>> f.closed\n" "True" msgstr "" +"```\n" +">>> با استفاده از دستورات زیر، فایل 'workfile' را با رمزگذاری \"utf-8\" باز می کنیم:\n" +">>> با open('workfile', encoding=\"utf-8\") به عنوان f:\n" +"... read_data = f.read()\n" +"\n" +">>> # می توانیم بررسی کنیم که آیا فایل به صورت خودکار بسته شده است.\n" +">>> f.closed\n" +"True\n" +"```" #: ../../tutorial/inputoutput.rst:365 +#, fuzzy msgid "" -"If you're not using the :keyword:`with` keyword, then you should call ``f." -"close()`` to close the file and immediately free up any system resources " -"used by it." +"If you're not using the :keyword:`with` keyword, then you should call " +"``f.close()`` to close the file and immediately free up any system resources" +" used by it." msgstr "" +"اگر از کلمه کلیدی \":keyword:`with`\" استفاده نمی کنید، باید " +"\"``f.close()``\" را فراخوانی کنید تا فایل را ببندید و فوراً هر منبع سیستمی " +"که توسط آن استفاده می شود را آزاد کنید." #: ../../tutorial/inputoutput.rst:370 +#, fuzzy msgid "" "Calling ``f.write()`` without using the :keyword:`!with` keyword or calling " "``f.close()`` **might** result in the arguments of ``f.write()`` not being " "completely written to the disk, even if the program exits successfully." msgstr "" +"زمانی که ``f.write()`` را بدون استفاده از کلمه کلیدی :keyword:`!with` صدا " +"بزنید یا ``f.close()`` را **might** فراخوانی کنید، باعث می شود که آرگومان " +"های ``f.write()`` به طور کامل روی دیسک نوشته نشوند، حتی اگر برنامه با موفقیت" +" خاتمه یابد." #: ../../tutorial/inputoutput.rst:378 +#, fuzzy msgid "" "After a file object is closed, either by a :keyword:`with` statement or by " "calling ``f.close()``, attempts to use the file object will automatically " "fail. ::" msgstr "" +"پس از این که یک شیء فایل با یک دستور :keyword:`with` یا با فراخوانی " +"``f.close()`` بسته شد، تلاش ها برای استفاده از آن شیء فایل به طور خودکار با " +"شکست مواجه خواهند شد. ::" #: ../../tutorial/inputoutput.rst:382 +#, fuzzy msgid "" ">>> f.close()\n" ">>> f.read()\n" @@ -542,38 +893,66 @@ msgid "" " File \"\", line 1, in \n" "ValueError: I/O operation on closed file." msgstr "" +"```\n" +">>> f.close()\n" +">>> f.read()\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"ValueError: I/O operation on closed file.\n" +"```" #: ../../tutorial/inputoutput.rst:392 +#, fuzzy msgid "Methods of File Objects" -msgstr "" +msgstr "روش های اشیای فایل" #: ../../tutorial/inputoutput.rst:394 +#, fuzzy msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." msgstr "" +"بقیه مثال های این بخش فرض می کنند که یک شیء فایل به نام ``f`` قبلاً ایجاد " +"شده است." #: ../../tutorial/inputoutput.rst:397 +#, fuzzy msgid "" "To read a file's contents, call ``f.read(size)``, which reads some quantity " -"of data and returns it as a string (in text mode) or bytes object (in binary " -"mode). *size* is an optional numeric argument. When *size* is omitted or " +"of data and returns it as a string (in text mode) or bytes object (in binary" +" mode). *size* is an optional numeric argument. When *size* is omitted or " "negative, the entire contents of the file will be read and returned; it's " "your problem if the file is twice as large as your machine's memory. " "Otherwise, at most *size* characters (in text mode) or *size* bytes (in " -"binary mode) are read and returned. If the end of the file has been reached, " -"``f.read()`` will return an empty string (``''``). ::" -msgstr "" +"binary mode) are read and returned. If the end of the file has been reached," +" ``f.read()`` will return an empty string (``''``). ::" +msgstr "" +"برای خواندن محتوای یک فایل، ```f.read(size)``` را صدا بزنید که مقدار مشخصی " +"از داده را می خواند و آن را به صورت یک رشته (در حالت متنی) یا شئ از نوع بایت" +" (در حالت باینری) برمی گرداند. `*size*` یک آرگومان عددی اختیاری است. وقتی " +"`*size*` حذف شود یا منفی باشد، کل محتوای فایل خوانده شده و برگردانده می شود؛" +" اگر فایل دو برابر حافظه ماشین شما بزرگتر باشد، این مشکل شماست. در غیر این " +"صورت، حداکثر `*size*` کاراکتر (در حالت متنی) یا `*size*` بایت (در حالت " +"باینری) خوانده و برگردانده می شود. اگر به انتهای فایل رسیده اید، " +"```f.read()``` یک رشته خالی ( ```''``` ) را برمی گرداند. ::" #: ../../tutorial/inputoutput.rst:406 +#, fuzzy msgid "" ">>> f.read()\n" "'This is the entire file.\\n'\n" ">>> f.read()\n" "''" msgstr "" +"```python\n" +">>> f.read()\n" +"'این کل فایل است.\\n'\n" +">>> f.read()\n" +"''\n" +"```" #: ../../tutorial/inputoutput.rst:411 +#, fuzzy msgid "" "``f.readline()`` reads a single line from the file; a newline character " "(``\\n``) is left at the end of the string, and is only omitted on the last " @@ -582,8 +961,15 @@ msgid "" "end of the file has been reached, while a blank line is represented by " "``'\\n'``, a string containing only a single newline. ::" msgstr "" +"``f.readline()`` یک خط را از فایل می خواند؛ یک کاراکتر خط جدید (``\\n``) در " +"انتهای رشته باقی می ماند، و تنها در صورتی در خط آخر فایل حذف می شود که فایل " +"به خط جدید ختم نشود. این امر باعث می شود مقدار بازگشتی مبهم نباشد؛ اگر " +"``f.readline()`` یک رشته خالی برگرداند، به انتهای فایل رسیده ایم، در حالی که" +" یک خط خالی با ``'\\n'``، یک رشته که تنها شامل یک خط جدید است، نمایش داده می" +" شود. ::" #: ../../tutorial/inputoutput.rst:418 +#, fuzzy msgid "" ">>> f.readline()\n" "'This is the first line of the file.\\n'\n" @@ -592,14 +978,24 @@ msgid "" ">>> f.readline()\n" "''" msgstr "" +"```>>> f.readline()\n" +"'این اولین خط فایل است.\\n'\n" +">>> f.readline()\n" +"'خط دوم فایل\\n'\n" +">>> f.readline()\n" +"''```\n" #: ../../tutorial/inputoutput.rst:425 +#, fuzzy msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" msgstr "" +"برای خواندن خطوط از یک فایل، می توانید بر روی شیء فایل حلقه بزنید. این روش " +"از نظر حافظه کارآمد، سریع و به کد ساده منجر می شود::" #: ../../tutorial/inputoutput.rst:428 +#, fuzzy msgid "" ">>> for line in f:\n" "... print(line, end='')\n" @@ -607,58 +1003,96 @@ msgid "" "This is the first line of the file.\n" "Second line of the file" msgstr "" +"```python\n" +">>> for line in f:\n" +"... print(line, end='')\n" +"...\n" +"این اولین خط فایل است.\n" +"دومین خط فایل\n" +"```" #: ../../tutorial/inputoutput.rst:434 +#, fuzzy msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." msgstr "" +"اگر می خواهید تمام خطوط یک فایل را در یک فهرست بخوانید، می توانید از " +"``list(f)`` یا ``f.readlines()`` استفاده کنید." #: ../../tutorial/inputoutput.rst:437 +#, fuzzy msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" msgstr "" +"``f.write(string)`` محتوای *string* را به فایل می نویسد و تعداد کاراکترهای " +"نوشته شده را برمی گرداند. ::" #: ../../tutorial/inputoutput.rst:440 +#, fuzzy msgid "" ">>> f.write('This is a test\\n')\n" "15" msgstr "" +"```python\n" +">>> f.write('این یک تست است\\n')\n" +"15\n" +"```" #: ../../tutorial/inputoutput.rst:443 +#, fuzzy msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" +"انواع دیگر اشیاء باید قبل از نوشتن، به یک رشته (در حالت متنی) یا یک شیء بایت" +" (در حالت باینری) تبدیل شوند." #: ../../tutorial/inputoutput.rst:446 +#, fuzzy msgid "" ">>> value = ('the answer', 42)\n" ">>> s = str(value) # convert the tuple to string\n" ">>> f.write(s)\n" "18" msgstr "" +">>> مقدار = ('پاسخ', 42)\n" +">>> s = str(مقدار) # تبدیل تاپل به رشته\n" +">>> f.write(s)\n" +"18" #: ../../tutorial/inputoutput.rst:451 +#, fuzzy msgid "" -"``f.tell()`` returns an integer giving the file object's current position in " -"the file represented as number of bytes from the beginning of the file when " -"in binary mode and an opaque number when in text mode." +"``f.tell()`` returns an integer giving the file object's current position in" +" the file represented as number of bytes from the beginning of the file when" +" in binary mode and an opaque number when in text mode." msgstr "" +"``f.tell()`` یک عدد صحیح را برمی گرداند که موقعیت فعلی شیء فایل را در فایل " +"به صورت تعداد بایت ها از ابتدای فایل در حالت باینری نشان می دهد و یک عدد " +"ناشفاف در حالت متنی ارائه می دهد." #: ../../tutorial/inputoutput.rst:455 +#, fuzzy msgid "" "To change the file object's position, use ``f.seek(offset, whence)``. The " "position is computed from adding *offset* to a reference point; the " -"reference point is selected by the *whence* argument. A *whence* value of 0 " -"measures from the beginning of the file, 1 uses the current file position, " +"reference point is selected by the *whence* argument. A *whence* value of 0" +" measures from the beginning of the file, 1 uses the current file position, " "and 2 uses the end of the file as the reference point. *whence* can be " "omitted and defaults to 0, using the beginning of the file as the reference " "point. ::" msgstr "" +"برای تغییر موقعیت شیء فایل از ``f.seek(offset, whence)`` استفاده کنید. " +"موقعیت با اضافه کردن *offset* به یک نقطه مرجع محاسبه می شود؛ نقطه مرجع با " +"آرگومان *whence* انتخاب می شود. مقدار *whence* به اندازه 0 از ابتدای فایل، 1" +" از موقعیت فعلی فایل و 2 از انتهای فایل به عنوان نقطه مرجع اندازه گیری می " +"کند. *whence* می تواند حذف شود و به طور پیش فرض برابر با 0 است و از ابتدای " +"فایل به عنوان نقطه مرجع استفاده می کند. ::" #: ../../tutorial/inputoutput.rst:462 +#, fuzzy msgid "" ">>> f = open('workfile', 'rb+')\n" ">>> f.write(b'0123456789abcdef')\n" @@ -672,28 +1106,53 @@ msgid "" ">>> f.read(1)\n" "b'd'" msgstr "" +"```python\n" +">>> f = open('workfile', 'rb+')\n" +">>> f.write(b'0123456789abcdef')\n" +"16\n" +">>> f.seek(5) # رفتن به بایت ششم در فایل\n" +"5\n" +">>> f.read(1)\n" +"b'5'\n" +">>> f.seek(-3, 2) # رفتن به بایت سوم قبل از انتها\n" +"13\n" +">>> f.read(1)\n" +"b'd'\n" +"```" #: ../../tutorial/inputoutput.rst:474 +#, fuzzy msgid "" "In text files (those opened without a ``b`` in the mode string), only seeks " "relative to the beginning of the file are allowed (the exception being " "seeking to the very file end with ``seek(0, 2)``) and the only valid " -"*offset* values are those returned from the ``f.tell()``, or zero. Any other " -"*offset* value produces undefined behaviour." +"*offset* values are those returned from the ``f.tell()``, or zero. Any other" +" *offset* value produces undefined behaviour." msgstr "" +"در فایل های متنی (فایل هایی که بدون ``b`` در رشته mode باز شده اند)، تنها " +"مکان یابی نسبت به ابتدای فایل مجاز است (به استثنای مکان یابی به انتهای فایل " +"با ``seek(0, 2)``) و تنها مقادیر معتبر *offset*، مقادیری هستند که از " +"``f.tell()`` بازگردانده می شوند یا صفر. هر *offset* دیگری رفتار نامشخصی " +"ایجاد می کند." #: ../../tutorial/inputoutput.rst:480 +#, fuzzy msgid "" -"File objects have some additional methods, such as :meth:`~io.IOBase.isatty` " -"and :meth:`~io.IOBase.truncate` which are less frequently used; consult the " -"Library Reference for a complete guide to file objects." +"File objects have some additional methods, such as :meth:`~io.IOBase.isatty`" +" and :meth:`~io.IOBase.truncate` which are less frequently used; consult the" +" Library Reference for a complete guide to file objects." msgstr "" +"اشیای فایل تعدادی متد اضافی دارند، مانند :meth:`~io.IOBase.isatty` و " +":meth:`~io.IOBase.truncate` که کمتر استفاده می شوند؛ برای راهنمای کامل اشیای" +" فایل به مرجع کتابخانه مراجعه کنید." #: ../../tutorial/inputoutput.rst:488 +#, fuzzy msgid "Saving structured data with :mod:`json`" -msgstr "" +msgstr "ذخیره سازی داده های ساختاریافته با :mod:`json`" #: ../../tutorial/inputoutput.rst:492 +#, fuzzy msgid "" "Strings can easily be written to and read from a file. Numbers take a bit " "more effort, since the :meth:`~io.TextIOBase.read` method only returns " @@ -702,81 +1161,135 @@ msgid "" "want to save more complex data types like nested lists and dictionaries, " "parsing and serializing by hand becomes complicated." msgstr "" +"رشته ها به راحتی قابل نوشتن و خواندن از فایل هستند. اعداد کمی بیشتر تلاش می " +"برند، زیرا روش :meth:`~io.TextIOBase.read` تنها رشته ها را برمی گرداند، که " +"باید به یک تابع مانند :func:`int` داده شوند، که یک رشته مثل ``'123'`` را می " +"گیرد و مقدار عددی ۱۲۳ آن را برمی گرداند. هنگامی که می خواهید انواع داده " +"پیچیده تری مانند لیست ها و دیکشنری های تو در تو را ذخیره کنید، تجزیه و سریال" +" سازی به صورت دستی پیچیده می شود." #: ../../tutorial/inputoutput.rst:499 +#, fuzzy msgid "" "Rather than having users constantly writing and debugging code to save " "complicated data types to files, Python allows you to use the popular data " -"interchange format called `JSON (JavaScript Object Notation) `_. The standard module called :mod:`json` can take Python data " -"hierarchies, and convert them to string representations; this process is " -"called :dfn:`serializing`. Reconstructing the data from the string " -"representation is called :dfn:`deserializing`. Between serializing and " -"deserializing, the string representing the object may have been stored in a " -"file or data, or sent over a network connection to some distant machine." -msgstr "" +"interchange format called `JSON (JavaScript Object Notation) " +"`_. The standard module called :mod:`json` can take " +"Python data hierarchies, and convert them to string representations; this " +"process is called :dfn:`serializing`. Reconstructing the data from the " +"string representation is called :dfn:`deserializing`. Between serializing " +"and deserializing, the string representing the object may have been stored " +"in a file or data, or sent over a network connection to some distant " +"machine." +msgstr "" +"به جای اینکه کاربران دائماً برای ذخیره سازی انواع داده های پیچیده در فایل ها" +" کدنویسی کنند و آن ها را اشکال زدایی کنند، پایتون به شما اجازه می دهد از " +"فرمت محبوب تبادل داده به نام `JSON (JavaScript Object Notation) " +"`_ استفاده کنید. ماژول استاندارد با نام :mod:`json` می " +"تواند سلسله مراتب داده های پایتون را بگیرد و آن ها را به نمایش های رشته ای " +"تبدیل کند؛ این فرآیند به عنوان :dfn:`سریالی سازی` شناخته می شود. بازسازی " +"داده ها از نمایش رشته ای به عنوان :dfn:`دی سریالی سازی` شناخته می شود. بین " +"سریالی سازی و دی سریالی سازی، رشته ای که شیء را نمایندگی می کند ممکن است در " +"یک فایل یا داده ذخیره شده باشد، یا از طریق یک اتصال شبکه به یک ماشین دور " +"ارسال شده باشد." #: ../../tutorial/inputoutput.rst:510 +#, fuzzy msgid "" "The JSON format is commonly used by modern applications to allow for data " "exchange. Many programmers are already familiar with it, which makes it a " "good choice for interoperability." msgstr "" +"قالب JSON به طور معمول توسط برنامه های مدرن برای تبادل داده مورد استفاده " +"قرار می گیرد. بسیاری از برنامه نویسان با آن آشنا هستند که این امر آن را به " +"گزینه ای مناسب برای هم کاری بین سیستم ها تبدیل می کند." #: ../../tutorial/inputoutput.rst:514 +#, fuzzy msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" msgstr "" +"اگر شما شیء ``x`` دارید، می توانید نمایش رشته ای آن به صورت JSON را با یک خط" +" کد مشاهده کنید::" #: ../../tutorial/inputoutput.rst:517 +#, fuzzy msgid "" ">>> import json\n" ">>> x = [1, 'simple', 'list']\n" ">>> json.dumps(x)\n" "'[1, \"simple\", \"list\"]'" msgstr "" +"```\n" +">>> import json\n" +">>> x = [1, 'simple', 'list']\n" +">>> json.dumps(x)\n" +"'[1, \"simple\", \"list\"]'\n" +"```" #: ../../tutorial/inputoutput.rst:522 +#, fuzzy msgid "" -"Another variant of the :func:`~json.dumps` function, called :func:`~json." -"dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " -"a :term:`text file` object opened for writing, we can do this::" +"Another variant of the :func:`~json.dumps` function, called " +":func:`~json.dump`, simply serializes the object to a :term:`text file`. So" +" if ``f`` is a :term:`text file` object opened for writing, we can do this::" msgstr "" +"یکی دیگر از انواع تابع :func:`~json.dumps` به نام :func:`~json.dump`، شی را " +"به یک :term:`text file` سریال سازی می کند. بنابراین اگر ``f`` یک شی " +":term:`text file` باشد که برای نوشتن باز شده است، می توانیم به این شکل عمل " +"کنیم::" #: ../../tutorial/inputoutput.rst:526 +#, fuzzy msgid "json.dump(x, f)" msgstr "" +"تابع `json.dump(x, f)` در زبان پایتون برای ذخیره سازی یک شیء `x` به صورت یک " +"رشته ی JSON در فایل `f` مورد استفاده قرار می گیرد." #: ../../tutorial/inputoutput.rst:528 +#, fuzzy msgid "" -"To decode the object again, if ``f`` is a :term:`binary file` or :term:`text " -"file` object which has been opened for reading::" +"To decode the object again, if ``f`` is a :term:`binary file` or :term:`text" +" file` object which has been opened for reading::" msgstr "" +"برای رمزگشایی مجدد شیء، اگر ``f`` یک شیء :term:`binary file` یا :term:`text " +"file` باشد که برای خواندن باز شده است:" #: ../../tutorial/inputoutput.rst:531 +#, fuzzy msgid "x = json.load(f)" -msgstr "" +msgstr "x = json.load(f)\n" #: ../../tutorial/inputoutput.rst:534 +#, fuzzy msgid "" -"JSON files must be encoded in UTF-8. Use ``encoding=\"utf-8\"`` when opening " -"JSON file as a :term:`text file` for both of reading and writing." +"JSON files must be encoded in UTF-8. Use ``encoding=\"utf-8\"`` when opening" +" JSON file as a :term:`text file` for both of reading and writing." msgstr "" +"فایل های JSON باید با کدگذاری UTF-8 باشند. از ``encoding=\"utf-8\"`` برای " +"باز کردن فایل JSON به عنوان :term:`text file` هم برای خواندن و هم برای نوشتن" +" استفاده کنید." #: ../../tutorial/inputoutput.rst:537 +#, fuzzy msgid "" "This simple serialization technique can handle lists and dictionaries, but " "serializing arbitrary class instances in JSON requires a bit of extra " "effort. The reference for the :mod:`json` module contains an explanation of " "this." msgstr "" +"این تکنیک ساده سریال سازی می تواند لیست ها و دیکشنری ها را مدیریت کند، اما " +"سریال سازی نمونه های کلاسی دلخواه در JSON به کمی تلاش اضافی نیاز دارد. مرجع " +"ماژول :mod:`json` شامل توضیحی در این مورد است." #: ../../tutorial/inputoutput.rst:543 +#, fuzzy msgid ":mod:`pickle` - the pickle module" -msgstr "" +msgstr "ماژول \"pickle\"" #: ../../tutorial/inputoutput.rst:545 +#, fuzzy msgid "" "Contrary to :ref:`JSON `, *pickle* is a protocol which allows the " "serialization of arbitrarily complex Python objects. As such, it is " @@ -785,55 +1298,76 @@ msgid "" "pickle data coming from an untrusted source can execute arbitrary code, if " "the data was crafted by a skilled attacker." msgstr "" +"برخلاف :ref:`JSON `، *pickle* یک پروتکل است که اجازه می دهد آبجکت " +"های پیچیده پایتون به صورت دلخواه سریال سازی شوند. به همین دلیل، این پروتکل " +"مختص پایتون است و نمی تواند برای ارتباط با برنامه هایی که به زبان های دیگر " +"نوشته شده اند، استفاده شود. همچنین به طور پیش فرض ناامن است: دی سریال سازی " +"داده های \"pickle\" که از یک منبع غیرقابل اعتماد می آید، می تواند کدهای " +"دلخواه را اجرا کند، اگر داده ها توسط یک حمله کننده ماهر ساخته شده باشند." #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "formatted string literal" -msgstr "" +msgstr "رشته قالب بندی شده (formatted string literal)" #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "interpolated string literal" -msgstr "" +msgstr "رشته ای با مقدارگذاری داخلی" #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "string" -msgstr "" +msgstr "رشته" #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "formatted literal" -msgstr "" +msgstr "رشته قالب بندی شده" #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "interpolated literal" -msgstr "" +msgstr "رشته ی مداخله ای" #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "f-string" -msgstr "" +msgstr "رشته های قالب بندی شده (f-string)" #: ../../tutorial/inputoutput.rst:103 +#, fuzzy msgid "fstring" -msgstr "" +msgstr "اف استرینگ" #: ../../tutorial/inputoutput.rst:308 +#, fuzzy msgid "built-in function" -msgstr "" +msgstr "تابع توکار" #: ../../tutorial/inputoutput.rst:308 +#, fuzzy msgid "open" -msgstr "" +msgstr "باز کردن" #: ../../tutorial/inputoutput.rst:308 +#, fuzzy msgid "object" msgstr "" +"\n" +"شیء" #: ../../tutorial/inputoutput.rst:308 +#, fuzzy msgid "file" -msgstr "" +msgstr "فایل" #: ../../tutorial/inputoutput.rst:490 +#, fuzzy msgid "module" -msgstr "" +msgstr "ماژول" #: ../../tutorial/inputoutput.rst:490 +#, fuzzy msgid "json" -msgstr "" +msgstr "جیسون" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 9d3b71c02..9b5f38eb8 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -14,32 +14,40 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/interactive.rst:5 +#, fuzzy msgid "Interactive Input Editing and History Substitution" -msgstr "" +msgstr "ویرایش ورودی تعاملی و جایگزینی تاریخچه" #: ../../tutorial/interactive.rst:7 +#, fuzzy msgid "" -"Some versions of the Python interpreter support editing of the current input " -"line and history substitution, similar to facilities found in the Korn shell " -"and the GNU Bash shell. This is implemented using the `GNU Readline`_ " -"library, which supports various styles of editing. This library has its own " -"documentation which we won't duplicate here." +"Some versions of the Python interpreter support editing of the current input" +" line and history substitution, similar to facilities found in the Korn " +"shell and the GNU Bash shell. This is implemented using the `GNU Readline`_" +" library, which supports various styles of editing. This library has its " +"own documentation which we won't duplicate here." msgstr "" +"برخی نسخه های مفسر پایتون از ویرایش خط ورودی فعلی و جایگزینی تاریخچه، مشابه " +"امکانات موجود در پوسته Korn و پوسته GNU Bash پشتیبانی می کنند. این با " +"استفاده از کتابخانه `GNU Readline`_ پیاده سازی شده است که از سبک های مختلف " +"ویرایش پشتیبانی می کند. این کتابخانه دارای مستندات مخصوص به خود است که در " +"اینجا تکرار نمی کنیم." #: ../../tutorial/interactive.rst:17 +#, fuzzy msgid "Tab Completion and History Editing" -msgstr "" +msgstr "تکمیل خودکار و ویرایش تاریخچه" #: ../../tutorial/interactive.rst:19 +#, fuzzy msgid "" "Completion of variable and module names is :ref:`automatically enabled " "` at interpreter startup so that the :kbd:`Tab` key " @@ -47,28 +55,46 @@ msgid "" "current local variables, and the available module names. For dotted " "expressions such as ``string.a``, it will evaluate the expression up to the " "final ``'.'`` and then suggest completions from the attributes of the " -"resulting object. Note that this may execute application-defined code if an " -"object with a :meth:`~object.__getattr__` method is part of the expression. " -"The default configuration also saves your history into a file named :file:`." -"python_history` in your user directory. The history will be available again " -"during the next interactive interpreter session." +"resulting object. Note that this may execute application-defined code if an" +" object with a :meth:`~object.__getattr__` method is part of the expression." +" The default configuration also saves your history into a file named " +":file:`.python_history` in your user directory. The history will be " +"available again during the next interactive interpreter session." msgstr "" +"تکمیل نام های متغیر و ماژول در شروع به کار مفسر به صورت :ref:`automatically " +"enabled ` است تا کلید :kbd:`Tab` تابع تکمیل را فراخوانی " +"کند؛ برنامه به عبارات Python، متغیرهای محلی کنونی و نام های ماژول های موجود " +"نگاه می کند. برای عبارات نقطه دار مانند ``string.a``، عبارت را تا آخرین " +"``'.'`` ارزیابی کرده و سپس تکمیل هایی از ویژگی های شیء حاصل پیشنهاد می دهد. " +"توجه داشته باشید که این ممکن است کدی که توسط کاربر تعریف شده است را اجرا " +"کند، اگر شیءی که دارای متد :meth:`~object.__getattr__` باشد بخشی از عبارت " +"باشد. پیکربندی پیش فرض همچنین تاریخچه شما را در فایلی به نام " +":file:`.python_history` در دایرکتوری کاربری شما ذخیره می کند. این تاریخچه در" +" جلسه تعاملی بعدی مفسر باز هم قابل دسترسی خواهد بود." #: ../../tutorial/interactive.rst:36 +#, fuzzy msgid "Alternatives to the Interactive Interpreter" -msgstr "" +msgstr "جایگزین هایی برای مفسر تعاملی" #: ../../tutorial/interactive.rst:38 +#, fuzzy msgid "" "This facility is an enormous step forward compared to earlier versions of " "the interpreter; however, some wishes are left: It would be nice if the " -"proper indentation were suggested on continuation lines (the parser knows if " -"an indent token is required next). The completion mechanism might use the " +"proper indentation were suggested on continuation lines (the parser knows if" +" an indent token is required next). The completion mechanism might use the " "interpreter's symbol table. A command to check (or even suggest) matching " "parentheses, quotes, etc., would also be useful." msgstr "" +"این قابلیت نسبت به نسخه های قبلی مترجم یک گام بزرگ به جلو است؛ با این حال، " +"برخی آرزوها باقی مانده است: خوب خواهد بود اگر تورفتگی مناسب در خطوط ادامه " +"پیشنهاد شود (مفسر می داند که آیا یک نشانه تورفتگی مورد نیاز است یا خیر). " +"مکانیزم تکمیل ممکن است از جدول نمادهای مترجم استفاده کند. یک دستور برای " +"بررسی (یا حتی پیشنهاد) پرانتزها، کوتیشن ها و غیره نیز مفید خواهد بود." #: ../../tutorial/interactive.rst:45 +#, fuzzy msgid "" "One alternative enhanced interactive interpreter that has been around for " "quite some time is IPython_, which features tab completion, object " @@ -76,3 +102,8 @@ msgid "" "customized and embedded into other applications. Another similar enhanced " "interactive environment is bpython_." msgstr "" +"یکی از مفسرهای تعاملی پیشرفته ای که مدت زیادی است وجود دارد، IPython_ است که" +" دارای ویژگی های تکمیل سازی خودکار با استفاده از کلید تب، کاوش اشیاء و " +"مدیریت تاریخچه پیشرفته می باشد. این مفسر همچنین به طور کامل قابل سفارشی سازی" +" بوده و می تواند در برنامه های دیگر نیز تعبیه شود. محیط تعاملی پیشرفته مشابه" +" دیگری نیز bpython_ است." diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index a91d6c07d..a09b8576d 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -14,63 +14,86 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/interpreter.rst:5 +#, fuzzy msgid "Using the Python Interpreter" -msgstr "" +msgstr "استفاده از مفسر پایتون" #: ../../tutorial/interpreter.rst:11 +#, fuzzy msgid "Invoking the Interpreter" -msgstr "" +msgstr "فراخوانی مفسر" #: ../../tutorial/interpreter.rst:13 +#, fuzzy msgid "" -"The Python interpreter is usually installed as |" -"usr_local_bin_python_x_dot_y_literal| on those machines where it is " +"The Python interpreter is usually installed as " +"|usr_local_bin_python_x_dot_y_literal| on those machines where it is " "available; putting :file:`/usr/local/bin` in your Unix shell's search path " "makes it possible to start it by typing the command:" msgstr "" +"مفسر Python معمولاً به صورت |usr_local_bin_python_x_dot_y_literal| بر روی آن" +" دسته از ماشین هایی نصب می شود که در دسترس هستند؛ با قرار دادن " +":file:`/usr/local/bin` در مسیر جستجوی شل یونیکس تان، می توانید آن را با تایپ" +" کردن دستور زیر اجرا کنید:" #: ../../tutorial/interpreter.rst:17 +#, fuzzy msgid "python3.13" -msgstr "" +msgstr "پایتون۳.۱۳" #: ../../tutorial/interpreter.rst:21 +#, fuzzy msgid "" "to the shell. [#]_ Since the choice of the directory where the interpreter " "lives is an installation option, other places are possible; check with your " -"local Python guru or system administrator. (E.g., :file:`/usr/local/python` " -"is a popular alternative location.)" +"local Python guru or system administrator. (E.g., :file:`/usr/local/python`" +" is a popular alternative location.)" msgstr "" +"به پوسته. [#]_ از آنجا که انتخاب مسیر دایرکتوری که مفسر در آن قرار دارد یک " +"گزینه نصب است، مکان های دیگری نیز ممکن است وجود داشته باشد؛ با متخصص پایتون " +"محل کارتان یا مدیر سیستم مشورت کنید. (برای مثال، `:file:`/usr/local/python``" +" یک مکان جایگزین محبوب است.)" #: ../../tutorial/interpreter.rst:26 +#, fuzzy msgid "" -"On Windows machines where you have installed Python from the :ref:`Microsoft " -"Store `, the |python_x_dot_y_literal| command will be " +"On Windows machines where you have installed Python from the :ref:`Microsoft" +" Store `, the |python_x_dot_y_literal| command will be " "available. If you have the :ref:`py.exe launcher ` installed, you " -"can use the :file:`py` command. See :ref:`setting-envvars` for other ways to " -"launch Python." +"can use the :file:`py` command. See :ref:`setting-envvars` for other ways to" +" launch Python." msgstr "" +"در ماشین های ویندوز که در آن ها پایتون را از :ref:`Microsoft Store ` نصب کرده اید، دستور |python_x_dot_y_literal| در دسترس خواهد بود. اگر" +" :ref:`py.exe launcher ` را نصب کرده باشید، می توانید از دستور " +":file:`py` استفاده کنید. برای روش های دیگر راه اندازی پایتون، :ref:`setting-" +"envvars` را ببینید." #: ../../tutorial/interpreter.rst:31 +#, fuzzy msgid "" "Typing an end-of-file character (:kbd:`Control-D` on Unix, :kbd:`Control-Z` " -"on Windows) at the primary prompt causes the interpreter to exit with a zero " -"exit status. If that doesn't work, you can exit the interpreter by typing " +"on Windows) at the primary prompt causes the interpreter to exit with a zero" +" exit status. If that doesn't work, you can exit the interpreter by typing " "the following command: ``quit()``." msgstr "" +"با وارد کردن نویسه پایان فایل (:kbd:`Control-D` در یونیکس، :kbd:`Control-Z` " +"در ویندوز) در اعلان اصلی، مفسر با وضعیت خروج صفر خارج می شود. اگر این کار " +"نکرد، می توانید با وارد کردن دستور زیر از مفسر خارج شوید: ``quit()``." #: ../../tutorial/interpreter.rst:36 +#, fuzzy msgid "" -"The interpreter's line-editing features include interactive editing, history " -"substitution and code completion on systems that support the `GNU Readline " +"The interpreter's line-editing features include interactive editing, history" +" substitution and code completion on systems that support the `GNU Readline " "`_ library. Perhaps " "the quickest check to see whether command line editing is supported is " "typing :kbd:`Control-P` to the first Python prompt you get. If it beeps, " @@ -79,93 +102,153 @@ msgid "" "echoed, command line editing isn't available; you'll only be able to use " "backspace to remove characters from the current line." msgstr "" +"ویژگی های ویرایش خط مفسر شامل ویرایش تعاملی، جایگزینی تاریخچه و تکمیل کد در " +"سیستم هایی است که از کتابخانه ``GNU Readline " +"`_` پشتیبانی می کنند. " +"شاید سریع ترین راه برای بررسی اینکه آیا ویرایش خط فرمان پشتیبانی می شود یا " +"خیر این است که `:kbd:`Control-P`` را در اولین پیغام پایتون که دریافت می کنید" +" تایپ کنید. اگر صدای بیپ شنیده شود، ویرایش خط فرمان دارید؛ برای معرفی کلیدها" +" به پیوست `:ref:`tut-interacting`` مراجعه کنید. اگر هیچ اتفاقی نیفتاد یا " +"```^P``` بازتاب شد، ویرایش خط فرمان در دسترس نیست؛ شما فقط می توانید از کلید" +" backspace برای حذف کاراکترها از خط فعلی استفاده کنید." #: ../../tutorial/interpreter.rst:46 +#, fuzzy msgid "" "The interpreter operates somewhat like the Unix shell: when called with " "standard input connected to a tty device, it reads and executes commands " "interactively; when called with a file name argument or with a file as " "standard input, it reads and executes a *script* from that file." msgstr "" +"مفسر تا حدی شبیه به پوسته ی یونیکس عمل می کند: زمانی که با ورودی استاندارد " +"متصل به یک دستگاه tty فراخوانی می شود، به صورت تعاملی دستورات را می خواند و " +"اجرا می کند؛ وقتی با یک آرگومان نام فایل یا به عنوان یک فایل به عنوان ورودی " +"استاندارد فراخوانی می شود، از آن فایل *script* را می خواند و اجرا می کند." #: ../../tutorial/interpreter.rst:51 +#, fuzzy msgid "" -"A second way of starting the interpreter is ``python -c command [arg] ...``, " -"which executes the statement(s) in *command*, analogous to the shell's :" -"option:`-c` option. Since Python statements often contain spaces or other " +"A second way of starting the interpreter is ``python -c command [arg] ...``," +" which executes the statement(s) in *command*, analogous to the shell's " +":option:`-c` option. Since Python statements often contain spaces or other " "characters that are special to the shell, it is usually advised to quote " "*command* in its entirety." msgstr "" +"روش دوم برای شروع مفسر، ``python -c command [arg] ...`` است که دستور(ها) را " +"در *command* اجرا می کند، مشابه با گزینه :option:`-c` در شل. از آنجایی که " +"دستورات پایتون اغلب شامل فاصله ها یا سایر کاراکترهایی هستند که برای شل خاص " +"هستند، معمولاً توصیه می شود که *command* به طور کامل نقل شود." #: ../../tutorial/interpreter.rst:57 +#, fuzzy msgid "" "Some Python modules are also useful as scripts. These can be invoked using " "``python -m module [arg] ...``, which executes the source file for *module* " "as if you had spelled out its full name on the command line." msgstr "" +"برخی از ماژول های پایتون به عنوان اسکریپت نیز مفید هستند. این ها می توانند " +"با استفاده از ``python -m module [arg] ...`` فراخوانی شوند، که فایل منبع " +"برای *module* را اجرا می کند، همان طوری که انگار نام کامل آن را در خط فرمان " +"نوشته اید." #: ../../tutorial/interpreter.rst:61 +#, fuzzy msgid "" "When a script file is used, it is sometimes useful to be able to run the " -"script and enter interactive mode afterwards. This can be done by passing :" -"option:`-i` before the script." +"script and enter interactive mode afterwards. This can be done by passing " +":option:`-i` before the script." msgstr "" +"وقتی از یک فایل اسکریپت استفاده می شود، گاهی اوقات مفید است که بتوان اسکریپت" +" را اجرا کرده و پس از آن به حالت تعاملی وارد شد. این کار با عبور دادن " +"`:option:`-i`` قبل از اسکریپت انجام پذیر است." #: ../../tutorial/interpreter.rst:65 +#, fuzzy msgid "All command line options are described in :ref:`using-on-general`." -msgstr "" +msgstr "همه گزینه های خط فرمان در :ref:`using-on-general` توصیف شده اند." #: ../../tutorial/interpreter.rst:71 +#, fuzzy msgid "Argument Passing" -msgstr "" +msgstr "گذراندن آرگومان ها" #: ../../tutorial/interpreter.rst:73 +#, fuzzy msgid "" "When known to the interpreter, the script name and additional arguments " "thereafter are turned into a list of strings and assigned to the ``argv`` " "variable in the ``sys`` module. You can access this list by executing " "``import sys``. The length of the list is at least one; when no script and " -"no arguments are given, ``sys.argv[0]`` is an empty string. When the script " -"name is given as ``'-'`` (meaning standard input), ``sys.argv[0]`` is set " +"no arguments are given, ``sys.argv[0]`` is an empty string. When the script" +" name is given as ``'-'`` (meaning standard input), ``sys.argv[0]`` is set " "to ``'-'``. When :option:`-c` *command* is used, ``sys.argv[0]`` is set to " "``'-c'``. When :option:`-m` *module* is used, ``sys.argv[0]`` is set to " "the full name of the located module. Options found after :option:`-c` " "*command* or :option:`-m` *module* are not consumed by the Python " -"interpreter's option processing but left in ``sys.argv`` for the command or " -"module to handle." -msgstr "" +"interpreter's option processing but left in ``sys.argv`` for the command or" +" module to handle." +msgstr "" +"هنگامی که برای مفسر شناخته شده باشد، نام اسکریپت و آرگومان های اضافی بعد از " +"آن به یک لیست از رشته ها تبدیل شده و به متغیر ``argv`` در ماژول ``sys`` " +"اختصاص داده می شود. شما می توانید با اجرای ``import sys`` به این لیست دسترسی" +" پیدا کنید. طول این لیست حداقل یک است؛ زمانی که هیچ اسکریپت و هیچ آرگومانی " +"داده نشده باشد، ``sys.argv[0]`` یک رشته خالی است. وقتی نام اسکریپت به صورت " +"``'-'`` (به معنای ورودی استاندارد) داده شود، ``sys.argv[0]`` به ``'-'`` " +"تنظیم می شود. وقتی :option:`-c` *command* استفاده شود، ``sys.argv[0]`` به " +"``'-c'`` تنظیم می شود. وقتی :option:`-m` *module* استفاده شود، " +"``sys.argv[0]`` به نام کامل ماژول واقع در آن تنظیم می شود. گزینه هایی که بعد" +" از :option:`-c` *command* یا :option:`-m` *module* پیدا می شوند توسط پردازش" +" گزینه های مفسر پایتون مصرف نمی شوند، بلکه در ``sys.argv`` باقی می مانند تا " +"توسط فرمان یا ماژول مدیریت شوند." #: ../../tutorial/interpreter.rst:89 +#, fuzzy msgid "Interactive Mode" -msgstr "" +msgstr "حالت تعاملی" #: ../../tutorial/interpreter.rst:91 +#, fuzzy msgid "" "When commands are read from a tty, the interpreter is said to be in " "*interactive mode*. In this mode it prompts for the next command with the " "*primary prompt*, usually three greater-than signs (``>>>``); for " "continuation lines it prompts with the *secondary prompt*, by default three " -"dots (``...``). The interpreter prints a welcome message stating its version " -"number and a copyright notice before printing the first prompt:" +"dots (``...``). The interpreter prints a welcome message stating its version" +" number and a copyright notice before printing the first prompt:" msgstr "" +"هنگامی که دستورات از یک tty خوانده می شوند، گفته می شود که مفسر در حالت " +"*interactive mode* قرار دارد. در این حالت، برای دستوری بعدی با *primary " +"prompt* اعلان می کند، که معمولاً به صورت سه علامت بزرگتر (``>>>``) است؛ برای" +" خطوط ادامه، با *secondary prompt* اعلان می کند، که به طور پیش فرض به صورت " +"سه نقطه (``...``) است. مفسر پیش از چاپ اولین اعلان، پیامی خوش آمدگویی که " +"نسخه و شماره کپی رایت آن را بیان می کند، چاپ می کند:" #: ../../tutorial/interpreter.rst:98 +#, fuzzy msgid "" "$ python3.13\n" "Python 3.13 (default, April 4 2023, 09:25:04)\n" "[GCC 10.2.0] on linux\n" -"Type \"help\", \"copyright\", \"credits\" or \"license\" for more " -"information.\n" +"Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n" ">>>" msgstr "" +"$ python3.13\n" +"پایتون 3.13 (پیش فرض، 4 آوریل 2023، 09:25:04)\n" +"[GCC 10.2.0] روی لینوکس\n" +"برای اطلاعات بیشتر \"help\"، \"copyright\"، \"credits\" یا \"license\" را تایپ کنید.\n" +">>>" #: ../../tutorial/interpreter.rst:108 +#, fuzzy msgid "" "Continuation lines are needed when entering a multi-line construct. As an " "example, take a look at this :keyword:`if` statement::" msgstr "" +"ادامه خطوط زمانی که یک ساختار چند خطی وارد می شود، لازم است. به عنوان مثال، " +"به این دستور :keyword:`if` نگاه کنید::" #: ../../tutorial/interpreter.rst:111 +#, fuzzy msgid "" ">>> the_world_is_flat = True\n" ">>> if the_world_is_flat:\n" @@ -173,74 +256,119 @@ msgid "" "...\n" "Be careful not to fall off!" msgstr "" +"```>>> the_world_is_flat = True\n" +">>> if the_world_is_flat:\n" +"... print(\"مواظب باش که نیفتی!\")\n" +"...\n" +"مواظب باش که نیفتی!```" #: ../../tutorial/interpreter.rst:118 +#, fuzzy msgid "For more on interactive mode, see :ref:`tut-interac`." msgstr "" +"برای اطلاعات بیشتر درباره حالت تعاملی، به :ref:`tut-interac` مراجعه کنید." #: ../../tutorial/interpreter.rst:124 +#, fuzzy msgid "The Interpreter and Its Environment" -msgstr "" +msgstr "مترجم و محیط آن" #: ../../tutorial/interpreter.rst:130 +#, fuzzy msgid "Source Code Encoding" -msgstr "" +msgstr "کدگذاری منبع" #: ../../tutorial/interpreter.rst:132 +#, fuzzy msgid "" "By default, Python source files are treated as encoded in UTF-8. In that " "encoding, characters of most languages in the world can be used " -"simultaneously in string literals, identifiers and comments --- although the " -"standard library only uses ASCII characters for identifiers, a convention " +"simultaneously in string literals, identifiers and comments --- although the" +" standard library only uses ASCII characters for identifiers, a convention " "that any portable code should follow. To display all these characters " -"properly, your editor must recognize that the file is UTF-8, and it must use " -"a font that supports all the characters in the file." +"properly, your editor must recognize that the file is UTF-8, and it must use" +" a font that supports all the characters in the file." msgstr "" +"به طور پیش فرض، فایل های منبع پایتون به عنوان کدگذاری شده با UTF-8 در نظر " +"گرفته می شوند. در این کدگذاری، حروف اکثر زبان های جهان می توانند به طور " +"همزمان در \"string literals\"، شناسه ها و توضیحات استفاده شوند --- اگرچه " +"کتابخانه استاندارد تنها از کاراکترهای ASCII برای شناسه ها استفاده می کند، که" +" هر کدی که قابل حمل باشد باید این قاعده را رعایت کند. برای نمایش صحیح همه " +"این کاراکترها، ویرایشگر شما باید تشخیص دهد که فایل UTF-8 است و باید از فونتی" +" که از همه کاراکترهای موجود در فایل پشتیبانی می کند، استفاده نماید." #: ../../tutorial/interpreter.rst:140 +#, fuzzy msgid "" "To declare an encoding other than the default one, a special comment line " "should be added as the *first* line of the file. The syntax is as follows::" msgstr "" +"برای اعلام یک کدگذاری (encoding) غیر از پیش فرض، یک خط نظر خاص باید به عنوان" +" خط *first* فایل اضافه شود. نحو به صورت زیر است:" #: ../../tutorial/interpreter.rst:143 +#, fuzzy msgid "# -*- coding: encoding -*-" msgstr "" +"متن داده شده برای ترجمه حاوی محتوای مستندات رسمی پایتون نیست. لطفاً یک بخش " +"مشخص و واقعی از مستندات پایتون را ارائه دهید تا بتوانم آن را به فارسی ترجمه " +"کنم." #: ../../tutorial/interpreter.rst:145 -msgid "where *encoding* is one of the valid :mod:`codecs` supported by Python." +#, fuzzy +msgid "" +"where *encoding* is one of the valid :mod:`codecs` supported by Python." msgstr "" +"که *encoding* یکی از :mod:`codecs` معتبر پشتیبانی شده توسط Python است." #: ../../tutorial/interpreter.rst:147 +#, fuzzy msgid "" "For example, to declare that Windows-1252 encoding is to be used, the first " "line of your source code file should be::" msgstr "" +"به عنوان مثال، برای اعلام اینکه از کدگذاری Windows-1252 استفاده می شود، " +"اولین خط فایل کد منبع شما باید به صورت زیر باشد::" #: ../../tutorial/interpreter.rst:150 +#, fuzzy msgid "# -*- coding: cp1252 -*-" msgstr "" +"متن خاصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه " +"ارائه دهید." #: ../../tutorial/interpreter.rst:152 +#, fuzzy msgid "" -"One exception to the *first line* rule is when the source code starts with " -"a :ref:`UNIX \"shebang\" line `. In this case, the encoding " +"One exception to the *first line* rule is when the source code starts with a" +" :ref:`UNIX \"shebang\" line `. In this case, the encoding " "declaration should be added as the second line of the file. For example::" msgstr "" +"یک استثناء برای قاعده *first line* زمانی است که کد منبع با یک :ref:`UNIX " +"\"shebang\" line ` شروع می شود. در این حالت، اعلامیه کدگذاری " +"باید به عنوان خط دوم فایل اضافه شود. برای مثال::" #: ../../tutorial/interpreter.rst:156 +#, fuzzy msgid "" "#!/usr/bin/env python3\n" "# -*- coding: cp1252 -*-" msgstr "" +"#!/usr/bin/env python3\n" +"# -*- coding: cp1252 -*-" #: ../../tutorial/interpreter.rst:160 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پانویس ها" #: ../../tutorial/interpreter.rst:161 +#, fuzzy msgid "" "On Unix, the Python 3.x interpreter is by default not installed with the " "executable named ``python``, so that it does not conflict with a " "simultaneously installed Python 2.x executable." msgstr "" +"در سیستم عامل یونیکس، مفسر Python 3.x به طور پیش فرض با فایل اجرایی با نام " +"``python`` نصب نمی شود، بنابراین با فایل اجرایی Python 2.x که همزمان نصب شده" +" است، تداخلی نداشته باشد." diff --git a/tutorial/introduction.po b/tutorial/introduction.po index f8a80c2f4..87cd20d07 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -14,82 +14,120 @@ msgstr "" "POT-Creation-Date: 2025-02-21 14:16+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/introduction.rst:5 +#, fuzzy msgid "An Informal Introduction to Python" -msgstr "" +msgstr "معرفی غیررسمی پایتون" #: ../../tutorial/introduction.rst:7 +#, fuzzy msgid "" "In the following examples, input and output are distinguished by the " "presence or absence of prompts (:term:`>>>` and :term:`...`): to repeat the " -"example, you must type everything after the prompt, when the prompt appears; " -"lines that do not begin with a prompt are output from the interpreter. Note " -"that a secondary prompt on a line by itself in an example means you must " +"example, you must type everything after the prompt, when the prompt appears;" +" lines that do not begin with a prompt are output from the interpreter. Note" +" that a secondary prompt on a line by itself in an example means you must " "type a blank line; this is used to end a multi-line command." msgstr "" +"در مثال های زیر، ورودی و خروجی با حضور یا عدم حضور اعلان ها (:term:`>>>` و " +":term:`...`) متمایز می شوند: برای تکرار مثال، باید همه چیز را پس از اعلان " +"زمانی که اعلان ظاهر می شود تایپ کنید؛ خطوطی که با اعلان آغاز نمی شوند، خروجی" +" از مفسر هستند. توجه داشته باشید که وجود اعلان ثانویه به تنهایی در خطی در یک" +" مثال به معنای این است که باید خط خالی تایپ کنید؛ این روش برای پایان دادن به" +" یک دستور چندخطی استفاده می شود." #: ../../tutorial/introduction.rst:16 +#, fuzzy msgid "" "You can toggle the display of prompts and output by clicking on ``>>>`` in " "the upper-right corner of an example box. If you hide the prompts and " "output for an example, then you can easily copy and paste the input lines " "into your interpreter." msgstr "" +"شما می توانید نمایش اعلان ها و خروجی ها را با کلیک بر روی ``>>>`` در گوشه ی " +"بالا-راست یک جعبه ی مثال تغییر دهید. اگر اعلان ها و خروجی ها را برای یک مثال" +" پنهان کنید، می توانید به راحتی خطوط ورودی را در مفسر خود کپی و جایگذاری " +"کنید." #: ../../tutorial/introduction.rst:23 +#, fuzzy msgid "" "Many of the examples in this manual, even those entered at the interactive " -"prompt, include comments. Comments in Python start with the hash character, " -"``#``, and extend to the end of the physical line. A comment may appear at " -"the start of a line or following whitespace or code, but not within a string " -"literal. A hash character within a string literal is just a hash character. " -"Since comments are to clarify code and are not interpreted by Python, they " -"may be omitted when typing in examples." -msgstr "" +"prompt, include comments. Comments in Python start with the hash character," +" ``#``, and extend to the end of the physical line. A comment may appear at" +" the start of a line or following whitespace or code, but not within a " +"string literal. A hash character within a string literal is just a hash " +"character. Since comments are to clarify code and are not interpreted by " +"Python, they may be omitted when typing in examples." +msgstr "" +"بسیاری از مثال ها در این راهنما، حتی آن هایی که در مفسر تعاملی وارد شده اند،" +" شامل توضیحات هستند. در پایتون، توضیحات با کاراکتر هَش، ``#``، آغاز می شوند " +"و تا انتهای خط فیزیکی ادامه پیدا می کنند. یک توضیح می تواند در ابتدای یک خط " +"یا بعد از فاصله گذاری یا کد ظاهر شود، اما نه داخل یک رشته متنی. یک کاراکتر " +"هَش داخل یک رشته متنی تنها یک کاراکتر هَش محسوب می شود. از آنجا که توضیحات " +"برای شفاف سازی کد نوشته شده اند و توسط پایتون تفسیر نمی شوند، می توان آن ها " +"را هنگام تایپ مثال ها حذف کرد." #: ../../tutorial/introduction.rst:31 +#, fuzzy msgid "Some examples::" -msgstr "" +msgstr "برخی مثال ها::" #: ../../tutorial/introduction.rst:33 +#, fuzzy msgid "" "# this is the first comment\n" "spam = 1 # and this is the second comment\n" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" +"# این اولین کامنت است\n" +"spam = 1 # و این کامنت دوم است\n" +" # ... و اکنون کامنت سوم!\n" +"text = \"# این یک کامنت نیست، زیرا داخل کوتیشن است.\"" #: ../../tutorial/introduction.rst:42 +#, fuzzy msgid "Using Python as a Calculator" -msgstr "" +msgstr "استفاده از پایتون به عنوان یک ماشین حساب" #: ../../tutorial/introduction.rst:44 +#, fuzzy msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" msgstr "" +"بیایید چند دستور ساده Python را امتحان کنیم. مترجم را اجرا کرده و منتظر " +"درخواست اولیه، ``>>>`` بمانید. (این کار نباید مدت زیادی طول بکشد.)" #: ../../tutorial/introduction.rst:51 +#, fuzzy msgid "Numbers" -msgstr "" +msgstr "اعداد" #: ../../tutorial/introduction.rst:53 +#, fuzzy msgid "" "The interpreter acts as a simple calculator: you can type an expression at " "it and it will write the value. Expression syntax is straightforward: the " "operators ``+``, ``-``, ``*`` and ``/`` can be used to perform arithmetic; " "parentheses (``()``) can be used for grouping. For example::" msgstr "" +"مفسر به عنوان یک ماشین حساب ساده عمل می کند: شما می توانید یک عبارت را وارد " +"کنید و آن مقدار را به شما نشان می دهد. نحو عبارات به سادگی است: عملگرهای " +"```+```، ```-```، ```*``` و ```/``` می توانند برای انجام محاسبات ریاضی " +"استفاده شوند؛ پرانتزها ```()``` می توانند برای گروه بندی استفاده شوند. به " +"عنوان مثال:" #: ../../tutorial/introduction.rst:59 +#, fuzzy msgid "" ">>> 2 + 2\n" "4\n" @@ -100,22 +138,39 @@ msgid "" ">>> 8 / 5 # division always returns a floating-point number\n" "1.6" msgstr "" +">>> 2 + 2\n" +"4\n" +">>> 50 - 5*6\n" +"20\n" +">>> (50 - 5*6) / 4\n" +"5.0\n" +">>> 8 / 5 # تقسیم همیشه یک عدد اعشاری برمی گرداند\n" +"1.6" #: ../../tutorial/introduction.rst:68 +#, fuzzy msgid "" "The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " -"ones with a fractional part (e.g. ``5.0``, ``1.6``) have type :class:" -"`float`. We will see more about numeric types later in the tutorial." +"ones with a fractional part (e.g. ``5.0``, ``1.6``) have type " +":class:`float`. We will see more about numeric types later in the tutorial." msgstr "" +"اعداد صحیح (به عنوان مثال، ``2``، ``4``، ``20``) از نوع :class:`int` هستند، " +"و آنهایی که دارای بخش اعشاری هستند (به عنوان مثال، ``5.0``، ``1.6``) از نوع " +":class:`float` می باشند. در ادامه آموزش، بیشتر با انواع عددی آشنا خواهیم شد." #: ../../tutorial/introduction.rst:72 +#, fuzzy msgid "" "Division (``/``) always returns a float. To do :term:`floor division` and " "get an integer result you can use the ``//`` operator; to calculate the " "remainder you can use ``%``::" msgstr "" +"تقسیم (``/``) همیشه یک عدد اعشاری بازمی گرداند. برای انجام :term:`floor " +"division` و دریافت یک نتیجه صحیح می توانید از عملگر ``//`` استفاده کنید؛ " +"برای محاسبه باقیمانده می توانید از ``%`` استفاده کنید::" #: ../../tutorial/introduction.rst:76 +#, fuzzy msgid "" ">>> 17 / 3 # classic division returns a float\n" "5.666666666666667\n" @@ -127,69 +182,113 @@ msgid "" ">>> 5 * 3 + 2 # floored quotient * divisor + remainder\n" "17" msgstr "" +"```python\n" +">>> 17 / 3 # تقسیم کلاسیک نتیجه ای از نوع float برمی گرداند\n" +"5.666666666666667\n" +">>>\n" +">>> 17 // 3 # تقسیم به روش \"floor\" قسمت کسری را حذف می کند\n" +"5\n" +">>> 17 % 3 # عملگر % باقی مانده تقسیم را برمی گرداند\n" +"2\n" +">>> 5 * (divisor) + remainder\n" +"17\n" +"```" #: ../../tutorial/introduction.rst:86 +#, fuzzy msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" +"با استفاده از Python، می توان از عملگر ``**`` برای محاسبه توان ها استفاده " +"کرد [#]_:" #: ../../tutorial/introduction.rst:88 +#, fuzzy msgid "" ">>> 5 ** 2 # 5 squared\n" "25\n" ">>> 2 ** 7 # 2 to the power of 7\n" "128" msgstr "" +">>> 2 ** 7 # توان ۷ از ۲ \n" +"128" #: ../../tutorial/introduction.rst:93 +#, fuzzy msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" msgstr "" +"علامت مساوی (``=``) برای اختصاص دادن یک مقدار به یک متغیر استفاده می شود. پس" +" از آن، هیچ نتیجه ای پیش از درخواست تعاملی بعدی نمایش داده نمی شود::" #: ../../tutorial/introduction.rst:96 +#, fuzzy msgid "" ">>> width = 20\n" ">>> height = 5 * 9\n" ">>> width * height\n" "900" msgstr "" +">>> عرض = 20\n" +">>> ارتفاع = 5 * 9\n" +">>> width * ارتفاع\n" +"900" #: ../../tutorial/introduction.rst:101 +#, fuzzy msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" msgstr "" +"اگر یک متغیر \"تعریف\" نشده باشد (مقداری به آن اختصاص داده نشده باشد)، تلاش " +"برای استفاده از آن به شما خطا می دهد::" #: ../../tutorial/introduction.rst:104 +#, fuzzy msgid "" ">>> n # try to access an undefined variable\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" "NameError: name 'n' is not defined" msgstr "" +">>> n # تلاش برای دسترسی به یک متغیر تعریف نشده\n" +"آخرین بازگشت (آخرین فراخوانی) به شرح زیر است:\n" +" پرونده \"\", خط 1، در \n" +"NameError: نام 'n' تعریف نشده است" #: ../../tutorial/introduction.rst:109 +#, fuzzy msgid "" -"There is full support for floating point; operators with mixed type operands " -"convert the integer operand to floating point::" +"There is full support for floating point; operators with mixed type operands" +" convert the integer operand to floating point::" msgstr "" +"پشتیبانی کامل از اعداد شناور وجود دارد؛ عملگرها با عملوندهای ترکیبی نوع، " +"عملوند عدد صحیح را به نقطه شناور تبدیل می کنند::" #: ../../tutorial/introduction.rst:112 +#, fuzzy msgid "" ">>> 4 * 3.75 - 1\n" "14.0" msgstr "" +"```>>> 4 * 3.75 - 1```\n" +"```14.0```" #: ../../tutorial/introduction.rst:115 +#, fuzzy msgid "" -"In interactive mode, the last printed expression is assigned to the variable " -"``_``. This means that when you are using Python as a desk calculator, it " +"In interactive mode, the last printed expression is assigned to the variable" +" ``_``. This means that when you are using Python as a desk calculator, it " "is somewhat easier to continue calculations, for example::" msgstr "" +"در حالت تعاملی، آخرین عبارتی که چاپ شده به متغیر ```_``` اختصاص داده می شود." +" این به این معناست که زمانی که از پایتون به عنوان یک ماشین حساب رومیزی " +"استفاده می کنید، ادامه محاسبات تا حدودی ساده تر می شود، برای مثال::" #: ../../tutorial/introduction.rst:119 +#, fuzzy msgid "" ">>> tax = 12.5 / 100\n" ">>> price = 100.50\n" @@ -200,43 +299,74 @@ msgid "" ">>> round(_, 2)\n" "113.06" msgstr "" +"```python\n" +">>> tax = 12.5 / 100\n" +">>> price = 100.50\n" +">>> price * tax\n" +"12.5625\n" +">>> price + _\n" +"113.0625\n" +">>> round(_, 2)\n" +"113.06\n" +"```" #: ../../tutorial/introduction.rst:128 +#, fuzzy msgid "" "This variable should be treated as read-only by the user. Don't explicitly " -"assign a value to it --- you would create an independent local variable with " -"the same name masking the built-in variable with its magic behavior." +"assign a value to it --- you would create an independent local variable with" +" the same name masking the built-in variable with its magic behavior." msgstr "" +"این متغیر باید توسط کاربر به صورت فقط خواندنی در نظر گرفته شود. به طور صریح " +"به آن مقداری تخصیص ندهید --- در غیر این صورت، یک متغیر محلی مستقل با همان " +"نام ایجاد می کنید که متغیر داخلی با رفتار جادویی اش را پنهان می کند." #: ../../tutorial/introduction.rst:132 +#, fuzzy msgid "" "In addition to :class:`int` and :class:`float`, Python supports other types " -"of numbers, such as :class:`~decimal.Decimal` and :class:`~fractions." -"Fraction`. Python also has built-in support for :ref:`complex numbers " -"`, and uses the ``j`` or ``J`` suffix to indicate the " -"imaginary part (e.g. ``3+5j``)." +"of numbers, such as :class:`~decimal.Decimal` and " +":class:`~fractions.Fraction`. Python also has built-in support for " +":ref:`complex numbers `, and uses the ``j`` or ``J`` suffix to" +" indicate the imaginary part (e.g. ``3+5j``)." msgstr "" +"علاوه بر :class:`int` و :class:`float`، پایتون انواع دیگری از اعداد را نیز " +"پشتیبانی می کند، مانند :class:`~decimal.Decimal` و " +":class:`~fractions.Fraction`. پایتون همچنین پشتیبانی داخلی برای " +":ref:`complex numbers ` دارد و از پسوند ``j`` یا ``J`` برای " +"نشان دادن بخش موهومی استفاده می کند (مثلاً ``3+5j``)." #: ../../tutorial/introduction.rst:142 +#, fuzzy msgid "Text" -msgstr "" +msgstr "متن" #: ../../tutorial/introduction.rst:144 +#, fuzzy msgid "" "Python can manipulate text (represented by type :class:`str`, so-called " "\"strings\") as well as numbers. This includes characters \"``!``\", words " "\"``rabbit``\", names \"``Paris``\", sentences \"``Got your back.``\", etc. " -"\"``Yay! :)``\". They can be enclosed in single quotes (``'...'``) or double " -"quotes (``\"...\"``) with the same result [#]_." +"\"``Yay! :)``\". They can be enclosed in single quotes (``'...'``) or double" +" quotes (``\"...\"``) with the same result [#]_." msgstr "" +"پایتون می تواند متن (که با نوع :class:`str`، به اصطلاح \"رشته ها\" نشان داده" +" می شود) و همچنین اعداد را مدیریت کند. این شامل کاراکترها \"``!``\"، کلمات " +"\"``rabbit``\"، نام ها \"``Paris``\"، جملات \"``Got your back.``\"، و غیره " +"\"``Yay! :)``\" می شود. آن ها می توانند درون نقل قول های تکی (``'...'``) یا " +"نقل قول های دوتایی (``\"...\"``) قرار گیرند و نتیجه یکسانی حاصل می شود [#]_." #: ../../tutorial/introduction.rst:157 +#, fuzzy msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" msgstr "" +"برای نقل قول از یک نقل قول، باید آن را با پیشوند ``\\`` \"فرار\" دهیم. به " +"طور متناوب، می توانیم از نوع دیگری از علامت های نقل قول استفاده کنیم::" #: ../../tutorial/introduction.rst:160 +#, fuzzy msgid "" ">>> 'doesn\\'t' # use \\' to escape the single quote...\n" "\"doesn't\"\n" @@ -249,34 +379,59 @@ msgid "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" msgstr "" +">>> 'doesn\\'t' # برای فرار از نقل قول تک از \\' استفاده کنید...\n" +"\"doesn't\"\n" +">>> \"doesn't\" # ...یا به جای آن از نقل قول دوتایی استفاده کنید\n" +"\"doesn't\"\n" +">>> '\"Yes,\" they said.'\n" +"'\"Yes,\" they said.'\n" +">>> \"\\\"Yes,\\\" they said.\"\n" +"'\"Yes,\" they said.'\n" +">>> '\"Isn\\'t,\" they said.'\n" +"'\"Isn\\'t,\" they said.'" #: ../../tutorial/introduction.rst:171 +#, fuzzy msgid "" "In the Python shell, the string definition and output string can look " "different. The :func:`print` function produces a more readable output, by " "omitting the enclosing quotes and by printing escaped and special " "characters::" msgstr "" +"در پوسته پایتون، تعریف رشته و خروجی رشته می تواند متفاوت به نظر برسد. تابع " +":func:`print` خروجی خواناتری تولید می کند، با حذف نقل قول های محصور کننده و " +"چاپ نکردن کاراکترهای اکسکیپ شده و خاص:" #: ../../tutorial/introduction.rst:175 +#, fuzzy msgid "" ">>> s = 'First line.\\nSecond line.' # \\n means newline\n" ">>> s # without print(), special characters are included in the string\n" "'First line.\\nSecond line.'\n" -">>> print(s) # with print(), special characters are interpreted, so \\n " -"produces new line\n" +">>> print(s) # with print(), special characters are interpreted, so \\n produces new line\n" "First line.\n" "Second line." msgstr "" +">>> s = 'خط اول.\\nخط دوم.' # \\n به معنای خط جدید است\n" +">>> s # بدون print()، کاراکترهای ویژه داخل رشته باقی می مانند\n" +"'خط اول.\\nخط دوم.'\n" +">>> print(s) # با print()، کاراکترهای ویژه تفسیر می شوند، بنابراین \\n خط جدید تولید می کند\n" +"خط اول.\n" +"خط دوم." #: ../../tutorial/introduction.rst:182 +#, fuzzy msgid "" -"If you don't want characters prefaced by ``\\`` to be interpreted as special " -"characters, you can use *raw strings* by adding an ``r`` before the first " +"If you don't want characters prefaced by ``\\`` to be interpreted as special" +" characters, you can use *raw strings* by adding an ``r`` before the first " "quote::" msgstr "" +"اگر نمی خواهید کاراکترهایی که با ``\\`` آغاز می شوند به عنوان کاراکترهای " +"ویژه تفسیر شوند، می توانید از *raw strings* استفاده کنید با اضافه کردن ``r``" +" قبل از اولین علامت نقل قول::" #: ../../tutorial/introduction.rst:186 +#, fuzzy msgid "" ">>> print('C:\\some\\name') # here \\n means newline!\n" "C:\\some\n" @@ -284,15 +439,27 @@ msgid "" ">>> print(r'C:\\some\\name') # note the r before the quote\n" "C:\\some\\name" msgstr "" +"```python\n" +">>> print('C:\\some\\name') # در اینجا \\n به معنای شروع خط جدید است!\n" +"C:\\some\n" +"ame\n" +">>> print(r'C:\\some\\name') # به \"r\" قبل از نقل قول توجه کنید\n" +"C:\\some\\name\n" +"```" #: ../../tutorial/introduction.rst:192 +#, fuzzy msgid "" "There is one subtle aspect to raw strings: a raw string may not end in an " "odd number of ``\\`` characters; see :ref:`the FAQ entry ` for more information and workarounds." msgstr "" +"نکته ای ظریف درباره ی رشته های خام وجود دارد: یک رشته ی خام نمی تواند با " +"تعداد فردی از کاراکترهای ``\\`` خاتمه یابد؛ برای اطلاعات بیشتر و راه حل ها " +"به :ref:`the FAQ entry ` مراجعه کنید." #: ../../tutorial/introduction.rst:197 +#, fuzzy msgid "" "String literals can span multiple lines. One way is using triple-quotes: " "``\"\"\"...\"\"\"`` or ``'''...'''``. End-of-line characters are " @@ -300,8 +467,13 @@ msgid "" "adding a ``\\`` at the end of the line. In the following example, the " "initial newline is not included::" msgstr "" +"رشته های متنی می توانند در چندین خط قرار بگیرند. یکی از راه ها استفاده از سه" +" علامت نقل قول: ``\"\"\"...\"\"\"`` یا ``'''...'''`` است. کاراکترهای انتهای " +"خط به طور خودکار در رشته گنجانده می شوند، اما با افزودن ``\\`` در انتهای خط " +"می توان از این کار جلوگیری کرد. در مثال زیر، خط جدید اولیه شامل نمی شود::" #: ../../tutorial/introduction.rst:203 +#, fuzzy msgid "" ">>> print(\"\"\"\\\n" "... Usage: thingy [OPTIONS]\n" @@ -314,51 +486,87 @@ msgid "" "\n" ">>>" msgstr "" +"```\n" +">>> print(\"\"\"\\\n" +"... Usage: thingy [OPTIONS]\n" +"... -h Display this usage message\n" +"... -H hostname Hostname to connect to\n" +"... \"\"\")\n" +"نحوه استفاده: thingy [OPTIONS]\n" +" -h نمایش این پیام راهنما\n" +" -H hostname نام میزبان برای اتصال به\n" +"```" #: ../../tutorial/introduction.rst:214 +#, fuzzy msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" msgstr "" +"رشته ها می توانند با عملگر ``+`` به هم چسبانده شوند و با ``*`` تکرار شوند::" #: ../../tutorial/introduction.rst:217 +#, fuzzy msgid "" ">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" +"```python\n" +">>> # 3 بار 'un'، به دنبال آن 'ium'\n" +">>> 3 * 'un' + 'ium'\n" +"'unununium'\n" +"```" #: ../../tutorial/introduction.rst:221 +#, fuzzy msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" +"دو یا چند *string literals* (یعنی آن هایی که داخل کوتیشن ها قرار گرفته اند) " +"در کنار یکدیگر به طور خودکار به هم متصل می شوند. ::" #: ../../tutorial/introduction.rst:224 +#, fuzzy msgid "" ">>> 'Py' 'thon'\n" "'Python'" msgstr "" +">>> 'Py' 'thon'\n" +"'Python'" #: ../../tutorial/introduction.rst:227 +#, fuzzy msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" +"این ویژگی به خصوص زمانی مفید است که بخواهید رشته های طولانی را بشکنید::" #: ../../tutorial/introduction.rst:229 +#, fuzzy msgid "" ">>> text = ('Put several strings within parentheses '\n" "... 'to have them joined together.')\n" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" msgstr "" +"```python\n" +">>> text = ('چندین رشته را درون پرانتز قرار دهید '\n" +"... 'تا به هم پیوسته شوند.')\n" +">>> text\n" +"'چندین رشته را درون پرانتز قرار دهید تا به هم پیوسته شوند.'\n" +"```" #: ../../tutorial/introduction.rst:234 +#, fuzzy msgid "" -"This only works with two literals though, not with variables or expressions::" -msgstr "" +"This only works with two literals though, not with variables or " +"expressions::" +msgstr "این تنها با دو ثابت کار می کند، نه با متغیرها یا عبارت ها::" #: ../../tutorial/introduction.rst:236 +#, fuzzy msgid "" ">>> prefix = 'Py'\n" ">>> prefix 'thon' # can't concatenate a variable and a string literal\n" @@ -372,26 +580,49 @@ msgid "" " ^^^^^\n" "SyntaxError: invalid syntax" msgstr "" +">>> prefix = 'Py'\n" +">>> prefix 'thon' # نمی توان یک متغیر و یک رشته ی ثابت را به هم متصل کرد\n" +" File \"\", line 1\n" +" prefix 'thon'\n" +" ^^^^^^\n" +"SyntaxError: خطای نحوی نامعتبر\n" +">>> ('un' * 3) 'ium'\n" +" File \"\", line 1\n" +" ('un' * 3) 'ium'\n" +" ^^^^^\n" +"SyntaxError: خطای نحوی نامعتبر" #: ../../tutorial/introduction.rst:248 +#, fuzzy msgid "" -"If you want to concatenate variables or a variable and a literal, use ``+``::" +"If you want to concatenate variables or a variable and a literal, use " +"``+``::" msgstr "" +"اگر می خواهید متغیرها یا یک متغیر و یک مقدار ثابت را به هم متصل کنید، از " +"``+`` استفاده کنید::" #: ../../tutorial/introduction.rst:250 +#, fuzzy msgid "" ">>> prefix + 'thon'\n" "'Python'" msgstr "" +">>> prefix + 'thon'\n" +"'پایتون'" #: ../../tutorial/introduction.rst:253 +#, fuzzy msgid "" "Strings can be *indexed* (subscripted), with the first character having " -"index 0. There is no separate character type; a character is simply a string " -"of size one::" +"index 0. There is no separate character type; a character is simply a string" +" of size one::" msgstr "" +"رشته ها می توانند به صورت *indexed* (دارای اندیس) باشند، به طوری که اولین " +"کاراکتر دارای اندیس 0 است. نوع کاراکتر جداگانه ای وجود ندارد؛ یک کاراکتر به " +"سادگی رشته ای با اندازه یک است." #: ../../tutorial/introduction.rst:257 +#, fuzzy msgid "" ">>> word = 'Python'\n" ">>> word[0] # character in position 0\n" @@ -399,13 +630,23 @@ msgid "" ">>> word[5] # character in position 5\n" "'n'" msgstr "" +"```\n" +">>> word = 'Python'\n" +">>> word[0] # کاراکتر در موقعیت 0\n" +"'P'\n" +">>> word[5] # کاراکتر در موقعیت 5\n" +"'n'\n" +"```" #: ../../tutorial/introduction.rst:263 +#, fuzzy msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" +"ایندکس ها ممکن است اعداد منفی نیز باشند و شمارش را از سمت راست شروع کنند::" #: ../../tutorial/introduction.rst:265 +#, fuzzy msgid "" ">>> word[-1] # last character\n" "'n'\n" @@ -414,33 +655,60 @@ msgid "" ">>> word[-6]\n" "'P'" msgstr "" +"```\n" +">>> word[-1] # آخرین کاراکتر\n" +"'n'\n" +">>> word[-2] # دومین کاراکتر از آخر\n" +"'o'\n" +">>> word[-6]\n" +"'P'\n" +"```" #: ../../tutorial/introduction.rst:272 +#, fuzzy msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" +"توجه داشته باشید که چون -0 با 0 برابر است، اندیس های منفی از -1 شروع می " +"شوند." #: ../../tutorial/introduction.rst:274 +#, fuzzy msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " "used to obtain individual characters, *slicing* allows you to obtain a " "substring::" msgstr "" +"علاوه بر ایندکس گذاری، ``*slicing*`` نیز پشتیبانی می شود. در حالی که ایندکس " +"گذاری برای به دست آوردن کاراکترهای تکی استفاده می شود، ``*slicing*`` به شما " +"امکان می دهد یک زیررشته به دست آورید::" #: ../../tutorial/introduction.rst:277 +#, fuzzy msgid "" ">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" "'Py'\n" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" msgstr "" +"```python\n" +">>> word[0:2] # کاراکترها از موقعیت 0 (شامل) تا 2 (غیرشامل)\n" +"'Py'\n" +">>> word[2:5] # کاراکترها از موقعیت 2 (شامل) تا 5 (غیرشامل)\n" +"'tho'\n" +"```" #: ../../tutorial/introduction.rst:282 +#, fuzzy msgid "" -"Slice indices have useful defaults; an omitted first index defaults to zero, " -"an omitted second index defaults to the size of the string being sliced. ::" +"Slice indices have useful defaults; an omitted first index defaults to zero," +" an omitted second index defaults to the size of the string being sliced. ::" msgstr "" +"ایندکس های برش دارای مقادیر پیش فرض مفیدی هستند؛ اگر ایندکس اول حذف شود، " +"مقدار پیش فرض آن صفر است و اگر ایندکس دوم حذف شود، مقدار پیش فرض آن اندازه " +"رشته ای است که در حال برش است." #: ../../tutorial/introduction.rst:285 +#, fuzzy msgid "" ">>> word[:2] # character from the beginning to position 2 (excluded)\n" "'Py'\n" @@ -449,30 +717,54 @@ msgid "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" msgstr "" +"```python\n" +">>> word[:2] # کاراکتر از ابتدای رشته تا مکان 2 (بدون در نظر گرفتن مکان 2)\n" +"'Py'\n" +">>> word[4:] # کاراکترها از مکان 4 (با در نظر گرفتن مکان 4) تا انتها\n" +"'on'\n" +">>> word[-2:] # کاراکترها از دومین مکان آخر (با در نظر گرفتن مکان) تا انتها\n" +"'on'\n" +"```" #: ../../tutorial/introduction.rst:292 +#, fuzzy msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" +"توجه کنید چگونه همیشه نقطه شروع شامل می شود و نقطه پایان همیشه مستثنی است. " +"این اطمینان را می دهد که ``s[:i] + s[i:]`` همیشه برابر با ``s`` است::" #: ../../tutorial/introduction.rst:295 +#, fuzzy msgid "" ">>> word[:2] + word[2:]\n" "'Python'\n" ">>> word[:4] + word[4:]\n" "'Python'" msgstr "" +"```python\n" +">>> word[:2] + word[2:]\n" +"'پایتون'\n" +">>> word[:4] + word[4:]\n" +"'پایتون'\n" +"```" #: ../../tutorial/introduction.rst:300 +#, fuzzy msgid "" "One way to remember how slices work is to think of the indices as pointing " "*between* characters, with the left edge of the first character numbered 0. " "Then the right edge of the last character of a string of *n* characters has " "index *n*, for example::" msgstr "" +"یکی از راه های به خاطر سپردن نحوه عملکرد قطعه ها این است که شاخص ها را به " +"عنوان اشاره گر به کاراکترها در نظر بگیرید، به طوری که لبه چپ اولین کاراکتر " +"شماره ۰ باشد. سپس لبه راست آخرین کاراکتر یک رشته با *n* کاراکتر، دارای شاخص " +"*n* خواهد بود، برای مثال:" #: ../../tutorial/introduction.rst:305 +#, fuzzy msgid "" " +---+---+---+---+---+---+\n" " | P | y | t | h | o | n |\n" @@ -480,55 +772,89 @@ msgid "" " 0 1 2 3 4 5 6\n" "-6 -5 -4 -3 -2 -1" msgstr "" +"```\n" +"+---+---+---+---+---+---+\n" +"| P | y | t | h | o | n |\n" +"+---+---+---+---+---+---+\n" +" 0 1 2 3 4 5 6\n" +"-6 -5 -4 -3 -2 -1\n" +"```" #: ../../tutorial/introduction.rst:311 +#, fuzzy msgid "" "The first row of numbers gives the position of the indices 0...6 in the " "string; the second row gives the corresponding negative indices. The slice " -"from *i* to *j* consists of all characters between the edges labeled *i* and " -"*j*, respectively." +"from *i* to *j* consists of all characters between the edges labeled *i* and" +" *j*, respectively." msgstr "" +"ردیف اول اعداد، موقعیت اندیس های 0...6 را در رشته نشان می دهد؛ ردیف دوم " +"اندیس های منفی متناظر را نشان می دهد. برش از *i* تا *j* شامل همه کاراکترهای " +"بین لبه های با برچسب *i* و *j* است." #: ../../tutorial/introduction.rst:316 +#, fuzzy msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " "``word[1:3]`` is 2." msgstr "" +"برای شاخص های غیرمنفی، طول یک برش برابر با تفاضل شاخص ها است، اگر هر دو در " +"محدوده باشند. برای مثال، طول ``word[1:3]`` برابر با ۲ است." #: ../../tutorial/introduction.rst:320 +#, fuzzy msgid "Attempting to use an index that is too large will result in an error::" -msgstr "" +msgstr "استفاده از ایندکسی که بیش از حد بزرگ است، منجر به بروز خطا خواهد شد::" #: ../../tutorial/introduction.rst:322 +#, fuzzy msgid "" ">>> word[42] # the word only has 6 characters\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" "IndexError: string index out of range" msgstr "" +">>> word[42] # رشته تنها ۶ کاراکتر دارد\n" +"تراسبک (آخرین تماس اخیر):\n" +" فایل \"\"، خط ۱، در \n" +"IndexError: اندیس رشته خارج از محدوده است" #: ../../tutorial/introduction.rst:327 +#, fuzzy msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" msgstr "" +"با این حال، ایندکس های برش که خارج از محدوده هستند، به خوبی هنگامی که برای " +"برش استفاده می شوند، مدیریت می شوند::" #: ../../tutorial/introduction.rst:330 +#, fuzzy msgid "" ">>> word[4:42]\n" "'on'\n" ">>> word[42:]\n" "''" msgstr "" +"```\n" +">>> word[4:42]\n" +"'on'\n" +">>> word[42:]\n" +"''\n" +"```" #: ../../tutorial/introduction.rst:335 +#, fuzzy msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" msgstr "" +"رشته های پایتون نمی توانند تغییر کنند --- آنها :term:`immutable` هستند. " +"بنابراین، اختصاص دادن به یک موقعیت ایندکس شده در رشته منجر به خطا می شود::" #: ../../tutorial/introduction.rst:338 +#, fuzzy msgid "" ">>> word[0] = 'J'\n" "Traceback (most recent call last):\n" @@ -539,102 +865,169 @@ msgid "" " File \"\", line 1, in \n" "TypeError: 'str' object does not support item assignment" msgstr "" +"```>>> word[0] = 'J'\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: 'str' object does not support item assignment\n" +">>> word[2:] = 'py'\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: 'str' object does not support item assignment\n" +"```" #: ../../tutorial/introduction.rst:347 +#, fuzzy msgid "If you need a different string, you should create a new one::" -msgstr "" +msgstr "اگر به رشته ای متفاوت نیاز دارید، باید یک رشته جدید ایجاد کنید::" #: ../../tutorial/introduction.rst:349 +#, fuzzy msgid "" ">>> 'J' + word[1:]\n" "'Jython'\n" ">>> word[:2] + 'py'\n" "'Pypy'" msgstr "" +"```plaintext\n" +">>> 'J' + word[1:]\n" +"'Jython'\n" +">>> word[:2] + 'py'\n" +"'Pypy'\n" +"```" #: ../../tutorial/introduction.rst:354 +#, fuzzy msgid "The built-in function :func:`len` returns the length of a string::" -msgstr "" +msgstr "تابع داخلی :func:`len` طول یک رشته را برمی گرداند::" #: ../../tutorial/introduction.rst:356 +#, fuzzy msgid "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" "34" msgstr "" +"```python\n" +">>> s = 'supercalifragilisticexpialidocious'\n" +">>> len(s)\n" +"34\n" +"```" #: ../../tutorial/introduction.rst:363 +#, fuzzy msgid ":ref:`textseq`" msgstr "" +"متنی که برای ترجمه فرستاده اید قابل شناسایی نیست و به نظر نمی رسد بخشی از " +"مستندات رسمی پایتون باشد. لطفاً متن معتبر و خوانایی ارسال کنید." #: ../../tutorial/introduction.rst:364 +#, fuzzy msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" +"رشته ها مثال هایی از *sequence types* هستند و از عملیات های عمومی که توسط " +"این نوع ها پشتیبانی می شوند، حمایت می کنند." #: ../../tutorial/introduction.rst:367 +#, fuzzy msgid ":ref:`string-methods`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را ارائه " +"دهید." #: ../../tutorial/introduction.rst:368 +#, fuzzy msgid "" "Strings support a large number of methods for basic transformations and " "searching." msgstr "" +"رشته ها از تعداد زیادی متد برای تغییرات پایه ای و جستجو پشتیبانی می کنند." #: ../../tutorial/introduction.rst:371 +#, fuzzy msgid ":ref:`f-strings`" msgstr "" +"متن ارائه شده به نظر عبارتی تصادفی یا کد نامعتبر است که به نظر نمی رسد معنی " +"خاصی داشته باشد. اگر نیاز به ترجمه متنی دارید، لطفاً متن معتبر و خوانا ارسال" +" کنید." #: ../../tutorial/introduction.rst:372 +#, fuzzy msgid "String literals that have embedded expressions." -msgstr "" +msgstr "رشته های متنی که شامل عبارت های درونی هستند." #: ../../tutorial/introduction.rst:374 +#, fuzzy msgid ":ref:`formatstrings`" msgstr "" +"متن ارائه شده معتبر و قابل ترجمه نمی باشد. لطفاً متن قابل فهم و معتبر دیگری " +"را برای ترجمه ارسال کنید." #: ../../tutorial/introduction.rst:375 +#, fuzzy msgid "Information about string formatting with :meth:`str.format`." -msgstr "" +msgstr "اطلاعاتی درباره فرمت دهی رشته با :meth:`str.format`." #: ../../tutorial/introduction.rst:377 +#, fuzzy msgid ":ref:`old-string-formatting`" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " +"فارسی ارسال کنید." #: ../../tutorial/introduction.rst:378 +#, fuzzy msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." msgstr "" +"عملیات قالب بندی قدیمی که وقتی رشته ها به عنوان عملوند چپ از عملگر ```%``` " +"استفاده می شوند، فراخوانی می شوند، در اینجا با جزئیات بیشتری توصیف شده اند." #: ../../tutorial/introduction.rst:385 +#, fuzzy msgid "Lists" -msgstr "" +msgstr "لیست ها" #: ../../tutorial/introduction.rst:387 +#, fuzzy msgid "" -"Python knows a number of *compound* data types, used to group together other " -"values. The most versatile is the *list*, which can be written as a list of " -"comma-separated values (items) between square brackets. Lists might contain " -"items of different types, but usually the items all have the same type. ::" +"Python knows a number of *compound* data types, used to group together other" +" values. The most versatile is the *list*, which can be written as a list " +"of comma-separated values (items) between square brackets. Lists might " +"contain items of different types, but usually the items all have the same " +"type. ::" msgstr "" +"پایتون تعدادی نوع داده *compound* را می شناسد که برای گروه بندی سایر مقادیر " +"به کار می روند. پرکاربردترین آن ها *list* است که می تواند به صورت یک لیست از" +" مقادیر جدا شده با کاما (آیتم ها) بین کروشه نوشته شود. لیست ها ممکن است شامل" +" آیتم هایی با انواع مختلف باشند، اما معمولاً تمام آیتم ها از یک نوع هستند." #: ../../tutorial/introduction.rst:392 +#, fuzzy msgid "" ">>> squares = [1, 4, 9, 16, 25]\n" ">>> squares\n" "[1, 4, 9, 16, 25]" msgstr "" +"```python\n" +">>> مربعات = [۱، ۴، ۹، ۱۶، ۲۵]\n" +">>> مربعات\n" +"[۱، ۴، ۹، ۱۶، ۲۵]\n" +"```" #: ../../tutorial/introduction.rst:396 +#, fuzzy msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" +"مانند رشته ها (و تمام انواع داخلی دیگر :term:`sequence`)، لیست ها نیز می " +"توانند ایندکس گذاری و قطعه بندی شوند::" #: ../../tutorial/introduction.rst:399 +#, fuzzy msgid "" ">>> squares[0] # indexing returns the item\n" "1\n" @@ -643,24 +1036,38 @@ msgid "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" msgstr "" +">>> squares[0] # ایندکس کردن آیتم را برمی گرداند\n" +"1\n" +">>> squares[-1]\n" +"25\n" +">>> squares[-3:] # برش یک لیست جدید را برمی گرداند\n" +"[9, 16, 25]" #: ../../tutorial/introduction.rst:406 +#, fuzzy msgid "Lists also support operations like concatenation::" -msgstr "" +msgstr "لیست ها از عملیات هایی مانند الحاق نیز پشتیبانی می کنند:" #: ../../tutorial/introduction.rst:408 +#, fuzzy msgid "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" msgstr "" +"```>>> squares + [36, 49, 64, 81, 100]\n" +"[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]```" #: ../../tutorial/introduction.rst:411 +#, fuzzy msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" +"برخلاف رشته ها (strings) که :term:`immutable` هستند، لیست ها یک نوع " +":term:`mutable` می باشند، یعنی می توان محتوای آنها را تغییر داد:" #: ../../tutorial/introduction.rst:414 +#, fuzzy msgid "" ">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" ">>> 4 ** 3 # the cube of 4 is 64, not 65!\n" @@ -669,30 +1076,52 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125]" msgstr "" +"```python\n" +"کعب ها = [1، 8، 27، 65، 125] # چیزی اینجا اشتباه است\n" +"4 ** 3 # مکعب ۴ برابر است با 64، نه 65!\n" +"64\n" +"کعب ها[3] = 64 # جایگزینی مقدار اشتباه\n" +"کعب ها\n" +"[1، 8، 27، 64، 125]\n" +"```" #: ../../tutorial/introduction.rst:421 +#, fuzzy msgid "" -"You can also add new items at the end of the list, by using the :meth:`!list." -"append` *method* (we will see more about methods later)::" +"You can also add new items at the end of the list, by using the " +":meth:`!list.append` *method* (we will see more about methods later)::" msgstr "" +"شما می توانید با استفاده از :meth:`!list.append` *method* آیتم های جدیدی را " +"به انتهای لیست اضافه کنید (در ادامه با روش ها بیشتر آشنا خواهیم شد):" #: ../../tutorial/introduction.rst:424 +#, fuzzy msgid "" ">>> cubes.append(216) # add the cube of 6\n" ">>> cubes.append(7 ** 3) # and the cube of 7\n" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" +">>> cubes.append(216) # مکعب 6 را اضافه کنید\n" +">>> cubes.append(7 ** 3) # و مکعب 7 را اضافه کنید\n" +">>> cubes\n" +"[1, 8, 27, 64, 125, 216, 343]" #: ../../tutorial/introduction.rst:429 +#, fuzzy msgid "" "Simple assignment in Python never copies data. When you assign a list to a " "variable, the variable refers to the *existing list*. Any changes you make " "to the list through one variable will be seen through all other variables " "that refer to it.::" msgstr "" +"در پایتون، تخصیص ساده هرگز داده ها را کپی نمی کند. وقتی یک لیست را به یک " +"متغیر اختصاص می دهید، متغیر به *existing list* اشاره می کند. هر تغییری که در" +" لیست از طریق یک متغیر ایجاد کنید، در تمام متغیرهای دیگر که به آن اشاره می " +"کنند قابل مشاهده خواهد بود." #: ../../tutorial/introduction.rst:434 +#, fuzzy msgid "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" @@ -702,15 +1131,29 @@ msgid "" ">>> rgb\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" +"```python\n" +">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" +">>> rgba = rgb\n" +">>> id(rgb) == id(rgba) # آنها به یک شیء اشاره می کنند\n" +"True\n" +">>> rgba.append(\"Alph\")\n" +">>> rgb\n" +"[\"Red\", \"Green\", \"Blue\", \"Alph\"]\n" +"```" #: ../../tutorial/introduction.rst:442 +#, fuzzy msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a :ref:`shallow copy " "` of the list::" msgstr "" +"تمام عملیات برش یک لیست جدید که شامل عناصر درخواست شده است را برمی گردانند. " +"این به این معناست که برش زیر یک :ref:`shallow copy ` " +"از لیست را برمی گرداند::" #: ../../tutorial/introduction.rst:446 +#, fuzzy msgid "" ">>> correct_rgba = rgba[:]\n" ">>> correct_rgba[-1] = \"Alpha\"\n" @@ -719,14 +1162,26 @@ msgid "" ">>> rgba\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" +"```python\n" +">>> correct_rgba = rgba[:]\n" +">>> correct_rgba[-1] = \"Alpha\"\n" +">>> correct_rgba\n" +"[\"Red\", \"Green\", \"Blue\", \"Alpha\"]\n" +">>> rgba\n" +"[\"Red\", \"Green\", \"Blue\", \"Alph\"]\n" +"```" #: ../../tutorial/introduction.rst:453 +#, fuzzy msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" msgstr "" +"اختصاص به برش ها نیز ممکن است و این می تواند حتی اندازه ی لیست را تغییر دهد " +"یا آن را به طور کامل پاک کند::" #: ../../tutorial/introduction.rst:456 +#, fuzzy msgid "" ">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" ">>> letters\n" @@ -744,25 +1199,51 @@ msgid "" ">>> letters\n" "[]" msgstr "" +">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" +">>> letters\n" +"['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" +">>> # چند مقدار را جایگزین کنید\n" +">>> letters[2:5] = ['C', 'D', 'E']\n" +">>> letters\n" +"['a', 'b', 'C', 'D', 'E', 'f', 'g']\n" +">>> # حالا آن ها را حذف کنید\n" +">>> letters[2:5] = []\n" +">>> letters\n" +"['a', 'b', 'f', 'g']\n" +">>> # لیست را با جایگزینی تمام عناصر با یک لیست خالی پاک کنید\n" +">>> letters[:] = []\n" +">>> letters\n" +"[]" #: ../../tutorial/introduction.rst:472 +#, fuzzy msgid "The built-in function :func:`len` also applies to lists::" -msgstr "" +msgstr "تابع توکار :func:`len` همچنین به لیست ها اعمال می شود::" #: ../../tutorial/introduction.rst:474 +#, fuzzy msgid "" ">>> letters = ['a', 'b', 'c', 'd']\n" ">>> len(letters)\n" "4" msgstr "" +"```python\n" +">>> letters = ['a', 'b', 'c', 'd']\n" +">>> len(letters)\n" +"4\n" +"```" #: ../../tutorial/introduction.rst:478 +#, fuzzy msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" msgstr "" +"امکان قرار دادن لیست ها به صورت تو در تو (ایجاد لیست هایی که شامل لیست های " +"دیگر باشند) وجود دارد، به عنوان مثال:" #: ../../tutorial/introduction.rst:481 +#, fuzzy msgid "" ">>> a = ['a', 'b', 'c']\n" ">>> n = [1, 2, 3]\n" @@ -774,20 +1255,36 @@ msgid "" ">>> x[0][1]\n" "'b'" msgstr "" +">>> a = ['a', 'b', 'c']\n" +">>> n = [1, 2, 3]\n" +">>> x = [a, n]\n" +">>> x\n" +"[['a', 'b', 'c'], [1, 2, 3]]\n" +">>> x[0]\n" +"['a', 'b', 'c']\n" +">>> x[0][1]\n" +"'b'" #: ../../tutorial/introduction.rst:494 +#, fuzzy msgid "First Steps Towards Programming" -msgstr "" +msgstr "اولین گام ها به سوی برنامه نویسی" #: ../../tutorial/introduction.rst:496 +#, fuzzy msgid "" "Of course, we can use Python for more complicated tasks than adding two and " "two together. For instance, we can write an initial sub-sequence of the " "`Fibonacci series `_ as " "follows::" msgstr "" +"البته، می توانیم از پایتون برای انجام وظایف پیچیده تر از جمع کردن دو و دو " +"استفاده کنیم. به عنوان مثال، می توانیم یک زیر دنباله اولیه از \"`Fibonacci " +"series `_\" به صورت زیر " +"بنویسیم::" #: ../../tutorial/introduction.rst:501 +#, fuzzy msgid "" ">>> # Fibonacci series:\n" ">>> # the sum of two elements defines the next\n" @@ -804,12 +1301,28 @@ msgid "" "5\n" "8" msgstr "" +">>> # دنباله فیبوناچی:\n" +">>> # مجموع دو عنصر، عنصر بعدی را تعریف می کند\n" +">>> a, b = 0, 1\n" +">>> while a < 10:\n" +"... print(a)\n" +"... a, b = b, a+b\n" +"...\n" +"0\n" +"1\n" +"1\n" +"2\n" +"3\n" +"5\n" +"8" #: ../../tutorial/introduction.rst:516 +#, fuzzy msgid "This example introduces several new features." -msgstr "" +msgstr "این مثال چندین ویژگی جدید را معرفی می کند." #: ../../tutorial/introduction.rst:518 +#, fuzzy msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " "``b`` simultaneously get the new values 0 and 1. On the last line this is " @@ -817,8 +1330,13 @@ msgid "" "all evaluated first before any of the assignments take place. The right-" "hand side expressions are evaluated from the left to the right." msgstr "" +"خط اول شامل یک *multiple assignment* است: متغیرهای ``a`` و ``b`` به طور " +"همزمان مقادیر جدید ۰ و ۱ را دریافت می کنند. در خط آخر نیز از این استفاده می " +"شود که نشان می دهد ابتدا تمامی عبارات در سمت راست ارزیابی می شوند قبل از " +"اینکه هیچ تخصیصی انجام شود. عبارات سمت راست از چپ به راست ارزیابی می شوند." #: ../../tutorial/introduction.rst:524 +#, fuzzy msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " "10``) remains true. In Python, like in C, any non-zero integer value is " @@ -829,8 +1347,17 @@ msgid "" "than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" +"حلقه :keyword:`while` تا زمانی اجرا می شود که شرط (اینجا: ``a < 10``) برقرار" +" باشد. در پایتون، همانند زبان C، هر مقداری غیر از صفر به عنوان صحیح و صفر به" +" عنوان نادرست در نظر گرفته می شود. شرط می تواند یک رشته یا لیست نیز باشد، در" +" واقع هر دنباله ای که طول آن غیر از صفر باشد صحیح و دنباله های خالی نادرست " +"هستند. آزمایشی که در مثال استفاده شده، یک مقایسه ی ساده است. عملگرهای مقایسه" +" استاندارد همانند زبان C نوشته می شوند: ``<`` (کوچکتر از)، ``>`` (بزرگتر " +"از)، ``==`` (برابر با)، ``<=`` (کوچکتر یا برابر با)، ``>=`` (بزرگتر یا برابر" +" با) و ``!=`` (نامساوی)." #: ../../tutorial/introduction.rst:533 +#, fuzzy msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " "grouping statements. At the interactive prompt, you have to type a tab or " @@ -841,8 +1368,17 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" +"حلقه ی *body* به شکل *indented* است: تورفتگی در پایتون روشی برای گروه بندی " +"دستورات است. در محیط تعاملی، باید برای هر خط تورفتگی دار از تب یا فاصله " +"استفاده کنید. در عمل، ورودی های پیچیده تر برای پایتون را با یک ویرایشگر متن " +"آماده خواهید کرد؛ همه ی ویرایشگرهای متن مناسب دارای قابلیت تورفتگی خودکار " +"هستند. زمانی که یک عبارت مرکب به صورت تعاملی وارد می شود، باید با یک خط خالی" +" دنبال شود تا تکمیل شدن آن را نشان دهد (زیرا تجزیه گر نمی تواند حدس بزند که " +"خط آخر را وارد کرده اید). توجه داشته باشید که هر خط درون یک بلوک اساسی باید " +"به همان میزان تورفتگی داشته باشد." #: ../../tutorial/introduction.rst:542 +#, fuzzy msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " "It differs from just writing the expression you want to write (as we did " @@ -851,21 +1387,36 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" +"تابع :func:`print` مقدار یا مقادیر آرگومان هایی را که به آن داده شده می " +"نویسد. این تابع در نحوه پردازش آرگومان های متعدد، مقادیر اعشاری و رشته ها از" +" نوشتن ساده یک عبارت متمایز است (همانند مثالی که پیش تر در محاسبه گر " +"داشتیم). رشته ها بدون نقل قول چاپ می شوند و بین آیتم ها فاصله درج می شود، " +"بنابراین می توانید چیزها را به خوبی فرمت کنید، به این شکل:" #: ../../tutorial/introduction.rst:549 +#, fuzzy msgid "" ">>> i = 256*256\n" ">>> print('The value of i is', i)\n" "The value of i is 65536" msgstr "" +"```python\n" +">>> i = 256*256\n" +">>> print('مقدار i برابر است با', i)\n" +"مقدار i برابر است با 65536\n" +"```" #: ../../tutorial/introduction.rst:553 +#, fuzzy msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" msgstr "" +"آرگومان کلیدی *end* می تواند برای جلوگیری از افزودن یک خط جدید بعد از خروجی،" +" یا پایان دادن به خروجی با یک رشته متفاوت استفاده شود::" #: ../../tutorial/introduction.rst:556 +#, fuzzy msgid "" ">>> a, b = 0, 1\n" ">>> while a < 1000:\n" @@ -874,30 +1425,48 @@ msgid "" "...\n" "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," msgstr "" +"```>>> a, b = 0, 1\n" +">>> while a < 1000:\n" +"... print(a, end=',')\n" +"... a, b = b, a+b\n" +"...\n" +"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,```" #: ../../tutorial/introduction.rst:565 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پینوشت ها" #: ../../tutorial/introduction.rst:566 +#, fuzzy msgid "" -"Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted " -"as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " -"can use ``(-3)**2``." +"Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted" +" as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you" +" can use ``(-3)**2``." msgstr "" +"از آنجایی که ``**`` اولویت بالاتری نسبت به ``-`` دارد، ``-3**2`` به صورت " +"``-(3**2)`` تفسیر خواهد شد و در نتیجه به ``-9`` منجر می شود. برای جلوگیری از" +" این و بدست آوردن ``9``، می توانید از ``(-3)**2`` استفاده کنید." #: ../../tutorial/introduction.rst:570 +#, fuzzy msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " "meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " "only difference between the two is that within single quotes you don't need " "to escape ``\"`` (but you have to escape ``\\'``) and vice versa." msgstr "" +"برخلاف زبان های دیگر، کاراکترهای ویژه ای مانند ``\\n`` با هر دو علامت نقل " +"قول تکی (``'...'``) و دوتایی (``\"...\"``) همان معنی را دارند. تنها تفاوت " +"بین این دو این است که درون نقل قول های تکی نیازی به فرار دادن ``\"`` ندارید " +"(اما باید ``\\'`` را فرار دهید) و بالعکس." #: ../../tutorial/introduction.rst:21 +#, fuzzy msgid "# (hash)" -msgstr "" +msgstr "# (هش)" #: ../../tutorial/introduction.rst:21 +#, fuzzy msgid "comment" -msgstr "" +msgstr "توضیح" diff --git a/tutorial/modules.po b/tutorial/modules.po index 8bb601943..bd590f189 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -14,40 +14,57 @@ msgstr "" "POT-Creation-Date: 2025-02-21 14:16+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/modules.rst:5 +#, fuzzy msgid "Modules" -msgstr "" +msgstr "ماژول ها" #: ../../tutorial/modules.rst:7 +#, fuzzy msgid "" "If you quit from the Python interpreter and enter it again, the definitions " "you have made (functions and variables) are lost. Therefore, if you want to " "write a somewhat longer program, you are better off using a text editor to " -"prepare the input for the interpreter and running it with that file as input " -"instead. This is known as creating a *script*. As your program gets " -"longer, you may want to split it into several files for easier maintenance. " -"You may also want to use a handy function that you've written in several " +"prepare the input for the interpreter and running it with that file as input" +" instead. This is known as creating a *script*. As your program gets " +"longer, you may want to split it into several files for easier maintenance." +" You may also want to use a handy function that you've written in several " "programs without copying its definition into each program." msgstr "" +"اگر از مفسر پایتون خارج شوید و دوباره وارد آن شوید، تعاریفی که انجام داده " +"اید (توابع و متغیرها) از دست می روند. بنابراین، اگر می خواهید برنامه ای " +"نسبتاً طولانی بنویسید، بهتر است از یک ویرایشگر متن برای آماده سازی ورودی " +"برای مفسر استفاده کنید و آن را با استفاده از آن فایل به عنوان ورودی اجرا " +"کنید. این به عنوان ایجاد یک *script* شناخته می شود. همان طور که برنامه شما " +"طولانی تر می شود، ممکن است بخواهید آن را به چندین فایل برای نگهداری آسان تر " +"تقسیم کنید. همچنین ممکن است بخواهید یک تابع مفید که در چندین برنامه نوشته " +"اید را بدون کپی کردن تعریف آن به هر برنامه، استفاده کنید." #: ../../tutorial/modules.rst:16 +#, fuzzy msgid "" "To support this, Python has a way to put definitions in a file and use them " -"in a script or in an interactive instance of the interpreter. Such a file is " -"called a *module*; definitions from a module can be *imported* into other " -"modules or into the *main* module (the collection of variables that you have " -"access to in a script executed at the top level and in calculator mode)." -msgstr "" +"in a script or in an interactive instance of the interpreter. Such a file is" +" called a *module*; definitions from a module can be *imported* into other " +"modules or into the *main* module (the collection of variables that you have" +" access to in a script executed at the top level and in calculator mode)." +msgstr "" +"برای پشتیبانی از این ویژگی، پایتون امکانی فراهم کرده است تا تعاریف را در یک " +"فایل قرار داده و از آن در یک اسکریپت یا در یک نمونه تعاملی از مفسر استفاده " +"کنید. چنین فایلی به عنوان یک *module* شناخته می شود؛ تعاریف از یک ماژول می " +"توانند به ماژول های دیگر یا به ماژول *main* (مجموعه ای از متغیرها که شما در " +"سطح بالای اجرای اسکریپت و در حالت ماشین حساب به آن ها دسترسی دارید) " +"*imported* شوند." #: ../../tutorial/modules.rst:22 +#, fuzzy msgid "" "A module is a file containing Python definitions and statements. The file " "name is the module name with the suffix :file:`.py` appended. Within a " @@ -56,8 +73,14 @@ msgid "" "to create a file called :file:`fibo.py` in the current directory with the " "following contents::" msgstr "" +"ماژول یک فایل حاوی تعاریف و دستورات پایتون است. نام فایل نام ماژول است که با" +" پسوند :file:`.py` ضمیمه می شود. درون یک ماژول، نام ماژول (به صورت یک رشته) " +"به عنوان مقدار متغیر سراسری ``__name__`` در دسترس است. برای مثال، از " +"ویرایشگر متن مورد علاقه خود استفاده کنید تا فایلی به نام :file:`fibo.py` در " +"شاخه جاری با محتوای زیر ایجاد کنید::" #: ../../tutorial/modules.rst:28 +#, fuzzy msgid "" "# Fibonacci numbers module\n" "\n" @@ -76,26 +99,50 @@ msgid "" " a, b = b, a+b\n" " return result" msgstr "" +"# ماژول اعداد فیبوناچی\n" +"\n" +"def fib(n): # سری فیبوناچی را تا عدد n نمایش بده\n" +" a, b = 0, 1\n" +" while a < n:\n" +" print(a, end=' ')\n" +" a, b = b, a+b\n" +" print()\n" +"\n" +"def fib2(n): # سری فیبوناچی را تا عدد n برگردان\n" +" result = []\n" +" a, b = 0, 1\n" +" while a < n:\n" +" result.append(a)\n" +" a, b = b, a+b\n" +" return result" #: ../../tutorial/modules.rst:45 +#, fuzzy msgid "" "Now enter the Python interpreter and import this module with the following " "command::" -msgstr "" +msgstr "اکنون وارد مفسر پایتون شوید و این ماژول را با فرمان زیر وارد کنید::" #: ../../tutorial/modules.rst:48 +#, fuzzy msgid ">>> import fibo" -msgstr "" +msgstr ">>> ایمپورت fibo" #: ../../tutorial/modules.rst:50 +#, fuzzy msgid "" "This does not add the names of the functions defined in ``fibo`` directly " "to the current :term:`namespace` (see :ref:`tut-scopes` for more details); " "it only adds the module name ``fibo`` there. Using the module name you can " "access the functions::" msgstr "" +"این عمل، نام های توابع تعریف شده در ``fibo`` را مستقیماً به " +":term:`namespace` فعلی اضافه نمی کند (برای جزئیات بیشتر به :ref:`tut-scopes`" +" مراجعه کنید)؛ فقط نام ماژول ``fibo`` را به آنجا اضافه می کند. با استفاده از" +" نام ماژول می توانید به توابع دسترسی داشته باشید::" #: ../../tutorial/modules.rst:55 +#, fuzzy msgid "" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" @@ -104,259 +151,419 @@ msgid "" ">>> fibo.__name__\n" "'fibo'" msgstr "" +"```python\n" +">>> fibo.fib(1000)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" +">>> fibo.fib2(100)\n" +"[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]\n" +">>> fibo.__name__\n" +"'fibo'\n" +"```" #: ../../tutorial/modules.rst:62 +#, fuzzy msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" +"اگر قصد دارید از یک تابع به طور مکرر استفاده کنید، می توانید آن را به یک نام" +" محلی اختصاص دهید::" #: ../../tutorial/modules.rst:64 +#, fuzzy msgid "" ">>> fib = fibo.fib\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" +"```python\n" +">>> fib = fibo.fib\n" +">>> fib(500)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377\n" +"```" #: ../../tutorial/modules.rst:72 +#, fuzzy msgid "More on Modules" -msgstr "" +msgstr "بیشتر دربارهٔ ماژول ها" #: ../../tutorial/modules.rst:74 +#, fuzzy msgid "" "A module can contain executable statements as well as function definitions. " "These statements are intended to initialize the module. They are executed " -"only the *first* time the module name is encountered in an import statement. " -"[#]_ (They are also run if the file is executed as a script.)" +"only the *first* time the module name is encountered in an import statement." +" [#]_ (They are also run if the file is executed as a script.)" msgstr "" +"یک ماژول می تواند شامل دستورات قابل اجرا و نیز تعریف توابع باشد. این دستورات" +" برای مقداردهی اولیه ماژول در نظر گرفته شده اند. آن ها فقط اولین باری که نام" +" ماژول در یک عبارت ``import`` مشاهده می شود اجرا می شوند. (این دستورات " +"همچنین در صورتی که فایل به صورت اسکریپت اجرا شود نیز اجرا می شوند.)" #: ../../tutorial/modules.rst:79 +#, fuzzy msgid "" "Each module has its own private namespace, which is used as the global " "namespace by all functions defined in the module. Thus, the author of a " "module can use global variables in the module without worrying about " -"accidental clashes with a user's global variables. On the other hand, if you " -"know what you are doing you can touch a module's global variables with the " +"accidental clashes with a user's global variables. On the other hand, if you" +" know what you are doing you can touch a module's global variables with the " "same notation used to refer to its functions, ``modname.itemname``." msgstr "" +"هر ماژول فضای نام اختصاصی خود را دارد که به عنوان فضای نام سراسری توسط تمام " +"توابع تعریف شده در ماژول استفاده می شود. به این ترتیب، نویسنده یک ماژول می " +"تواند از متغیرهای سراسری در ماژول استفاده کند بدون اینکه نگران تداخل تصادفی " +"با متغیرهای سراسری کاربر باشد. از سوی دیگر، اگر بدانید چه کار می کنید، می " +"توانید با همان نشانه گذاری که برای اشاره به توابع آن استفاده می شود، به " +"متغیرهای سراسری یک ماژول دسترسی داشته باشید." #: ../../tutorial/modules.rst:86 +#, fuzzy msgid "" -"Modules can import other modules. It is customary but not required to place " -"all :keyword:`import` statements at the beginning of a module (or script, " +"Modules can import other modules. It is customary but not required to place" +" all :keyword:`import` statements at the beginning of a module (or script, " "for that matter). The imported module names, if placed at the top level of " "a module (outside any functions or classes), are added to the module's " "global namespace." msgstr "" +"ماژول ها می توانند ماژول های دیگر را وارد کنند. به صورت متداول، گرچه الزامی " +"نیست، که تمام دستورات «:keyword:`import`» را در ابتدای یک ماژول (یا اسکریپت،" +" برای این موضوع) قرار می دهند. نام های ماژول وارد شده، در صورتی که در سطح " +"بالای یک ماژول (خارج از هر تابع یا کلاسی) قرار بگیرند، به فضای نام سراسری " +"ماژول افزوده می شوند." #: ../../tutorial/modules.rst:91 +#, fuzzy msgid "" "There is a variant of the :keyword:`import` statement that imports names " "from a module directly into the importing module's namespace. For example::" msgstr "" +"نوعی از دستور :keyword:`import` وجود دارد که نام ها را مستقیماً از یک ماژول " +"به فضای نام ماژول واردکننده وارد می کند. برای مثال:" #: ../../tutorial/modules.rst:94 +#, fuzzy msgid "" ">>> from fibo import fib, fib2\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" +">>> از fibo وارد کنید fib و fib2\n" +">>> fib(500)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:98 +#, fuzzy msgid "" "This does not introduce the module name from which the imports are taken in " "the local namespace (so in the example, ``fibo`` is not defined)." msgstr "" +"این کار نام ماژولی که \"import\"ها از آن گرفته شده اند را در فضای نام محلی " +"معرفی نمی کند (بنابراین در این مثال، \"``fibo``\" تعریف نشده است)." #: ../../tutorial/modules.rst:101 +#, fuzzy msgid "There is even a variant to import all names that a module defines::" msgstr "" +"حتی یک نوع خاص برای وارد کردن تمام نام هایی که یک ماژول تعریف می کند وجود " +"دارد::" #: ../../tutorial/modules.rst:103 +#, fuzzy msgid "" ">>> from fibo import *\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" +" \n" +"```\n" +">>> from fibo import *\n" +">>> fib(500)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377\n" +"```" #: ../../tutorial/modules.rst:107 +#, fuzzy msgid "" -"This imports all names except those beginning with an underscore (``_``). In " -"most cases Python programmers do not use this facility since it introduces " +"This imports all names except those beginning with an underscore (``_``). In" +" most cases Python programmers do not use this facility since it introduces " "an unknown set of names into the interpreter, possibly hiding some things " "you have already defined." msgstr "" +"این کار تمام نام ها را به جز آن هایی که با یک آندرلاین (مانند ``_``) شروع می" +" شوند وارد می کند. در بیشتر مواقع، برنامه نویسان پایتون از این قابلیت " +"استفاده نمی کنند چون ممکن است مجموعه ای ناشناخته از نام ها را به مفسر وارد " +"کند و شاید برخی چیزهایی که شما قبلاً تعریف کرده اید را پنهان کند." #: ../../tutorial/modules.rst:112 +#, fuzzy msgid "" "Note that in general the practice of importing ``*`` from a module or " "package is frowned upon, since it often causes poorly readable code. " "However, it is okay to use it to save typing in interactive sessions." msgstr "" +"توجه داشته باشید که به طور کلی عمل وارد کردن ``*`` از یک ماژول یا پکیج " +"ناپسند شمرده می شود، زیرا اغلب منجر به کدهایی می شود که خوانایی کمتری دارند." +" با این حال، استفاده از آن برای صرفه جویی در تایپ کردن در جلسات تعاملی " +"اشکالی ندارد." #: ../../tutorial/modules.rst:116 +#, fuzzy msgid "" -"If the module name is followed by :keyword:`!as`, then the name following :" -"keyword:`!as` is bound directly to the imported module." +"If the module name is followed by :keyword:`!as`, then the name following " +":keyword:`!as` is bound directly to the imported module." msgstr "" +"اگر نام ماژول توسط :keyword:`!as` دنبال شود، سپس نامی که پس از " +":keyword:`!as` می آید مستقیماً به ماژول وارد شده متصل می شود." #: ../../tutorial/modules.rst:121 +#, fuzzy msgid "" ">>> import fibo as fib\n" ">>> fib.fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" +">>> import fibo as fib\n" +">>> fib.fib(500)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:125 +#, fuzzy msgid "" "This is effectively importing the module in the same way that ``import " "fibo`` will do, with the only difference of it being available as ``fib``." msgstr "" +"این به طور مؤثر ماژول را به همان روشی وارد می کند که ``import fibo`` انجام " +"می دهد، با این تفاوت که به عنوان ``fib`` در دسترس است." #: ../../tutorial/modules.rst:128 +#, fuzzy msgid "" "It can also be used when utilising :keyword:`from` with similar effects::" msgstr "" +"همچنین می توان زمانی که از :keyword:`from` با اثرات مشابه استفاده می کنید، " +"به کار گرفت::" #: ../../tutorial/modules.rst:130 +#, fuzzy msgid "" ">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" +">>> از fibo وارد کنید fib به عنوان fibonacci\n" +">>> fibonacci(500)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:137 +#, fuzzy msgid "" "For efficiency reasons, each module is only imported once per interpreter " "session. Therefore, if you change your modules, you must restart the " "interpreter -- or, if it's just one module you want to test interactively, " -"use :func:`importlib.reload`, e.g. ``import importlib; importlib." -"reload(modulename)``." +"use :func:`importlib.reload`, e.g. ``import importlib; " +"importlib.reload(modulename)``." msgstr "" +"به دلایل کارایی، هر ماژول تنها یک بار در هر جلسه ی مفسر وارد می شود. " +"بنابراین، اگر ماژول های خود را تغییر دهید، باید مفسر را مجدداً راه اندازی " +"کنید -- یا اگر فقط یک ماژول است که می خواهید به صورت تعاملی آزمایش کنید، از " +":func:`importlib.reload` استفاده کنید، مثلاً ``import importlib; " +"importlib.reload(modulename)``." #: ../../tutorial/modules.rst:147 +#, fuzzy msgid "Executing modules as scripts" -msgstr "" +msgstr "اجرای ماژول ها به عنوان اسکریپت" #: ../../tutorial/modules.rst:149 +#, fuzzy msgid "When you run a Python module with ::" -msgstr "" +msgstr "هنگامی که یک ماژول پایتون را با :: اجرا می کنید" #: ../../tutorial/modules.rst:151 +#, fuzzy msgid "python fibo.py " -msgstr "" +msgstr "پایتون fibo.py <آرگومان ها>" #: ../../tutorial/modules.rst:153 +#, fuzzy msgid "" "the code in the module will be executed, just as if you imported it, but " "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " "this code at the end of your module::" msgstr "" +"کد موجود در ماژول اجرا خواهد شد، درست مثل زمانی که شما آن را import می کنید،" +" اما با قرار دادن ``__name__`` به عنوان ``\"__main__\"``. این بدان معناست که" +" با افزودن این کد در انتهای ماژول خود::" #: ../../tutorial/modules.rst:157 +#, fuzzy msgid "" "if __name__ == \"__main__\":\n" " import sys\n" " fib(int(sys.argv[1]))" msgstr "" +"```python\n" +"اگر __name__ == \"__main__\":\n" +" import sys\n" +" fib(int(sys.argv[1]))\n" +"```" #: ../../tutorial/modules.rst:161 +#, fuzzy msgid "" "you can make the file usable as a script as well as an importable module, " "because the code that parses the command line only runs if the module is " "executed as the \"main\" file:" msgstr "" +"شما می توانید فایل را هم به عنوان یک اسکریپت و هم به عنوان یک ماژول قابل " +"وارد کردن قابل استفاده کنید، زیرا کدی که خط فرمان را تجزیه می کند فقط در " +"صورتی اجرا می شود که ماژول به عنوان فایل \"main\" اجرا شود:" #: ../../tutorial/modules.rst:165 +#, fuzzy msgid "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" msgstr "" +"$ python fibo.py 50\n" +"0 1 1 2 3 5 8 13 21 34" #: ../../tutorial/modules.rst:170 +#, fuzzy msgid "If the module is imported, the code is not run::" -msgstr "" +msgstr "اگر ماژول وارد شود، کد اجرا نمی شود::" #: ../../tutorial/modules.rst:172 +#, fuzzy msgid "" ">>> import fibo\n" ">>>" msgstr "" +"```python\n" +">>> import fibo\n" +">>>\n" +"```" #: ../../tutorial/modules.rst:175 +#, fuzzy msgid "" "This is often used either to provide a convenient user interface to a " "module, or for testing purposes (running the module as a script executes a " "test suite)." msgstr "" +"اغلباً این روش برای ارائه یک رابط کاربری مناسب به یک ماژول استفاده می شود، " +"یا برای اهداف تستی (اجرای ماژول به عنوان یک اسکریپت، مجموعه تست را اجرا می " +"کند)." #: ../../tutorial/modules.rst:182 +#, fuzzy msgid "The Module Search Path" -msgstr "" +msgstr "مسیر جستجوی ماژول" #: ../../tutorial/modules.rst:186 +#, fuzzy msgid "" -"When a module named :mod:`!spam` is imported, the interpreter first searches " -"for a built-in module with that name. These module names are listed in :data:" -"`sys.builtin_module_names`. If not found, it then searches for a file named :" -"file:`spam.py` in a list of directories given by the variable :data:`sys." -"path`. :data:`sys.path` is initialized from these locations:" +"When a module named :mod:`!spam` is imported, the interpreter first searches" +" for a built-in module with that name. These module names are listed in " +":data:`sys.builtin_module_names`. If not found, it then searches for a file " +"named :file:`spam.py` in a list of directories given by the variable " +":data:`sys.path`. :data:`sys.path` is initialized from these locations:" msgstr "" +"وقتی که یک ماژول به نام :mod:`!spam` وارد می شود، مفسر ابتدا به دنبال یک " +"ماژول داخلی با آن نام می گردد. این نام های ماژول در " +":data:`sys.builtin_module_names` فهرست شده اند. اگر پیدا نشود، سپس به دنبال " +"فایلی با نام :file:`spam.py` در یک لیست از دایرکتوری ها که توسط متغیر " +":data:`sys.path` داده شده اند، جستجو می کند. :data:`sys.path` از این مکان ها" +" مقداردهی اولیه می شود:" #: ../../tutorial/modules.rst:192 +#, fuzzy msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." msgstr "" +"دایرکتوری حاوی اسکریپت ورودی (یا دایرکتوری جاری زمانی که هیچ فایلی مشخص نشده" +" است)." #: ../../tutorial/modules.rst:194 +#, fuzzy msgid "" -":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the " -"shell variable :envvar:`PATH`)." +":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the" +" shell variable :envvar:`PATH`)." msgstr "" +":envvar:`PYTHONPATH` (یک فهرست از نام های دایرکتوری، با همان نحو متغیر شل " +":envvar:`PATH`)." #: ../../tutorial/modules.rst:196 +#, fuzzy msgid "" "The installation-dependent default (by convention including a ``site-" "packages`` directory, handled by the :mod:`site` module)." msgstr "" +"پیش فرض وابسته به نصب (به صورت قراردادی شامل یک پوشه ی ``site-packages``، که" +" توسط ماژول :mod:`site` مدیریت می شود)." #: ../../tutorial/modules.rst:199 +#, fuzzy msgid "More details are at :ref:`sys-path-init`." -msgstr "" +msgstr "جزئیات بیشتر در :ref:`sys-path-init` موجود است." #: ../../tutorial/modules.rst:202 +#, fuzzy msgid "" "On file systems which support symlinks, the directory containing the input " "script is calculated after the symlink is followed. In other words the " "directory containing the symlink is **not** added to the module search path." msgstr "" +"در سیستم فایل هایی که از symlinkها پشتیبانی می کنند، دایرکتوری که شامل " +"اسکریپت ورودی است پس از دنبال کردن symlink محاسبه می شود. به عبارت دیگر، " +"دایرکتوری که شامل symlink است به مسیر جستجوی ماژول اضافه می شود." #: ../../tutorial/modules.rst:206 +#, fuzzy msgid "" "After initialization, Python programs can modify :data:`sys.path`. The " "directory containing the script being run is placed at the beginning of the " "search path, ahead of the standard library path. This means that scripts in " "that directory will be loaded instead of modules of the same name in the " -"library directory. This is an error unless the replacement is intended. See " -"section :ref:`tut-standardmodules` for more information." +"library directory. This is an error unless the replacement is intended. See" +" section :ref:`tut-standardmodules` for more information." msgstr "" +"پس از مقداردهی اولیه، برنامه های پایتون می توانند :data:`sys.path` را تغییر " +"دهند. دایرکتوری حاوی اسکریپتی که در حال اجراست، در ابتدای مسیر جستجو، قبل از" +" مسیر کتابخانه استاندارد قرار می گیرد. این بدان معناست که اسکریپت های موجود " +"در آن دایرکتوری به جای ماژول های هم نام در دایرکتوری کتابخانه بارگذاری " +"خواهند شد. این کار اشتباه است مگر اینکه جایگزینی مورد نظر باشد. برای اطلاعات" +" بیشتر به بخش :ref:`tut-standardmodules` مراجعه کنید." #: ../../tutorial/modules.rst:219 +#, fuzzy msgid "\"Compiled\" Python files" -msgstr "" +msgstr "فایل های پایتون «کامپایل شده»" #: ../../tutorial/modules.rst:221 +#, fuzzy msgid "" "To speed up loading modules, Python caches the compiled version of each " -"module in the ``__pycache__`` directory under the name :file:`module." -"{version}.pyc`, where the version encodes the format of the compiled file; " -"it generally contains the Python version number. For example, in CPython " -"release 3.3 the compiled version of spam.py would be cached as ``__pycache__/" -"spam.cpython-33.pyc``. This naming convention allows compiled modules from " -"different releases and different versions of Python to coexist." -msgstr "" +"module in the ``__pycache__`` directory under the name " +":file:`module.{version}.pyc`, where the version encodes the format of the " +"compiled file; it generally contains the Python version number. For " +"example, in CPython release 3.3 the compiled version of spam.py would be " +"cached as ``__pycache__/spam.cpython-33.pyc``. This naming convention " +"allows compiled modules from different releases and different versions of " +"Python to coexist." +msgstr "" +"برای تسریع در بارگذاری ماژول ها، پایتون نسخه کامپایل شده هر ماژول را در " +"دایرکتوری ````__pycache__```` و تحت نام ``:file:`module.{version}.pyc``` " +"ذخیره می کند. در این نامگذاری، نسخه مشخص می کند که فرمت فایل کامپایل شده چه " +"باشد؛ که معمولاً حاوی شماره نسخه پایتون است. برای مثال، در نسخه «سی پایتون " +"۳.۳» نسخه کامپایل شده فایل ``spam.py`` به صورت " +"````__pycache__/spam.cpython-33.pyc```` ذخیره می شود. این روش نامگذاری امکان" +" هم زیستی ماژول های کامپایل شده از نسخه ها و انتشارهای مختلف پایتون را فراهم" +" می کند." #: ../../tutorial/modules.rst:229 +#, fuzzy msgid "" "Python checks the modification date of the source against the compiled " "version to see if it's out of date and needs to be recompiled. This is a " @@ -364,56 +571,89 @@ msgid "" "independent, so the same library can be shared among systems with different " "architectures." msgstr "" +"پایتون تاریخ تغییرات فایل منبع را با نسخه کامپایل شده مقایسه می کند تا ببیند" +" آیا به روزرسانی نشده و نیاز به کامپایل مجدد دارد یا خیر. این فرآیند به طور " +"کامل خودکار است. همچنین، ماژول های کامپایل شده نسبت به پلتفرم مستقل هستند، " +"بنابراین یک کتابخانه می تواند میان سیستم هایی با معماری های متفاوت به اشتراک" +" گذاشته شود." #: ../../tutorial/modules.rst:234 +#, fuzzy msgid "" "Python does not check the cache in two circumstances. First, it always " "recompiles and does not store the result for the module that's loaded " "directly from the command line. Second, it does not check the cache if " "there is no source module. To support a non-source (compiled only) " -"distribution, the compiled module must be in the source directory, and there " -"must not be a source module." +"distribution, the compiled module must be in the source directory, and there" +" must not be a source module." msgstr "" +"پایتون در دو حالت حافظه پنهان را بررسی نمی کند. اول، همیشه مجدداً کامپایل می" +" کند و نتیجه را برای ماژولی که مستقیماً از خط فرمان بارگذاری می شود ذخیره " +"نمی کند. دوم، اگر ماژول منبعی وجود نداشته باشد، حافظه پنهان را بررسی نمی " +"کند. برای پشتیبانی از یک توزیع بدون منبع (فقط کامپایل شده)، ماژول کامپایل " +"شده باید در دایرکتوری منبع باشد و یک ماژول منبع نیز نباید وجود داشته باشد." #: ../../tutorial/modules.rst:241 +#, fuzzy msgid "Some tips for experts:" -msgstr "" +msgstr "نکاتی برای متخصصان:" #: ../../tutorial/modules.rst:243 +#, fuzzy msgid "" -"You can use the :option:`-O` or :option:`-OO` switches on the Python command " -"to reduce the size of a compiled module. The ``-O`` switch removes assert " +"You can use the :option:`-O` or :option:`-OO` switches on the Python command" +" to reduce the size of a compiled module. The ``-O`` switch removes assert " "statements, the ``-OO`` switch removes both assert statements and __doc__ " -"strings. Since some programs may rely on having these available, you should " -"only use this option if you know what you're doing. \"Optimized\" modules " +"strings. Since some programs may rely on having these available, you should" +" only use this option if you know what you're doing. \"Optimized\" modules " "have an ``opt-`` tag and are usually smaller. Future releases may change " "the effects of optimization." msgstr "" +"شما می توانید از سوئیچ های :option:`-O` یا :option:`-OO` در فرمان Python " +"استفاده کنید تا اندازه ی یک ماژول کامپایل شده را کاهش دهید. سوئیچ ``-O`` " +"دستورات assert را حذف می کند و سوئیچ ``-OO`` هم دستورات assert و هم رشته های" +" __doc__ را حذف می کند. از آنجایی که برخی برنامه ها ممکن است نیاز به دسترسی " +"به این موارد داشته باشند، تنها وقتی باید از این گزینه استفاده کنید که می " +"دانید چه کاری انجام می دهید. ماژول های \"بهینه سازی شده\" دارای یک برچسب " +"``opt-`` هستند و معمولاً کوچکتر هستند. نسخه های آینده ممکن است اثرات بهینه " +"سازی را تغییر دهند." #: ../../tutorial/modules.rst:251 +#, fuzzy msgid "" "A program doesn't run any faster when it is read from a ``.pyc`` file than " -"when it is read from a ``.py`` file; the only thing that's faster about ``." -"pyc`` files is the speed with which they are loaded." +"when it is read from a ``.py`` file; the only thing that's faster about " +"``.pyc`` files is the speed with which they are loaded." msgstr "" +"برنامه زمانی که از یک فایل ``.pyc`` خوانده می شود، سریع تر از زمانی که از یک" +" فایل ``.py`` خوانده می شود اجرا نمی شود؛ تنها چیزی که فایل های ``.pyc`` را " +"سریع تر می کند، سرعت بارگذاری آنها است." #: ../../tutorial/modules.rst:255 +#, fuzzy msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." msgstr "" +"ماژول :mod:`compileall` می تواند فایل های .pyc را برای تمام ماژول های یک " +"دایرکتوری ایجاد کند." #: ../../tutorial/modules.rst:258 +#, fuzzy msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in :pep:`3147`." msgstr "" +"جزئیات بیشتری درباره این فرآیند، شامل نمودار جریانی از تصمیمات، در " +":pep:`3147` وجود دارد." #: ../../tutorial/modules.rst:265 +#, fuzzy msgid "Standard Modules" -msgstr "" +msgstr "ماژول های استاندارد" #: ../../tutorial/modules.rst:269 +#, fuzzy msgid "" "Python comes with a library of standard modules, described in a separate " "document, the Python Library Reference (\"Library Reference\" hereafter). " @@ -427,8 +667,19 @@ msgid "" "into every Python interpreter. The variables ``sys.ps1`` and ``sys.ps2`` " "define the strings used as primary and secondary prompts::" msgstr "" +"پایتون با یک کتابخانه از ماژول های استاندارد ارائه می شود که در یک سند " +"جداگانه با عنوان \"مرجع کتابخانه پایتون\" توصیف شده اند. برخی از ماژول ها به" +" طور داخلی در مفسر تعبیه شده اند؛ این ماژول ها به عملیات هایی دسترسی می دهند" +" که جزء هسته زبان نیستند اما به هر حال به دلیل کارایی یا فراهم کردن دسترسی " +"به ابتدائات سیستم عامل مانند درخواست های سیستمی درونی سازی شده اند. مجموعه " +"این ماژول ها یک گزینه تنظیماتی است که همچنین به پلتفرم زیرین بستگی دارد. به " +"عنوان مثال، ماژول :mod:`winreg` تنها بر روی سیستم های ویندوز ارائه می شود. " +"یک ماژول خاص که توجه ویژه ای را می طلبد، :mod:`sys` است که در هر مفسر پایتون" +" تعبیه شده است. متغیرهای ``sys.ps1`` و ``sys.ps2`` رشته هایی را تعریف می " +"کنند که به عنوان درخواست های اولیه و ثانویه استفاده می شوند." #: ../../tutorial/modules.rst:281 +#, fuzzy msgid "" ">>> import sys\n" ">>> sys.ps1\n" @@ -440,80 +691,116 @@ msgid "" "Yuck!\n" "C>" msgstr "" +"```\n" +">>> import sys\n" +">>> sys.ps1\n" +"'>>> '\n" +">>> sys.ps2\n" +"'... '\n" +">>> sys.ps1 = 'C> '\n" +"C> print('Yuck!')\n" +"Yuck!\n" +"C>\n" +"```" #: ../../tutorial/modules.rst:292 +#, fuzzy msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." msgstr "" +"این دو متغیر تنها در شرایطی تعریف می شوند که مفسر در حالت تعاملی باشد." #: ../../tutorial/modules.rst:294 +#, fuzzy msgid "" "The variable ``sys.path`` is a list of strings that determines the " "interpreter's search path for modules. It is initialized to a default path " -"taken from the environment variable :envvar:`PYTHONPATH`, or from a built-in " -"default if :envvar:`PYTHONPATH` is not set. You can modify it using " +"taken from the environment variable :envvar:`PYTHONPATH`, or from a built-in" +" default if :envvar:`PYTHONPATH` is not set. You can modify it using " "standard list operations::" msgstr "" +"متغیر ``sys.path`` یک لیست از رشته ها است که مسیر جستجوی مفسر برای ماژول ها " +"را تعیین می کند. این متغیر به یک مسیر پیش فرض که از متغیر محیطی " +":envvar:`PYTHONPATH` گرفته شده است، مقداردهی اولیه می شود، یا اگر " +":envvar:`PYTHONPATH` تنظیم نشده باشد، از یک مقدار پیش فرض داخلی استفاده می " +"شود. شما می توانید با استفاده از عملیات لیست استاندارد آن را تغییر دهید::" #: ../../tutorial/modules.rst:300 +#, fuzzy msgid "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" msgstr "" +">>> import sys \n" +">>> sys.path.append('/ufs/guido/lib/python')" #: ../../tutorial/modules.rst:307 +#, fuzzy msgid "The :func:`dir` Function" -msgstr "" +msgstr "تابع :func:`dir`" #: ../../tutorial/modules.rst:309 +#, fuzzy msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" msgstr "" +"تابع داخلی :func:`dir` برای پیدا کردن نام هایی که یک ماژول تعریف می کند، " +"استفاده می شود. این تابع یک لیست مرتب از رشته ها را برمی گرداند::" #: ../../tutorial/modules.rst:312 +#, fuzzy msgid "" ">>> import fibo, sys\n" ">>> dir(fibo)\n" "['__name__', 'fib', 'fib2']\n" ">>> dir(sys)\n" "['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__',\n" -" '__interactivehook__', '__loader__', '__name__', '__package__', " -"'__spec__',\n" +" '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__',\n" " '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__',\n" " '_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework',\n" " '_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook',\n" " 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix',\n" " 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing',\n" -" 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', " -"'exc_info',\n" +" 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info',\n" " 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info',\n" -" 'float_repr_style', 'get_asyncgen_hooks', " -"'get_coroutine_origin_tracking_depth',\n" +" 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth',\n" " 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags',\n" " 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile',\n" " 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval',\n" " 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',\n" " 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value',\n" " 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks',\n" -" 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', " -"'pycache_prefix',\n" -" 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', " -"'setdlopenflags',\n" -" 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', " -"'stderr',\n" -" 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', " -"'version_info',\n" +" 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pycache_prefix',\n" +" 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setdlopenflags',\n" +" 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr',\n" +" 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info',\n" " 'warnoptions']" msgstr "" +"```\n" +">>> import fibo, sys\n" +">>> dir(fibo)\n" +"['__name__', 'fib', 'fib2']\n" +"```\n" +"خروجی `dir(fibo)` لیستی از اسامی موجود در فضای نام ماژول `fibo` را نمایش می دهد. در اینجا توابع و متغیرهای تعریف شده در ماژول را مشاهده می کنیم.\n" +"\n" +"```\n" +">>> dir(sys)\n" +"['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework', '_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth', 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pycache_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 'warnoptions']\n" +"```\n" +"خروجی `dir(sys)` لیستی از اسامی موجود در فضای نام ماژول `sys` را نمایش می دهد که شامل توابع و متغیرهای زیادی است که برای مدیریت سیستم و فضای اجرایی در کار با پایتون استفاده می شود." #: ../../tutorial/modules.rst:338 +#, fuzzy msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "" +"بدون آرگومان ها، :func:`dir` نام هایی که شما در حال حاضر تعریف کرده اید را " +"نمایش می دهد::" #: ../../tutorial/modules.rst:340 +#, fuzzy msgid "" ">>> a = [1, 2, 3, 4, 5]\n" ">>> import fibo\n" @@ -521,20 +808,32 @@ msgid "" ">>> dir()\n" "['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" msgstr "" +">>> a = [1, 2, 3, 4, 5]\n" +">>> import fibo\n" +">>> fib = fibo.fib\n" +">>> dir()\n" +"['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" #: ../../tutorial/modules.rst:346 +#, fuzzy msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" +"توجه داشته باشید که تمام انواع نام ها را فهرست می کند: متغیرها، ماژول ها، " +"توابع و غیره." #: ../../tutorial/modules.rst:350 +#, fuzzy msgid "" -":func:`dir` does not list the names of built-in functions and variables. If " -"you want a list of those, they are defined in the standard module :mod:" -"`builtins`::" +":func:`dir` does not list the names of built-in functions and variables. If" +" you want a list of those, they are defined in the standard module " +":mod:`builtins`::" msgstr "" +"`:func:`dir`` نام توابع و متغیرهای داخلی را لیست نمی کند. اگر لیستی از آنها " +"می خواهید، آنها در ماژول استاندارد `:mod:`builtins`` تعریف شده اند::" #: ../../tutorial/modules.rst:354 +#, fuzzy msgid "" ">>> import builtins\n" ">>> dir(builtins)\n" @@ -547,8 +846,7 @@ msgid "" " 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',\n" " 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError',\n" " 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError',\n" -" 'MemoryError', 'NameError', 'None', 'NotADirectoryError', " -"'NotImplemented',\n" +" 'MemoryError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented',\n" " 'NotImplementedError', 'OSError', 'OverflowError',\n" " 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError',\n" " 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning',\n" @@ -569,12 +867,45 @@ msgid "" " 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars',\n" " 'zip']" msgstr "" +">>> import builtins\n" +">>> dir(builtins)\n" +"['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',\n" +" 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning',\n" +" 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError',\n" +" 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning',\n" +" 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False',\n" +" 'FileExistsError', 'FileNotFoundError', 'FloatingPointError',\n" +" 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError',\n" +" 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError',\n" +" 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError',\n" +" 'MemoryError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented',\n" +" 'NotImplementedError', 'OSError', 'OverflowError',\n" +" 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError',\n" +" 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning',\n" +" 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError',\n" +" 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError',\n" +" 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError',\n" +" 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning',\n" +" 'ValueError', 'Warning', 'ZeroDivisionError', '_', '__build_class__',\n" +" '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs',\n" +" 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable',\n" +" 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits',\n" +" 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit',\n" +" 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr',\n" +" 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',\n" +" 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview',\n" +" 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property',\n" +" 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',\n" +" 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars',\n" +" 'zip']" #: ../../tutorial/modules.rst:389 +#, fuzzy msgid "Packages" -msgstr "" +msgstr "پکیج ها" #: ../../tutorial/modules.rst:391 +#, fuzzy msgid "" "Packages are a way of structuring Python's module namespace by using " "\"dotted module names\". For example, the module name :mod:`!A.B` " @@ -584,13 +915,21 @@ msgid "" "saves the authors of multi-module packages like NumPy or Pillow from having " "to worry about each other's module names." msgstr "" +"پکیج ها روشی برای ساختاردهی فضای نام ماژول های پایتون با استفاده از \"نام " +"های ماژول نقطه دار\" هستند. برای مثال، نام ماژول :mod:`!A.B` زیرماژولی به " +"نام ``B`` را در یک پکیج به نام ``A`` معرفی می کند. همان طور که استفاده از " +"ماژول ها نویسندگان ماژول های مختلف را از نگران بودن درباره نام متغیرهای " +"سراسری یکدیگر نجات می دهد، استفاده از نام های ماژول نقطه دار هم نویسندگان " +"پکیج های چندماژولی مانند NumPy یا Pillow را از نگران بودن درباره نام های " +"ماژول یکدیگر نجات می دهد." #: ../../tutorial/modules.rst:399 +#, fuzzy msgid "" "Suppose you want to design a collection of modules (a \"package\") for the " "uniform handling of sound files and sound data. There are many different " -"sound file formats (usually recognized by their extension, for example: :" -"file:`.wav`, :file:`.aiff`, :file:`.au`), so you may need to create and " +"sound file formats (usually recognized by their extension, for example: " +":file:`.wav`, :file:`.aiff`, :file:`.au`), so you may need to create and " "maintain a growing collection of modules for the conversion between the " "various file formats. There are also many different operations you might " "want to perform on sound data (such as mixing, adding echo, applying an " @@ -599,8 +938,19 @@ msgid "" "operations. Here's a possible structure for your package (expressed in " "terms of a hierarchical filesystem):" msgstr "" +"فرض کنید می خواهید مجموعه ای از ماژول ها (یک \"بسته\") جهت مدیریت یکنواخت " +"فایل های صوتی و داده های صوتی طراحی کنید. فرمت های مختلفی از فایل های صوتی " +"وجود دارد (که معمولاً با پسوند آنها شناخته می شوند، برای مثال: :file:`.wav`،" +" :file:`.aiff`، :file:`.au`) بنابراین ممکن است نیاز باشد به مجموعه ای در حال" +" رشد از ماژول ها برای تبدیل بین فرمت های مختلف فایل ایجاد و نگهداری کنید. " +"همچنین عملیات مختلف زیادی وجود دارد که ممکن است بخواهید روی داده های صوتی " +"انجام دهید (مانند میکس کردن، افزودن اکو، اعمال یک تابع اکولایزر، ایجاد یک " +"اثر استریوی مصنوعی) بنابراین علاوه بر آن شما یک جریان بی پایان از ماژول ها " +"برای انجام این عملیات خواهید نوشت. در اینجا یک ساختار ممکن برای بسته شما " +"آورده شده است (به صورت یک سیستم فایل سلسله مراتبی بیان شده است):" #: ../../tutorial/modules.rst:410 +#, fuzzy msgid "" "sound/ Top-level package\n" " __init__.py Initialize the sound package\n" @@ -626,105 +976,186 @@ msgid "" " karaoke.py\n" " ..." msgstr "" +"صدا/ بسته سطح بالا\n" +" __init__.py مقداردهی اولیه بسته صدا\n" +" قالب ها/ زیرمجموعه ای برای تبدیل فرمت فایل ها \n" +" __init__.py\n" +" wavread.py\n" +" wavwrite.py\n" +" aiffread.py\n" +" aiffwrite.py\n" +" auread.py\n" +" auwrite.py\n" +" ...\n" +" افکت ها/ زیرمجموعه ای برای افکت های صوتی\n" +" __init__.py\n" +" echo.py\n" +" surround.py\n" +" reverse.py\n" +" ...\n" +" فیلترها/ زیرمجموعه ای برای فیلترها\n" +" __init__.py\n" +" equalizer.py\n" +" vocoder.py\n" +" karaoke.py\n" +" ..." #: ../../tutorial/modules.rst:436 +#, fuzzy msgid "" -"When importing the package, Python searches through the directories on ``sys." -"path`` looking for the package subdirectory." +"When importing the package, Python searches through the directories on " +"``sys.path`` looking for the package subdirectory." msgstr "" +"هنگام وارد کردن بسته، پایتون در دایرکتوری های موجود در ``sys.path`` جستجو می" +" کند تا زیرشاخه بسته را پیدا کند." #: ../../tutorial/modules.rst:439 +#, fuzzy msgid "" "The :file:`__init__.py` files are required to make Python treat directories " -"containing the file as packages (unless using a :term:`namespace package`, a " -"relatively advanced feature). This prevents directories with a common name, " -"such as ``string``, from unintentionally hiding valid modules that occur " +"containing the file as packages (unless using a :term:`namespace package`, a" +" relatively advanced feature). This prevents directories with a common name," +" such as ``string``, from unintentionally hiding valid modules that occur " "later on the module search path. In the simplest case, :file:`__init__.py` " "can just be an empty file, but it can also execute initialization code for " "the package or set the ``__all__`` variable, described later." msgstr "" +"فایل های :file:`__init__.py` برای این لازم هستند که پایتون دایرکتوری هایی که" +" حاوی این فایل هستند را به عنوان بسته ها شناسایی کند (مگر اینکه از " +":term:`namespace package` استفاده کنید، که یک ویژگی نسبتاً پیشرفته است). این" +" کار از این جلوگیری می کند که دایرکتوری هایی با نام های مشابه، مانند " +"``string``، به طور ناخواسته ماژول های معتبری که در مسیر جستجوی ماژول بعداً " +"یافت می شوند را پنهان کنند. در ساده ترین حالت، :file:`__init__.py` می تواند " +"فقط یک فایل خالی باشد، اما همچنین می تواند کدهای اولیه سازی برای بسته را " +"اجرا کند یا متغیر ``__all__`` را تنظیم کند که بعداً توضیح داده می شود." #: ../../tutorial/modules.rst:447 +#, fuzzy msgid "" "Users of the package can import individual modules from the package, for " "example::" msgstr "" +"کاربران بسته می توانند ماژول های جداگانه را از بسته وارد (import) کنند، به " +"عنوان مثال:" #: ../../tutorial/modules.rst:450 +#, fuzzy msgid "import sound.effects.echo" msgstr "" +"```python\n" +"import sound.effects.echo\n" +"``` \n" +"\n" +"این دستور برای وارد کردن ماژول ``echo`` از بسته ``sound.effects`` استفاده می شود." #: ../../tutorial/modules.rst:452 +#, fuzzy msgid "" "This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" msgstr "" +"این زیربخش :mod:`!sound.effects.echo` را بارگذاری می کند. باید با نام کامل " +"آن ارجاع داده شود. ::" #: ../../tutorial/modules.rst:455 +#, fuzzy msgid "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "" +"تابع `sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)` یک " +"فیلتر اکوی ساده را بین فایل ورودی و فایل خروجی اعمال می کند. این تابع " +"دارای پارامترهایی است که شامل `input` (فایل ورودی)، `output` (فایل خروجی)، " +"`delay` (تاخیر، به صورت پیش فرض ۰.۷ ثانیه) و `atten` (تضعیف، به صورت پیش فرض" +" ۴) می باشد." #: ../../tutorial/modules.rst:457 +#, fuzzy msgid "An alternative way of importing the submodule is::" -msgstr "" +msgstr "راه دیگر برای وارد کردن زیرماژول این است::" #: ../../tutorial/modules.rst:459 +#, fuzzy msgid "from sound.effects import echo" -msgstr "" +msgstr "از ماژول `sound.effects` زیرماژول `echo` را وارد کنید." #: ../../tutorial/modules.rst:461 +#, fuzzy msgid "" "This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" msgstr "" +"این همچنین زیرماژول :mod:`!echo` را بارگذاری می کند و آن را بدون پیشوند پکیج" +" در دسترس قرار می دهد، به طوری که می توان به شکل زیر از آن استفاده کرد::" #: ../../tutorial/modules.rst:464 +#, fuzzy msgid "echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "" +"فیلتر ``echo`` بر روی ورودی ``input`` و خروجی ``output`` اعمال می شود، با " +"تأخیر ``delay`` برابر 0.7 و کاهش قدرت ``atten`` برابر 4." #: ../../tutorial/modules.rst:466 +#, fuzzy msgid "" "Yet another variation is to import the desired function or variable " "directly::" -msgstr "" +msgstr "یکی دیگر از روش ها وارد کردن مستقیم تابع یا متغیر مورد نظر است::" #: ../../tutorial/modules.rst:468 +#, fuzzy msgid "from sound.effects.echo import echofilter" -msgstr "" +msgstr "از `echofilter` در `sound.effects.echo` وارد کنید." #: ../../tutorial/modules.rst:470 +#, fuzzy msgid "" -"Again, this loads the submodule :mod:`!echo`, but this makes its function :" -"func:`!echofilter` directly available::" +"Again, this loads the submodule :mod:`!echo`, but this makes its function " +":func:`!echofilter` directly available::" msgstr "" +"باز هم، این زیرماژول :mod:`!echo` را بارگذاری می کند، اما این باعث می شود که" +" تابع :func:`!echofilter` به صورت مستقیم قابل دسترسی باشد::" #: ../../tutorial/modules.rst:473 +#, fuzzy msgid "echofilter(input, output, delay=0.7, atten=4)" -msgstr "" +msgstr "`echofilter(input, output, delay=0.7, atten=4)`" #: ../../tutorial/modules.rst:475 +#, fuzzy msgid "" "Note that when using ``from package import item``, the item can be either a " -"submodule (or subpackage) of the package, or some other name defined in the " -"package, like a function, class or variable. The ``import`` statement first " -"tests whether the item is defined in the package; if not, it assumes it is a " -"module and attempts to load it. If it fails to find it, an :exc:" -"`ImportError` exception is raised." -msgstr "" +"submodule (or subpackage) of the package, or some other name defined in the" +" package, like a function, class or variable. The ``import`` statement " +"first tests whether the item is defined in the package; if not, it assumes " +"it is a module and attempts to load it. If it fails to find it, an " +":exc:`ImportError` exception is raised." +msgstr "" +"توجه داشته باشید که هنگام استفاده از ``from package import item``، مورد می " +"تواند یا یک زیرماژول (یا زیرپکیج) از پکیج باشد یا نام دیگری که در پکیج تعریف" +" شده است، مانند تابع، کلاس یا متغیر. دستور ``import`` ابتدا بررسی می کند که " +"آیا مورد در پکیج تعریف شده است یا خیر؛ اگر نه، فرض می شود که یک ماژول است و " +"تلاش می کند تا آن را بارگذاری کند. اگر نتواند آن را پیدا کند، یک استثنای " +":exc:`ImportError` ایجاد می شود." #: ../../tutorial/modules.rst:482 +#, fuzzy msgid "" "Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " -"item except for the last must be a package; the last item can be a module or " -"a package but can't be a class or function or variable defined in the " +"item except for the last must be a package; the last item can be a module or" +" a package but can't be a class or function or variable defined in the " "previous item." msgstr "" +"در مقابل، هنگامی که از سینتکسی مانند ``import item.subitem.subsubitem`` " +"استفاده می کنید، هر آیتم به جز آیتم آخر باید یک پکیج باشد؛ آیتم آخر می تواند" +" یک ماژول یا پکیج باشد اما نمی تواند یک کلاس، تابع یا متغیری که در آیتم قبلی" +" تعریف شده، باشد." #: ../../tutorial/modules.rst:491 +#, fuzzy msgid "Importing \\* From a Package" -msgstr "" +msgstr "وارد کردن \\* از یک بسته نرم افزاری" #: ../../tutorial/modules.rst:495 +#, fuzzy msgid "" "Now what happens when the user writes ``from sound.effects import *``? " "Ideally, one would hope that this somehow goes out to the filesystem, finds " @@ -732,41 +1163,71 @@ msgid "" "could take a long time and importing sub-modules might have unwanted side-" "effects that should only happen when the sub-module is explicitly imported." msgstr "" +"حال چه اتفاقی می افتد وقتی که کاربر \"``from sound.effects import *``\" را " +"می نویسد؟ در حالت ایده آل، امیدواریم که به نوعی این درخواست به فایل سیستم " +"منتقل شود، بررسی کند که کدام زیرماژول ها در بسته وجود دارند و همه آن ها را " +"وارد کند. این ممکن است زمان زیادی ببرد و وارد کردن زیرماژول ها ممکن است " +"عوارض جانبی ناخواسته ای داشته باشد که باید فقط زمانی رخ دهند که زیرماژول به " +"طور صریح وارد شود." #: ../../tutorial/modules.rst:501 +#, fuzzy msgid "" "The only solution is for the package author to provide an explicit index of " -"the package. The :keyword:`import` statement uses the following convention: " -"if a package's :file:`__init__.py` code defines a list named ``__all__``, it " -"is taken to be the list of module names that should be imported when ``from " -"package import *`` is encountered. It is up to the package author to keep " -"this list up-to-date when a new version of the package is released. Package " -"authors may also decide not to support it, if they don't see a use for " -"importing \\* from their package. For example, the file :file:`sound/" -"effects/__init__.py` could contain the following code::" -msgstr "" +"the package. The :keyword:`import` statement uses the following convention:" +" if a package's :file:`__init__.py` code defines a list named ``__all__``, " +"it is taken to be the list of module names that should be imported when " +"``from package import *`` is encountered. It is up to the package author to" +" keep this list up-to-date when a new version of the package is released. " +"Package authors may also decide not to support it, if they don't see a use " +"for importing \\* from their package. For example, the file " +":file:`sound/effects/__init__.py` could contain the following code::" +msgstr "" +"تنها راه حل این است که نویسنده بسته فهرست صریحی از بسته ارائه دهد. عبارت " +":keyword:`import` از قرارداد زیر استفاده می کند: اگر کد :file:`__init__.py` " +"یک بسته لیستی به نام ``__all__`` تعریف کند، آن لیست به عنوان لیستی از نام " +"ماژول هایی که باید هنگام ورود ``from package import *`` وارد شوند، در نظر " +"گرفته می شود. به نویسنده بسته بستگی دارد که این لیست را هنگام انتشار نسخه " +"جدیدی از بسته به روز نگه دارد. نویسندگان بسته ممکن است تصمیم بگیرند که از آن" +" پشتیبانی نکنند، اگر نیازی به وارد کردن \\* از بسته خود نمی بینند. به عنوان " +"مثال، فایل :file:`sound/effects/__init__.py` می تواند حاوی کد زیر باشد::" #: ../../tutorial/modules.rst:511 +#, fuzzy msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]" msgstr "" +"```python\n" +"__all__ = [\"echo\", \"surround\", \"reverse\"]\n" +"```" #: ../../tutorial/modules.rst:513 +#, fuzzy msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`!sound.effects` package." msgstr "" +"این به این معنی است که ``from sound.effects import *`` سه زیرماژول نام برده " +"از بسته :mod:`!sound.effects` را وارد می کند." #: ../../tutorial/modules.rst:516 +#, fuzzy msgid "" -"Be aware that submodules might become shadowed by locally defined names. For " -"example, if you added a ``reverse`` function to the :file:`sound/effects/" -"__init__.py` file, the ``from sound.effects import *`` would only import the " -"two submodules ``echo`` and ``surround``, but *not* the ``reverse`` " -"submodule, because it is shadowed by the locally defined ``reverse`` " -"function::" +"Be aware that submodules might become shadowed by locally defined names. For" +" example, if you added a ``reverse`` function to the " +":file:`sound/effects/__init__.py` file, the ``from sound.effects import *`` " +"would only import the two submodules ``echo`` and ``surround``, but *not* " +"the ``reverse`` submodule, because it is shadowed by the locally defined " +"``reverse`` function::" msgstr "" +"توجه داشته باشید که زیرماژول ها ممکن است توسط نام های تعریف شده ی محلی تحت " +"الشعاع قرار گیرند. برای مثال، اگر یک تابع ``reverse`` به فایل " +":file:`sound/effects/__init__.py` اضافه کنید، ``from sound.effects import " +"*`` تنها دو زیرماژول ``echo`` و ``surround`` را وارد می کند، اما *not* " +"زیرماژول ``reverse`` را وارد نمی کند، چون تابع محلی تعریف شده ی ``reverse`` " +"آن را تحت الشعاع قرار داده است." #: ../../tutorial/modules.rst:523 +#, fuzzy msgid "" "__all__ = [\n" " \"echo\", # refers to the 'echo.py' file\n" @@ -777,137 +1238,221 @@ msgid "" "def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n" " return msg[::-1] # in the case of a 'from sound.effects import *'" msgstr "" +"```python\n" +"__all__ = [\n" +" \"echo\", # به فایل 'echo.py' اشاره دارد\n" +" \"surround\", # به فایل 'surround.py' اشاره دارد\n" +" \"reverse\", # !!! اکنون به تابع 'reverse' اشاره دارد !!!\n" +"]\n" +"\n" +"def reverse(msg: str): # <-- این نام زیر ماژول 'reverse.py' را سایه می اندازد\n" +" return msg[::-1] # در صورت استفاده از 'from sound.effects import *'\n" +"```" #: ../../tutorial/modules.rst:532 +#, fuzzy msgid "" -"If ``__all__`` is not defined, the statement ``from sound.effects import *`` " -"does *not* import all submodules from the package :mod:`!sound.effects` into " -"the current namespace; it only ensures that the package :mod:`!sound." -"effects` has been imported (possibly running any initialization code in :" -"file:`__init__.py`) and then imports whatever names are defined in the " -"package. This includes any names defined (and submodules explicitly loaded) " -"by :file:`__init__.py`. It also includes any submodules of the package that " -"were explicitly loaded by previous :keyword:`import` statements. Consider " -"this code::" -msgstr "" +"If ``__all__`` is not defined, the statement ``from sound.effects import *``" +" does *not* import all submodules from the package :mod:`!sound.effects` " +"into the current namespace; it only ensures that the package " +":mod:`!sound.effects` has been imported (possibly running any initialization" +" code in :file:`__init__.py`) and then imports whatever names are defined in" +" the package. This includes any names defined (and submodules explicitly " +"loaded) by :file:`__init__.py`. It also includes any submodules of the " +"package that were explicitly loaded by previous :keyword:`import` " +"statements. Consider this code::" +msgstr "" +"اگر ``__all__`` تعریف نشده باشد، عبارت ``from sound.effects import *`` " +"عملیات *not* وارد کردن تمام زیرماژول ها از بسته ی :mod:`!sound.effects` به " +"فضای نام فعلی را انجام نمی دهد؛ بلکه فقط اطمینان حاصل می کند که بسته ی " +":mod:`!sound.effects` وارد شده است (احتمالاً با اجرای هر کد اولیه ای در " +":file:`__init__.py`) و سپس هر نامی که در بسته تعریف شده باشد را وارد می کند." +" این شامل هر نامی که توسط :file:`__init__.py` تعریف شده (و زیرماژول هایی که " +"به طور صریح بارگذاری شده اند) می شود. این همچنین شامل هر زیرماژول از بسته که" +" به طور صریح توسط عبارات :keyword:`import` قبلی بارگذاری شده اند، می باشد. " +"این کد را در نظر بگیرید::" #: ../../tutorial/modules.rst:541 +#, fuzzy msgid "" "import sound.effects.echo\n" "import sound.effects.surround\n" "from sound.effects import *" msgstr "" +"```python\n" +"import sound.effects.echo\n" +"import sound.effects.surround\n" +"from sound.effects import *\n" +"```" #: ../../tutorial/modules.rst:545 +#, fuzzy msgid "" "In this example, the :mod:`!echo` and :mod:`!surround` modules are imported " -"in the current namespace because they are defined in the :mod:`!sound." -"effects` package when the ``from...import`` statement is executed. (This " -"also works when ``__all__`` is defined.)" +"in the current namespace because they are defined in the " +":mod:`!sound.effects` package when the ``from...import`` statement is " +"executed. (This also works when ``__all__`` is defined.)" msgstr "" +"در این مثال، ماژول های :mod:`!echo` و :mod:`!surround` در فضای نام فعلی وارد" +" می شوند زیرا آنها در بسته :mod:`!sound.effects` تعریف شده اند، زمانی که " +"دستور ``from...import`` اجرا می شود. (این همچنین زمانی که ``__all__`` تعریف " +"شده است، کار می کند.)" #: ../../tutorial/modules.rst:550 +#, fuzzy msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " "practice in production code." msgstr "" +"اگرچه برخی از ماژول ها به گونه ای طراحی شده اند که تنها نام هایی که از " +"الگوهای خاصی پیروی می کنند را وقتی که از ``import *`` استفاده می کنید، صادر " +"کنند، اما همچنان در کدهای تولیدی این کار به عنوان یک عمل نادرست شناخته می " +"شود." #: ../../tutorial/modules.rst:554 +#, fuzzy msgid "" "Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " "importing module needs to use submodules with the same name from different " "packages." msgstr "" +"به خاطر داشته باشید که استفاده از ``from package import specific_submodule``" +" هیچ اشکالی ندارد! در واقع، این نگارش پیشنهادی است مگر اینکه ماژول واردکننده" +" نیاز داشته باشد از زیرماژول های با نام مشابه از بسته های مختلف استفاده کند." #: ../../tutorial/modules.rst:563 +#, fuzzy msgid "Intra-package References" -msgstr "" +msgstr "ارجاعات درون بسته ای" #: ../../tutorial/modules.rst:565 +#, fuzzy msgid "" "When packages are structured into subpackages (as with the :mod:`!sound` " -"package in the example), you can use absolute imports to refer to submodules " -"of siblings packages. For example, if the module :mod:`!sound.filters." -"vocoder` needs to use the :mod:`!echo` module in the :mod:`!sound.effects` " -"package, it can use ``from sound.effects import echo``." -msgstr "" +"package in the example), you can use absolute imports to refer to submodules" +" of siblings packages. For example, if the module " +":mod:`!sound.filters.vocoder` needs to use the :mod:`!echo` module in the " +":mod:`!sound.effects` package, it can use ``from sound.effects import " +"echo``." +msgstr "" +"وقتی بسته ها به زیرمجموعه ها سازماندهی می شوند (مانند بسته :mod:`!sound` در " +"مثال)، می توانید از واردات مطلق برای ارجاع به زیرماژول های بسته های خواهر " +"استفاده کنید. برای مثال، اگر ماژول :mod:`!sound.filters.vocoder` نیاز به " +"استفاده از ماژول :mod:`!echo` در بسته :mod:`!sound.effects` داشته باشد، می " +"تواند از ``from sound.effects import echo`` استفاده کند." #: ../../tutorial/modules.rst:571 +#, fuzzy msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " -"current and parent packages involved in the relative import. From the :mod:" -"`!surround` module for example, you might use::" +"current and parent packages involved in the relative import. From the " +":mod:`!surround` module for example, you might use::" msgstr "" +"شما همچنین می توانید از ایمپورت های نسبی، با قالب ``from module import " +"name`` از دستور import، استفاده کنید. این ایمپورت ها از نقطه های ابتدایی " +"برای نشان دادن پکیج های فعلی و والد مرتبط با ایمپورت نسبی استفاده می کنند. " +"به عنوان مثال، از ماژول :mod:`!surround` شما ممکن است استفاده کنید::" #: ../../tutorial/modules.rst:576 +#, fuzzy msgid "" "from . import echo\n" "from .. import formats\n" "from ..filters import equalizer" msgstr "" +"از `. ` ماژول `echo` را وارد کن\n" +"از `.. ` ماژول `formats` را وارد کن\n" +"از `..filters ` ماژول `equalizer` را وارد کن" #: ../../tutorial/modules.rst:580 +#, fuzzy msgid "" "Note that relative imports are based on the name of the current module. " "Since the name of the main module is always ``\"__main__\"``, modules " "intended for use as the main module of a Python application must always use " "absolute imports." msgstr "" +"توجه داشته باشید که ایمپورت های نسبی بر اساس نام ماژول فعلی انجام می شوند. " +"از آن جا که نام ماژول اصلی همیشه ``\"__main__\"`` است، ماژول هایی که به " +"عنوان ماژول اصلی یک برنامه پایتون استفاده می شوند باید همیشه از ایمپورت های " +"مطلق استفاده کنند." #: ../../tutorial/modules.rst:586 +#, fuzzy msgid "Packages in Multiple Directories" -msgstr "" +msgstr "پکیج ها در چندین دایرکتوری" #: ../../tutorial/modules.rst:588 +#, fuzzy msgid "" -"Packages support one more special attribute, :attr:`~module.__path__`. This " -"is initialized to be a :term:`sequence` of strings containing the name of " +"Packages support one more special attribute, :attr:`~module.__path__`. This" +" is initialized to be a :term:`sequence` of strings containing the name of " "the directory holding the package's :file:`__init__.py` before the code in " "that file is executed. This variable can be modified; doing so affects " "future searches for modules and subpackages contained in the package." msgstr "" +"بسته ها از یک ویژگی ویژه ی دیگر به نام :attr:`~module.__path__` پشتیبانی می " +"کنند. این ویژگی به عنوان یک :term:`sequence` از رشته هایی که نام دایرکتوری " +"حاوی :file:`__init__.py` بسته را دارند، قبل از اجرای کد در آن فایل مقداردهی " +"اولیه می شود. این متغیر قابل تغییر است؛ و انجام این کار بر جستجوهای آینده " +"برای ماژول ها و زیر بسته های موجود در بسته تأثیر می گذارد." #: ../../tutorial/modules.rst:595 +#, fuzzy msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." msgstr "" +"در حالی که اغلب به این ویژگی نیازی نیست، اما می تواند برای گسترش مجموعه " +"ماژول های موجود در یک بسته استفاده شود." #: ../../tutorial/modules.rst:600 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پانوشت ها" #: ../../tutorial/modules.rst:601 +#, fuzzy msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition adds the function name to " "the module's global namespace." msgstr "" +"در واقع تعریف توابع نیز 'دستورات'ی هستند که 'اجرا' می شوند؛ اجرای تعریف یک " +"تابع در سطح ماژول، نام تابع را به فضای نام سراسری ماژول اضافه می کند." #: ../../tutorial/modules.rst:184 ../../tutorial/modules.rst:267 #: ../../tutorial/modules.rst:348 +#, fuzzy msgid "module" -msgstr "" +msgstr "ماژول" #: ../../tutorial/modules.rst:184 +#, fuzzy msgid "search" -msgstr "" +msgstr "جستجو" #: ../../tutorial/modules.rst:184 +#, fuzzy msgid "path" -msgstr "" +msgstr "مسیر" #: ../../tutorial/modules.rst:267 +#, fuzzy msgid "sys" -msgstr "" +msgstr "سیستم" #: ../../tutorial/modules.rst:348 +#, fuzzy msgid "builtins" -msgstr "" +msgstr "بیلت این ها" #: ../../tutorial/modules.rst:493 +#, fuzzy msgid "__all__" msgstr "" +"__all__ \n" +"__all__ در زبان برنامه نویسی پایتون یک متغیر لیست است که در ماژول ها برای تعریف نام هایی استفاده می شود که باید هنگام وارد کردن (import کردن) ماژول مورد نظر از طریق عبارت `from module import *` اکسپورت شوند. با تعریف __all__، شما می توانید کنترل دقیقی بر روی اجزایی که به بیرون از ماژول شما در دسترس قرار می گیرند داشته باشید." diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 89d537554..00af4a36a 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -14,29 +14,32 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/stdlib.rst:5 +#, fuzzy msgid "Brief Tour of the Standard Library" -msgstr "" +msgstr "مروری کوتاه بر کتابخانه استاندارد" #: ../../tutorial/stdlib.rst:11 +#, fuzzy msgid "Operating System Interface" -msgstr "" +msgstr "رابط کاربری سیستم عامل" #: ../../tutorial/stdlib.rst:13 +#, fuzzy msgid "" "The :mod:`os` module provides dozens of functions for interacting with the " "operating system::" -msgstr "" +msgstr "ماژول :mod:`os` ده ها تابع برای تعامل با سیستم عامل فراهم می کند::" #: ../../tutorial/stdlib.rst:16 +#, fuzzy msgid "" ">>> import os\n" ">>> os.getcwd() # Return the current working directory\n" @@ -45,21 +48,35 @@ msgid "" ">>> os.system('mkdir today') # Run the command mkdir in the system shell\n" "0" msgstr "" +">>> import os\n" +">>> os.getcwd() # مسیر کاری فعلی را بازگردانید\n" +"'C:\\\\Python313'\n" +">>> os.chdir('/server/accesslogs') # تغییر مسیر کاری فعلی\n" +">>> os.system('mkdir today') # اجرای دستور mkdir در شل سیستم\n" +"0" #: ../../tutorial/stdlib.rst:23 +#, fuzzy msgid "" "Be sure to use the ``import os`` style instead of ``from os import *``. " "This will keep :func:`os.open` from shadowing the built-in :func:`open` " "function which operates much differently." msgstr "" +"حتماً از سبک ``import os`` به جای ``from os import *`` استفاده کنید. این کار" +" مانع از این می شود که :func:`os.open` بر روی تابع داخلی :func:`open` که به " +"طور متفاوتی کار می کند، سایه بیندازد." #: ../../tutorial/stdlib.rst:29 +#, fuzzy msgid "" "The built-in :func:`dir` and :func:`help` functions are useful as " "interactive aids for working with large modules like :mod:`os`::" msgstr "" +"توابع داخلی :func:`dir` و :func:`help` به عنوان کمک های تعاملی برای کار با " +"ماژول های بزرگی مانند :mod:`os` مفید هستند::" #: ../../tutorial/stdlib.rst:32 +#, fuzzy msgid "" ">>> import os\n" ">>> dir(os)\n" @@ -67,14 +84,25 @@ msgid "" ">>> help(os)\n" "" msgstr "" +"```python\n" +">>> import os\n" +">>> dir(os)\n" +"<لیستی از تمام توابع ماژول را برمی گرداند>\n" +">>> help(os)\n" +"<یک صفحه راهنمای گسترده ای که از توضیحات داخلی ماژول ساخته شده است را برمی گرداند>\n" +"```" #: ../../tutorial/stdlib.rst:38 +#, fuzzy msgid "" "For daily file and directory management tasks, the :mod:`shutil` module " "provides a higher level interface that is easier to use::" msgstr "" +"برای انجام وظایف روزانه مدیریت فایل و پوشه، ماژول :mod:`shutil` یک رابط " +"کاربری سطح بالاتری را فراهم می کند که استفاده از آن آسان تر است::" #: ../../tutorial/stdlib.rst:41 +#, fuzzy msgid "" ">>> import shutil\n" ">>> shutil.copyfile('data.db', 'archive.db')\n" @@ -82,60 +110,96 @@ msgid "" ">>> shutil.move('/build/executables', 'installdir')\n" "'installdir'" msgstr "" +"```python\n" +">>> import shutil\n" +">>> shutil.copyfile('data.db', 'archive.db')\n" +"'archive.db'\n" +">>> shutil.move('/build/executables', 'installdir')\n" +"'installdir'\n" +"```" #: ../../tutorial/stdlib.rst:51 +#, fuzzy msgid "File Wildcards" -msgstr "" +msgstr "الگوهای جایگزین فایل ها" #: ../../tutorial/stdlib.rst:53 +#, fuzzy msgid "" "The :mod:`glob` module provides a function for making file lists from " "directory wildcard searches::" msgstr "" +"ماژول :mod:`glob` یک تابع برای ایجاد لیست فایل ها از جستجوهای کلی دایرکتوری " +"با استفاده از کاراکترهای جانشین فراهم می کند::" #: ../../tutorial/stdlib.rst:56 +#, fuzzy msgid "" ">>> import glob\n" ">>> glob.glob('*.py')\n" "['primes.py', 'random.py', 'quote.py']" msgstr "" +"```python\n" +">>> import glob\n" +">>> glob.glob('*.py')\n" +"['primes.py', 'random.py', 'quote.py']\n" +"```" #: ../../tutorial/stdlib.rst:64 +#, fuzzy msgid "Command Line Arguments" -msgstr "" +msgstr "آرگومان های خط فرمان" #: ../../tutorial/stdlib.rst:66 +#, fuzzy msgid "" "Common utility scripts often need to process command line arguments. These " -"arguments are stored in the :mod:`sys` module's *argv* attribute as a list. " -"For instance, let's take the following :file:`demo.py` file::" +"arguments are stored in the :mod:`sys` module's *argv* attribute as a list." +" For instance, let's take the following :file:`demo.py` file::" msgstr "" +"اسکریپت های متداول کمکی اغلب نیاز دارند تا آرگومان های خط فرمان را پردازش " +"کنند. این آرگومان ها به صورت یک لیست در ویژگی *argv* ماژول :mod:`sys` ذخیره " +"می شوند. به عنوان مثال، بیایید فایل :file:`demo.py` زیر را در نظر بگیریم::" #: ../../tutorial/stdlib.rst:70 +#, fuzzy msgid "" "# File demo.py\n" "import sys\n" "print(sys.argv)" msgstr "" +"```python\n" +"# فایل demo.py\n" +"import sys\n" +"print(sys.argv)\n" +"```" #: ../../tutorial/stdlib.rst:74 +#, fuzzy msgid "" "Here is the output from running ``python demo.py one two three`` at the " "command line::" msgstr "" +"در اینجا خروجی اجرای ``python demo.py one two three`` در خط فرمان آمده است::" #: ../../tutorial/stdlib.rst:77 +#, fuzzy msgid "['demo.py', 'one', 'two', 'three']" -msgstr "" +msgstr "['demo.py', 'یک', 'دو', 'سه']" #: ../../tutorial/stdlib.rst:79 +#, fuzzy msgid "" "The :mod:`argparse` module provides a more sophisticated mechanism to " "process command line arguments. The following script extracts one or more " "filenames and an optional number of lines to be displayed::" msgstr "" +"ماژول :mod:`argparse` مکانیزم پیچیده تری برای پردازش آرگومان های خط فرمان " +"فراهم می کند. اسکریپت زیر یک یا چند نام فایل و یک تعداد اختیاری از خطوطی که " +"باید نمایش داده شوند را استخراج می کند::" #: ../../tutorial/stdlib.rst:83 +#, fuzzy msgid "" "import argparse\n" "\n" @@ -147,47 +211,78 @@ msgid "" "args = parser.parse_args()\n" "print(args)" msgstr "" +"```python\n" +"import argparse\n" +"\n" +"parser = argparse.ArgumentParser(\n" +" prog='top',\n" +" description='نمایش خطوط اول از هر فایل')\n" +"parser.add_argument('filenames', nargs='+')\n" +"parser.add_argument('-l', '--lines', type=int, default=10)\n" +"args = parser.parse_args()\n" +"print(args)\n" +"```" #: ../../tutorial/stdlib.rst:93 +#, fuzzy msgid "" -"When run at the command line with ``python top.py --lines=5 alpha.txt beta." -"txt``, the script sets ``args.lines`` to ``5`` and ``args.filenames`` to " -"``['alpha.txt', 'beta.txt']``." +"When run at the command line with ``python top.py --lines=5 alpha.txt " +"beta.txt``, the script sets ``args.lines`` to ``5`` and ``args.filenames`` " +"to ``['alpha.txt', 'beta.txt']``." msgstr "" +"هنگامی که در خط فرمان با ``python top.py --lines=5 alpha.txt beta.txt`` اجرا" +" می شود، اسکریپت، ``args.lines`` را به ``5`` و ``args.filenames`` را به " +"``['alpha.txt', 'beta.txt']`` تنظیم می کند." #: ../../tutorial/stdlib.rst:101 +#, fuzzy msgid "Error Output Redirection and Program Termination" -msgstr "" +msgstr "هدایت خروجی خطا و پایان برنامه" #: ../../tutorial/stdlib.rst:103 +#, fuzzy msgid "" "The :mod:`sys` module also has attributes for *stdin*, *stdout*, and " "*stderr*. The latter is useful for emitting warnings and error messages to " "make them visible even when *stdout* has been redirected::" msgstr "" +"ماژول :mod:`sys` همچنین دارای ویژگی هایی برای *stdin*، *stdout* و *stderr* " +"است. مورد آخر برای ارسال هشدارها و پیام های خطا مفید است تا حتی زمانی که " +"*stdout* به مسیر دیگری هدایت شده است، قابل مشاهده باشند::" #: ../../tutorial/stdlib.rst:107 +#, fuzzy msgid "" ">>> sys.stderr.write('Warning, log file not found starting a new one\\n')\n" "Warning, log file not found starting a new one" msgstr "" +"``sys.stderr.write``('هشدار، فایل گزارش یافت نشد، یک فایل جدید ایجاد می " +"شود.\\n')" #: ../../tutorial/stdlib.rst:110 +#, fuzzy msgid "The most direct way to terminate a script is to use ``sys.exit()``." msgstr "" +"مستقیم ترین راه برای خاتمه دادن به یک اسکریپت، استفاده از ``sys.exit()`` " +"است." #: ../../tutorial/stdlib.rst:116 msgid "String Pattern Matching" msgstr "" #: ../../tutorial/stdlib.rst:118 +#, fuzzy msgid "" "The :mod:`re` module provides regular expression tools for advanced string " -"processing. For complex matching and manipulation, regular expressions offer " -"succinct, optimized solutions::" +"processing. For complex matching and manipulation, regular expressions offer" +" succinct, optimized solutions::" msgstr "" +"ماژول :mod:`re` ابزارهایی برای عبارات منظم ارائه می دهد که به پردازش پیشرفته" +" رشته ها کمک می کند. برای تطبیق و دستکاری های پیچیده، عبارات منظم راه حل های" +" مختصر و بهینه ای ارائه می کنند::" #: ../../tutorial/stdlib.rst:122 +#, fuzzy msgid "" ">>> import re\n" ">>> re.findall(r'\\bf[a-z]*', 'which foot or hand fell fastest')\n" @@ -195,30 +290,48 @@ msgid "" ">>> re.sub(r'(\\b[a-z]+) \\1', r'\\1', 'cat in the the hat')\n" "'cat in the hat'" msgstr "" +">>> import re\n" +">>> re.findall(r'\\bf[a-z]*', 'which foot or hand fell fastest')\n" +"['foot', 'fell', 'fastest']\n" +">>> re.sub(r'(\\b[a-z]+) \\1', r'\\1', 'cat in the the hat')\n" +"'cat in the hat'" #: ../../tutorial/stdlib.rst:128 +#, fuzzy msgid "" "When only simple capabilities are needed, string methods are preferred " "because they are easier to read and debug::" msgstr "" +"هنگامی که تنها به قابلیت های ساده نیاز است، استفاده از متدهای رشته ای ترجیح " +"داده می شود زیرا خواندن و اشکال زدایی آن ها آسان تر است::" #: ../../tutorial/stdlib.rst:131 +#, fuzzy msgid "" ">>> 'tea for too'.replace('too', 'two')\n" "'tea for two'" msgstr "" +"```python\n" +">>> 'tea for too'.replace('too', 'two')\n" +"'tea for two'\n" +"```" #: ../../tutorial/stdlib.rst:138 +#, fuzzy msgid "Mathematics" -msgstr "" +msgstr "ریاضیات" #: ../../tutorial/stdlib.rst:140 +#, fuzzy msgid "" "The :mod:`math` module gives access to the underlying C library functions " "for floating-point math::" msgstr "" +"ماژول :mod:`math` به توابع کتابخانه C پایه برای محاسبات ممیز شناور دسترسی می" +" دهد::" #: ../../tutorial/stdlib.rst:143 +#, fuzzy msgid "" ">>> import math\n" ">>> math.cos(math.pi / 4)\n" @@ -226,12 +339,22 @@ msgid "" ">>> math.log(1024, 2)\n" "10.0" msgstr "" +"``` python\n" +">>> import math\n" +">>> math.cos(math.pi / 4)\n" +"0.70710678118654757\n" +">>> math.log(1024, 2)\n" +"10.0\n" +"```" #: ../../tutorial/stdlib.rst:149 +#, fuzzy msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" +"ماژول :mod:`random` ابزارهایی برای انجام انتخاب های تصادفی ارائه می دهد::" #: ../../tutorial/stdlib.rst:151 +#, fuzzy msgid "" ">>> import random\n" ">>> random.choice(['apple', 'pear', 'banana'])\n" @@ -243,12 +366,26 @@ msgid "" ">>> random.randrange(6) # random integer chosen from range(6)\n" "4" msgstr "" +"```python\n" +">>> import random\n" +">>> random.choice(['apple', 'pear', 'banana'])\n" +"'سیب'\n" +">>> random.sample(range(100), 10) # نمونه گیری بدون جایگزینی\n" +"[30, 83، 16، 4، 8، 81، 41، 50، 18، 33]\n" +">>> random.random() # عدد اعشاری تصادفی از بازه [0.0، 1.0)\n" +"0.17970987693706186\n" +">>> random.randrange(6) # عدد صحیح تصادفی انتخاب شده از range(6)\n" +"4\n" +"```" #: ../../tutorial/stdlib.rst:161 +#, fuzzy msgid "" "The :mod:`statistics` module calculates basic statistical properties (the " "mean, median, variance, etc.) of numeric data::" msgstr "" +"ماژول :mod:`statistics` خصوصیات آماری پایه (میانگین، میانه، واریانس، و غیره)" +" داده های عددی را محاسبه می کند::" #: ../../tutorial/stdlib.rst:164 msgid "" @@ -263,27 +400,34 @@ msgid "" msgstr "" #: ../../tutorial/stdlib.rst:173 +#, fuzzy msgid "" "The SciPy project has many other modules for numerical " "computations." msgstr "" +"پروژه SciPy شامل ماژول های متعددی برای محاسبات عددی است." #: ../../tutorial/stdlib.rst:179 +#, fuzzy msgid "Internet Access" -msgstr "" +msgstr "دسترسی به اینترنت" #: ../../tutorial/stdlib.rst:181 +#, fuzzy msgid "" "There are a number of modules for accessing the internet and processing " "internet protocols. Two of the simplest are :mod:`urllib.request` for " "retrieving data from URLs and :mod:`smtplib` for sending mail::" msgstr "" +"ماژول های متعددی برای دسترسی به اینترنت و پردازش پروتکل های اینترنت وجود " +"دارند. دو مورد از ساده ترین آنها، ماژول ``:mod:`urllib.request``` برای " +"دریافت داده ها از URL ها و ``:mod:`smtplib``` برای ارسال ایمیل هستند." #: ../../tutorial/stdlib.rst:185 +#, fuzzy msgid "" ">>> from urllib.request import urlopen\n" -">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as " -"response:\n" +">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as response:\n" "... for line in response:\n" "... line = line.decode() # Convert bytes to a str\n" "... if line.startswith('datetime'):\n" @@ -301,25 +445,56 @@ msgid "" "... \"\"\")\n" ">>> server.quit()" msgstr "" +"```python\n" +">>> from urllib.request import urlopen\n" +">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as response:\n" +"... for line in response:\n" +"... line = line.decode() # تبدیل بایت ها به رشته\n" +"... if line.startswith('datetime'):\n" +"... print(line.rstrip()) # حذف خط جدید انتهایی\n" +"...\n" +"datetime: 2022-01-01T01:36:47.689215+00:00\n" +"\n" +">>> import smtplib\n" +">>> server = smtplib.SMTP('localhost')\n" +">>> server.sendmail('soothsayer@example.org', 'jcaesar@example.org',\n" +"... \"\"\"To: jcaesar@example.org\n" +"... From: soothsayer@example.org\n" +"...\n" +"... از «ایدس مارس» برحذر باش.\n" +"... \"\"\")\n" +">>> server.quit()\n" +"```" #: ../../tutorial/stdlib.rst:204 -msgid "(Note that the second example needs a mailserver running on localhost.)" +#, fuzzy +msgid "" +"(Note that the second example needs a mailserver running on localhost.)" msgstr "" +"(توجه داشته باشید که مثال دوم نیاز به یک mailserver در حال اجرا بر روی " +"localhost دارد.)" #: ../../tutorial/stdlib.rst:210 +#, fuzzy msgid "Dates and Times" -msgstr "" +msgstr "تاریخ ها و زمان ها" #: ../../tutorial/stdlib.rst:212 +#, fuzzy msgid "" -"The :mod:`datetime` module supplies classes for manipulating dates and times " -"in both simple and complex ways. While date and time arithmetic is " -"supported, the focus of the implementation is on efficient member extraction " -"for output formatting and manipulation. The module also supports objects " +"The :mod:`datetime` module supplies classes for manipulating dates and times" +" in both simple and complex ways. While date and time arithmetic is " +"supported, the focus of the implementation is on efficient member extraction" +" for output formatting and manipulation. The module also supports objects " "that are timezone aware. ::" msgstr "" +"ماژول :mod:`datetime` کلا س هایی برای مدیریت تاریخ و زمان به روش های ساده و " +"پیچیده فراهم می کند. در حالی که محاسبات تاریخ و زمان پشتیبانی می شود، تمرکز " +"پیاده سازی بر استخراج کارآمد اعضا برای قالب بندی و مدیریت خروجی است. این " +"ماژول از اشیائی که آگاه به منطقه زمانی هستند نیز پشتیبانی می کند. ::" #: ../../tutorial/stdlib.rst:218 +#, fuzzy msgid "" ">>> # dates are easily constructed and formatted\n" ">>> from datetime import date\n" @@ -335,19 +510,40 @@ msgid "" ">>> age.days\n" "14368" msgstr "" +"```python\n" +">>> # تاریخ ها به سادگی ساخته و قالب بندی می شوند\n" +">>> from datetime import date\n" +">>> امروز = date.today()\n" +">>> امروز\n" +"datetime.date(2003, 12, 2)\n" +">>> امروز.strftime(\"%m-%d-%y. %d %b %Y is a %A on the %d day of %B.\")\n" +"'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'\n" +"\n" +">>> # تاریخ ها از حساب تقویمی پشتیبانی می کنند\n" +">>> تولد = date(1964, 7, 31)\n" +">>> سن = امروز - تولد\n" +">>> سن.days\n" +"14368\n" +"```" #: ../../tutorial/stdlib.rst:236 +#, fuzzy msgid "Data Compression" -msgstr "" +msgstr "فشرده سازی داده ها" #: ../../tutorial/stdlib.rst:238 +#, fuzzy msgid "" "Common data archiving and compression formats are directly supported by " -"modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:" -"`zipfile` and :mod:`tarfile`. ::" +"modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, " +":mod:`zipfile` and :mod:`tarfile`. ::" msgstr "" +"قالب های رایج بایگانی و فشرده سازی داده ها به طور مستقیم توسط ماژول های زیر " +"پشتیبانی می شوند: :mod:`zlib`، :mod:`gzip`، :mod:`bz2`، :mod:`lzma`، " +":mod:`zipfile` و :mod:`tarfile`. ::" #: ../../tutorial/stdlib.rst:242 +#, fuzzy msgid "" ">>> import zlib\n" ">>> s = b'witch which has which witches wrist watch'\n" @@ -361,26 +557,49 @@ msgid "" ">>> zlib.crc32(s)\n" "226805979" msgstr "" +"```\n" +">>> import zlib\n" +">>> s = b'witch which has which witches wrist watch'\n" +">>> len(s)\n" +"41\n" +">>> t = zlib.compress(s)\n" +">>> len(t)\n" +"37\n" +">>> zlib.decompress(t)\n" +"b'witch which has which witches wrist watch'\n" +">>> zlib.crc32(s)\n" +"226805979\n" +"```" #: ../../tutorial/stdlib.rst:258 +#, fuzzy msgid "Performance Measurement" -msgstr "" +msgstr "اندازه گیری عملکرد" #: ../../tutorial/stdlib.rst:260 +#, fuzzy msgid "" "Some Python users develop a deep interest in knowing the relative " "performance of different approaches to the same problem. Python provides a " "measurement tool that answers those questions immediately." msgstr "" +"برخی از کاربران پایتون علاقه مند به دانستن عملکرد نسبی روش های مختلف برای حل" +" یک مسئله ی یکسان می شوند. پایتون ابزاری برای اندازه گیری فراهم کرده است که " +"به سرعت به این سوالات پاسخ می دهد." #: ../../tutorial/stdlib.rst:264 +#, fuzzy msgid "" "For example, it may be tempting to use the tuple packing and unpacking " -"feature instead of the traditional approach to swapping arguments. The :mod:" -"`timeit` module quickly demonstrates a modest performance advantage::" +"feature instead of the traditional approach to swapping arguments. The " +":mod:`timeit` module quickly demonstrates a modest performance advantage::" msgstr "" +"به عنوان مثال، ممکن است وسوسه انگیز باشد که به جای روش سنتی جابجا کردن " +"آرگومان ها از قابلیت بستن و باز کردن `tuple` ها استفاده کنید. ماژول " +":mod:`timeit` به سرعت یک مزیت عملکردی کوچک را نشان می دهد::" #: ../../tutorial/stdlib.rst:268 +#, fuzzy msgid "" ">>> from timeit import Timer\n" ">>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()\n" @@ -388,36 +607,58 @@ msgid "" ">>> Timer('a,b = b,a', 'a=1; b=2').timeit()\n" "0.54962537085770791" msgstr "" +"```\n" +">>> from timeit import Timer\n" +">>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()\n" +"0.57535828626024577\n" +">>> Timer('a,b = b,a', 'a=1; b=2').timeit()\n" +"0.54962537085770791\n" +"```" #: ../../tutorial/stdlib.rst:274 +#, fuzzy msgid "" -"In contrast to :mod:`timeit`'s fine level of granularity, the :mod:`profile` " -"and :mod:`pstats` modules provide tools for identifying time critical " +"In contrast to :mod:`timeit`'s fine level of granularity, the :mod:`profile`" +" and :mod:`pstats` modules provide tools for identifying time critical " "sections in larger blocks of code." msgstr "" +"برخلاف سطح دانه بندی دقیق :mod:`timeit`، ماژول های :mod:`profile` و " +":mod:`pstats` ابزارهایی برای شناسایی بخش های بحرانی زمانی در بلوک های بزرگتر" +" کد ارائه می دهند." #: ../../tutorial/stdlib.rst:282 +#, fuzzy msgid "Quality Control" -msgstr "" +msgstr "کنترل کیفیت" #: ../../tutorial/stdlib.rst:284 +#, fuzzy msgid "" -"One approach for developing high quality software is to write tests for each " -"function as it is developed and to run those tests frequently during the " +"One approach for developing high quality software is to write tests for each" +" function as it is developed and to run those tests frequently during the " "development process." msgstr "" +"یکی از رویکردهای توسعه ی نرم افزار با کیفیت بالا، نوشتن تست ها برای هر تابع " +"به محض توسعه ی آن و اجرای مکرر این تست ها در طول فرایند توسعه است." #: ../../tutorial/stdlib.rst:288 +#, fuzzy msgid "" "The :mod:`doctest` module provides a tool for scanning a module and " "validating tests embedded in a program's docstrings. Test construction is " "as simple as cutting-and-pasting a typical call along with its results into " -"the docstring. This improves the documentation by providing the user with an " -"example and it allows the doctest module to make sure the code remains true " -"to the documentation::" +"the docstring. This improves the documentation by providing the user with an" +" example and it allows the doctest module to make sure the code remains true" +" to the documentation::" msgstr "" +"ماژول :mod:`doctest` ابزاری برای اسکن کردن یک ماژول و اعتبارسنجی تست های " +"تعبیه شده در docstring های یک برنامه ارائه می دهد. ساخت تست به اندازه کپی " +"کردن و قرار دادن یک فراخوانی معمولی به همراه نتایج آن درون docstring ساده " +"است. این کار با ارائه یک مثال به کاربر، مستندات را بهبود می بخشد و به ماژول " +"doctest اجازه می دهد که مطمئن شود کد با مستندات مطابقت دارد." #: ../../tutorial/stdlib.rst:295 +#, fuzzy msgid "" "def average(values):\n" " \"\"\"Computes the arithmetic mean of a list of numbers.\n" @@ -430,15 +671,32 @@ msgid "" "import doctest\n" "doctest.testmod() # automatically validate the embedded tests" msgstr "" +"```python\n" +"def average(values):\n" +" \"\"\"میانگین حسابی یک لیست از اعداد را محاسبه می کند.\n" +"\n" +" >>> print(average([20, 30, 70]))\n" +" 40.0\n" +" \"\"\"\n" +" return sum(values) / len(values)\n" +"\n" +"import doctest\n" +"doctest.testmod() # به صورت خودکار تست های تعبیه شده را اعتبارسنجی می کند\n" +"```" #: ../../tutorial/stdlib.rst:306 +#, fuzzy msgid "" "The :mod:`unittest` module is not as effortless as the :mod:`doctest` " "module, but it allows a more comprehensive set of tests to be maintained in " "a separate file::" msgstr "" +"ماژول :mod:`unittest` به اندازه ی ماژول :mod:`doctest` به سادگی نیست، اما " +"این امکان را می دهد که مجموعه ای جامع تر از تست ها در یک فایل جداگانه " +"نگهداری شوند::" #: ../../tutorial/stdlib.rst:310 +#, fuzzy msgid "" "import unittest\n" "\n" @@ -454,63 +712,110 @@ msgid "" "\n" "unittest.main() # Calling from the command line invokes all tests" msgstr "" +"```python\n" +"import unittest\n" +"\n" +"class TestStatisticalFunctions(unittest.TestCase):\n" +"\n" +" def test_average(self):\n" +" self.assertEqual(average([20, 30, 70]), 40.0)\n" +" self.assertEqual(round(average([1, 5, 7]), 1), 4.3)\n" +" with self.assertRaises(ZeroDivisionError):\n" +" average([])\n" +" with self.assertRaises(TypeError):\n" +" average(20, 30, 70)\n" +"\n" +"unittest.main() # فراخوانی از خط فرمان تمامی تست ها را اجرا می کند\n" +"```" #: ../../tutorial/stdlib.rst:328 +#, fuzzy msgid "Batteries Included" -msgstr "" +msgstr "شامل بودن امکانات پایه" #: ../../tutorial/stdlib.rst:330 +#, fuzzy msgid "" "Python has a \"batteries included\" philosophy. This is best seen through " "the sophisticated and robust capabilities of its larger packages. For " "example:" msgstr "" +"پایتون دارای فلسفه \"همراه با باتری\" است. این موضوع به خوبی از طریق قابلیت " +"های پیچیده و قدرتمند بسته های بزرگتر آن نمایان می شود. به عنوان مثال:" #: ../../tutorial/stdlib.rst:333 +#, fuzzy msgid "" "The :mod:`xmlrpc.client` and :mod:`xmlrpc.server` modules make implementing " "remote procedure calls into an almost trivial task. Despite the modules' " "names, no direct knowledge or handling of XML is needed." msgstr "" +"ماژول های :mod:`xmlrpc.client` و :mod:`xmlrpc.server` اجرا کردن فراخوانی " +"رویه های از راه دور را به یک کار تقریباً ساده تبدیل می کنند. با وجود نام های" +" این ماژول ها، نیازی به دانش مستقیم یا مدیریت XML نیست." #: ../../tutorial/stdlib.rst:337 +#, fuzzy msgid "" -"The :mod:`email` package is a library for managing email messages, including " -"MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " +"The :mod:`email` package is a library for managing email messages, including" +" MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " "and :mod:`poplib` which actually send and receive messages, the email " "package has a complete toolset for building or decoding complex message " "structures (including attachments) and for implementing internet encoding " "and header protocols." msgstr "" +"پکیج :mod:`email` یک کتابخانه برای مدیریت پیام های ایمیل است که شامل اسناد " +"پیامی مبتنی بر MIME و دیگر اسناد مبتنی بر :rfc:`2822` می شود. برخلاف " +":mod:`smtplib` و :mod:`poplib` که عملاً پیام ها را ارسال و دریافت می کنند، " +"پکیج ایمیل دارای یک مجموعه ابزار کامل برای ساخت یا رمزگشایی ساختارهای پیچیده" +" پیام ها (شامل پیوست ها) و برای پیاده سازی رمزگذاری اینترنت و پروتکل های " +"سرصفحه است." #: ../../tutorial/stdlib.rst:344 +#, fuzzy msgid "" "The :mod:`json` package provides robust support for parsing this popular " "data interchange format. The :mod:`csv` module supports direct reading and " "writing of files in Comma-Separated Value format, commonly supported by " -"databases and spreadsheets. XML processing is supported by the :mod:`xml." -"etree.ElementTree`, :mod:`xml.dom` and :mod:`xml.sax` packages. Together, " -"these modules and packages greatly simplify data interchange between Python " -"applications and other tools." -msgstr "" +"databases and spreadsheets. XML processing is supported by the " +":mod:`xml.etree.ElementTree`, :mod:`xml.dom` and :mod:`xml.sax` packages. " +"Together, these modules and packages greatly simplify data interchange " +"between Python applications and other tools." +msgstr "" +"پکیج :mod:`json` پشتیبانی قوی ای برای تجزیه این فرمت محبوب تبادل داده ارائه " +"می دهد. ماژول :mod:`csv` خواندن و نوشتن مستقیم فایل ها در قالب «مقدار-جدا-" +"شده-با-ویرگول» را که معمولاً توسط پایگاه های داده و صفحه گسترده ها پشتیبانی " +"می شود، فراهم می کند. پردازش XML توسط پکیج های :mod:`xml.etree.ElementTree`،" +" :mod:`xml.dom` و :mod:`xml.sax` پشتیبانی می شود. به همراه هم، این ماژول ها " +"و پکیج ها تبادل داده بین برنامه های پایتون و دیگر ابزارها را به شدت ساده می " +"کنند." #: ../../tutorial/stdlib.rst:353 +#, fuzzy msgid "" "The :mod:`sqlite3` module is a wrapper for the SQLite database library, " "providing a persistent database that can be updated and accessed using " "slightly nonstandard SQL syntax." msgstr "" +"ماژول :mod:`sqlite3` یک بسته بندی برای کتابخانه پایگاه داده SQLite است که یک" +" پایگاه داده پایدار ارائه می دهد که می تواند با استفاده از سینتکس SQL با کمی" +" تغییر به روزرسانی و دسترسی پیدا کند." #: ../../tutorial/stdlib.rst:357 +#, fuzzy msgid "" -"Internationalization is supported by a number of modules including :mod:" -"`gettext`, :mod:`locale`, and the :mod:`codecs` package." +"Internationalization is supported by a number of modules including " +":mod:`gettext`, :mod:`locale`, and the :mod:`codecs` package." msgstr "" +"پشتیبانی از بین المللی سازی توسط تعدادی از ماژول ها از جمله :mod:`gettext`، " +":mod:`locale` و بستهٔ :mod:`codecs` انجام می شود." #: ../../tutorial/stdlib.rst:27 +#, fuzzy msgid "built-in function" -msgstr "" +msgstr "تابع داخلی" #: ../../tutorial/stdlib.rst:27 +#, fuzzy msgid "help" -msgstr "" +msgstr "راهنما" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 7db59d0c6..359dfcdbb 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -14,50 +14,70 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/stdlib2.rst:5 +#, fuzzy msgid "Brief Tour of the Standard Library --- Part II" -msgstr "" +msgstr "مروری کوتاه بر کتابخانه استاندارد --- قسمت دوم" #: ../../tutorial/stdlib2.rst:7 +#, fuzzy msgid "" "This second tour covers more advanced modules that support professional " "programming needs. These modules rarely occur in small scripts." msgstr "" +"این تور دوم به بررسی ماژول های پیشرفته تری می پردازد که نیازهای برنامه نویسی" +" حرفه ای را پشتیبانی می کنند. این ماژول ها به ندرت در اسکریپت های کوچک " +"مشاهده می شوند." #: ../../tutorial/stdlib2.rst:14 +#, fuzzy msgid "Output Formatting" -msgstr "" +msgstr "قالب بندی خروجی" #: ../../tutorial/stdlib2.rst:16 +#, fuzzy msgid "" "The :mod:`reprlib` module provides a version of :func:`repr` customized for " "abbreviated displays of large or deeply nested containers::" msgstr "" +"ماژول :mod:`reprlib` نسخه ای از :func:`repr` را ارائه می دهد که برای نمایش " +"خلاصه ای از مجموعه های بزرگ یا تو در تو سفارشی شده است." #: ../../tutorial/stdlib2.rst:19 +#, fuzzy msgid "" ">>> import reprlib\n" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" msgstr "" +"```python\n" +">>> import reprlib\n" +">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" +"\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"\n" +"```" #: ../../tutorial/stdlib2.rst:23 +#, fuzzy msgid "" "The :mod:`pprint` module offers more sophisticated control over printing " "both built-in and user defined objects in a way that is readable by the " -"interpreter. When the result is longer than one line, the \"pretty printer\" " -"adds line breaks and indentation to more clearly reveal data structure::" +"interpreter. When the result is longer than one line, the \"pretty printer\"" +" adds line breaks and indentation to more clearly reveal data structure::" msgstr "" +"ماژول :mod:`pprint` کنترل پیچیده تری بر روی چاپ اشیای داخلی و تعریف شده توسط" +" کاربر ارائه می دهد، به طوری که برای مفسر قابل خواندن باشد. وقتی نتیجه بیشتر" +" از یک خط می شود، «پرینتر زیبا» شکستگی های خط و تورفتگی هایی اضافه می کند تا" +" ساختار داده ها را به وضوح بیشتری نشان دهد." #: ../../tutorial/stdlib2.rst:28 +#, fuzzy msgid "" ">>> import pprint\n" ">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" @@ -70,18 +90,33 @@ msgid "" " [['magenta', 'yellow'],\n" " 'blue']]]" msgstr "" +"```python\n" +">>> import pprint\n" +">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" +"... 'yellow'], 'blue']]]\n" +"...\n" +">>> pprint.pprint(t, width=30)\n" +"[[[['black', 'cyan'],\n" +" 'white',\n" +" ['green', 'red']],\n" +" [['magenta', 'yellow'],\n" +" 'blue']]]\n" +"```" #: ../../tutorial/stdlib2.rst:39 +#, fuzzy msgid "" "The :mod:`textwrap` module formats paragraphs of text to fit a given screen " "width::" msgstr "" +"ماژول :mod:`textwrap` پاراگراف های متن را به صورتی قالب بندی می کند که با " +"عرض مشخص شده برای صفحه متناسب باشد." #: ../../tutorial/stdlib2.rst:42 +#, fuzzy msgid "" ">>> import textwrap\n" -">>> doc = \"\"\"The wrap() method is just like fill() except that it " -"returns\n" +">>> doc = \"\"\"The wrap() method is just like fill() except that it returns\n" "... a list of strings instead of one big string with newlines to separate\n" "... the wrapped lines.\"\"\"\n" "...\n" @@ -91,15 +126,32 @@ msgid "" "instead of one big string with newlines\n" "to separate the wrapped lines." msgstr "" +"```python\n" +">>> import textwrap\n" +">>> doc = \"\"\"متد wrap() درست مانند fill() است، به جز اینکه\n" +"... به جای یک رشته بزرگ با خطوط جدید برای جداسازی\n" +"... خطوط پیچیده شده، یک لیست از رشته ها برمی گرداند.\"\"\"\n" +"...\n" +">>> print(textwrap.fill(doc, width=40))\n" +"متد wrap() درست مانند fill() است، به جز\n" +"اینکه به جای یک رشته بزرگ با خطوط جدید\n" +"برای جداسازی خطوط پیچیده شده، یک لیست از\n" +"رشته ها برمی گرداند.\n" +"```" #: ../../tutorial/stdlib2.rst:53 +#, fuzzy msgid "" "The :mod:`locale` module accesses a database of culture specific data " "formats. The grouping attribute of locale's format function provides a " "direct way of formatting numbers with group separators::" msgstr "" +"ماژول :mod:`locale` به یک پایگاه داده از قالب های داده های خاص فرهنگ دسترسی " +"دارد. ویژگی گروه بندی تابع قالب بندی locale یک راه مستقیم برای قالب بندی " +"اعداد با جداکننده های گروه فراهم می کند::" #: ../../tutorial/stdlib2.rst:57 +#, fuzzy msgid "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" @@ -112,46 +164,84 @@ msgid "" "... conv['frac_digits'], x), grouping=True)\n" "'$1,234,567.80'" msgstr "" +"```python\n" +">>> import locale\n" +">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" +"'English_United States.1252'\n" +">>> conv = locale.localeconv() # دریافت نقشه ای از قراردادها\n" +">>> x = 1234567.8\n" +">>> locale.format_string(\"%d\", x, grouping=True)\n" +"'1,234,567'\n" +">>> locale.format_string(\"%s%.*f\", (conv['currency_symbol'],\n" +"... conv['frac_digits'], x), grouping=True)\n" +"'$1,234,567.80'\n" +"```" #: ../../tutorial/stdlib2.rst:72 +#, fuzzy msgid "Templating" -msgstr "" +msgstr "قالب بندی" #: ../../tutorial/stdlib2.rst:74 +#, fuzzy msgid "" "The :mod:`string` module includes a versatile :class:`~string.Template` " "class with a simplified syntax suitable for editing by end-users. This " "allows users to customize their applications without having to alter the " "application." msgstr "" +"ماژول :mod:`string` شامل یک کلاس چندمنظوره :class:`~string.Template` با یک " +"نحوی ساده شده است که مناسب ویرایش توسط کاربران نهایی می باشد. این امکان به " +"کاربران داده می شود تا برنامه های خود را بدون نیاز به تغییر برنامه سفارشی " +"سازی کنند." #: ../../tutorial/stdlib2.rst:78 +#, fuzzy msgid "" "The format uses placeholder names formed by ``$`` with valid Python " "identifiers (alphanumeric characters and underscores). Surrounding the " "placeholder with braces allows it to be followed by more alphanumeric " -"letters with no intervening spaces. Writing ``$$`` creates a single escaped " -"``$``::" +"letters with no intervening spaces. Writing ``$$`` creates a single escaped" +" ``$``::" msgstr "" +"فرمت از نام های جایگزین تشکیل شده است که به صورت ``$`` با شناسه های معتبر " +"Python (کاراکترهای الفبایی-عددی و زیرخط) ساخته شده اند. قرار دادن جایگزین " +"درون آکولادها به آن امکان می دهد که بدون فاصله با حروف الفبایی-عددی بیشتری " +"دنبال شود. نوشتن ``$$`` یک ``$`` فرار تک ایجاد می کند::" #: ../../tutorial/stdlib2.rst:83 +#, fuzzy msgid "" ">>> from string import Template\n" ">>> t = Template('${village}folk send $$10 to $cause.')\n" ">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" "'Nottinghamfolk send $10 to the ditch fund.'" msgstr "" +"```python\n" +">>> from string import Template\n" +">>> t = Template('${village}folk send $$10 to $cause.')\n" +">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" +"'Nottinghamfolk send $10 to the ditch fund.'\n" +"```" #: ../../tutorial/stdlib2.rst:88 +#, fuzzy msgid "" -"The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when " -"a placeholder is not supplied in a dictionary or a keyword argument. For " -"mail-merge style applications, user supplied data may be incomplete and the :" -"meth:`~string.Template.safe_substitute` method may be more appropriate --- " +"The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when" +" a placeholder is not supplied in a dictionary or a keyword argument. For " +"mail-merge style applications, user supplied data may be incomplete and the " +":meth:`~string.Template.safe_substitute` method may be more appropriate --- " "it will leave placeholders unchanged if data is missing::" msgstr "" +"روش :meth:`~string.Template.substitute` یک :exc:`KeyError` را زمانی ایجاد می" +" کند که یک \"placeholder\" در یک دیکشنری یا یک آرگومان کلیدی تأمین نشده " +"باشد. برای برنامه های کاربردی مشابه \"mail-merge\"، داده های تأمین شده توسط " +"کاربر ممکن است ناقص باشند و روش :meth:`~string.Template.safe_substitute` " +"ممکن است مناسب تر باشد --- زیرا اگر داده ای موجود نباشد، \"placeholders\" را" +" بدون تغییر باقی خواهد گذاشت." #: ../../tutorial/stdlib2.rst:94 +#, fuzzy msgid "" ">>> t = Template('Return the $item to $owner.')\n" ">>> d = dict(item='unladen swallow')\n" @@ -162,16 +252,32 @@ msgid "" ">>> t.safe_substitute(d)\n" "'Return the unladen swallow to $owner.'" msgstr "" +"```plaintext\n" +">>> t = Template('Return the $item to $owner.')\n" +">>> d = dict(item='unladen swallow')\n" +">>> t.substitute(d)\n" +"ردیابی (آخرین فراخوانی اخیر):\n" +" ...\n" +"KeyError: 'owner'\n" +">>> t.safe_substitute(d)\n" +"'Return the unladen swallow to $owner.'\n" +"```" #: ../../tutorial/stdlib2.rst:103 +#, fuzzy msgid "" "Template subclasses can specify a custom delimiter. For example, a batch " "renaming utility for a photo browser may elect to use percent signs for " "placeholders such as the current date, image sequence number, or file " "format::" msgstr "" +"زیرکلاس های `Template` می توانند یک جداکننده سفارشی تعیین کنند. به عنوان " +"مثال، یک ابزار تغییر نام گروهی برای مرورگر عکس ممکن است تصمیم بگیرد از علامت" +" درصد به عنوان جایگزین برای نگهدارنده هایی مانند تاریخ فعلی، شماره تصویر " +"دنباله یا فرمت فایل استفاده کند::" #: ../../tutorial/stdlib2.rst:107 +#, fuzzy msgid "" ">>> import time, os.path\n" ">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" @@ -192,30 +298,64 @@ msgid "" "img_1076.jpg --> Ashley_1.jpg\n" "img_1077.jpg --> Ashley_2.jpg" msgstr "" +"```python\n" +">>> import time, os.path\n" +">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" +">>> class BatchRename(Template):\n" +"... در اینجا از \"Template\" استفاده می کنیم.\n" +"... delimiter = '%'\n" +"...\n" +">>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ')\n" +"فرمت جدید نام گذاری را وارد کنید (%d-تاریخ %n-شماره توالی %f-فرمت): Ashley_%n%f\n" +"\n" +">>> t = BatchRename(fmt)\n" +">>> date = time.strftime('%d%b%y')\n" +">>> for i, filename in enumerate(photofiles):\n" +"... base, ext = os.path.splitext(filename)\n" +"... newname = t.substitute(d=date, n=i, f=ext)\n" +"... print('{0} --> {1}'.format(filename, newname))\n" +"\n" +"img_1074.jpg --> Ashley_0.jpg\n" +"img_1076.jpg --> Ashley_1.jpg\n" +"img_1077.jpg --> Ashley_2.jpg\n" +"```" #: ../../tutorial/stdlib2.rst:126 +#, fuzzy msgid "" "Another application for templating is separating program logic from the " "details of multiple output formats. This makes it possible to substitute " "custom templates for XML files, plain text reports, and HTML web reports." msgstr "" +"کاربرد دیگر قالب بندی جدا کردن منطق برنامه از جزئیات فرمت های مختلف خروجی " +"است. این کار امکان جایگزینی قالب های سفارشی برای فایل های XML، گزارش های متن" +" ساده و گزارش های وب HTML را فراهم می کند." #: ../../tutorial/stdlib2.rst:134 +#, fuzzy msgid "Working with Binary Data Record Layouts" -msgstr "" +msgstr "کار با چیدمان رکورد داده های دودویی" #: ../../tutorial/stdlib2.rst:136 +#, fuzzy msgid "" -"The :mod:`struct` module provides :func:`~struct.pack` and :func:`~struct." -"unpack` functions for working with variable length binary record formats. " -"The following example shows how to loop through header information in a ZIP " -"file without using the :mod:`zipfile` module. Pack codes ``\"H\"`` and " -"``\"I\"`` represent two and four byte unsigned numbers respectively. The " -"``\"<\"`` indicates that they are standard size and in little-endian byte " -"order::" -msgstr "" +"The :mod:`struct` module provides :func:`~struct.pack` and " +":func:`~struct.unpack` functions for working with variable length binary " +"record formats. The following example shows how to loop through header " +"information in a ZIP file without using the :mod:`zipfile` module. Pack " +"codes ``\"H\"`` and ``\"I\"`` represent two and four byte unsigned numbers " +"respectively. The ``\"<\"`` indicates that they are standard size and in " +"little-endian byte order::" +msgstr "" +"ماژول :mod:`struct` توابع :func:`~struct.pack` و :func:`~struct.unpack` را " +"برای کار با فرمت های رکورد دودویی با طول متغیر فراهم می کند. مثال زیر نشان " +"می دهد که چگونه می توان بدون استفاده از ماژول :mod:`zipfile` از طریق اطلاعات" +" هدر در یک فایل ZIP مرور کرد. کدهای بسته ``\"H\"`` و ``\"I\"`` به ترتیب " +"نمایانگر اعداد بدون علامت دو و چهار بایتی هستند. ``\"<\"`` نشان می دهد که " +"این اعداد دارای اندازه استاندارد و به ترتیب بایت های little-endian هستند::" #: ../../tutorial/stdlib2.rst:144 +#, fuzzy msgid "" "import struct\n" "\n" @@ -236,27 +376,58 @@ msgid "" "\n" " start += extra_size + comp_size # skip to the next header" msgstr "" +"```python\n" +"import struct\n" +"\n" +"with open('myfile.zip', 'rb') as f:\n" +" data = f.read()\n" +"\n" +"start = 0\n" +"for i in range(3): # نمایش هدرهای 3 فایل اول\n" +" start += 14\n" +" fields = struct.unpack('>> import weakref, gc\n" ">>> class A:\n" @@ -396,28 +646,62 @@ msgid "" " o = self.data[key]()\n" "KeyError: 'primary'" msgstr "" +">>> import weakref, gc\n" +">>> class A:\n" +"... def __init__(self, value):\n" +"... self.value = value\n" +"... def __repr__(self):\n" +"... return str(self.value)\n" +"...\n" +">>> a = A(10) # ایجاد یک ارجاع\n" +">>> d = weakref.WeakValueDictionary()\n" +">>> d['primary'] = a # ایجاد نکردن ارجاع\n" +">>> d['primary'] # واکشی شیء اگر همچنان زنده باشد\n" +"10\n" +">>> del a # حذف تنها ارجاع\n" +">>> gc.collect() # اجرای هم زمان جمع آوری زباله\n" +"0\n" +">>> d['primary'] # ورود به طور خودکار حذف شد\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" d['primary'] # ورود به طور خودکار حذف شد\n" +" File \"C:/python313/lib/weakref.py\", line 46, in __getitem__\n" +" o = self.data[key]()\n" +"KeyError: 'primary'" #: ../../tutorial/stdlib2.rst:290 +#, fuzzy msgid "Tools for Working with Lists" -msgstr "" +msgstr "ابزارهایی برای کار با لیست ها" #: ../../tutorial/stdlib2.rst:292 +#, fuzzy msgid "" "Many data structure needs can be met with the built-in list type. However, " "sometimes there is a need for alternative implementations with different " "performance trade-offs." msgstr "" +"نیازهای بسیاری از ساختارهای داده را می توان با نوع لیست داخلی برآورده کرد. " +"با این حال، گاهی اوقات نیاز به پیاده سازی های جایگزین با مبادلات عملکردی " +"متفاوت وجود دارد." #: ../../tutorial/stdlib2.rst:296 +#, fuzzy msgid "" "The :mod:`array` module provides an :class:`~array.array` object that is " -"like a list that stores only homogeneous data and stores it more compactly. " -"The following example shows an array of numbers stored as two byte unsigned " -"binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes per entry " -"for regular lists of Python int objects::" +"like a list that stores only homogeneous data and stores it more compactly." +" The following example shows an array of numbers stored as two byte " +"unsigned binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes " +"per entry for regular lists of Python int objects::" msgstr "" +"ماژول :mod:`array` یک شئ :class:`~array.array` ارائه می دهد که شبیه به لیستی" +" است که تنها داده های همگن را ذخیره می کند و آن را به صورت فشرده تر ذخیره می" +" کند. مثال زیر یک آرایه از اعداد را نشان می دهد که به صورت اعداد باینری بدون" +" علامت دو بایتی (کد نوع ``\"H\"``) ذخیره شده اند، به جای حالت معمول 16 بایت " +"برای هر ورودی در لیست های معمولی اشیاء int پایتون::" #: ../../tutorial/stdlib2.rst:302 +#, fuzzy msgid "" ">>> from array import array\n" ">>> a = array('H', [4000, 10, 700, 22222])\n" @@ -426,16 +710,30 @@ msgid "" ">>> a[1:3]\n" "array('H', [10, 700])" msgstr "" +"```python\n" +">>> از ماژول array کلاس array را وارد کنید\n" +">>> a = array('H', [4000, 10, 700, 22222])\n" +">>> sum(a)\n" +"26932\n" +">>> a[1:3]\n" +"array('H', [10, 700])\n" +"```" #: ../../tutorial/stdlib2.rst:309 +#, fuzzy msgid "" "The :mod:`collections` module provides a :class:`~collections.deque` object " "that is like a list with faster appends and pops from the left side but " -"slower lookups in the middle. These objects are well suited for implementing " -"queues and breadth first tree searches::" +"slower lookups in the middle. These objects are well suited for implementing" +" queues and breadth first tree searches::" msgstr "" +"ماژول :mod:`collections` یک شیء :class:`~collections.deque` فراهم می کند که " +"شبیه به یک لیست است با قابلیت افزودن و حذف سریع تر از سمت چپ، اما جستجو در " +"وسط آن کندتر است. این اشیاء برای پیاده سازی صف ها و جستجوهای عرضی درخت مناسب" +" هستند." #: ../../tutorial/stdlib2.rst:314 +#, fuzzy msgid "" ">>> from collections import deque\n" ">>> d = deque([\"task1\", \"task2\", \"task3\"])\n" @@ -443,8 +741,16 @@ msgid "" ">>> print(\"Handling\", d.popleft())\n" "Handling task1" msgstr "" +"```python\n" +">>> from collections import deque\n" +">>> d = deque([\"کار1\", \"کار2\", \"کار3\"])\n" +">>> d.append(\"کار4\")\n" +">>> print(\"در حال رسیدگی به\", d.popleft())\n" +"در حال رسیدگی به کار1\n" +"```" #: ../../tutorial/stdlib2.rst:322 +#, fuzzy msgid "" "unsearched = deque([starting_node])\n" "def breadth_first_search(unsearched):\n" @@ -454,15 +760,43 @@ msgid "" " return m\n" " unsearched.append(m)" msgstr "" +"در جایی از داده های ورودی، ``unsearched = deque([starting_node])`` تعریف شده است که برای ایجاد یک صف دوبل (double-ended queue) از گره شروع استفاده می شود.\n" +"\n" +"تابع ``breadth_first_search`` به صورت زیر تعریف شده است:\n" +"\n" +"```\n" +"def breadth_first_search(unsearched):\n" +" node = unsearched.popleft()\n" +" for m in gen_moves(node):\n" +"```\n" +"\n" +"این خط اول گره اول را از ابتدای صف ``unsearched`` خارج کرده و به عنوان ``node`` تعریف می کند. سپس، برای هر حرکت ممکن از طریق ``for m in gen_moves(node):`` حلقه اجرا می شود.\n" +"\n" +"در طول اجرای حلقه، ابتدا بررسی می کند که آیا حرکت جاری هدف است یا خیر:\n" +"\n" +"```\n" +" if is_goal(m):\n" +" return m\n" +"```\n" +"\n" +"اگر حرکت جاری هدف باشد، آن حرکت بازگردانده می شود. در غیراین صورت، حرکت به انتهای صف ``unsearched`` اضافه می شود:\n" +"\n" +"```\n" +" unsearched.append(m)\n" +"```" #: ../../tutorial/stdlib2.rst:330 +#, fuzzy msgid "" "In addition to alternative list implementations, the library also offers " -"other tools such as the :mod:`bisect` module with functions for manipulating " -"sorted lists::" +"other tools such as the :mod:`bisect` module with functions for manipulating" +" sorted lists::" msgstr "" +"علاوه بر پیاده سازی های جایگزین لیست، کتابخانه ابزارهای دیگری نیز ارائه می " +"دهد، مانند ماژول :mod:`bisect` با تابع هایی برای دستکاری لیست های مرتب شده::" #: ../../tutorial/stdlib2.rst:334 +#, fuzzy msgid "" ">>> import bisect\n" ">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" @@ -470,16 +804,29 @@ msgid "" ">>> scores\n" "[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" msgstr "" +"```\n" +">>> import bisect\n" +">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" +">>> bisect.insort(scores, (300, 'ruby'))\n" +">>> scores\n" +"[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]\n" +"```" #: ../../tutorial/stdlib2.rst:340 +#, fuzzy msgid "" "The :mod:`heapq` module provides functions for implementing heaps based on " "regular lists. The lowest valued entry is always kept at position zero. " -"This is useful for applications which repeatedly access the smallest element " -"but do not want to run a full list sort::" +"This is useful for applications which repeatedly access the smallest element" +" but do not want to run a full list sort::" msgstr "" +"ماژول :mod:`heapq` توابعی برای پیاده سازی heapها بر اساس لیست های معمولی " +"ارائه می دهد. کم ارزش ترین ورودی همیشه در موقعیت صفر نگه داشته می شود. این " +"کار برای برنامه هایی مفید است که به طور مکرر به کوچک ترین عنصر دسترسی دارند " +"اما نمی خواهند کل لیست را به طور کامل مرتب کنند." #: ../../tutorial/stdlib2.rst:345 +#, fuzzy msgid "" ">>> from heapq import heapify, heappop, heappush\n" ">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" @@ -488,50 +835,75 @@ msgid "" ">>> [heappop(data) for i in range(3)] # fetch the three smallest entries\n" "[-5, 0, 1]" msgstr "" +"```python\n" +">>> از heapq وارد کنید heapify, heappop, heappush\n" +">>> داده ها = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" +">>> heapify(داده ها) # لیست را به ترتیب هیپ مرتب کنید\n" +">>> heappush(داده ها, -5) # یک ورودی جدید اضافه کنید\n" +">>> [heappop(داده ها) برای i در محدوده(3)] # سه ورودی کوچک تر را دریافت کنید\n" +"[-5, 0, 1]\n" +"```" #: ../../tutorial/stdlib2.rst:356 +#, fuzzy msgid "Decimal Floating-Point Arithmetic" -msgstr "" +msgstr "محاسبات اعشاری با نقطه شناور" #: ../../tutorial/stdlib2.rst:358 +#, fuzzy msgid "" "The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for " "decimal floating-point arithmetic. Compared to the built-in :class:`float` " "implementation of binary floating point, the class is especially helpful for" msgstr "" +"ماژول :mod:`decimal` یک نوع داده :class:`~decimal.Decimal` برای محاسبات " +"اعشاری با نقطه شناور ارائه می دهد. در مقایسه با پیاده سازی :class:`float` " +"داخلی برای نقطه شناور دودویی، این کلاس به ویژه مفید است برای" #: ../../tutorial/stdlib2.rst:362 +#, fuzzy msgid "" "financial applications and other uses which require exact decimal " "representation," -msgstr "" +msgstr "کاربردهای مالی و سایر مواردی که نیاز به نمایش اعشاری دقیق دارند،" #: ../../tutorial/stdlib2.rst:364 +#, fuzzy msgid "control over precision," -msgstr "" +msgstr "کنترل بر دقت،" #: ../../tutorial/stdlib2.rst:365 +#, fuzzy msgid "control over rounding to meet legal or regulatory requirements," -msgstr "" +msgstr "کنترل بر روی گرد کردن برای مطابقت با الزامات قانونی یا مقرراتی،" #: ../../tutorial/stdlib2.rst:366 +#, fuzzy msgid "tracking of significant decimal places, or" -msgstr "" +msgstr "ردیابی ارقام اعشاری مهم، یا" #: ../../tutorial/stdlib2.rst:367 +#, fuzzy msgid "" "applications where the user expects the results to match calculations done " "by hand." msgstr "" +"برنامه هایی که کاربر انتظار دارد نتایج با محاسبات دستی انجام شده تطابق داشته" +" باشند." #: ../../tutorial/stdlib2.rst:370 +#, fuzzy msgid "" "For example, calculating a 5% tax on a 70 cent phone charge gives different " "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" +"به عنوان مثال، محاسبه مالیات ۵٪ بر روی هزینه ۷۰ سنتی تلفن، در محاسبات اعشاری" +" و محاسبات اعشاری دودویی نتایج متفاوتی می دهد. این تفاوت زمانی محسوس می شود " +"که نتایج به نزدیک ترین سنت گرد شوند::" #: ../../tutorial/stdlib2.rst:374 +#, fuzzy msgid "" ">>> from decimal import *\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" @@ -539,8 +911,15 @@ msgid "" ">>> round(.70 * 1.05, 2)\n" "0.73" msgstr "" +"```>>> از decimal وارد کنید *\n" +">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" +"Decimal('0.74')\n" +">>> round(.70 * 1.05, 2)\n" +"0.73\n" +"```" #: ../../tutorial/stdlib2.rst:380 +#, fuzzy msgid "" "The :class:`~decimal.Decimal` result keeps a trailing zero, automatically " "inferring four place significance from multiplicands with two place " @@ -548,15 +927,25 @@ msgid "" "issues that can arise when binary floating point cannot exactly represent " "decimal quantities." msgstr "" +"نتیجه :class:`~decimal.Decimal` یک صفر انتهایی را حفظ می کند و به طور خودکار" +" چهار رقم معنی دار را از عملوندهایی با دو رقم معنی دار نتیجه گیری می کند. " +"``Decimal`` همانند ریاضیات دستی عمل می کند و مشکلاتی را که ممکن است در زمان " +"عدم توانایی نمایش دقیق اعداد اعشاری به وسیله نقطه شناور دودویی بوجود آید، " +"اجتناب می کند." #: ../../tutorial/stdlib2.rst:386 +#, fuzzy msgid "" "Exact representation enables the :class:`~decimal.Decimal` class to perform " "modulo calculations and equality tests that are unsuitable for binary " "floating point::" msgstr "" +"بازنمایی دقیق به کلاس :class:`~decimal.Decimal` امکان می دهد تا محاسبات باقی" +" مانده و آزمون های تساوی ای که برای اعداد اعشاری دودویی نامناسب هستند را " +"انجام دهد." #: ../../tutorial/stdlib2.rst:390 +#, fuzzy msgid "" ">>> Decimal('1.00') % Decimal('.10')\n" "Decimal('0.00')\n" @@ -568,16 +957,31 @@ msgid "" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" "False" msgstr "" +">>> Decimal('1.00') % Decimal('.10')\n" +"Decimal('0.00')\n" +">>> 1.00 % 0.10\n" +"0.09999999999999995\n" +"\n" +">>> sum([Decimal('0.1')]*10) == Decimal('1.0')\n" +"درست\n" +">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" +"نادرست" #: ../../tutorial/stdlib2.rst:400 +#, fuzzy msgid "" "The :mod:`decimal` module provides arithmetic with as much precision as " "needed::" msgstr "" +"ماژول :mod:`decimal` محاسبات حسابی را با هر دقتی که لازم باشد ارائه می دهد::" #: ../../tutorial/stdlib2.rst:402 +#, fuzzy msgid "" ">>> getcontext().prec = 36\n" ">>> Decimal(1) / Decimal(7)\n" "Decimal('0.142857142857142857142857142857142857')" msgstr "" +">>> getcontext().prec = 36\n" +">>> Decimal(1) / Decimal(7)\n" +"Decimal('0.142857142857142857142857142857142857')" diff --git a/tutorial/venv.po b/tutorial/venv.po index 9b9a7c41d..dcd0942d2 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -14,23 +14,25 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/venv.rst:6 +#, fuzzy msgid "Virtual Environments and Packages" -msgstr "" +msgstr "محیط های مجازی و بسته ها" #: ../../tutorial/venv.rst:9 +#, fuzzy msgid "Introduction" -msgstr "" +msgstr "مقدمه" #: ../../tutorial/venv.rst:11 +#, fuzzy msgid "" "Python applications will often use packages and modules that don't come as " "part of the standard library. Applications will sometimes need a specific " @@ -38,24 +40,39 @@ msgid "" "bug has been fixed or the application may be written using an obsolete " "version of the library's interface." msgstr "" +"برنامه های پایتون اغلب از پکیج ها و ماژول هایی استفاده می کنند که به عنوان " +"بخشی از کتابخانه استاندارد ارائه نمی شوند. برنامه ها گاهی به نسخه خاصی از یک" +" کتابخانه نیاز دارند، زیرا ممکن است برنامه نیاز داشته باشد یک باگ خاص رفع " +"شده باشد یا برنامه با استفاده از نسخه قدیمی رابط کتابخانه نوشته شده باشد." #: ../../tutorial/venv.rst:17 +#, fuzzy msgid "" "This means it may not be possible for one Python installation to meet the " "requirements of every application. If application A needs version 1.0 of a " -"particular module but application B needs version 2.0, then the requirements " -"are in conflict and installing either version 1.0 or 2.0 will leave one " +"particular module but application B needs version 2.0, then the requirements" +" are in conflict and installing either version 1.0 or 2.0 will leave one " "application unable to run." msgstr "" +"این بدان معناست که ممکن است نصب یک نسخه ی Python نتواند نیازهای هر برنامه ای" +" را برآورده سازد. اگر برنامه ی A به نسخه ی 1.0 از یک ماژول خاص نیاز داشته " +"باشد ولی برنامه ی B به نسخه ی 2.0 نیاز داشته باشد، در این صورت این نیازها در" +" تضاد هستند و نصب کردن هر یک از نسخه های 1.0 و یا 2.0 باعث خواهد شد که یکی " +"از برنامه ها قادر به اجرا نباشد." #: ../../tutorial/venv.rst:23 +#, fuzzy msgid "" "The solution for this problem is to create a :term:`virtual environment`, a " "self-contained directory tree that contains a Python installation for a " "particular version of Python, plus a number of additional packages." msgstr "" +"راه حل این مشکل ایجاد یک :term:`virtual environment` است، یک درخت دایرکتوری " +"مستقل که شامل یک نصب Python برای نسخه خاصی از Python و به علاوه تعدادی بسته " +"های اضافی است." #: ../../tutorial/venv.rst:27 +#, fuzzy msgid "" "Different applications can then use different virtual environments. To " "resolve the earlier example of conflicting requirements, application A can " @@ -64,38 +81,61 @@ msgid "" "application B requires a library be upgraded to version 3.0, this will not " "affect application A's environment." msgstr "" +"سپس برنامه های مختلف می توانند از محیط های مجازی متفاوتی استفاده کنند. برای " +"حل مثال قبلی از نیازمندی های متناقض، برنامه A می تواند محیط مجازی خاص خود را" +" با نسخه 1.0 نصب شده داشته باشد، در حالی که برنامه B می تواند محیط مجازی " +"دیگری با نسخه 2.0 داشته باشد. اگر برنامه B نیاز داشته باشد که یک کتابخانه به" +" نسخه 3.0 ارتقا یابد، این ارتقا محیط برنامه A را تحت تأثیر قرار نخواهد داد." #: ../../tutorial/venv.rst:36 +#, fuzzy msgid "Creating Virtual Environments" -msgstr "" +msgstr "ایجاد محیط های مجازی" #: ../../tutorial/venv.rst:38 +#, fuzzy msgid "" -"The module used to create and manage virtual environments is called :mod:" -"`venv`. :mod:`venv` will install the Python version from which the command " -"was run (as reported by the :option:`--version` option). For instance, " -"executing the command with ``python3.12`` will install version 3.12." -msgstr "" +"The module used to create and manage virtual environments is called " +":mod:`venv`. :mod:`venv` will install the Python version from which the " +"command was run (as reported by the :option:`--version` option). For " +"instance, executing the command with ``python3.12`` will install version " +"3.12." +msgstr "" +"ماژولی که برای ایجاد و مدیریت محیط های مجازی استفاده می شود، به نام " +":mod:`venv` شناخته می شود. :mod:`venv` نسخه پایتونی که فرمان از آن اجرا شده " +"است را نصب خواهد کرد (همانطور که توسط گزینه :option:`--version` گزارش شده " +"است). به عنوان مثال، اجرای فرمان با ``python3.12`` نسخه 3.12 را نصب خواهد " +"کرد." #: ../../tutorial/venv.rst:44 +#, fuzzy msgid "" "To create a virtual environment, decide upon a directory where you want to " "place it, and run the :mod:`venv` module as a script with the directory " "path::" msgstr "" +"برای ایجاد یک محیط مجازی، یک دایرکتوری را انتخاب کنید که می خواهید آن را در " +"آنجا قرار دهید و با استفاده از ماژول :mod:`venv` به صورت یک اسکریپت همراه با" +" مسیر دایرکتوری اجرا کنید::" #: ../../tutorial/venv.rst:47 +#, fuzzy msgid "python -m venv tutorial-env" -msgstr "" +msgstr "پایتون -m venv tutorial-env" #: ../../tutorial/venv.rst:49 +#, fuzzy msgid "" "This will create the ``tutorial-env`` directory if it doesn't exist, and " "also create directories inside it containing a copy of the Python " "interpreter and various supporting files." msgstr "" +"اگر شاخه ``tutorial-env`` وجود نداشته باشد، این عمل آن را ایجاد خواهد کرد و " +"همچنین شاخه هایی داخل آن ایجاد می کند که شامل یک نسخه از مفسر Python و فایل " +"های پشتیبانی مختلف می باشد." #: ../../tutorial/venv.rst:53 +#, fuzzy msgid "" "A common directory location for a virtual environment is ``.venv``. This " "name keeps the directory typically hidden in your shell and thus out of the " @@ -103,43 +143,65 @@ msgid "" "prevents clashing with ``.env`` environment variable definition files that " "some tooling supports." msgstr "" +"یک مکان رایج برای دایرکتوری یک محیط مجازی، ``.venv`` است. این نام باعث می " +"شود که دایرکتوری معمولاً در شل شما پنهان بماند و بدین ترتیب از مسیر خارج " +"شود، در حالی که نامی به آن می دهد که توضیح می دهد چرا این دایرکتوری وجود " +"دارد. همچنین از تداخل با فایل های تعریف متغیر محیطی ``.env`` که برخی ابزارها" +" پشتیبانی می کنند، جلوگیری می کند." #: ../../tutorial/venv.rst:59 +#, fuzzy msgid "Once you've created a virtual environment, you may activate it." -msgstr "" +msgstr "پس از اینکه یک محیط مجازی را ایجاد کردید، می توانید آن را فعال کنید." #: ../../tutorial/venv.rst:61 +#, fuzzy msgid "On Windows, run::" -msgstr "" +msgstr "در ویندوز اجرا کنید::" #: ../../tutorial/venv.rst:63 +#, fuzzy msgid "tutorial-env\\Scripts\\activate" msgstr "" +"```bash\n" +"tutorial-env\\Scripts\\activate\n" +"```" #: ../../tutorial/venv.rst:65 +#, fuzzy msgid "On Unix or MacOS, run::" -msgstr "" +msgstr "در سیستم عامل Unix یا MacOS، این دستور را اجرا کنید::" #: ../../tutorial/venv.rst:67 +#, fuzzy msgid "source tutorial-env/bin/activate" -msgstr "" +msgstr "منبع tutorial-env/bin/activate" #: ../../tutorial/venv.rst:69 +#, fuzzy msgid "" "(This script is written for the bash shell. If you use the :program:`csh` " "or :program:`fish` shells, there are alternate ``activate.csh`` and " "``activate.fish`` scripts you should use instead.)" msgstr "" +"این اسکریپت برای پوسته bash نوشته شده است. اگر از پوسته های :program:`csh` " +"یا :program:`fish` استفاده می کنید، باید به جای آن از اسکریپت های جایگزین " +"``activate.csh`` و ``activate.fish`` استفاده کنید." #: ../../tutorial/venv.rst:74 +#, fuzzy msgid "" "Activating the virtual environment will change your shell's prompt to show " "what virtual environment you're using, and modify the environment so that " "running ``python`` will get you that particular version and installation of " "Python. For example:" msgstr "" +"فعال سازی محیط مجازی باعث می شود اعلان پوسته شما تغییر کند تا نشان دهد که از" +" کدام محیط مجازی استفاده می کنید و محیط را طوری تغییر دهد که اجرای " +"``python`` آن نسخه و نصب خاص از Python را به شما بدهد. به عنوان مثال:" #: ../../tutorial/venv.rst:79 +#, fuzzy msgid "" "$ source ~/envs/tutorial-env/bin/activate\n" "(tutorial-env) $ python\n" @@ -151,45 +213,71 @@ msgid "" "'~/envs/tutorial-env/lib/python3.5/site-packages']\n" ">>>" msgstr "" +"```bash\n" +"$ source ~/envs/tutorial-env/bin/activate\n" +"(tutorial-env) $ python\n" +"Python 3.5.1 (default, May 6 2016, 10:59:36)\n" +" ...\n" +">>> import sys\n" +">>> sys.path\n" +"['', '/usr/local/lib/python35.zip', ...,\n" +"'~/envs/tutorial-env/lib/python3.5/site-packages']\n" +">>>\n" +"```" #: ../../tutorial/venv.rst:91 +#, fuzzy msgid "To deactivate a virtual environment, type::" -msgstr "" +msgstr "برای غیرفعال کردن یک محیط مجازی، تایپ کنید::" #: ../../tutorial/venv.rst:93 +#, fuzzy msgid "deactivate" -msgstr "" +msgstr "غیرفعال کردن" #: ../../tutorial/venv.rst:95 +#, fuzzy msgid "into the terminal." -msgstr "" +msgstr "در داخل \"ترمینال\" وارد کنید." #: ../../tutorial/venv.rst:98 +#, fuzzy msgid "Managing Packages with pip" -msgstr "" +msgstr "مدیریت پکیج ها با استفاده از pip" #: ../../tutorial/venv.rst:100 +#, fuzzy msgid "" -"You can install, upgrade, and remove packages using a program called :" -"program:`pip`. By default ``pip`` will install packages from the `Python " -"Package Index `_. You can browse the Python Package Index " -"by going to it in your web browser." +"You can install, upgrade, and remove packages using a program called " +":program:`pip`. By default ``pip`` will install packages from the `Python " +"Package Index `_. You can browse the Python Package Index" +" by going to it in your web browser." msgstr "" +"شما می توانید بسته ها را با استفاده از برنامه ای به نام :program:`pip` نصب، " +"به روزرسانی و حذف کنید. به طور پیش فرض ``pip`` بسته ها را از `Python Package" +" Index `_ نصب می کند. شما می توانید با رفتن به آن در " +"مرورگر وب خود به مرور فهرست بسته های پایتون بپردازید." #: ../../tutorial/venv.rst:105 +#, fuzzy msgid "" -"``pip`` has a number of subcommands: \"install\", \"uninstall\", \"freeze\", " -"etc. (Consult the :ref:`installing-index` guide for complete documentation " -"for ``pip``.)" +"``pip`` has a number of subcommands: \"install\", \"uninstall\", \"freeze\"," +" etc. (Consult the :ref:`installing-index` guide for complete documentation" +" for ``pip``.)" msgstr "" +"``pip`` شامل تعدادی زیر فرمان است: \"install\"، \"uninstall\"، \"freeze\"، و" +" غیره. (برای مستندات کامل ``pip`` به راهنمای :ref:`installing-index` مراجعه " +"کنید.)" #: ../../tutorial/venv.rst:109 +#, fuzzy msgid "" "You can install the latest version of a package by specifying a package's " "name:" -msgstr "" +msgstr "شما می توانید آخرین نسخه یک بسته را با مشخص کردن نام بسته نصب کنید:" #: ../../tutorial/venv.rst:111 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip install novas\n" "Collecting novas\n" @@ -198,14 +286,24 @@ msgid "" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3" msgstr "" +"(tutorial-env) $ python -m pip install novas\n" +"در حال جمع آوری novas\n" +" دانلود novas-3.1.1.3.tar.gz (136 کیلوبایت)\n" +"در حال نصب پکیج های جمع آوری شده: novas\n" +" اجرای setup.py برای نصب novas\n" +"به طور موفقیت آمیز novas-3.1.1.3 نصب شد" #: ../../tutorial/venv.rst:120 +#, fuzzy msgid "" "You can also install a specific version of a package by giving the package " "name followed by ``==`` and the version number:" msgstr "" +"شما همچنین می توانید یک نسخه خاص از یک بسته را با وارد کردن نام بسته به " +"همراه ``==`` و شماره نسخه نصب کنید:" #: ../../tutorial/venv.rst:123 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip install requests==2.6.0\n" "Collecting requests==2.6.0\n" @@ -213,16 +311,27 @@ msgid "" "Installing collected packages: requests\n" "Successfully installed requests-2.6.0" msgstr "" +"(tutorial-env) $ python -m pip install requests==2.6.0\n" +"در حال جمع آوری requests==2.6.0\n" +" با استفاده از کش requests-2.6.0-py2.py3-none-any.whl\n" +"در حال نصب بسته های جمع آوری شده: requests\n" +"با موفقیت requests-2.6.0 نصب شد" #: ../../tutorial/venv.rst:131 +#, fuzzy msgid "" "If you re-run this command, ``pip`` will notice that the requested version " "is already installed and do nothing. You can supply a different version " -"number to get that version, or you can run ``python -m pip install --" -"upgrade`` to upgrade the package to the latest version:" +"number to get that version, or you can run ``python -m pip install " +"--upgrade`` to upgrade the package to the latest version:" msgstr "" +"اگر دوباره این دستور را اجرا کنید، ``pip`` متوجه می شود که نسخه درخواستی از " +"قبل نصب شده است و کاری انجام نمی دهد. می توانید یک شماره نسخه متفاوت را " +"ارائه دهید تا آن نسخه را دریافت کنید، یا می توانید ``python -m pip install " +"--upgrade`` را اجرا کنید تا بسته به آخرین نسخه ارتقا یابد:" #: ../../tutorial/venv.rst:136 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip install --upgrade requests\n" "Collecting requests\n" @@ -232,19 +341,33 @@ msgid "" " Successfully uninstalled requests-2.6.0\n" "Successfully installed requests-2.7.0" msgstr "" +"```plaintext\n" +"(tutorial-env) $ python -m pip install --upgrade requests\n" +"در حال جمع آوری requests\n" +"در حال نصب بسته های جمع آوری شده: requests\n" +" نصب قبلی یافت شد: requests 2.6.0\n" +" در حال حذف نصب requests-2.6.0:\n" +" حذف نصب requests-2.6.0 با موفقیت انجام شد\n" +"requests-2.7.0 با موفقیت نصب شد\n" +"```" #: ../../tutorial/venv.rst:146 +#, fuzzy msgid "" "``python -m pip uninstall`` followed by one or more package names will " "remove the packages from the virtual environment." msgstr "" +"``python -m pip uninstall`` به دنبال یک یا چند نام بسته باعث حذف آن بسته ها " +"از محیط مجازی خواهد شد." #: ../../tutorial/venv.rst:149 +#, fuzzy msgid "" "``python -m pip show`` will display information about a particular package:" -msgstr "" +msgstr "``python -m pip show`` اطلاعات مربوط به یک بسته خاص را نمایش می دهد:" #: ../../tutorial/venv.rst:151 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip show requests\n" "---\n" @@ -259,14 +382,32 @@ msgid "" "Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" "Requires:" msgstr "" +"```plaintext\n" +"(tutorial-env) $ python -m pip show requests\n" +"---\n" +"نسخه اطلاعات متادیتا: ۲.۰\n" +"نام: requests\n" +"نسخه: ۲.۷.۰\n" +"خلاصه: HTTP پایتون برای انسان ها.\n" +"صفحه اصلی: http://python-requests.org\n" +"نویسنده: Kenneth Reitz\n" +"ایمیل نویسنده: me@kennethreitz.com\n" +"مجوز: Apache 2.0\n" +"موقعیت: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" +"نیازمندی ها:\n" +"```" #: ../../tutorial/venv.rst:166 +#, fuzzy msgid "" "``python -m pip list`` will display all of the packages installed in the " "virtual environment:" msgstr "" +"``python -m pip list`` تمامی بسته های نصب شده در محیط مجازی را نمایش خواهد " +"داد:" #: ../../tutorial/venv.rst:169 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip list\n" "novas (3.1.1.3)\n" @@ -275,16 +416,30 @@ msgid "" "requests (2.7.0)\n" "setuptools (16.0)" msgstr "" +"```bash\n" +"(tutorial-env) $ python -m pip list\n" +"novas (3.1.1.3)\n" +"numpy (1.9.2)\n" +"pip (7.0.3)\n" +"requests (2.7.0)\n" +"setuptools (16.0)\n" +"```" #: ../../tutorial/venv.rst:178 +#, fuzzy msgid "" "``python -m pip freeze`` will produce a similar list of the installed " "packages, but the output uses the format that ``python -m pip install`` " "expects. A common convention is to put this list in a ``requirements.txt`` " "file:" msgstr "" +"``python -m pip freeze`` لیستی مشابه از بسته های نصب شده تولید می کند، اما " +"خروجی از فرمتی استفاده می کند که ``python -m pip install`` انتظار دارد. یک " +"قرارداد رایج این است که این لیست را در یک فایل ``requirements.txt`` قرار " +"دهید:" #: ../../tutorial/venv.rst:182 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip freeze > requirements.txt\n" "(tutorial-env) $ cat requirements.txt\n" @@ -292,15 +447,27 @@ msgid "" "numpy==1.9.2\n" "requests==2.7.0" msgstr "" +"```shell\n" +"(tutorial-env) $ python -m pip freeze > requirements.txt\n" +"(tutorial-env) $ cat requirements.txt\n" +"novas==3.1.1.3\n" +"numpy==1.9.2\n" +"requests==2.7.0\n" +"```" #: ../../tutorial/venv.rst:190 +#, fuzzy msgid "" "The ``requirements.txt`` can then be committed to version control and " -"shipped as part of an application. Users can then install all the necessary " -"packages with ``install -r``:" +"shipped as part of an application. Users can then install all the necessary" +" packages with ``install -r``:" msgstr "" +"سپس می توان \"``requirements.txt``\" را به سیستم کنترل نسخه متعهد کرده و به " +"عنوان بخشی از یک برنامه ارسال نمود. کاربران سپس می توانند با استفاده از " +"\"``install -r``\" تمام بسته های لازم را نصب کنند." #: ../../tutorial/venv.rst:194 +#, fuzzy msgid "" "(tutorial-env) $ python -m pip install -r requirements.txt\n" "Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))\n" @@ -313,11 +480,26 @@ msgid "" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" msgstr "" +"(tutorial-env) $ python -m pip install -r requirements.txt \n" +"در حال جمع آوری novas==3.1.1.3 (از -r requirements.txt (خط 1)) \n" +" ... \n" +"در حال جمع آوری numpy==1.9.2 (از -r requirements.txt (خط 2)) \n" +" ... \n" +"در حال جمع آوری requests==2.7.0 (از -r requirements.txt (خط 3)) \n" +" ... \n" +"در حال نصب پکیج های جمع آوری شده: novas، numpy، requests \n" +" اجرای setup.py install برای novas \n" +"با موفقیت نصب شد: novas-3.1.1.3 numpy-1.9.2 requests-2.7.0 " #: ../../tutorial/venv.rst:207 +#, fuzzy msgid "" "``pip`` has many more options. Consult the :ref:`installing-index` guide " "for complete documentation for ``pip``. When you've written a package and " "want to make it available on the Python Package Index, consult the `Python " "packaging user guide`_." msgstr "" +"``pip`` گزینه های بسیار بیشتری دارد. برای مستندات کامل مربوط به ``pip`` به " +"راهنمای :ref:`installing-index` مراجعه کنید. وقتی پکیجی نوشته اید و می " +"خواهید آن را در Python Package Index در دسترس قرار دهید، به `Python " +"packaging user guide`_ مراجعه کنید." diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 46e3722c6..d05032b44 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -14,128 +14,189 @@ msgstr "" "POT-Creation-Date: 2025-03-07 14:18+0000\n" "PO-Revision-Date: 2021-06-28 01:50+0000\n" "Last-Translator: Alireza Shabani (Revisto) , 2025\n" -"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/" -"fa/)\n" +"Language-Team: Persian (https://app.transifex.com/python-doc/teams/5390/fa/)\n" +"Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: fa\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/whatnow.rst:5 +#, fuzzy msgid "What Now?" -msgstr "" +msgstr "چی کاری باید انجام داد؟" #: ../../tutorial/whatnow.rst:7 +#, fuzzy msgid "" "Reading this tutorial has probably reinforced your interest in using Python " -"--- you should be eager to apply Python to solving your real-world problems. " -"Where should you go to learn more?" +"--- you should be eager to apply Python to solving your real-world problems." +" Where should you go to learn more?" msgstr "" +"مطالعه این آموزش احتمالاً علاقه شما به استفاده از Python را تقویت کرده است " +"--- شما باید مشتاق باشید که Python را برای حل مسائل دنیای واقعی خود به کار " +"ببرید. از کجا باید یادگیری بیشتر را شروع کنید؟" #: ../../tutorial/whatnow.rst:11 +#, fuzzy msgid "" "This tutorial is part of Python's documentation set. Some other documents " "in the set are:" msgstr "" +"این آموزش بخشی از مجموعه مستندات پایتون است. برخی دیگر از مستندات موجود در " +"این مجموعه عبارتند از:" #: ../../tutorial/whatnow.rst:14 +#, fuzzy msgid ":ref:`library-index`:" msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را فراهم کنید." #: ../../tutorial/whatnow.rst:16 +#, fuzzy msgid "" "You should browse through this manual, which gives complete (though terse) " "reference material about types, functions, and the modules in the standard " "library. The standard Python distribution includes a *lot* of additional " -"code. There are modules to read Unix mailboxes, retrieve documents via HTTP, " -"generate random numbers, parse command-line options, compress data, and many " -"other tasks. Skimming through the Library Reference will give you an idea of " -"what's available." -msgstr "" +"code. There are modules to read Unix mailboxes, retrieve documents via HTTP," +" generate random numbers, parse command-line options, compress data, and " +"many other tasks. Skimming through the Library Reference will give you an " +"idea of what's available." +msgstr "" +"شما باید این راهنما را مرور کنید که مرجع کاملی (اگرچه مختصر) درباره انواع، " +"توابع و ماژول های موجود در کتابخانه استاندارد ارائه می دهد. توزیع استاندارد " +"Python شامل *lot* کد اضافی است. ماژول هایی برای خواندن صندوق های پستی " +"یونیکس، بازیابی اسناد از طریق HTTP، تولید اعداد تصادفی، تجزیه گزینه های خط " +"فرمان، فشرده سازی داده ها و بسیاری وظایف دیگر وجود دارند. مروری بر مرجع " +"کتابخانه به شما ایده ای از قابلیت های موجود خواهد داد." #: ../../tutorial/whatnow.rst:24 +#, fuzzy msgid "" ":ref:`installing-index` explains how to install additional modules written " "by other Python users." msgstr "" +":ref:`installing-index` توضیح می دهد که چگونه ماژول های اضافی نوشته شده توسط" +" دیگر کاربران پایتون را نصب کنیم." #: ../../tutorial/whatnow.rst:27 +#, fuzzy msgid "" ":ref:`reference-index`: A detailed explanation of Python's syntax and " "semantics. It's heavy reading, but is useful as a complete guide to the " "language itself." msgstr "" +":ref:`reference-index`: توضیحی دقیق از سینتکس و معنای پایتون. این متن سنگین " +"است، اما به عنوان یک راهنمای کامل برای خود زبان مفید است." #: ../../tutorial/whatnow.rst:31 +#, fuzzy msgid "More Python resources:" -msgstr "" +msgstr "منابع بیشتر پایتون:" #: ../../tutorial/whatnow.rst:33 +#, fuzzy msgid "" "https://www.python.org: The major Python web site. It contains code, " "documentation, and pointers to Python-related pages around the web." msgstr "" +"وب سایت اصلی Python: این وب سایت شامل کد، مستندات و لینک هایی به صفحات مرتبط" +" با Python در سراسر اینترنت می باشد." #: ../../tutorial/whatnow.rst:36 +#, fuzzy msgid "https://docs.python.org: Fast access to Python's documentation." -msgstr "" +msgstr "دسترسی سریع به مستندات پایتون: https://docs.python.org" #: ../../tutorial/whatnow.rst:38 +#, fuzzy msgid "" "https://pypi.org: The Python Package Index, previously also nicknamed the " "Cheese Shop [#]_, is an index of user-created Python modules that are " "available for download. Once you begin releasing code, you can register it " "here so that others can find it." msgstr "" +"https://pypi.org: شاخص بسته های پایتون، که قبلاً به عنوان مغازه پنیر نیز " +"شناخته می شد [#]_، یک شاخص از ماژول های پایتون ایجاد شده توسط کاربران است که" +" برای دانلود در دسترس هستند. پس از آنکه شروع به انتشار کد کردید، می توانید " +"آن را در اینجا ثبت کنید تا دیگران بتوانند آن را پیدا کنند." #: ../../tutorial/whatnow.rst:43 +#, fuzzy msgid "" -"https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a " -"sizable collection of code examples, larger modules, and useful scripts. " +"https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a" +" sizable collection of code examples, larger modules, and useful scripts. " "Particularly notable contributions are collected in a book also titled " "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" +"https://code.activestate.com/recipes/langs/python/: کتاب Python Cookbook " +"مجموعه ای بزرگ از مثال های کد، ماژول های بزرگتر و اسکریپت های مفید است. " +"مشارکت های به ویژه قابل توجه در کتابی با همین عنوان، یعنی Python Cookbook " +"(منتشر شده توسط O'Reilly & Associates، شابک 0-596-00797-3) جمع آوری شده اند." #: ../../tutorial/whatnow.rst:48 +#, fuzzy msgid "" -"https://pyvideo.org collects links to Python-related videos from conferences " -"and user-group meetings." +"https://pyvideo.org collects links to Python-related videos from conferences" +" and user-group meetings." msgstr "" +"وب سایت https://pyvideo.org لینک هایی به ویدئوهای مرتبط با پایتون از کنفرانس" +" ها و جلسات گروه های کاربری را جمع آوری می کند." #: ../../tutorial/whatnow.rst:51 +#, fuzzy msgid "" "https://scipy.org: The Scientific Python project includes modules for fast " -"array computations and manipulations plus a host of packages for such things " -"as linear algebra, Fourier transforms, non-linear solvers, random number " +"array computations and manipulations plus a host of packages for such things" +" as linear algebra, Fourier transforms, non-linear solvers, random number " "distributions, statistical analysis and the like." msgstr "" +"پروژه علمی پایتون شامل ماژول هایی برای محاسبات و دستکاری سریع آرایه ها به " +"همراه مجموعه ای از بسته ها برای مواردی مانند جبر خطی، تبدیلات فوریه، حل " +"کننده های غیرخطی، توزیع های اعداد تصادفی، تحلیل های آماری و موارد مشابه است." #: ../../tutorial/whatnow.rst:56 +#, fuzzy msgid "" "For Python-related questions and problem reports, you can post to the " -"newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at " -"python-list@python.org. The newsgroup and mailing list are gatewayed, so " +"newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at" +" python-list@python.org. The newsgroup and mailing list are gatewayed, so " "messages posted to one will automatically be forwarded to the other. There " -"are hundreds of postings a day, asking (and answering) questions, suggesting " -"new features, and announcing new modules. Mailing list archives are " +"are hundreds of postings a day, asking (and answering) questions, suggesting" +" new features, and announcing new modules. Mailing list archives are " "available at https://mail.python.org/pipermail/." msgstr "" +"برای پرسش ها و گزارش مشکلات مرتبط با پایتون، می توانید به گروه خبری " +":newsgroup:`comp.lang.python` پست ارسال کنید، یا آن ها را به فهرست پستی در " +"python-list@python.org بفرستید. گروه خبری و فهرست پستی به یکدیگر متصل هستند،" +" بنابراین پیام هایی که به یکی ارسال می شود، به طور خودکار به دیگری نیز ارسال" +" خواهد شد. روزانه صدها پست ارسال می شود که شامل پرسش و پاسخ، پیشنهاد ویژگی " +"های جدید و اعلام ماژول های جدید است. آرشیو های فهرست پستی در " +"https://mail.python.org/pipermail/ در دسترس هستند." #: ../../tutorial/whatnow.rst:64 +#, fuzzy msgid "" "Before posting, be sure to check the list of :ref:`Frequently Asked " "Questions ` (also called the FAQ). The FAQ answers many of the " -"questions that come up again and again, and may already contain the solution " -"for your problem." +"questions that come up again and again, and may already contain the solution" +" for your problem." msgstr "" +"قبل از ارسال، حتماً فهرست :ref:`Frequently Asked Questions ` (که " +"به عنوان FAQ نیز شناخته می شود) را بررسی کنید. FAQ به بسیاری از سوالاتی که " +"بارها و بارها مطرح می شوند پاسخ می دهد و ممکن است راه حل مسئله شما را قبلاً " +"در خود داشته باشد." #: ../../tutorial/whatnow.rst:70 +#, fuzzy msgid "Footnotes" -msgstr "" +msgstr "پانویس ها" #: ../../tutorial/whatnow.rst:71 +#, fuzzy msgid "" -"\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop, " -"but whatever cheese he asks for, the clerk says it's missing." +"\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop," +" but whatever cheese he asks for, the clerk says it's missing." msgstr "" +"اسکچ \"Cheese Shop\" یک اجرای کمدی از Monty Python است: مشتری وارد فروشگاه " +"پنیر می شود، اما هر نوع پنیری که می خواهد، فروشنده می گوید که موجود نیست." From 5261e4d33289cb3509fae166eaa1493848c51476 Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 02:45:01 +0330 Subject: [PATCH 2/9] Refine Persian translations using GPT-4o with improved prompt --- library/functions.po | 2683 ++++++++++++++++++------------------ tutorial/appendix.po | 169 ++- tutorial/controlflow.po | 1436 +++++++++---------- tutorial/datastructures.po | 754 +++++----- tutorial/errors.po | 691 +++++----- tutorial/floatingpoint.po | 402 +++--- tutorial/inputoutput.po | 679 +++++---- tutorial/interactive.po | 53 +- tutorial/interpreter.po | 190 +-- tutorial/introduction.po | 623 ++++----- tutorial/modules.po | 658 +++++---- tutorial/stdlib.po | 285 ++-- tutorial/stdlib2.po | 441 +++--- tutorial/venv.po | 227 ++- tutorial/whatnow.po | 97 +- 15 files changed, 4600 insertions(+), 4788 deletions(-) diff --git a/library/functions.po b/library/functions.po index 4fb4af8fe..9f4a9bf01 100644 --- a/library/functions.po +++ b/library/functions.po @@ -32,87 +32,85 @@ msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." msgstr "" -"مفسر پایتون تعدادی توابع و نوع های داخلی دارد که همیشه در دسترس هستند. اینجا" -" به ترتیب حروف الفبا لیست شده اند." +"مفسر پایتون دارای تعدادی توابع و انواع داخلی است که همیشه در دسترس هستند. " +"این ها به ترتیب حروف الفبا در اینجا فهرست شده اند." #: ../../library/functions.rst:0 #, fuzzy msgid "**A**" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً یک متن معتبر از مستندات رسمی پایتون را" -" برای ترجمه به زبان فارسی ارائه دهید." +"متن برای ترجمه ارائه نشده است، لطفاً متنی که مایل به ترجمه آن هستید ارائه " +"دهید تا مطابق با قوانین ترجمه شود." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`abs`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً مطمئن شوید پیامی که ارسال می کنید حاوی" -" متن قابل ترجمه ای باشد." +"متن وارد شده معتبر نیست. لطفاً یک متن معتبر از داکیومنت های رسمی پایتون را " +"برای ترجمه وارد کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`aiter`" msgstr "" -"ببخشید، به نظر می رسد که متن داده شده معنایی ندارد یا نامعتبر است. لطفاً متن" -" معتبر و قابل فهمی ارائه دهید تا بتوانم در ترجمه آن به شما کمک کنم." +"متن ارائه شده برای ترجمه نیست. لطفاً یک متن معتبر از اسناد رسمی پایتون برای " +"ترجمه ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`all`" msgstr "" -"متن ارائه شده به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد. لطفاً متن " -"معتبر یا جزئیات بیشتری را ارائه دهید تا بتوانم به شما کمک کنم." +"متاسفم، اما متن \":func:`all`\" شامل توضیحات یا مستندات رسمی پایتون نیست و " +"قابل ترجمه به فارسی نمی باشد. اگر متن دیگری از مستندات رسمی پایتون را دارید،" +" لطفاً آن را ارسال کنید تا به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`anext`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را اضافه کنید." +"متاسفم، اما به نظر نمی رسد متن داده شده بخشی از مستندات رسمی پایتون باشد که " +"بتوان آن را به فارسی ترجمه کرد. لطفاً متن دقیق تر و واقعی تری ارائه دهید تا " +"بتوانم به شما در ترجمه آن کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`any`" msgstr "" -"متاسفانه متنی که ارائه داده اید به نظر می رسد به یک کد یا متن قابل شناسایی " -"اختصاص ندارد. لطفاً متن صحیح و کاملی از مستندات پایتون را برای ترجمه فراهم " -"کنید." +"متاسفم، به نظر می رسد بخشی از متن جهت ترجمه ارائه نشده است. لطفاً متن صحیح " +"برای ترجمه را ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`ascii`" msgstr "" -"متن ارائه شده به نظر نمی رسد از مستندات رسمی پایتون باشد. لطفاً محتوای معتبر" -" و قابل ترجمه ای را برای ترجمه ارائه دهید." +"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را ارسال کنید " +"تا به شما کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid "**B**" msgstr "" -"متن ارائه شده به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد. آیا درخواست " -"دیگری دارید یا متنی خاصی برای ترجمه مدنظر دارید؟" +"متن اصلی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " +"من ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`bin`" msgstr "" -"متنی که ارائه داده اید به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد یا " -"دارای محتوای معناداری باشد. لطفاً بخش دیگری از مستندات را برای ترجمه ارسال " -"کنید." +"متاسفم، به نظر می رسد متن شما شامل محتوای یونیکی نیست که قابل ترجمه باشد. " +"لطفا متنی را که نیاز به ترجمه دارد، ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`bool`" msgstr "" -"به نظر می رسد متنی که ارائه داده اید به عنوان یک کد یا دستور خاص در مستندات " -"رسمی پایتون نیست. لطفاً محتوای بیشتری یا متنی قابل تشخیص از مستندات پایتون " -"برای ترجمه ارائه دهید." +"متن ارائه شده برای ترجمه شامل هیچ محتوایی جهت ترجمه به زبان فارسی نیست. " +"لطفاً متن اصلی را ارائه کنید تا من بتوانم آن را برای شما به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`breakpoint`" -msgstr "" -"متاسفم، اما متن مشخصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را " -"جهت ترجمه ارسال نمایید." +msgstr "متن ارائه شده قابل ترجمه نیست، لطفاً متن صحیح را وارد کنید." #: ../../library/functions.rst:0 #, fuzzy @@ -128,286 +126,272 @@ msgstr "|func-bytes|_" #, fuzzy msgid "**C**" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " -"فارسی ارائه کنید." +"متاسفانه، متنی که برای ترجمه ارسال کرده اید قابل مشاهده نیست. لطفاً متن " +"دقیقی که می خواهید ترجمه شود را فراهم کنید، تا بتوانم به بهترین نحو به شما " +"کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`callable`" msgstr "" -"متنی که ارائه داده اید به نظر نمی رسد که از مستندات رسمی پایتون باشد و به " -"صورت صحیح و درست فرمت نشده است. لطفا متن صحیحی برای ترجمه فراهم کنید." +"متن ارائه شده برای ترجمه به زبان فارسی شامل هیچ متنی نیست که نیاز به ترجمه " +"داشته باشد. اگر نیاز به ترجمه متنی خاص یا راهنمایی دارید، لطفاً متن کامل آن " +"را ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`chr`" msgstr "" -"متن ارائه شده متنی تصادفی و بی معنی به نظر می رسد. لطفاً متنی معتبر و قابل " -"فهم جهت ترجمه ارسال نمایید." +"متاسفم، اما متنی که برای ترجمه قرار داده اید شامل هیچ توضیح یا متنی از " +"مستندات پایتون نیست تا بتوانم آن را به فارسی ترجمه کنم. لطفاً متن مورد نظر " +"خود را مجدداً ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`classmethod`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی را که نیاز به ترجمه دارد قرار " -"دهید." +"متن برای ترجمه ارائه نشده است. لطفاً متن انگلیسی که می خواهید ترجمه شود را " +"در اختیار من قرار دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`compile`" msgstr "" -"متن ارائه شده برای ترجمه حاوی کلمات معناداری نیست. لطفاً یک متن معتبر از " -"اسناد رسمی پایتون ارائه دهید تا بتوانم به شما در ترجمه آن به فارسی کمک کنم." +"متن ارائه شده برای ترجمه به فارسی شامل هیچ محتوایی جز یک سری کاراکترهای به " +"ظاهر تصادفی نیست. لطفاً متن مجدد بررسی و مشخصات بیشتری ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`complex`" msgstr "" -"به نظر می رسد متنی که ارائه داده اید مشخص یا قابل ترجمه نیست. لطفاً یک بخش " -"معتبر یا بخشی از مستندات رسمی پایتون را که نیاز به ترجمه دارد، ارائه دهید." +"متن ارائه شده وجود ندارد تا بتوان ترجمه کرد. لطفاً متن مورد نظر برای ترجمه " +"را ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid "**D**" -msgstr "" -"متن ارائه شده معتبر به نظر نمی رسد. آیا ممکن است متن دیگری را برای ترجمه " -"ارائه کنید؟" +msgstr "**D**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`delattr`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن انگلیسی را جهت ترجمه به فارسی " -"ارسال کنید." +"متن برای ترجمه ارائه نشده است؛ لطفاً متن مورد نظر خود را جهت ترجمه به من " +"بدهید." #: ../../library/functions.rst:0 #, fuzzy msgid "|func-dict|_" -msgstr "|تابع-دیپیکت|_" +msgstr "|func-dict|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`dir`" msgstr "" -"متن ارائه شده معتبر نیست و به نظر می رسد به صورت تصادفی تایپ شده باشد. برای " -"دریافت ترجمه دقیق، لطفاً متن معتبری از مستندات پایتون را ارائه دهید." +"متاسفانه، متن برای ترجمه ارائه نشده است. لطفا متن مورد نظر خود را برای ترجمه" +" ارسال نمایید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`divmod`" msgstr "" -"متنی ارائه نشده است تا بتوانم آن را به فارسی ترجمه کنم. لطفاً متن مورد نظر " -"خود را برای ترجمه ارسال کنید." +"متن برای ترجمه مشخص نشده است. لطفاً متنی که باید ترجمه شود را ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid "**E**" msgstr "" -"متن ارائه شده نامعتبر است و قابل ترجمه نمی باشد. لطفاً متن صحیح و کاملی را " -"ارائه دهید." +"متن مورد نظر برای ترجمه موجود نمی باشد. لطفاً متن موردنظر را جهت ترجمه ارسال" +" نمایید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`enumerate`" msgstr "" -"متن ارائه شده به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد و محتوای قابل " -"فهمی ندارد. ممکن است بخشی از کد یا علامت گذاری باشد که نیاز به توضیح بیشتری " -"دارد تا به درستی ترجمه شود. اگر اطلاعات بیشتری ارائه دهید یا متن دقیقی وجود " -"دارد که نیاز به ترجمه دارد، لطفاً جزئیات بیشتری ارائه کنید تا بتوانم به شما " -"کمک کنم." +"متنی برای ترجمه ارائه نشده است. لطفاً متنی که می خواهید به فارسی ترجمه شود " +"را ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`eval`" msgstr "" -"به نظر می رسد متنی که ارائه دادید جزو مستندات رسمی پایتون نیست یا ممکن است " -"اشتباه تایپی داشته باشد. لطفاً متن درست را ارسال کنید تا به درستی ترجمه شود." +"متنی برای ترجمه ارائه نکردید. لطفاً متن مورد نظر خود را ارسال کنید تا بتوانم" +" آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`exec`" -msgstr "" -"به نظر می رسد متنی که ارائه داده اید مفهومی نیست یا به صورت صحیح نوشته نشده " -"است. لطفاً متن مشخص و معناداری ارائه دهید تا بتوانم به شما در ترجمه آن به " -"فارسی کمک کنم." +msgstr "متاسفم، نمی توانم متن را برای شما ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid "**F**" msgstr "" -"متن ارایه شده معنی خاصی در مستندات پایتون ندارد. لطفاً متن بیشتری را ارائه " -"دهید." +"متن برای ترجمه وجود ندارد. لطفاً متن مشخصی را که می خواهید به فارسی ترجمه " +"شود ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`filter`" msgstr "" -"متن ارائه شده به نظر می رسد به عنوان یک خطا یا نامفهوم است، زیرا " -"\":func:`filter`\" یک عبارت معنی دار یا مفهومی نیست که نیاز به ترجمه داشته " -"باشد. لطفاً متن دیگری ارائه دهید تا بتوانم به شما کمک کنم." +"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`float`" msgstr "" -"متاسفانه، به نظر می رسد بخشی که برای ترجمه ارسال کرده اید درست نیست یا به " -"زبان ناشناخته ای است. لطفاً متن خود را بررسی کرده و دوباره ارسال کنید." +"متنی برای ترجمه ارائه نشده است. لطفا متنی که نیاز به ترجمه دارد را ارسال " +"کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`format`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را وارد " -"کنید." +"متاسفانه متن شما تنها شامل کاراکترهای نامفهوم و غیر قابل ترجمه است. لطفاً " +"متن قابل ترجمه ای ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid "|func-frozenset|_" -msgstr "|مجموعه- «frozenset»|_" +msgstr "|func-frozenset|_" #: ../../library/functions.rst:0 #, fuzzy msgid "**G**" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را وارد کنید." +msgstr "متن نامشخص. لطفاً متن را برای ترجمه بارگذاری کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`getattr`" msgstr "" -"متن ارائه شده برای ترجمه فاقد محتوا و معنا است. لطفاً متن معتبری از مستندات " -"پایتون ارائه دهید تا بتوانم به شما کمک کنم." +"متاسفانه، متن درخواست شما حاوی هیچ متنی برای ترجمه نیست. لطفاً یک متن معتبر " +"ارسال کنید که به ترجمه نیاز دارد." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`globals`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی از مستندات رسمی پایتون که نیاز به" -" ترجمه به فارسی دارد را ارسال کنید." +msgstr ":func:`globals`" #: ../../library/functions.rst:0 #, fuzzy msgid "**H**" msgstr "" -"متنی که قرار است ترجمه شود ارائه نشده است. لطفاً متن دقیقی از مستندات پایتون" -" را برای ترجمه به فارسی ارسال کنید." +"متأسفم، هیچ متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نیاز برای ترجمه " +"را ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`hasattr`" -msgstr "ایکس ای اس دی اف۰۰" +msgstr "" +"متن جهت ترجمه ارائه نشده است. لطفاً متنی که باید ترجمه شود را ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`hash`" -msgstr "" -"به نظر می رسد متنی که ارائه داده اید به صورت نامعتبر یا غیرمرئی است. لطفاً " -"یک متن مناسب و معتبر از مستندات رسمی پایتون ارائه دهید تا به زبان فارسی " -"ترجمه شود." +msgstr "متأسفم، اما من نمی توانم متن شما را ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`help`" msgstr "" -"متاسفانه، به نظر می رسد متنی که باید ترجمه شود وجود ندارد. لطفاً مطمئن شوید " -"که متن را به درستی قرار داده اید و دوباره تلاش کنید." +"متن برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را ارائه " +"دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`hex`" -msgstr "" -"متن ارائه شده به نظر نمی رسد قسمتی از مستندات رسمی پایتون باشد. لطفاً متن " -"مربوطه را دوباره چک کرده و ارسال نمایید تا بتوانم به شما کمک کنم." +msgstr "متن برای ترجمه ارائه نشده است. لطفاً متنی برای ترجمه فراهم کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**I**" msgstr "" -"متنی که شما ارائه داده اید شبیه به محتوای واقعی مستندات Python نیست. لطفاً " -"متن معتبری از مستندات Python را برای ترجمه ارائه دهید." +"متن خاصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود برای ترجمه به " +"فارسی را وارد کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`id`" -msgstr ":func:`id`" +msgstr "" +"من نمی توانم متن را ترجمه کنم زیرا در متن اصلی اطلاعات مشخصی برای ترجمه وجود" +" ندارد. لطفاً متن اصلی که نیاز به ترجمه دارد را فراهم کنید تا بتوانم کمک " +"کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`input`" -msgstr "" -"متنی که ارائه داده اید به نظر می رسد اشتباه یا ناشناخته باشد و بخشی از " -"مستندات رسمی پایتون نیست. لطفاً متن معتبری ارائه دهید تا بتوانم به آن پاسخ " -"دهم." +msgstr "متن ارائه شده معتبر نیست. لطفاً متن معتبر و مرتبطی ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`int`" -msgstr ":func:`int`" +msgstr "" +"متاسفانه، متن ورودی شامل محتوای مناسبی برای ترجمه نیست. لطفاً یک متن معتبر " +"از مستندات رسمی پایتون وارد کنید تا بتوانم آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`isinstance`" msgstr "" -"به نظر می رسد متنی که ارائه کرده اید بخشی از مستندات رسمی پایتون نیست یا " -"ممکن است یک کد یا متن تصادفی باشد. لطفاً مطمئن شوید که متن مربوط به مستندات " -"رسمی پایتون است و دوباره ارسال کنید تا بتوانم به شما در ترجمه ی آن کمک کنم." +"متاسفانه هیچ متنی برای ترجمه وجود ندارد. لطفا متن مورد نظر را جهت ترجمه " +"ارائه کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`issubclass`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مناسبی را ارسال کنید تا بتوانم آن " -"را به فارسی ترجمه کنم." +"متاسفانه، به نظر می رسد متنی که برای ترجمه ارائه داده اید، ناقص یا اشتباه " +"است. لطفاً متن کامل و صحیح را برای ترجمه ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`iter`" -msgstr "متنی برای ترجمه ارائه نشده است. لطفاً متنی برای ترجمه ارائه کنید." +msgstr "" +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " +"فارسی ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**L**" -msgstr "" -"متنی با شناسه \"**L**\" برای ترجمه ارائه نشده است. لطفاً متن مورد نظر را " -"برای ترجمه مجدد ارسال کنید." +msgstr "**L**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`len`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً محتوای اصلی را برای ترجمه ارائه دهید." +msgstr ":func:`len`" #: ../../library/functions.rst:0 #, fuzzy msgid "|func-list|_" -msgstr "|فهرست-توابع|_" +msgstr "|func-list|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`locals`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " -"کنید." +"متاسفانه، متن خاصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای" +" ترجمه مجدد ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**M**" msgstr "" -"I'm sorry, but it looks like \"**M**\" doesn't contain any specific content " -"from the Python official documentation to translate. If you provide a more " -"detailed excerpt, I can help translate that text into Farsi." +"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " +"کنید تا به شما کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`map`" -msgstr "ایکس اِی اِس دی اف۰۰" +msgstr "" +"متن برای ترجمه ارائه نشده است. لطفاً متن کامل را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`max`" msgstr "" -"متن وارد شده شما شبیه به سند رسمی یا آموزشی نیست. لطفا متن مشخص و معناداری " -"را برای ترجمه ارائه دهید." +"متاسفانه، اطلاعاتی برای ترجمه این متن در اختیار من قرار داده نشده است. لطفاً" +" متن مورد نظر خود را ارائه دهید تا بتوانم آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy @@ -418,95 +402,95 @@ msgstr "|func-memoryview|_" #, fuzzy msgid ":func:`min`" msgstr "" -"متنی که ارائه شده شامل عبارات قابل ترجمه نمی باشد. اگر نیاز به ترجمه بخش " -"خاصی از مستندات رسمی پایتون دارید، لطفاً متن مرتبط را ارائه دهید." +"متنی ارائه نشده است تا بتوانم ترجمه کنم. لطفاً متن مورد نظر را قرار دهید تا " +"به فارسی ترجمه شود." #: ../../library/functions.rst:0 #, fuzzy msgid "**N**" msgstr "" -"به نظر می رسد متن ارائه شده برای ترجمه، یک رشته یا شناسه خاص است و شامل " -"محتوای متنی قابل ترجمه نمی شود. لطفاً متن دیگری را برای ترجمه ارسال کنید." +"متاسفم، اما متنی برای ترجمه ارائه نکردید. لطفاً متن مورد نظر جهت ترجمه را " +"ارائه دهید تا کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`next`" msgstr "" -"متنی که ارائه داده اید به نظر نمی رسد از مستندات رسمی پایتون باشد. شاید نیاز" -" به بازبینی متن یا توضیح بیشتری باشد تا بتوانم کمک کنم." +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به زبان" +" فارسی ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**O**" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مد نظر خود را برای ترجمه ارسال " -"کنید." +"متأسفانه، متن یا محتوا برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را " +"وارد کنید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`object`" msgstr "" -"متأسفانه، متنی که ارائه داده اید قابل فهم نیست و نمی توان ترجمه دقیقی برای " -"آن ارائه داد. لطفاً متن قابل فهم تری ارائه دهید تا بتوانم در ترجمه آن به شما" -" کمک کنم." +"متغیر `X` مقداری دارد که مشخص می کند کد به چه صورت عمل کند. اگر `X` برابر با `1` باشد، تابع `foo()` فراخوانی می شود، در غیر این صورت تابع `bar()` فراخوانی می شود. این شرایط به صورت زیر تعریف شده است::\n" +"\n" +" if X == 1:\n" +" foo()\n" +" else:\n" +" bar()" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`oct`" msgstr "" -"متنی که ارائه داده اید شبیه به قسمتی از مستندات رسمی پایتون نیست. ممکن است " -"متن ورودی یک کد یا رشته خاص باشد که در مستندات وجود ندارد و نیاز به توضیح " -"اختصاصی ندارد. اگر سوال یا متن دیگری دارید، لطفاً توضیح بیشتری بدهید." +"متاسفانه درخواست شما حاوی اطلاعات قابل ترجمه ای نمی باشد. لطفاً متن مرتبط و " +"ترجمه پذیری را ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`open`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن صحیحی را برای ترجمه ارائه دهید." +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را ارائه دهید تا به " +"فارسی ترجمه شود." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`ord`" msgstr "" -"I'm sorry, but the text you provided, \":func:`ord`\", doesn't appear to be " -"part of the official Python documentation. If you can provide a valid " -"excerpt from the Python documentation, I would be able to assist you with " -"its translation to Farsi." +"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**P**" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " -"فارسی ارسال کنید." +"متنی برای ترجمه ارائه نشده است. لطفاً متن را فراهم کنید تا بتوانم آن را به " +"فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`pow`" -msgstr ":func:`pow`" +msgstr "" +"متنی برای ترجمه ارائه نشد. لطفاً متن مورد نظر برای ترجمه را فراهم کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`print`" msgstr "" -"متن داده شده برای ترجمه به نظر نمی رسد که از محتوای مستندات رسمی پایتون " -"باشد. آیا می توانید متن دیگری ارائه دهید تا آن را برای شما به فارسی ترجمه " -"کنم؟" +"متن برای ترجمه ارائه نشده است. لطفاً قسمتی از مستندات رسمی پایتون را که نیاز" +" به ترجمه دارد، ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`property`" msgstr "" -"متنی که ارائه داده اید به نظر نمی رسد که بخشی از مستندات رسمی پایتون یا حتی " -"یک جمله معنی دار باشد. آیا امکان دارد متن درست را ارائه دهید تا بتوانم به " -"شما در ترجمه کمک کنم؟" +"متأسفانه، متن قابل ارائه برای ترجمه به \"FARSI\" داده نشده است. لطفاً متنی " +"که نیاز به ترجمه دارد را ارسال کنید تا من به شما کمک کنم." #: ../../library/functions.rst:0 #, fuzzy msgid "**R**" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی که می خواهید ترجمه شود را ارسال " -"کنید." +"متن ارائه شده برای ترجمه شامل کدی یا اصطلاحات فنی نیست. لطفاً متن مناسب یا " +"قطعه ای از مستندات را ارائه دهید تا بتوان ترجمه ای ارائه داد." #: ../../library/functions.rst:0 #, fuzzy @@ -517,49 +501,49 @@ msgstr "|func-range|_" #, fuzzy msgid ":func:`repr`" msgstr "" -"متنی که ارائه داده اید به نظر نامعتبر یا تصادفی می رسد و به نظر نمی آید که " -"بخشی از مستندات رسمی پایتون باشد. اگر بخش خاصی از مستندات پایتون را می " -"خواهید ترجمه کنید، لطفا آن را به طور واضح ارائه دهید." +"متأسفم، اما متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای " +"ترجمه ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`reversed`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن را ارائه دهید تا آن را به فارسی " -"ترجمه کنم." +"متاسفانه، متن ارائه شده شامل محتوایی نمی شود که نیاز به ترجمه داشته باشد. " +"اگر نیاز به ترجمه قسمت های متفاوتی دارید، لطفاً متن مورد نظر را ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`round`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را قرار دهید " -"تا بتوانم به شما کمک کنم." +"متن ارائه شده شامل عبارت ناشناخته یا غیرقابل ترجمه \":func:`round`\" است که " +"به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد. لطفاً متن دیگری را برای " +"ترجمه به فارسی ارائه کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**S**" msgstr "" -"متن ارائه شده به درستی وارد نشده است. لطفاً مطمئن شوید که متنی که می خواهید " -"ترجمه شود، معتبر و قابل فهم است." +"متاسفم، من نمی توانم متنی را که ارائه نداده اید، ترجمه کنم. لطفاً متن مورد " +"نظر خود را برای ترجمه ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid "|func-set|_" -msgstr "|مجموعه تابع|_" +msgstr "|func-set|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`setattr`" msgstr "" -"به نظر می رسد متنی که برای ترجمه ارائه داده اید، معنی خاصی ندارد و احتمالاً " -"به اشتباه وارد شده است. لطفاً متن دقیق و درستی را برای ترجمه ارائه دهید." +"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود برای ترجمه ارسال " +"کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`slice`" msgstr "" -"متاسفانه، محتوای وارد شده قابل خواندن یا ترجمه نیست. لطفاً متنی قابل فهم از " -"سند رسمی پایتون ارائه دهید تا بتوانم به ترجمه آن به فارسی کمک کنم." +"متن برای ترجمه ارائه نشده است. لطفاً متن اصلی خود را ارسال کنید و من آن را " +"به فارسی ترجمه خواهم کرد." #: ../../library/functions.rst:0 #, fuzzy @@ -581,80 +565,72 @@ msgstr "|func-str|_" #, fuzzy msgid ":func:`sum`" msgstr "" -"متنی که ارائه دادید فاقد محتوای قابل ترجمه است. لطفاً متن معتبر و مرتبط با " -"مستندات رسمی پایتون ارائه دهید تا بتوانم آن را به فارسی ترجمه کنم." +"متن برای ترجمه ارائه نشده است. لطفاً متن را فراهم کنید تا بتوانم آن را برای " +"شما به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`super`" msgstr "" -"متنی که برای ترجمه ارائه داده اید فاقد محتوای قابل ترجمه است. لطفاً متن درست" -" و مناسبی ارائه دهید تا بتوانم به شما کمک کنم." +"متن برای ترجمه ارائه نشده است. آیا ممکن است متن دیگری برای ترجمه به فارسی " +"فراهم کنید؟" #: ../../library/functions.rst:0 #, fuzzy msgid "**T**" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " -"کنید." +"متأسفانه، تا زمانی که شما متن خاصی برای ترجمه ارائه ندهید، نمی توانم متنی را" +" به فارسی ترجمه کنم. لطفا متن مورد نظرتان را ارائه دهید تا بتوانم به شما کمک" +" کنم." #: ../../library/functions.rst:0 #, fuzzy msgid "|func-tuple|_" -msgstr "|تابع-تاپل|_" +msgstr "|func-tuple|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`type`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن را برای ترجمه به صورت صحیح وارد " -"کنید." +msgstr ":func:`type`" #: ../../library/functions.rst:0 #, fuzzy msgid "**V**" msgstr "" -"به نظر می رسد متن ورودی شما معتبر نیست یا به زبان انگلیسی نیست که بتوان آن " -"را به فارسی ترجمه کرد. لطفاً متن صحیح را ارائه دهید." +"متنی برای ترجمه ارائه نشده است. لطفاً متنی برای ترجمه به فارسی ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`vars`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن صحیحی را جهت ترجمه در اختیار من " -"قرار دهید." +"متن اصلی برای ترجمه ارائه نشده است. لطفاً متن اصلی را برای ترجمه ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid "**Z**" msgstr "" -"به نظر می رسد متنی که ارائه داده اید یک رشته ی نامفهوم یا یک کد اشتباه باشد." -" لطفاً مطمئن شوید که متنی برای ترجمه وارد کنید که حاوی اطلاعات یا توضیحات " -"معناداری باشد. اگر سوال یا بخش خاصی از مستندات پایتون را دارید که نیاز به " -"ترجمه دارد، لطفاً آن را به اشتراک بگذارید." +"متأسفم، اما متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای " +"ترجمه ارسال کنید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`zip`" msgstr "" -"به نظر می رسد که متنی که ارسال کرده اید قابل شناسایی نیست و حاوی اطلاعات " -"معتبری نمی باشد. لطفاً متن مشخص و قابل فهمی ارسال کنید تا بتوان آن را به " -"درستی ترجمه کرد." +"متنی که برای ترجمه داده شده حاوی هیچ محتوای خاصی نیست و به نظر می رسد فقط یک" +" رشته از حروف است. لطفا یک متن معتبر از مستندات رسمی پایتون ارائه دهید تا " +"بتوانم آن را به فارسی ترجمه کنم." #: ../../library/functions.rst:0 #, fuzzy msgid "**_**" -msgstr "" -"به نظر می رسد متنی که ارائه داده اید قابل ترجمه نیست، چون به وضوح شامل " -"محتوای معناداری نمی باشد. اگر متن دیگری مورد نظر شماست یا نیاز به کمک خاصی " -"دارید، لطفاً اطلاعات بیشتری ارائه دهید." +msgstr "متن فراهم نشده است." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`__import__`" msgstr "" -"متأسفانه، متنی برای ترجمه در اختیارم قرار نگرفته است. اگر بخش دیگری از " -"مستندات یا متن خاصی مدنظرتان است، لطفاً آن را مشخص کنید تا به شما کمک کنم." +"متأسفم، اما به نظر می رسد متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر" +" خود را برای ترجمه ارسال کنید." #: ../../library/functions.rst:59 #, fuzzy @@ -664,8 +640,8 @@ msgid "" " the argument is a complex number, its magnitude is returned." msgstr "" "مقدار مطلق یک عدد را برمی گرداند. آرگومان می تواند یک عدد صحیح، یک عدد " -"اعشاری، یا یک شیٔی باشد که ``:meth:`~object.__abs__``` را پیاده سازی کرده " -"است. اگر آرگومان یک عدد مختلط باشد، اندازهٔ آن برگردانده می شود." +"اعشاری و یا یک شیء که :meth:`~object.__abs__` را پیاده سازی می کند باشد. اگر" +" آرگومان یک عدد مختلط باشد، اندازه آن برگردانده می شود." #: ../../library/functions.rst:67 #, fuzzy @@ -673,15 +649,14 @@ msgid "" "Return an :term:`asynchronous iterator` for an :term:`asynchronous " "iterable`. Equivalent to calling ``x.__aiter__()``." msgstr "" -"یک :term:`asynchronous iterator` را برای یک :term:`asynchronous iterable` " -"بازگردانید. معادل فراخوانی ``x.__aiter__()`` است." +"یک :term:`asynchronous iterator` برای یک :term:`asynchronous iterable` برمی " +"گرداند. معادل با فراخوانی ``x.__aiter__()`` است." #: ../../library/functions.rst:70 #, fuzzy msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." msgstr "" -"توجه: برخلاف :func:`iter`، در :func:`aiter` نسخه ای با دو آرگومان وجود " -"ندارد." +"توجه: برخلاف :func:`iter`، :func:`aiter` هیچ ویراسیون دو آرگومان ندارد." #: ../../library/functions.rst:76 #, fuzzy @@ -689,8 +664,8 @@ msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" msgstr "" -"``True`` را بازگردانید اگر همه عناصر *iterable* درست باشند (یا اگر iterable " -"خالی باشد). معادل با::" +"اگر تمام عناصر *iterable* درست باشند (یا اگر شیٔ iterable خالی باشد)، " +"``True`` را بازمی گرداند. معادل با::" #: ../../library/functions.rst:79 #, fuzzy @@ -701,13 +676,9 @@ msgid "" " return False\n" " return True" msgstr "" -"```python\n" -"def all(iterable):\n" -" برای element در iterable:\n" -" اگر نه element:\n" -" برگردان False\n" -" برگردان True\n" -"```" +"تابع `all` یک `iterable` به عنوان ورودی می گیرد. برای هر عنصر در `iterable`،" +" اگر عنصری وجود داشته باشد که مقدار آن False باشد، تابع `False` برمی گردد. " +"اگر تمام عناصر True باشند، تابع `True` برمی گردد." #: ../../library/functions.rst:89 #, fuzzy @@ -715,16 +686,16 @@ msgid "" "When awaited, return the next item from the given :term:`asynchronous " "iterator`, or *default* if given and the iterator is exhausted." msgstr "" -"زمانی که منتظر می مانید، آیتم بعدی را از :term:`asynchronous iterator` داده " -"شده برگردانید، یا اگر داده شده و تکرارگر به پایان رسیده باشد، *default* را " -"برگردانید." +"هنگامی که منتظر بمانید، آیتم بعدی را از :term:`asynchronous iterator` داده " +"شده بازگردانید، یا اگر داده شده باشد و تکرارگر به انتها رسیده باشد، " +"*default* را بازگردانید." #: ../../library/functions.rst:92 #, fuzzy msgid "" "This is the async variant of the :func:`next` builtin, and behaves " "similarly." -msgstr "این نسخه ناهمگام از :func:`next` داخلی است و رفتار مشابهی دارد." +msgstr "این نسخه ناهم زمان از :func:`next` داخلی است و رفتار مشابهی دارد." #: ../../library/functions.rst:95 #, fuzzy @@ -734,10 +705,10 @@ msgid "" "iterator. If *default* is given, it is returned if the iterator is " "exhausted, otherwise :exc:`StopAsyncIteration` is raised." msgstr "" -"این فراخوانی متد :meth:`~object.__anext__` از *async_iterator* است که یک " -":term:`awaitable` را برمی گرداند. در انتظار این، مقدار بعدی تکرارگر را بازمی" -" گرداند. اگر *default* داده شود، در صورتی که تکرارگر به پایان برسد، آن " -"برگردانده می شود؛ در غیر این صورت، :exc:`StopAsyncIteration` مطرح می شود." +"متد :meth:`~object.__anext__` از *async_iterator* را فراخوانی می کند که یک " +":term:`awaitable` برمی گرداند. انتظار برای این، مقدار بعدی از تکرارگر را " +"برمی گرداند. اگر *default* داده شده باشد، در صورت خسته شدن تکرارگر، آن را " +"برمی گرداند؛ در غیر این صورت، :exc:`StopAsyncIteration` برانگیخته می شود." #: ../../library/functions.rst:104 #, fuzzy @@ -745,8 +716,8 @@ msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" msgstr "" -"اگر هر عنصر از *iterable* درست باشد، ``True`` را برگردانید. اگر قابل تکرار " -"خالی باشد، ``False`` را برگردانید. معادل با::" +"``True`` را برمی گرداند اگر هر عنصری از *iterable* صحیح باشد. اگر *iterable*" +" خالی باشد، ``False`` را برمی گرداند. معادل با:" #: ../../library/functions.rst:107 #, fuzzy @@ -757,13 +728,15 @@ msgid "" " return True\n" " return False" msgstr "" -"```python\n" +"تابع `any` یک `iterable` را به عنوان ورودی می گیرد و بررسی می کند که آیا حداقل یکی از عناصر آن مقدار `True` دارد یا خیر. اگر حداقل یکی از عناصر مقدار `True` داشته باشد، مقدار `True` برمی گرداند، در غیر این صورت مقدار `False` بازگردانده می شود. \n" +"\n" +"این تابع به شکل زیر تعریف می شود::\n" +"\n" "def any(iterable):\n" -" برای element در iterable:\n" -" اگر element:\n" -" برگرداندن True\n" -" برگرداندن False\n" -"```" +" for element in iterable:\n" +" if element:\n" +" return True\n" +" return False" #: ../../library/functions.rst:116 #, fuzzy @@ -773,11 +746,10 @@ msgid "" ":func:`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates a " "string similar to that returned by :func:`repr` in Python 2." msgstr "" -"به عنوان :func:`repr`، یک رشته که یک نمایش قابل چاپ از یک شیء را شامل می " -"شود، بازگردانید، اما کاراکترهای غیر ASCII در رشته بازگشتی توسط :func:`repr` " -"را با استفاده از اکسکیپ های ``\\x``، ``\\u``، یا ``\\U`` فرار دهید. این رشته" -" ای مشابه با رشته ای که توسط :func:`repr` در پایتون ۲ برگردانده می شود، " -"تولید می کند." +"به عنوان :func:`repr`، یک رشته حاوی نمای قابل چاپ از یک شیء برگردانید، اما " +"کاراکترهای غیر ASCII در رشته ای که توسط :func:`repr` بازگردانده می شود را با" +" استفاده از ``\\x``، ``\\u`` یا ``\\U`` فرار دهید. این یک رشته مشابه با آنچه" +" توسط :func:`repr` در پایتون 2 بازگردانده می شود، تولید می کند." #: ../../library/functions.rst:124 #, fuzzy @@ -787,10 +759,10 @@ msgid "" "object, it has to define an :meth:`~object.__index__` method that returns an" " integer. Some examples:" msgstr "" -"یک عدد صحیح را به یک رشته باینری که با \"0b\" پیشوند شده است تبدیل کنید. " -"نتیجه یک عبارت معتبر Python است. اگر *x* یک شیء :class:`int` در Python " -"نباشد، باید یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح " -"بازگرداند. برخی از مثال ها:" +"یک عدد صحیح را به یک رشته باینری که با \"0b\" پیشوند شده تبدیل کنید. نتیجه " +"یک عبارت معتبر پایتون است. اگر *x* یک شیء Python :class:`int` نباشد، باید یک" +" روش :meth:`~object.__index__` تعریف کند که یک عدد صحیح را برگرداند. چند " +"مثال:" #: ../../library/functions.rst:134 #, fuzzy @@ -798,7 +770,7 @@ msgid "" "If the prefix \"0b\" is desired or not, you can use either of the following " "ways." msgstr "" -"اگر به پیشوند \"0b\" نیاز دارید یا خیر، می توانید از یکی از روش های زیر " +"اگر پیشوند \"0b\" مورد نظر است یا نه، می توانید از هر یک از روش های زیر " "استفاده کنید." #: ../../library/functions.rst:141 ../../library/functions.rst:942 @@ -817,18 +789,18 @@ msgid "" ":ref:`typesnumeric`). It cannot be subclassed further. Its only instances " "are ``False`` and ``True`` (see :ref:`typebool`)." msgstr "" -"ارزش بولیانی را بازمی گرداند، یعنی یکی از ``True`` یا ``False``. آرگومان با " -"استفاده از استاندارد :ref:`truth testing procedure ` تبدیل می شود. " -"اگر آرگومان نادرست باشد یا حذف شود، ``False`` را برمی گرداند؛ در غیر این " -"صورت، ``True`` را برمی گرداند. کلاس :class:`bool` زیرکلاسی از :class:`int` " -"است (نگاه کنید به :ref:`typesnumeric`). نمی توان آن را بیشتر زیرکلاس کرد. " -"تنها نمونه های آن عبارتند از ``False`` و ``True`` (نگاه کنید به " -":ref:`typebool`)." +"یک مقدار بولی را برمی گرداند، یعنی یکی از ``True`` یا ``False``. آرگومان با " +"استفاده از تبدیل استاندارد :ref:`truth testing procedure ` تبدیل می " +"شود. اگر آرگومان نادرست باشد یا حذف شود، این مقدار ``False`` را برمی گرداند؛" +" در غیر این صورت، مقدار ``True`` را برمی گرداند. کلاس :class:`bool` یک " +"زیرکلاس از :class:`int` است (به :ref:`typesnumeric` مراجعه کنید). نمی توان " +"آن را به طور بیشتری زیرکلاس سازی کرد. تنها نمونه های آن ``False`` و ``True``" +" هستند (به :ref:`typebool` مراجعه کنید)." #: ../../library/functions.rst:156 ../../library/functions.rst:807 #, fuzzy msgid "The parameter is now positional-only." -msgstr "پارامتر اکنون تنها به صورت مکانی قابل استفاده است." +msgstr "پارامتر اکنون فقط مکان پذیر است." #: ../../library/functions.rst:161 #, fuzzy @@ -843,16 +815,16 @@ msgid "" " you to drop into the debugger of choice. If :func:`sys.breakpointhook` is " "not accessible, this function will raise :exc:`RuntimeError`." msgstr "" -"این تابع شما را در محل فراخوانی به اشکال زدا منتقل می کند. به طور خاص، " -":func:`sys.breakpointhook` را فراخوانی می کند و ``args`` و ``kws`` را به طور" -" مستقیم عبور می دهد. به طور پیش فرض، ``sys.breakpointhook()``، " -":func:`pdb.set_trace` را فراخوانی می کند، بدون انتظار هیچ آرگومانی. در این " -"حالت، این تابع صرفاً یک تابع راحتی است تا نیازی نباشد که به طور صریح " -":mod:`pdb` را وارد کنید یا کد زیادی برای وارد شدن به اشکال زدا بنویسید. با " -"این حال، :func:`sys.breakpointhook` می تواند به تابع دیگری تنظیم شود و " -":func:`breakpoint` به طور خودکار آن را فراخوانی می کند، که به شما اجازه می " -"دهد وارد اشکال زدای مورد نظر شوید. اگر :func:`sys.breakpointhook` قابل " -"دسترسی نباشد، این تابع :exc:`RuntimeError` را برمی گرداند." +"این تابع شما را در محل فراخوانی به اشکال زدا وارد می کند. به طور خاص، " +"`:func:`sys.breakpointhook`` را صدا می زند و ```args``` و ```kws``` را " +"مستقیماً عبور می دهد. به طور پیش فرض، ```sys.breakpointhook()```، " +"`:func:`pdb.set_trace`` را فراخوانی می کند، بدون اینکه هیچ آرگومانی انتظار " +"داشته باشد. در این حالت، این تابع یک تابع راحتی (کمکی) است که شما نیازی به " +"وارد کردن صریح `:mod:`pdb`` یا نوشتن کد زیاد برای ورود به اشکال زدا ندارید. " +"اما، می توان `:func:`sys.breakpointhook`` را به تابع دیگری تنظیم کرد و " +"`:func:`breakpoint`` به طور خودکار آن را صدا خواهد زد و به شما اجازه می دهد " +"در اشکال زدای مورد نظر وارد شوید. اگر `:func:`sys.breakpointhook`` قابل " +"دسترسی نباشد، این تابع `:exc:`RuntimeError`` را ایجاد خواهد کرد." #: ../../library/functions.rst:173 #, fuzzy @@ -862,7 +834,7 @@ msgid "" ":func:`sys.breakpointhook` for usage details." msgstr "" "به طور پیش فرض، رفتار :func:`breakpoint` می تواند با متغیر محیطی " -":envvar:`PYTHONBREAKPOINT` تغییر کند. برای جزئیات استفاده، به " +":envvar:`PYTHONBREAKPOINT` تغییر کند. برای جزئیات استفاده به " ":func:`sys.breakpointhook` مراجعه کنید." #: ../../library/functions.rst:177 @@ -871,8 +843,8 @@ msgid "" "Note that this is not guaranteed if :func:`sys.breakpointhook` has been " "replaced." msgstr "" -"توجه داشته باشید که این موضوع در صورتی که :func:`sys.breakpointhook` جایگزین" -" شده باشد، تضمین نمی شود." +"توجه داشته باشید که این موضوع تضمین نمی شود اگر :func:`sys.breakpointhook` " +"جایگزین شده باشد." #: ../../library/functions.rst:180 #, fuzzy @@ -880,8 +852,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." msgstr "" -"یک خطای :ref:`auditing event ` ``builtins.breakpoint`` به همراه " -"آرگومان ``breakpointhook`` رخ می دهد." +"یک :ref:`auditing event ` ``builtins.breakpoint`` با آرگومان " +"``breakpointhook`` ایجاد می کند." #: ../../library/functions.rst:190 #, fuzzy @@ -891,11 +863,11 @@ msgid "" "methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" -"بازگشت یک آرایه جدید از بایت ها. کلاس :class:`bytearray` یک دنباله قابل " -"تغییر از اعداد صحیح در دامنه 0 <= x < 256 است. این کلاس بیشتر روش های معمول " -"دنباله های قابل تغییر را که در :ref:`typesseq-mutable` توصیف شده اند، " -"داراست، همچنین اکثر روش هایی که نوع :class:`bytes` دارد، ببینید :ref:`bytes-" -"methods`." +"یک آرایه جدید از بایت ها برگردانید. کلاس :class:`bytearray` یک دنباله متغیر " +"از اعداد صحیح در محدوده 0 <= x < 256 است. این کلاس بیشتر متدهای معمول دنباله" +" های متغیر را که در :ref:`typesseq-mutable` توضیح داده شده است، و همچنین " +"بیشتر متدهایی که نوع :class:`bytes` دارد را داراست، به :ref:`bytes-methods` " +"مراجعه کنید." #: ../../library/functions.rst:195 #, fuzzy @@ -903,8 +875,8 @@ msgid "" "The optional *source* parameter can be used to initialize the array in a few" " different ways:" msgstr "" -"پارامتر اختیاری *source* می تواند به چند روش مختلف برای مقداردهی اولیه آرایه" -" استفاده شود:" +"استفاده از پارامتر اختیاری *source* می تواند برای مقداردهی اولیه آرایه به " +"چند روش مختلف صورت گیرد:" #: ../../library/functions.rst:198 #, fuzzy @@ -913,8 +885,8 @@ msgid "" "*errors*) parameters; :func:`bytearray` then converts the string to bytes " "using :meth:`str.encode`." msgstr "" -"اگر این *string* است، شما باید پارامترهای *encoding* (و به صورت دلخواه، " -"*errors*) را نیز بدهید؛ سپس :func:`bytearray` رشته را با استفاده از " +"اگر یک *string* باشد، همچنین باید پارامترهای *encoding* (و به اختیار، " +"*errors*) را فراهم کنید؛ سپس :func:`bytearray` رشته را با استفاده از " ":meth:`str.encode` به بایت تبدیل می کند." #: ../../library/functions.rst:202 @@ -923,8 +895,8 @@ msgid "" "If it is an *integer*, the array will have that size and will be initialized" " with null bytes." msgstr "" -"اگر این یک *integer* باشد، آرایه به همان اندازه خواهد بود و با بایت های خالی" -" (null) مقداردهی اولیه می شود." +"اگر یک *integer* باشد، آرایه به همان اندازه خواهد بود و با بایت های خالی " +"مقداردهی اولیه می شود." #: ../../library/functions.rst:205 #, fuzzy @@ -933,9 +905,8 @@ msgid "" "`, a read-only buffer of the object will be used to " "initialize the bytes array." msgstr "" -"اگر این یک شیء مطابق با :ref:`buffer interface ` باشد، یک " -"بافر تنها خواندنی از شیء برای مقداردهی اولیه آرایه ``bytes`` استفاده خواهد " -"شد." +"اگر این یک آبجکت مطابق با :ref:`buffer interface ` باشد، یک " +"بافر فقط خواندنی از آبجکت برای مقداردهی اولیه آرایه bytes استفاده خواهد شد." #: ../../library/functions.rst:208 #, fuzzy @@ -943,13 +914,13 @@ msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." msgstr "" -"اگر این یک *iterable* باشد، باید یک تکرارپذیر از اعداد صحیح در محدوده ``0 <=" -" x < 256`` باشد که به عنوان محتوای اولیه آرایه استفاده می شوند." +"اگر *iterable* باشد، باید یک iterable از اعداد صحیح در محدوده ``0 <= x < " +"256`` باشد، که به عنوان محتوای اولیه آرایه استفاده می شوند." #: ../../library/functions.rst:211 #, fuzzy msgid "Without an argument, an array of size 0 is created." -msgstr "بدون هیچ آرگومانی، یک آرایه با اندازه ۰ ایجاد می شود." +msgstr "بدون آرگومنت، یک آرایه با اندازه 0 ایجاد می شود." #: ../../library/functions.rst:213 #, fuzzy @@ -964,31 +935,30 @@ msgid "" ":class:`bytearray` -- it has the same non-mutating methods and the same " "indexing and slicing behavior." msgstr "" -"یک شیء جدید از نوع \"bytes\" بازگردانده می شود که یک دنباله تغییرناپذیر از " -"اعداد صحیح در بازه ``0 <= x < 256`` است. :class:`bytes` نسخه تغییرناپذیر " -":class:`bytearray` است -- این شیء همان متدهای غیرتغییری و رفتار ایندکس گذاری" -" و برش مشابه را داراست." +"یک شیء جدید \"bytes\" برمی گرداند که یک توالی تغییرناپذیر از اعداد صحیح در " +"بازه ``0 <= x < 256`` است. :class:`bytes` نسخه تغییرناپذیر " +":class:`bytearray` است -- دارای همان روش های غیرقابل تغییر و همان رفتار " +"اندیس گذاری و بُرش است." #: ../../library/functions.rst:227 #, fuzzy msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" -"بنابراین، آرگومان های سازنده همانند برای :func:`bytearray` تفسیر می شوند." +"مطابقاً، استدلال های سازنده به همان صورت :func:`bytearray` تفسیر می شوند." #: ../../library/functions.rst:229 #, fuzzy msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" -"شیء های بایت ها می توانند با استفاده از لیترال ها نیز ایجاد شوند، به " -":ref:`strings` مراجعه کنید." +"آبجکت های بایت نیز می توانند با استفاده از لیترال ها ایجاد شوند، به " +":ref:`strings` مراجعه کنید.\n" #: ../../library/functions.rst:231 #, fuzzy msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" -"همچنین به :ref:`binaryseq`، :ref:`typebytes`، و :ref:`bytes-methods` مراجعه " -"کنید." +"همچنین ببینید :ref:`binaryseq`، :ref:`typebytes`، و :ref:`bytes-methods`." #: ../../library/functions.rst:236 #, fuzzy @@ -999,12 +969,12 @@ msgid "" "Note that classes are callable (calling a class returns a new instance); " "instances are callable if their class has a :meth:`~object.__call__` method." msgstr "" -"بازگشت \":const:`True`\" اگر آرگومان \"*object*\" قابل فراخوانی به نظر برسد،" -" و \":const:`False`\" اگر نباشد. اگر این \"``True``\" را بازگرداند، همچنان " -"ممکن است فراخوانی شکست بخورد، اما اگر \"``False``\" باشد، فراخوانی " -"\"*object*\" هرگز موفق نخواهد شد. توجه داشته باشید که کلاس ها قابل فراخوانی " -"هستند (فراخوانی یک کلاس یک نمونه جدید برمی گرداند)؛ نمونه ها قابل فراخوانی " -"هستند اگر کلاس آن ها دارای یک متد \":meth:`~object.__call__`\" باشد." +"اگر آرگومان `*object*` قابل فراخوانی به نظر برسد، `:const:`True`` و اگر نه، " +"`:const:`False`` بازگردانده می شود. اگر ```True``` برگردانده شود، همچنان " +"امکان شکست فراخوانی وجود دارد، اما اگر ```False``` باشد، فراخوانی `*object*`" +" هرگز موفق نخواهد شد. توجه داشته باشید که کلاس ها قابل فراخوانی هستند " +"(فراخوانی یک کلاس، یک نمونه جدید برمی گرداند)؛ نمونه ها نیز در صورتی قابل " +"فراخوانی هستند که کلاس آن ها دارای متد `:meth:`~object.__call__`` باشد." #: ../../library/functions.rst:242 #, fuzzy @@ -1012,8 +982,7 @@ msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" -"این تابع ابتدا در نسخه 3.0 پایتون حذف شد و سپس در نسخه 3.2 به پایتون " -"بازگردانده شد." +"این تابع ابتدا در Python 3.0 حذف شد و سپس در Python 3.2 بازگردانده شد." #: ../../library/functions.rst:249 #, fuzzy @@ -1023,10 +992,10 @@ msgid "" "``chr(8364)`` returns the string ``'€'``. This is the inverse of " ":func:`ord`." msgstr "" -"رشته ای را بازمی گرداند که نمایانگر کاراکتری است که نقطه کد یونیکد آن عدد " -"صحیح *i* است. به عنوان مثال، ``chr(97)`` رشته ``'a'`` را بازمی گرداند، در " -"حالی که ``chr(8364)`` رشته ``'€'`` را بازمی گرداند. این عملیات معکوس " -":func:`ord` است." +"رشته ای را برمی گرداند که نمایانگر کاراکتری است که نقطه کد یونیکد آن عدد " +"صحیح *i* است. به عنوان مثال، ``chr(97)`` رشته ``'a'`` را برمی گرداند، در " +"حالی که ``chr(8364)`` رشته ``'€'`` را برمی گرداند. این عمکرد عکس :func:`ord`" +" است." #: ../../library/functions.rst:253 #, fuzzy @@ -1034,13 +1003,13 @@ msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." msgstr "" -"محدوده معتبر برای این آرگومان از ۰ تا ۱,۱۱۴,۱۱۱ (0x10FFFF در مبنای ۱۶) است. " -"اگر *i* خارج از این محدوده باشد، :exc:`ValueError` رخ خواهد داد." +"محدوده معتبر برای آرگومان از 0 تا 1,114,111 (0x10FFFF در مبنای 16) است. اگر " +"``*i*`` خارج از این محدوده باشد، ``:exc:`ValueError``` ایجاد خواهد شد." #: ../../library/functions.rst:259 #, fuzzy msgid "Transform a method into a class method." -msgstr "تبدیل یک متد به یک متد کلاسی." +msgstr "تبدیل یک متد به متد کلاسی." #: ../../library/functions.rst:261 #, fuzzy @@ -1049,9 +1018,9 @@ msgid "" "an instance method receives the instance. To declare a class method, use " "this idiom::" msgstr "" -"یک متد کلاسی به عنوان اولین آرگومان به طور ضمنی کلاس را دریافت می کند، درست " -"همان طور که یک متد نمونه، نمونه را دریافت می کند. برای اعلام یک متد کلاسی از" -" این الگو استفاده کنید:" +"یک متد کلاس، کلاس را به عنوان اولین آرگومان ضمنی دریافت می کند، درست مانند " +"اینکه یک متد نمونه، نمونه را دریافت می کند. برای تعریف یک متد کلاس از این " +"عبارت استفاده کنید::" #: ../../library/functions.rst:265 #, fuzzy @@ -1060,9 +1029,10 @@ msgid "" " @classmethod\n" " def f(cls, arg1, arg2): ..." msgstr "" -"کلاس C:\n" +"کلاس `C`:\n" +"\n" " @classmethod\n" -" def f(cls, arg1, arg2): ..." +" def `f`(cls, arg1, arg2): ..." #: ../../library/functions.rst:269 #, fuzzy @@ -1070,7 +1040,7 @@ msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see " ":ref:`function` for details." msgstr "" -"فرم ``@classmethod`` یک تابع است :term:`decorator` -- برای جزئیات به " +"فرم ``@classmethod`` یک تابع :term:`decorator` است -- برای جزئیات به " ":ref:`function` مراجعه کنید." #: ../../library/functions.rst:272 @@ -1081,10 +1051,10 @@ msgid "" "class. If a class method is called for a derived class, the derived class " "object is passed as the implied first argument." msgstr "" -"یک متد کلاس می تواند هم بر روی کلاس (مثلاً ``C.f()``) و هم بر روی یک نمونه " -"(مثلاً ``C().f()``) فراخوانی شود. نمونه به جز کلاس آن نادیده گرفته می شود. " -"اگر یک متد کلاس برای یک کلاس مشتق شده فراخوانی شود، شیء کلاس مشتق شده به " -"عنوان اولین آرگومان ضمنی ارسال می شود." +"یک روش کلاس می تواند هم بر روی کلاس (مانند ``C.f()``) و هم بر روی نمونه ای " +"از آن (مانند ``C().f()``) فراخوانی شود. به نمونه به جز برای کلاس آن توجه نمی" +" شود. اگر یک روش کلاس برای یک کلاس مشتق شده فراخوانی شود، شیء کلاس مشتق شده " +"به عنوان اولین آرگومان ضمنی ارسال می شود." #: ../../library/functions.rst:277 #, fuzzy @@ -1093,9 +1063,9 @@ msgid "" "those, see :func:`staticmethod` in this section. For more information on " "class methods, see :ref:`types`." msgstr "" -"روش های کلاسی با روش های ایستای C++ یا جاوا متفاوت هستند. اگر به آن ها نیاز " -"دارید، به :func:`staticmethod` در این بخش مراجعه کنید. برای اطلاعات بیشتر " -"درباره روش های کلاسی، به :ref:`types` رجوع کنید." +"متدهای کلاس با متدهای استاتیک در C++ یا Java متفاوت هستند. اگر به آن ها نیاز" +" دارید، به :func:`staticmethod` در این بخش مراجعه کنید. برای اطلاعات بیشتر " +"در مورد متدهای کلاس، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:281 #, fuzzy @@ -1103,8 +1073,8 @@ msgid "" "Class methods can now wrap other :term:`descriptors ` such as " ":func:`property`." msgstr "" -"متدهای کلاس اکنون می توانند دیگر :term:`descriptors `هایی مانند " -":func:`property` را نیز بپوشانند." +"روش های کلاس اکنون می توانند سایر :term:`descriptors ` مانند " +":func:`property` را بسته بندی کنند." #: ../../library/functions.rst:285 #, fuzzy @@ -1114,10 +1084,10 @@ msgid "" ":attr:`~function.__qualname__`, :attr:`~function.__doc__` and " ":attr:`~function.__annotations__`) and have a new ``__wrapped__`` attribute." msgstr "" -"متدهای کلاس اکنون خصوصیات متد (:attr:`~function.__module__`، " -":attr:`~function.__name__`، :attr:`~function.__qualname__`، " +"متدهای کلاس اکنون ویژگی های متد (:attr:`~function.__module__`, " +":attr:`~function.__name__`, :attr:`~function.__qualname__`, " ":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " -"برند و دارای خصوصیت جدیدی به نام ``__wrapped__`` هستند." +"برند و یک ویژگی جدید ``__wrapped__`` دارند." #: ../../library/functions.rst:292 #, fuzzy @@ -1125,8 +1095,8 @@ msgid "" "Class methods can no longer wrap other :term:`descriptors ` such" " as :func:`property`." msgstr "" -"دیگر \"method\" های کلاس نمی توانند دور دیگر \":term:`descriptors " -"`\" ها مانند \":func:`property`\" قرار بگیرند." +"متدهای کلاس دیگر نمی توانند دیگر :term:`descriptors ` مانند " +":func:`property` را بپیچانند." #: ../../library/functions.rst:299 #, fuzzy @@ -1136,11 +1106,10 @@ msgid "" "string, a byte string, or an AST object. Refer to the :mod:`ast` module " "documentation for information on how to work with AST objects." msgstr "" -"ایکس ای اس دی اف۰۰ را به یک کد یا شیء AST کامپایل کنید. اشیاء کد می توانند " -"توسط ایکس ای اس دی اف۰۱ یا ایکس ای اس دی اف۰۲ اجرا شوند. ایکس ای اس دی اف۰۳ " -"می تواند یک رشته معمولی، یک رشته بایتی یا یک شیء AST باشد. برای اطلاعات " -"بیشتر در مورد چگونگی کار با اشیاء AST به مستندات ماژول ایکس ای اس دی اف۰۴ " -"مراجعه کنید." +"کامپایل کردن *source* به یک شیء کد یا یک شیء AST. اشیاء کد می توانند توسط " +":func:`exec` یا :func:`eval` اجرا شوند. *source* می تواند به صورت یک رشته " +"معمولی، یک رشته بایتی یا یک شیء AST باشد. برای اطلاعات بیشتر در مورد کار با " +"اشیاء AST به مستندات ماژول :mod:`ast` مراجعه کنید." #: ../../library/functions.rst:304 #, fuzzy @@ -1149,9 +1118,9 @@ msgid "" "pass some recognizable value if it wasn't read from a file (``''`` " "is commonly used)." msgstr "" -"آرگومان *filename* باید فایل حاوی کدی که خوانده شده است را مشخص کند؛ اگر کد " -"از یک فایل خوانده نشده است، یک مقدار قابل شناسایی را عبور دهید " -"(``''`` به صورت رایج استفاده می شود)." +"آرگومان *filename* باید فایلی را که کد از آن خوانده شده است مشخص کند؛ اگر کد" +" از یک فایل خوانده نشده است، یک مقدار قابل تشخیص بدهید (``''`` به " +"طور معمول استفاده می شود)." #: ../../library/functions.rst:308 #, fuzzy @@ -1162,11 +1131,11 @@ msgid "" "single interactive statement (in the latter case, expression statements that" " evaluate to something other than ``None`` will be printed)." msgstr "" -"آرگومان *mode* تعیین می کند که چه نوع کدی باید کامپایل شود؛ می تواند " -"``'exec'`` باشد اگر *source* شامل یک سری دستورات باشد، ``'eval'`` اگر شامل " -"یک عبارت واحد باشد، یا ``'single'`` اگر شامل یک دستور تعاملی واحد باشد (در " -"این حالت، دستورات عبارتی که به چیزی غیر از ``None`` ارزیابی شوند چاپ خواهند " -"شد)." +"آرگومان *mode* مشخص می کند که چه نوع کدی باید کامپایل شود؛ می تواند " +"``'exec'`` باشد اگر *source* شامل یک دنباله از دستورات باشد، ``'eval'`` اگر " +"شامل یک عبارت واحد باشد، یا ``'single'`` اگر شامل یک دستور تعاملی واحد باشد " +"(در حالت آخر، دستورات عبارت که به چیزی غیر از ``None`` ارزیابی می شوند، چاپ " +"خواهند شد)." #: ../../library/functions.rst:314 #, fuzzy @@ -1182,16 +1151,16 @@ msgid "" "*flags* argument is it -- the flags (future features and compiler options) " "in the surrounding code are ignored." msgstr "" -"آرگومان های اختیاری *flags* و *dont_inherit* تعیین می کنند که کدام " -":ref:`compiler options ` باید فعال شود و کدام " -":ref:`future features ` باید مجاز باشد. اگر هیچ یک وجود نداشته باشد " -"(یا هر دو صفر باشند)، کد با همان فلگ هایی کامپایل می شود که بر روی کدی که " -":func:`compile` را فرا می خواند تأثیر می گذارد. اگر آرگومان *flags* ارائه " -"شود و *dont_inherit* ارائه نشود (یا صفر باشد)، سپس گزینه های کامپایلر و " -"دستورات آتی که توسط آرگومان *flags* مشخص شده اند علاوه بر گزینه هایی که به " -"هر حال استفاده می شوند، استفاده می شوند. اگر *dont_inherit* یک عدد صحیح غیر " -"صفر باشد، آرگومان *flags* همان است -- فلگ ها (ویژگی های آتی و گزینه های " -"کامپایلر) در کد پیرامون نادیده گرفته می شوند." +"پارامترهای اختیاری *flags* و *dont_inherit* مشخص می کنند کدام :ref:`compiler" +" options ` باید فعال شود و کدام :ref:`future features " +"` باید مجاز باشد. اگر هیچ یک موجود نباشد (یا هر دو صفر باشند)، کد با" +" همان فلگ هایی که بر روی کدی که :func:`compile` را فراخوانی می کند تأثیر می " +"گذارد، کامپایل می شود. اگر پارامتر *flags* داده شود و *dont_inherit* موجود " +"نباشد (یا صفر باشد)، گزینه های کامپایلر و دستورهای آینده که توسط پارامتر " +"*flags* مشخص شده، علاوه بر آن هایی که به هر حال استفاده می شدند، استفاده می " +"شوند. اگر *dont_inherit* یک عدد صحیح غیر صفر باشد، پس پارامتر *flags* همان " +"است -- فلگ های (ویژگی های آینده و گزینه های کامپایلر) در کد اطراف نادیده " +"گرفته می شوند." #: ../../library/functions.rst:325 #, fuzzy @@ -1204,13 +1173,13 @@ msgid "" ":ref:`Compiler flags ` can be found in :mod:`ast` " "module, with ``PyCF_`` prefix." msgstr "" -"گزینه های کامپایلر و عبارات آینده با بیت هایی مشخص می شوند که می توان آنها " -"را با عملیات بیتی OR ترکیب کرد تا چندین گزینه را مشخص کند. فیلد بیتی لازم " -"برای مشخص کردن یک ویژگی آینده خاص را می توانید به عنوان ویژگی " -":attr:`~__future__._Feature.compiler_flag` روی نمونه " -":class:`~__future__._Feature` در ماژول :mod:`__future__` پیدا کنید. " -":ref:`Compiler flags ` را می توانید در ماژول :mod:`ast` " -"با پیشوند ``PyCF_`` پیدا کنید." +"گزینه های کامپایلر و اظهارات آینده با بیت هایی مشخص می شوند که می توانند به " +"صورت «OR» بیت وایزی با هم ترکیب شوند تا چندین گزینه را مشخص کنند. بیت فیلد " +"لازم برای مشخص کردن یک ویژگی آینده ی خاص را می توان به عنوان ویژگی " +":attr:`~__future__._Feature.compiler_flag` بر روی نمونه ی " +":class:`~__future__._Feature` در ماژول :mod:`__future__` یافت. " +":ref:`Compiler flags ` را می توان در ماژول :mod:`ast` با" +" پیشوند ``PyCF_`` یافت." #: ../../library/functions.rst:333 #, fuzzy @@ -1223,9 +1192,9 @@ msgid "" msgstr "" "آرگومان *optimize* سطح بهینه سازی کامپایلر را مشخص می کند؛ مقدار پیش فرض " "``-1`` سطح بهینه سازی مفسر را طبق گزینه های :option:`-O` انتخاب می کند. سطوح" -" صریح عبارتند از ``0`` (بدون بهینه سازی؛ ``__debug__`` درست است)، ``1`` " -"(assertها حذف می شوند، ``__debug__`` نادرست است) یا ``2`` (docstringها نیز " -"حذف می شوند)." +" صریح شامل ``0`` (بدون بهینه سازی؛ ``__debug__`` درست است)، ``1`` (تأییدها " +"حذف می شوند، ``__debug__`` نادرست است) یا ``2`` (رشته های مستندات نیز حذف می" +" شوند) است." #: ../../library/functions.rst:339 #, fuzzy @@ -1233,9 +1202,9 @@ msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." msgstr "" -"این تابع خطای :exc:`SyntaxError` را در صورت نامعتبر بودن کد منبع کامپایل شده" -" ایجاد می کند، و در صورتی که کد منبع شامل \"null bytes\" باشد، خطای " -":exc:`ValueError` را ایجاد می کند." +"این تابع خطای :exc:`SyntaxError` را ایجاد می کند اگر کد منبع کامپایل شده " +"نامعتبر باشد، و خطای :exc:`ValueError` را ایجاد می کند اگر کد منبع حاوی بایت" +" های null باشد." #: ../../library/functions.rst:342 #, fuzzy @@ -1243,8 +1212,8 @@ msgid "" "If you want to parse Python code into its AST representation, see " ":func:`ast.parse`." msgstr "" -"اگر می خواهید کد پایتون را به نمایش AST آن تجزیه کنید، به :func:`ast.parse` " -"مراجعه نمایید." +"اگر می خواهید کد Python را به نمایندگی AST تجزیه کنید، به :func:`ast.parse` " +"مراجعه کنید." #: ../../library/functions.rst:345 ../../library/functions.rst:347 #, fuzzy @@ -1254,8 +1223,8 @@ msgid "" "compilation." msgstr "" "یک :ref:`auditing event ` ``compile`` با آرگومان های ``source`` و " -"``filename`` بالا می آید. این رویداد ممکن است همچنین توسط کامپایل ضمنی ایجاد" -" شود." +"``filename`` به وجود می آورد. این رویداد ممکن است توسط کامپایل ضمنی نیز به " +"وجود آید." #: ../../library/functions.rst:353 #, fuzzy @@ -1265,9 +1234,9 @@ msgid "" "to facilitate detection of incomplete and complete statements in the " ":mod:`code` module." msgstr "" -"هنگام کامپایل یک رشته با کد چند خطی در حالت ``'single'`` یا ``'eval'``، " -"ورودی باید حداقل با یک کاراکتر خط جدید به پایان برسد. این کار به منظور تسهیل" -" در تشخیص دستورات ناقص و کامل در ماژول :mod:`code` انجام می شود." +"در هنگام کامپایل کردن یک رشته با کد چند-خطی در حالت ``'single'`` یا " +"``'eval'``، ورودی باید حداقل با یک نویسه ی خط جدید خاتمه یابد. این کار به " +"منظور تسهیل در تشخیص دستورات ناقص و کامل در ماژول :mod:`code` است." #: ../../library/functions.rst:360 #, fuzzy @@ -1276,9 +1245,9 @@ msgid "" "large/complex string when compiling to an AST object due to stack depth " "limitations in Python's AST compiler." msgstr "" -"این امکان وجود دارد که با یک رشته ی به اندازه کافی بزرگ/پیچیده، زمانی که آن " -"را به شیء AST کامپایل می کنید، باعث خرابی مفسر پایتون شوید. این مشکل به دلیل" -" محدودیت های عمق استک در کامپایلر AST پایتون است." +"این امکان وجود دارد که با استفاده از یک رشتهٔ به اندازه کافی بزرگ/پیچیده، " +"مفسر پایتون را هنگامی که به یک شیء AST کامپایل می شود، به دلیل محدودیت های " +"عمق پشته در کامپایلر AST پایتون، دچار کرش کنید." #: ../../library/functions.rst:364 #, fuzzy @@ -1286,8 +1255,9 @@ msgid "" "Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " "does not have to end in a newline anymore. Added the *optimize* parameter." msgstr "" -"استفاده از خطوط جدید در ویندوز و مک مجاز است. همچنین، ورودی در حالت " -"``'exec'`` دیگر نیازی به پایان خط جدید ندارد. پارامتر *optimize* اضافه شد." +"استفاده از شکست خط های جدید در ویندوز و مک مجاز است. همچنین، ورودی در حالت " +"``'exec'`` دیگر نیازی به پایان با یک شکست خط ندارد. پارامتر *optimize* اضافه" +" شد." #: ../../library/functions.rst:368 #, fuzzy @@ -1295,8 +1265,8 @@ msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." msgstr "" -"قبلاً، :exc:`TypeError` زمانی که بایت های null در *source* یافت می شد، رخ می" -" داد." +"پیش تر، :exc:`TypeError` زمانی به وجود می آمد که بایت های نال در *source* " +"مشاهده می شدند." #: ../../library/functions.rst:372 #, fuzzy @@ -1304,9 +1274,9 @@ msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." msgstr "" -"پرچم های ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` اکنون می توانند برای فعال سازی " -"پشتیبانی از ``await``، ``async for`` و ``async with`` در سطح بالا ارسال " -"شوند." +"اکنون می توان ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` را به صورت پرچم هایی ارسال " +"کرد تا پشتیبانی از ``await``، ``async for`` و ``async with`` در سطح بالا " +"فعال شود." #: ../../library/functions.rst:381 #, fuzzy @@ -1314,8 +1284,8 @@ msgid "" "Convert a single string or number to a complex number, or create a complex " "number from real and imaginary parts." msgstr "" -"تبدیل یک رشته یا عدد تنها به یک عدد \"complex\" و یا ایجاد یک عدد " -"\"complex\" از قسمت های حقیقی و موهومی." +"یک رشته یا عدد را به یک عدد مختلط تبدیل کنید، یا یک عدد مختلط از قسمت های " +"حقیقی و موهومی ایجاد کنید." #: ../../library/functions.rst:384 ../../library/functions.rst:752 #: ../../library/functions.rst:998 @@ -1343,7 +1313,7 @@ msgid "" ">>> complex(-1.23, 4.5)\n" "(-1.23+4.5j)" msgstr "" -"```>>> complex('+1.23')\n" +">>> complex('+1.23')\n" "(1.23+0j)\n" ">>> complex('-4.5j')\n" "-4.5j\n" @@ -1358,7 +1328,7 @@ msgstr "" ">>> complex(imag=-4.5)\n" "-4.5j\n" ">>> complex(-1.23, 4.5)\n" -"(-1.23+4.5j)```" +"(-1.23+4.5j)" #: ../../library/functions.rst:405 #, fuzzy @@ -1375,16 +1345,17 @@ msgid "" ":token:`~float:complexvalue` production rule in the following grammar, after" " parentheses and leading and trailing whitespace characters are removed:" msgstr "" -"اگر آرگومان یک رشته باشد، باید شامل یک قسمت حقیقی (به همان فرمتی که برای " -":func:`float` است) یا یک قسمت موهومی (به همان فرمت اما با یک پسوند ``'j'`` " -"یا ``'J'``) یا هر دو قسمت حقیقی و موهومی باشد (علامت قسمت موهومی در این مورد" -" الزامی است). رشته می تواند به طور اختیاری توسط فاصله و پرانتزهای گرد " -"``'('`` و ``')'`` احاطه شده باشد که این موارد نادیده گرفته می شوند. رشته " -"نباید شامل فاصله بین ``'+'``، ``'-'``، پسوند ``'j'`` یا ``'J'`` و عدد اعشاری" -" باشد. برای مثال، ``complex('1+2j')`` مشکلی ندارد، اما ``complex('1 + 2j')``" -" باعث بروز :exc:`ValueError` می شود. به طور دقیق تر، ورودی باید با قاعده " -"تولید :token:`~float:complexvalue` در دستور زبان زیر مطابقت داشته باشد، " -"البته پس از حذف پرانتزها و کاراکترهای فاصله در ابتدا و انتها:" +"اگر آرگومان یک رشته باشد، باید شامل یک بخش حقیقی (به همان فرمتی که برای " +":func:`float` استفاده می شود) یا یک بخش موهومی (با همان فرمت اما با پسوند " +"``'j'`` یا ``'J'``) باشد، یا هر دو بخش حقیقی و موهومی (در این حالت علامت بخش" +" موهومی ضروری است). رشته می تواند به طور اختیاری توسط فاصله های سفید و " +"پرانتزهای ``'('`` و ``')'`` محصور شود که نادیده گرفته می شوند. رشته نباید " +"شامل فاصله ی سفید بین ``'+'``، ``'-'``، پسوند ``'j'`` یا ``'J'`` و عدد " +"اعشاری باشد. به عنوان مثال، ``complex('1+2j')`` قابل قبول است، اما " +"``complex('1 + 2j')`` منجر به ایجاد :exc:`ValueError` می شود. به طور دقیق " +"تر، ورودی باید با قانون تولید :token:`~float:complexvalue` در دستور زبان زیر" +" مطابقت داشته باشد، پس از حذف پرانتزها و کاراکترهای فضای سفید در ابتدا و " +"انتها:" #: ../../library/functions.rst:424 #, fuzzy @@ -1396,12 +1367,11 @@ msgid "" ":meth:`~object.__float__`. If :meth:`!__float__` is not defined then it " "falls back to :meth:`~object.__index__`." msgstr "" -"اگر آرگومان یک عدد باشد، سازنده به عنوان یک تبدیل عددی مانند `:class:`int`` " -"و `:class:`float`` عمل می کند. برای یک شی عمومی پایتون ```x```، " -"```complex(x)``` وظیفه را به ```x.__complex__()``` واگذار می کند. اگر " -"`:meth:`~object.__complex__`` تعریف نشده باشد، به " -"`:meth:`~object.__float__`` برمی گردد. اگر `:meth:`!__float__`` تعریف نشده " -"باشد، به `:meth:`~object.__index__`` برمی گردد." +"اگر آرگومان یک عدد باشد، سازنده به عنوان یک تبدیل عددی عمل می کند مانند " +":class:`int` و :class:`float`. برای یک شی عمومی پایتون ``x``، ``complex(x)``" +" به ``x.__complex__()`` واگذار می کند. اگر :meth:`~object.__complex__` تعریف" +" نشده باشد، به :meth:`~object.__float__` بر می گردد. اگر :meth:`!__float__` " +"تعریف نشده باشد، به :meth:`~object.__index__` بر می گردد." #: ../../library/functions.rst:433 #, fuzzy @@ -1414,29 +1384,29 @@ msgid "" "imaginary component ``real.imag+imag.real``. If one of arguments is a real " "number, only its real component is used in the above expressions." msgstr "" -"اگر دو آرگومان ارائه شوند یا از آرگومان های کلمه کلیدی استفاده شود، هر " -"آرگومان می تواند از هر نوع عددی باشد (از جمله اعداد مختلط). اگر هر دو " -"آرگومان اعداد حقیقی باشند، یک عدد مختلط با جزء حقیقی *real* و جزء موهومی " -"*imag* برگردانده می شود. اگر هر دو آرگومان اعداد مختلط باشند، یک عدد مختلط " -"با جزء حقیقی ``real.real-imag.imag`` و جزء موهومی ``real.imag+imag.real`` " -"برگردانده می شود. اگر یکی از آرگومان ها عدد حقیقی باشد، تنها جزء حقیقی آن در" -" عبارات فوق استفاده می شود." +"اگر دو آرگومان ارائه شود یا از آرگومان های کلیدواژه ای استفاده شود، هر " +"آرگومان می تواند هر نوع عددی باشد (از جمله مختلط). اگر هر دو آرگومان اعداد " +"واقعی باشند، یک عدد مختلط با مؤلفه واقعی *real* و مؤلفه موهومی *imag* برمی " +"گردد. اگر هر دو آرگومان اعداد مختلط باشند، یک عدد مختلط با مؤلفه واقعی " +"``real.real-imag.imag`` و مؤلفه موهومی ``real.imag+imag.real`` برمی گردد. " +"اگر یکی از آرگومان ها یک عدد واقعی باشد، فقط مؤلفه واقعی آن در عبارات فوق " +"استفاده می شود." #: ../../library/functions.rst:443 #, fuzzy msgid "If all arguments are omitted, returns ``0j``." -msgstr "اگر همه آرگومان ها حذف شوند، ``0j`` را برمی گرداند." +msgstr "اگر همه آرگومان ها حذف شوند، ```0j``` را بازمی گرداند." #: ../../library/functions.rst:445 #, fuzzy msgid "The complex type is described in :ref:`typesnumeric`." -msgstr "نوع داده پیچیده در :ref:`typesnumeric` توضیح داده شده است." +msgstr "نوع عدد مختلط در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:447 ../../library/functions.rst:804 #: ../../library/functions.rst:1047 #, fuzzy msgid "Grouping digits with underscores as in code literals is allowed." -msgstr "گروه بندی ارقام با استفاده از زیرخط در داخل کدهای لiteral مجاز است." +msgstr "گروه بندی ارقام با استفاده از زیرخط ها در کدهای لیترال مجاز است." #: ../../library/functions.rst:450 #, fuzzy @@ -1444,8 +1414,8 @@ msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and " ":meth:`~object.__float__` are not defined." msgstr "" -"به :meth:`~object.__index__` برمی گردد اگر :meth:`~object.__complex__` و " -":meth:`~object.__float__` تعریف نشده باشند." +"در صورتی که :meth:`~object.__complex__` و :meth:`~object.__float__` تعریف " +"نشده باشند، به :meth:`~object.__index__` برمی گردد." #: ../../library/functions.rst:457 #, fuzzy @@ -1456,11 +1426,11 @@ msgid "" "example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. *name* " "need not be a Python identifier (see :func:`setattr`)." msgstr "" -"این یک نوع وابسته به :func:`setattr` است. آرگومان ها یک شی و یک رشته هستند. " -"رشته باید نام یکی از ویژگی های شی باشد. این تابع ویژگی نام گذاری شده را حذف " -"می کند، به شرطی که شی اجازه دهد. به عنوان مثال، ``delattr(x, 'foobar')`` " -"معادل ``del x.foobar`` است. *name* لازم نیست که یک شناسه در پایتون باشد (به " -":func:`setattr` مراجعه کنید)." +"این یک هم خانواده ی :func:`setattr` است. آرگومان ها یک شیء و یک رشته هستند. " +"رشته باید نام یکی از ویژگی های شیء باشد. این تابع ویژگی نام برده شده را حذف " +"می کند، به شرطی که شیء اجازه دهد. برای مثال، ``delattr(x, 'foobar')`` معادل " +"با ``del x.foobar`` است. *name* نیاز نیست که حتماً یک شناسه Python باشد " +"(نگاه کنید به :func:`setattr`)." #: ../../library/functions.rst:470 #, fuzzy @@ -1470,7 +1440,7 @@ msgid "" "class." msgstr "" "یک دیکشنری جدید ایجاد کنید. شیء :class:`dict` کلاس دیکشنری است. برای مستندات" -" درباره این کلاس به :class:`dict` و :ref:`typesmapping` مراجعه کنید." +" مربوط به این کلاس به :class:`dict` و :ref:`typesmapping` مراجعه کنید." #: ../../library/functions.rst:473 #, fuzzy @@ -1478,8 +1448,8 @@ msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and " ":class:`tuple` classes, as well as the :mod:`collections` module." msgstr "" -"برای سایر کانتینرها، به کلاس های داخلی `:class:`list``، `:class:`set`` و " -"`:class:`tuple`` و همچنین ماژول `:mod:`collections`` مراجعه کنید." +"برای دیگر کانتینرها به کلاس های :class:`list`، :class:`set` و :class:`tuple`" +" داخلی، همچنین به ماژول :mod:`collections` مراجعه کنید." #: ../../library/functions.rst:480 #, fuzzy @@ -1488,8 +1458,9 @@ msgid "" "With an argument, attempt to return a list of valid attributes for that " "object." msgstr "" -"بدون آرگومان، لیست نام ها در حوزه محلی فعلی را برمی گرداند. با یک آرگومان، " -"تلاش می کند تا لیستی از ویژگی های معتبر برای آن شیء را برگرداند." +"بدون آرگومان ها، لیست نام ها در حوزه محلی فعلی را بازگردانی کنید. با یک " +"آرگومان، تلاش کنید تا لیستی از ویژگی های معتبر برای آن شیء را بازگردانی " +"کنید." #: ../../library/functions.rst:483 #, fuzzy @@ -1500,11 +1471,11 @@ msgid "" ":func:`~object.__getattribute__` function to customize the way :func:`dir` " "reports their attributes." msgstr "" -"اگر شی ای دارای متدی به نام :meth:`~object.__dir__` باشد، این متد فراخوانی " -"شده و باید فهرستی از ویژگی ها را برگرداند. این امر به اشیایی که یک تابع " -"سفارشی :func:`~object.__getattr__` یا :func:`~object.__getattribute__` را " -"پیاده سازی می کنند اجازه می دهد تا نحوه گزارش دهی :func:`dir` در مورد ویژگی " -"های خود را سفارشی سازی کنند." +"اگر شیئی دارای روشی به نام :meth:`~object.__dir__` باشد، این روش فراخوانی می" +" شود و باید لیست ویژگی ها را برگرداند. این امر به اشیایی که تابع سفارشی " +":func:`~object.__getattr__` یا :func:`~object.__getattribute__` را پیاده " +"سازی کرده اند اجازه می دهد تا نحوه گزارش ویژگی هایشان توسط :func:`dir` را " +"سفارشی کنند." #: ../../library/functions.rst:490 #, fuzzy @@ -1515,10 +1486,10 @@ msgid "" "necessarily complete and may be inaccurate when the object has a custom " ":func:`~object.__getattr__`." msgstr "" -"اگر شیء :meth:`~object.__dir__` را ارائه ندهد، تابع تمام تلاش خود را می کند " -"تا اطلاعات را از خاصیت :attr:`~object.__dict__` شیء، در صورت تعریف شدن، و از" -" نوع شیء به دست آورد. لیست حاصل لزوماً کامل نیست و ممکن است زمانی که شیء " -"دارای :func:`~object.__getattr__` سفارشی باشد، نادرست باشد." +"اگر شیء :meth:`~object.__dir__` را فراهم نکند، تابع تلاش خود را می کند تا " +"اطلاعات را از صفت :attr:`~object.__dict__` شیء، در صورت تعریف شدن، و از شیء " +"نوع آن جمع آوری کند. لیست حاصل لزوماً کامل نیست و ممکن است وقتی شیء دارای یک" +" :func:`~object.__getattr__` سفارشی است نادرست باشد." #: ../../library/functions.rst:496 #, fuzzy @@ -1527,15 +1498,15 @@ msgid "" "of objects, as it attempts to produce the most relevant, rather than " "complete, information:" msgstr "" -"مکانیزم پیش فرض :func:`dir` با انواع مختلف اشیاء به شکل متفاوتی رفتار می " -"کند، چرا که سعی دارد اطلاعات مرتبط تر و نه لزوماً کامل، ارائه دهد:" +"مکانیزم پیش فرض :func:`dir` با انواع مختلف اشیاء به گونه ای متفاوت عمل می " +"کند، زیرا تلاش می کند اطلاعات مرتبط تر را به جای اطلاعات کامل ارائه دهد:" #: ../../library/functions.rst:500 #, fuzzy msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." -msgstr "اگر شیء یک شیء ماژول باشد، این لیست شامل نام های ویژگی های ماژول است." +msgstr "اگر شیء یک شیء ماژول باشد، فهرست شامل نام های ویژگی های ماژول است." #: ../../library/functions.rst:503 #, fuzzy @@ -1544,7 +1515,7 @@ msgid "" "attributes, and recursively of the attributes of its bases." msgstr "" "اگر شیء یک نوع یا شیء کلاس باشد، لیست شامل نام های ویژگی های آن و به صورت " -"بازگشتی نام ویژگی های مبناهای آن خواهد بود." +"بازگشتی، نام ویژگی های پایه های آن می باشد." #: ../../library/functions.rst:506 #, fuzzy @@ -1553,13 +1524,13 @@ msgid "" "its class's attributes, and recursively of the attributes of its class's " "base classes." msgstr "" -"در غیر این صورت، لیست شامل نام های ویژگی های شیء، نام های ویژگی های کلاس آن " -"و به صورت بازگشتی، ویژگی های کلاس های پایه آن کلاس است." +"در غیر این صورت، فهرست شامل نام های ویژگی های شیء، نام های ویژگی های کلاس " +"آن، و به صورت بازگشتی نام های ویژگی های کلاس های پایه ی کلاس آن است." #: ../../library/functions.rst:510 #, fuzzy msgid "The resulting list is sorted alphabetically. For example:" -msgstr "فهرست حاصله به صورت الفبایی مرتب شده است. به عنوان مثال:" +msgstr "فهرست حاصل به ترتیب حروف الفبا مرتب شده است. برای مثال:" #: ../../library/functions.rst:530 #, fuzzy @@ -1570,12 +1541,11 @@ msgid "" "its detailed behavior may change across releases. For example, metaclass " "attributes are not in the result list when the argument is a class." msgstr "" -"از آنجا که :func:`dir` در درجه اول به عنوان یک تسهیل برای استفاده در یک " -"پرامپت تعاملی ارائه شده است، تلاش می کند تا مجموعه ای جذاب از نام ها را " -"ارائه دهد بیشتر از اینکه تلاش کند مجموعه ای به طور دقیق یا به طور مداوم " -"تعریف شده از نام ها ارائه کند و رفتار دقیق آن ممکن است در نسخه های مختلف " -"تغییر کند. به عنوان مثال، زمانی که آرگومان یک کلاس است، ویژگی های متاکلاس در" -" لیست نتایج موجود نیستند." +"از آنجا که :func:`dir` به عنوان ابزاری برای استفاده در محیط تعاملی ارائه می " +"شود، تلاش می کند مجموعه ای جذاب از نام ها را بیشتر از تلاش برای ارائه مجموعه" +" ای دقیق یا یکسان از نام ها ارائه دهد و رفتار دقیق آن ممکن است در نسخه های " +"مختلف تغییر کند. به عنوان مثال، ویژگی های متاکلاس زمانی که آرگومان یک کلاس " +"است در لیست نتایج قرار نمی گیرند." #: ../../library/functions.rst:540 #, fuzzy @@ -1589,14 +1559,13 @@ msgid "" "% b`` is very close to *a*, if ``a % b`` is non-zero it has the same sign as" " *b*, and ``0 <= abs(a % b) < abs(b)``." msgstr "" -"دو عدد (غیر مختلط) را به عنوان آرگومان گرفته و یک جفت عدد شامل خارج قسمت و " -"باقی مانده آن ها را زمانی که تقسیم صحیح انجام می شود، بازمی گرداند. با انواع" -" عملوندهای مختلط، قوانین عملگرهای حسابی دودویی اعمال می شود. برای اعداد " -"صحیح، نتیجه همانند ``(a // b, a % b)`` است. برای اعداد اعشاری نتیجه ``(q, a " -"% b)`` است، که در آن *q* معمولاً ``math.floor(a / b)`` است اما ممکن است 1 " -"کمتر از آن باشد. در هر صورت ``q * b + a % b`` بسیار نزدیک به *a* است، اگر " -"``a % b`` غیرصفر باشد همان علامت *b* را دارد، و ``0 <= abs(a % b) < " -"abs(b)``." +"دو عدد (غیرمختلط) به عنوان آرگومان بگیرید و یک جفت عدد که شامل خارج قسمت و " +"باقی مانده آن ها هنگام استفاده از تقسیم عدد صحیح است، برگردانید. با انواع " +"عملوند مختلط، قوانین برای عملگرهای حسابی باینری اعمال می شود. برای اعداد " +"صحیح، نتیجه همان ``(a // b, a % b)`` است. برای اعداد اعشاری نتیجه ``(q, a % " +"b)`` است، جایی که *q* معمولاً ``math.floor(a / b)`` است اما ممکن است 1 کمتر " +"از آن باشد. در هر صورت ``q * b + a % b`` بسیار نزدیک به *a* است، اگر ``a % " +"b`` صفر نباشد دارای همان علامت *b* است، و ``0 <= abs(a % b) < abs(b)``." #: ../../library/functions.rst:552 #, fuzzy @@ -1607,11 +1576,11 @@ msgid "" ":func:`enumerate` returns a tuple containing a count (from *start* which " "defaults to 0) and the values obtained from iterating over *iterable*." msgstr "" -"یک شئ شمارنده برمی گرداند. *iterable* باید یک دنباله، یک :term:`iterator` یا" +"یک شیء شمارشی برمی گرداند. *iterable* باید یک توالی، یک :term:`iterator`، یا" " شیء دیگری باشد که از تکرار پشتیبانی کند. متد :meth:`~iterator.__next__` از " -"تکرارکننده ای که توسط :func:`enumerate` برگردانده می شود، یک تاپل شامل یک " -"شمارشگر (از *start* که پیش فرض آن 0 است) و مقادیری که از پیمایش روی " -"*iterable* به دست می آیند برمی گرداند." +"تکرارگر برگشتی توسط :func:`enumerate` یک تاپل شامل شمارش (از *start* که به " +"طور پیش فرض 0 است) و مقادیر به دست آمده از تکرار بر روی *iterable* برمی " +"گرداند." #: ../../library/functions.rst:564 #, fuzzy @@ -1633,9 +1602,7 @@ msgstr "" " for elem in iterable:\n" " yield n, elem\n" " n += 1\n" -"```\n" -"\n" -"تابع `enumerate` یک دنباله قابل تکرار را گرفته و در هر مرحله یک زوج شامل شماره ی اندیس و مقدار آن عنصر را بازمی گرداند. شماره اندیس از مقداری که به عنوان شروع داده شده (`start`) آغاز می شود و به ازای هر عنصر، یک به آن افزوده می گردد." +"```" #: ../../library/functions.rst:0 #, fuzzy @@ -1650,7 +1617,7 @@ msgstr "یک عبارت پایتون." #: ../../library/functions.rst:580 #, fuzzy msgid "The global namespace (default: ``None``)." -msgstr "فضای نام جهانی (پیش فرض: ``None``)." +msgstr "فضای نام سراسری (پیش فرض: ``None``)." #: ../../library/functions.rst:584 #, fuzzy @@ -1660,7 +1627,7 @@ msgstr "فضای نام محلی (پیش فرض: ``None``)." #: ../../library/functions.rst:0 #, fuzzy msgid "Returns" -msgstr "بازمی گرداند" +msgstr "بازگشت ها" #: ../../library/functions.rst:588 #, fuzzy @@ -1670,12 +1637,12 @@ msgstr "نتیجه ی عبارت ارزیابی شده." #: ../../library/functions.rst:0 #, fuzzy msgid "raises" -msgstr "بالا می برد" +msgstr "بلند می کند" #: ../../library/functions.rst:589 #, fuzzy msgid "Syntax errors are reported as exceptions." -msgstr "خطاهای نحوی به عنوان استثناء گزارش می شوند." +msgstr "خطاهای نحوی به صورت استثناء گزارش می شوند." #: ../../library/functions.rst:593 ../../library/functions.rst:654 #, fuzzy @@ -1683,8 +1650,8 @@ msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." msgstr "" -"این تابع کدهای دلخواه را اجرا می کند. فراخوانی آن با ورودی ارائه شده توسط " -"کاربر ممکن است منجر به آسیب پذیری های امنیتی شود." +"این تابع کد دلخواه را اجرا می کند. فراخوانی آن با ورودی ارائه شده توسط کاربر" +" ممکن است منجر به آسیب پذیری های امنیتی شود." #: ../../library/functions.rst:596 #, fuzzy @@ -1705,20 +1672,20 @@ msgid "" "environment if they are already referenced in the scope that is calling " ":func:`eval` (e.g. via a :keyword:`nonlocal` statement)." msgstr "" -"آرگومان *expression* به عنوان یک عبارت Python (به طور فنی، یک فهرست شرط) " -"استفاده از نگاشت های *globals* و *locals* به عنوان فضای نام های جهانی و محلی" -" تجزیه و ارزیابی می شود. اگر دیکشنری *globals* حاضر باشد و شامل مقداری برای " -"کلید ``__builtins__`` نباشد، قبل از پارس کردن *expression*، یک مرجع به " -"دیکشنری ماژول داخلی :mod:`builtins` زیر آن کلید وارد می شود. با این کار می " -"توانید با وارد کردن دیکشنری خودتان به ``__builtins__`` در *globals* قبل از " -"ارسال آن به :func:`eval`، کنترل کنید که چه چیزهای داخلی در کد اجرایی در " -"دسترس باشد. اگر نگاشت *locals* حذف شود، به طور پیش فرض به دیکشنری *globals* " -"می رود. اگر هر دو نگاشت ها حذف شوند، عبارت با *globals* و *locals* در محیطی " -"اجرا می شود که :func:`eval` صدا شده است. توجه داشته باشید که *eval()* فقط به" -" :term:`nested scopes ` (غیر محلی ها) در محیط احاطه کننده " -"دسترسی خواهد داشت اگر آن ها پیش تر در محدوده ای که در حال فراخوانی " -":func:`eval` است، ارجاع داده شده باشند (مثلاً از طریق یک دستور " -":keyword:`nonlocal`)." +"آرگومان *expression* به عنوان یک عبارت پایتون (از نظر فنی، یک لیست شرایط) با" +" استفاده از نگاشت های *globals* و *locals* به عنوان فضای نام های سراسری و " +"محلی تجزیه و ارزیابی می شود. اگر دیکشنری *globals* وجود داشته باشد و حاوی " +"مقداری برای کلید ``__builtins__`` نباشد، یک ارجاع به دیکشنری ماژول داخلی " +":mod:`builtins` تحت آن کلید قبل از تجزیه *expression* اضافه می شود. به این " +"ترتیب می توانید با افزودن دیکشنری ``__builtins__`` خود به *globals*، مشخص " +"کنید که چه توابع داخلی برای کد اجرایی در دسترس باشند، قبل از اینکه آن را به " +":func:`eval` منتقل کنید. اگر نگاشت *locals* حذف شود، به طور پیش فرض به " +"دیکشنری *globals* انتقال پیدا می کند. اگر هر دو نگاشت ها حذف شوند، عبارت با " +"استفاده از *globals* و *locals* در محیطی که :func:`eval` فراخوانی می شود، " +"اجرا می شود. توجه داشته باشید که *eval()* تنها به :term:`nested scopes " +"` (غیر محلی ها) در محیط احاطه کننده دسترسی خواهد داشت، اگر " +"قبلاً در حوزه ای که :func:`eval` را فراخوانی می کند، ارجاع شده باشند (مثلاً " +"از طریق یک دستور :keyword:`nonlocal`)." #: ../../library/functions.rst:612 #, fuzzy @@ -1733,10 +1700,11 @@ msgid "" " of a string. If the code object has been compiled with ``'exec'`` as the " "*mode* argument, :func:`eval`\\'s return value will be ``None``." msgstr "" -"این تابع می تواند برای اجرای اشیاء کد دلخواه (مانند آن هایی که توسط " -":func:`compile` ایجاد شده اند) نیز استفاده شود. در این حالت، به جای یک رشته،" -" یک شی کد را ارسال کنید. اگر شی کد با ``'exec'`` به عنوان آرگومان *mode* " -"کامپایل شده باشد، مقدار بازگشتی :func:`eval` برابر با ``None`` خواهد بود." +"این تابع همچنین می تواند برای اجرای اشیاء کد دلخواه (مانند آن هایی که توسط " +":func:`compile` ایجاد شده اند) مورد استفاده قرار گیرد. در این صورت، به جای " +"یک رشته، یک شیء کد را ارسال کنید. اگر شیء کد با ``'exec'`` به عنوان آرگومان " +"*mode* کامپایل شده باشد، مقدار بازگشتی :func:`eval` برابر با ``None`` خواهد " +"بود." #: ../../library/functions.rst:623 #, fuzzy @@ -1746,9 +1714,10 @@ msgid "" "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" -"نکته: اجرای پویا اظهارات توسط تابع :func:`exec` پشتیبانی می شود. توابع " -":func:`globals` و :func:`locals` به ترتیب دیکشنری جهانی و محلی جاری را برمی " -"گردانند که می تواند برای استفاده در :func:`eval` یا :func:`exec` مفید باشد." +"اشاره: اجرای پویا دستورات بوسیله تابع :func:`exec` پشتیبانی می شود. توابع " +":func:`globals` و :func:`locals` به ترتیب دیکشنری های سراسری و محلی جاری را " +"برمی گردانند که ممکن است برای استفاده توسط :func:`eval` یا :func:`exec` مفید" +" باشد." #: ../../library/functions.rst:628 #, fuzzy @@ -1756,8 +1725,8 @@ msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." msgstr "" -"اگر منبع داده شده یک رشته باشد، فاصله ها و تب های ابتدایی و انتهایی حذف می " -"شوند." +"اگر منبع داده شده یک رشته باشد، آنگاه فاصله ها و تب های ابتدایی و انتهایی " +"حذف می شوند." #: ../../library/functions.rst:631 #, fuzzy @@ -1765,8 +1734,8 @@ msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings" " with expressions containing only literals." msgstr "" -"برای مشاهده تابعی که می تواند رشته هایی با عبارات شامل تنها مقادیر استنتاج " -"پذیر را به طور ایمن ارزیابی کند، به :func:`ast.literal_eval` مراجعه کنید." +"برای مشاهده ی تابعی که می تواند به طور امن رشته هایی با عبارات فقط حاوی " +"مقادیر عددی را ارزیابی کند، به :func:`ast.literal_eval` مراجعه کنید." #: ../../library/functions.rst:634 ../../library/functions.rst:636 #: ../../library/functions.rst:696 ../../library/functions.rst:698 @@ -1775,14 +1744,14 @@ msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." msgstr "" -"یک :ref:`auditing event ` ``exec`` با شیء کد به عنوان آرگومان " +"یک :ref:`auditing event ` ``exec`` را با شیء کد به عنوان آرگومان " "ایجاد می کند. رویدادهای کامپایل کد نیز ممکن است ایجاد شوند." #: ../../library/functions.rst:641 ../../library/functions.rst:718 #, fuzzy msgid "The *globals* and *locals* arguments can now be passed as keywords." msgstr "" -"آرگومان های *globals* و *locals* اکنون می توانند به عنوان کلیدواژه ها ارسال " +"آرگومان های *globals* و *locals* اکنون می توانند به صورت کلیدواژه ها ارسال " "شوند." #: ../../library/functions.rst:645 ../../library/functions.rst:722 @@ -1791,8 +1760,8 @@ msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." msgstr "" -"معنای فضای نام پیش فرض *locals* به گونه ای که برای :func:`locals` توصیف شده،" -" تنظیم شده است." +"معنای فضای نام پیش فرض *locals* مطابق با توضیحات مربوط به ساختار داخلی " +":func:`locals` تنظیم شده است." #: ../../library/functions.rst:657 #, fuzzy @@ -1807,14 +1776,15 @@ msgid "" " not be used outside of function definitions even within the context of code" " passed to the :func:`exec` function. The return value is ``None``." msgstr "" -"این تابع از اجرای پویا کدهای پایتون پشتیبانی می کند. *source* باید یا یک " -"رشته یا یک شیء کد باشد. اگر رشته باشد، به عنوان یک مجموعه از دستورات پایتون " -"تحلیل می شود و سپس اجرا می شود (مگر این که خطای نحوی رخ دهد). [#]_ اگر شیء " -"کد باشد، به سادگی اجرا می شود. در تمام موارد، انتظار می رود کدی که اجرا می " -"شود معتبر برای ورود از فایل باشد (بخش :ref:`file-input` در راهنمای مرجع را " -"ببینید). آگاه باشید که دستورات :keyword:`nonlocal`، :keyword:`yield` و " -":keyword:`return` ممکن است خارج از تعاریف تابع استفاده نشوند، حتی در متن کدی" -" که به تابع :func:`exec` پاس داده می شود. مقدار بازگشتی ``None`` است." +"این تابع اجرا شدن پویا کدهای پایتون را پشتیبانی می کند. *source* باید یا یک " +"رشته یا یک شیء کد باشد. اگر یک رشته باشد، رشته به عنوان مجموعه ای از دستورات" +" پایتون تجزیه می شود و سپس اجرا می گردد (مگر اینکه خطای نحوی رخ دهد). [#]_ " +"اگر یک شیء کد باشد، به سادگی اجرا می شود. در همه موارد، کدی که اجرا می شود " +"انتظار می رود که به عنوان ورودی فایل معتبر باشد (به بخش :ref:`file-input` در" +" کتابچه راهنمای مرجع نگاه کنید). توجه داشته باشید که دستورات " +":keyword:`nonlocal`، :keyword:`yield`، و :keyword:`return` ممکن است خارج از " +"تعریف توابع حتی در زمینه کدی که به تابع :func:`exec` ارسال می شود، استفاده " +"نشوند. مقدار برگشتی ``None`` است." #: ../../library/functions.rst:668 #, fuzzy @@ -1827,12 +1797,12 @@ msgid "" " any mapping object. Remember that at the module level, globals and locals " "are the same dictionary." msgstr "" -"در هر حالتی، اگر بخش های اختیاری حذف شوند، کد در دامنه فعلی اجرا می شود. اگر" -" تنها *globals* ارائه شود، باید یک دیکشنری (و نه زیرکلاسی از دیکشنری) باشد " -"که برای هر دو متغیرهای سراسری و محلی استفاده خواهد شد. اگر *globals* و " -"*locals* داده شوند، به ترتیب برای متغیرهای سراسری و محلی استفاده می شوند. " -"اگر ارائه شود، *locals* می تواند هر شیء نگاشت باشد. به یاد داشته باشید که در" -" سطح ماژول، متغیرهای سراسری و محلی، یک دیکشنری یکسان هستند." +"در تمامی موارد، اگر بخش های اختیاری حذف شوند، کد در محدوده فعلی اجرا می شود." +" اگر تنها *globals* ارائه شود، باید یک دیکشنری باشد (و نه زیرکلاسی از " +"دیکشنری)، که برای هر دو متغیرهای جهانی و محلی استفاده خواهد شد. اگر " +"*globals* و *locals* داده شوند، به ترتیب برای متغیرهای جهانی و محلی استفاده " +"می شوند. اگر ارائه شود، *locals* می تواند هر شیء نگاشت باشد. به خاطر داشته " +"باشید که در سطح ماژول، متغیرهای جهانی و محلی همان دیکشنری هستند." #: ../../library/functions.rst:678 #, fuzzy @@ -1843,12 +1813,11 @@ msgid "" "access variables assigned at the top level (as the \"top level\" variables " "are treated as class variables in a class definition)." msgstr "" -"زمانی که ``exec`` دو شیء مجزا به عنوان *globals* و *locals* دریافت می کند، " -"کد اجرا خواهد شد به گونه ای که گویا درون تعریف یک کلاس جاسازی شده است. این " -"بدان معناست که توابع و کلاس هایی که در کد اجرا شده تعریف می شوند قادر به " -"دسترسی به متغیرهایی که در سطح بالا تخصیص داده شده اند نخواهند بود (زیرا " -"متغیرهای \"سطح بالا\" به عنوان متغیرهای کلاس در یک تعریف کلاس در نظر گرفته " -"می شوند)." +"زمانی که ``exec`` دو شیء مجزا به صورت *globals* و *locals* دریافت می کند، کد" +" به گونه ای اجرا می شود که انگار در تعریف یک کلاس جاسازی شده است. این بدان " +"معناست که توابع و کلاس های تعریف شده در کد اجرا شده نمی توانند به متغیرهایی " +"که در سطح بالا تعیین شده اند دسترسی داشته باشند (زیرا متغیرهای \"سطح بالا\" " +"به عنوان متغیرهای کلاس در یک تعریف کلاس در نظر گرفته می شوند)." #: ../../library/functions.rst:684 #, fuzzy @@ -1860,11 +1829,11 @@ msgid "" "``__builtins__`` dictionary into *globals* before passing it to " ":func:`exec`." msgstr "" -"اگر فرهنگ لغت *globals* حاوی مقداری برای کلید ``__builtins__`` نباشد، یک " -"مرجع به فرهنگ لغت ماژول داخلی :mod:`builtins` زیر آن کلید اضافه می شود. به " -"این ترتیب می توانید با وارد کردن فرهنگ لغت ``__builtins__`` خود به *globals*" -" قبل از ارسال آن به :func:`exec`، کنترل کنید که چه توابع داخلی برای کد " -"اجرایی در دسترس باشد." +"اگر فرهنگ لغت *globals* دارای مقداری برای کلید ``__builtins__`` نباشد، یک " +"ارجاع به فرهنگ لغت ماژول داخلی :mod:`builtins` تحت آن کلید وارد می شود. به " +"این ترتیب، شما می توانید با وارد کردن فرهنگ لغت ``__builtins__`` خودتان به " +"*globals* قبل از ارسال آن به :func:`exec`، کنترل کنید که چه توابع داخلی برای" +" کد اجرا شده در دسترس هستند." #: ../../library/functions.rst:690 #, fuzzy @@ -1874,10 +1843,10 @@ msgid "" "variables `. The length of the tuple must exactly match " "the length of the code object's :attr:`~codeobject.co_freevars` attribute." msgstr "" -"آرگومان *closure* یک closure را مشخص می کند--یک \"tuple\" از cellvars. این " +"آرگومان *closure* یک closure را مشخص می کند--یک tuple از cellvars. این مورد " "تنها زمانی معتبر است که *object* یک شیء کد حاوی :term:`free (closure) " -"variables ` باشد. طول این \"tuple\" باید دقیقاً مطابق با " -"طول ویژگی :attr:`~codeobject.co_freevars` شیء کد باشد." +"variables ` باشد. طول این tuple باید به طور دقیق با طول " +"ویژگی :attr:`~codeobject.co_freevars` شیء کد مطابقت داشته باشد." #: ../../library/functions.rst:703 #, fuzzy @@ -1886,9 +1855,9 @@ msgid "" " global and local namespace, respectively, which may be useful to pass " "around for use as the second and third argument to :func:`exec`." msgstr "" -"توابع داخلی :func:`globals` و :func:`locals` به ترتیب فضای نام سراسری و محلی" -" فعلی را بازمی گردانند که ممکن است برای استفاده به عنوان آرگومان دوم و سوم " -"به :func:`exec` مفید باشند." +"توابع داخلی :func:`globals` و :func:`locals` به ترتیب محیط های نامگذاری " +"سراسری و محلی کنونی را برمی گردانند که ممکن است برای استفاده به عنوان " +"آرگومان دوم و سوم به :func:`exec` مفید باشند." #: ../../library/functions.rst:709 #, fuzzy @@ -1897,10 +1866,9 @@ msgid "" "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" -"عملکرد پیش فرض *locals* به همان صورت که برای تابع :func:`locals` در زیر " -"توضیح داده شده است، عمل می کند. اگر نیاز دارید که اثرات کد بر روی *locals* " -"را پس از بازگشت تابع :func:`exec` مشاهده کنید، یک دیکشنری *locals* صریح را " -"ارسال کنید." +"پیش فرض *locals* همانطور که در تابع :func:`locals` در زیر توضیح داده شده است" +" عمل می کند. اگر نیاز دارید اثرات کد بر روی *locals* پس از بازگشت تابع " +":func:`exec` را ببینید، یک دیکشنری *locals* به طور صریح ارسال کنید." #: ../../library/functions.rst:713 #, fuzzy @@ -1915,10 +1883,11 @@ msgid "" "iteration, or an iterator. If *function* is ``None``, the identity function" " is assumed, that is, all elements of *iterable* that are false are removed." msgstr "" -"از آن عناصر *iterable* که *function* برایشان صحیح است، یک «iterator» بسازید." -" *iterable* می تواند یک دنباله، یک محفظه که از «iteration» پشتیبانی می کند، " -"یا یک «iterator» باشد. اگر *function* برابر با ``None`` باشد، تابع هویت در " -"نظر گرفته می شود، یعنی تمام عناصر *iterable* که نادرست هستند حذف می شوند." +"یک iterator از آن عناصری از *iterable* بسازید که *function* برای آن ها صحیح " +"باشد. *iterable* می تواند یک دنباله، یک مخزن که از iteration پشتیبانی می " +"کند، یا یک iterator باشد. اگر *function* برابر با ``None`` باشد، فرض می شود " +"که تابع هویت است، یعنی همه ی عناصری از *iterable* که نادرست هستند حذف می " +"شوند." #: ../../library/functions.rst:734 #, fuzzy @@ -1928,10 +1897,9 @@ msgid "" "not ``None`` and ``(item for item in iterable if item)`` if function is " "``None``." msgstr "" -"توجه داشته باشید که ``filter(function, iterable)`` معادل عبارت مولدی ``(item" -" for item in iterable if function(item))`` است اگر function برابر با " -"``None`` نباشد و ``(item for item in iterable if item)`` است اگر function " -"برابر با ``None`` باشد." +"توجه داشته باشید که ``filter(function, iterable)`` معادل عبارت تولیدکننده ی " +"``(item for item in iterable if function(item))`` است اگر تابع ``None`` " +"نباشد و ``(item for item in iterable if item)`` اگر تابع ``None`` باشد." #: ../../library/functions.rst:739 #, fuzzy @@ -1939,14 +1907,13 @@ msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." msgstr "" -"به :func:`itertools.filterfalse` مراجعه کنید برای تابع مکملی که عناصری از " -"*iterable* را بازمی گرداند که برای آنها *function* نادرست است." +"به :func:`itertools.filterfalse` مراجعه کنید برای تابع مکمل که عناصری از " +"*iterable* را برمی گرداند که *function* برای آن ها نادرست است." #: ../../library/functions.rst:750 #, fuzzy msgid "Return a floating-point number constructed from a number or a string." -msgstr "" -"یک عدد اعشاری برگشت داده می شود که از یک عدد یا یک رشته ساخته شده است." +msgstr "یک عدد اعشاری که از یک عدد یا یک رشته ساخته شده باشد را برمی گرداند." #: ../../library/functions.rst:754 #, fuzzy @@ -1962,7 +1929,6 @@ msgid "" ">>> float('-Infinity')\n" "-inf" msgstr "" -"```python\n" ">>> float('+1.23')\n" "1.23\n" ">>> float(' -12345\\n')\n" @@ -1972,8 +1938,7 @@ msgstr "" ">>> float('+1E6')\n" "1000000.0\n" ">>> float('-Infinity')\n" -"-inf\n" -"```" +"-inf" #: ../../library/functions.rst:767 #, fuzzy @@ -1986,13 +1951,13 @@ msgid "" "conform to the :token:`~float:floatvalue` production rule in the following " "grammar, after leading and trailing whitespace characters are removed:" msgstr "" -"اگر آرگومان یک رشته باشد، باید حاوی یک عدد اعشاری بوده و به صورت اختیاری می " -"تواند با یک علامت شروع شود و یا در فضای خالی جاسازی شده باشد. علامت اختیاری " -"می تواند ``'+'`` یا ``'-'`` باشد؛ علامت ``'+'`` هیچ تأثیری بر روی مقدار " -"تولید شده نخواهد داشت. آرگومان ممکن است همچنین یک رشته ای باشد که نشان دهنده" -" NaN (نه یک عدد)، یا بی نهایت مثبت یا منفی باشد. به طور دقیق تر، ورودی باید " -"با قانون تولید :token:`~float:floatvalue` در دستور زبان زیر مطابقت داشته " -"باشد، پس از حذف کاراکترهای فاصله ی اضافی از ابتدا و انتهای آن:" +"اگر آرگومان یک رشته باشد، باید شامل یک عدد اعشاری باشد که به صورت اختیاری با" +" یک علامت شروع شده و به صورت اختیاری در فضاهای خالی قرار گیرد. علامت اختیاری" +" ممکن است ``'+'`` یا ``'-'`` باشد؛ یک علامت ``'+'`` تأثیری بر مقدار تولید " +"شده ندارد. آرگومان ممکن است همچنین یک رشته باشد که نمایانگر یک NaN (عدد غیر " +"عددی) یا بی نهایت مثبت یا منفی است. به طور دقیق تر، ورودی باید مطابق با " +"قانون تولید :token:`~float:floatvalue` در دستور زبان زیر باشد، پس از اینکه " +"کاراکترهای فضای خالی از ابتدای و انتهای آن برداشته شده است:" #: ../../library/functions.rst:788 #, fuzzy @@ -2000,8 +1965,8 @@ msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." msgstr "" -"حروف بزرگ و کوچک مهم نیستند، بنابراین به عنوان مثال، \"inf\"، \"Inf\"، " -"\"INFINITY\"، و \"iNfINity\" همگی تلفظ های قابل قبول برای بی نهایت مثبت " +"مورد حروف بزرگ و کوچک اهمیتی ندارد، بنابراین به عنوان مثال، \"inf\"، " +"\"Inf\"، \"INFINITY\" و \"iNfINity\" همگی اشکال قابل قبول برای بینهایت مثبت " "هستند." #: ../../library/functions.rst:791 @@ -2013,9 +1978,9 @@ msgid "" "float, an :exc:`OverflowError` will be raised." msgstr "" "در غیر این صورت، اگر آرگومان یک عدد صحیح یا یک عدد اعشاری باشد، یک عدد " -"اعشاری با همان مقدار (در حد دقت اعداد اعشاری پایتون) بازگردانده می شود. اگر " -"آرگومان خارج از محدوده یک عدد اعشاری در پایتون باشد، یک :exc:`OverflowError`" -" ایجاد خواهد شد." +"اعشاری با همان مقدار (در محدوده دقت اعشاری پایتون) بازگردانده می شود. اگر " +"آرگومان خارج از محدوده یک عدد اعشاری پایتون باشد، یک :exc:`OverflowError` " +"ایجاد خواهد شد." #: ../../library/functions.rst:796 #, fuzzy @@ -2024,8 +1989,8 @@ msgid "" "``x.__float__()``. If :meth:`~object.__float__` is not defined then it " "falls back to :meth:`~object.__index__`." msgstr "" -"برای یک شی عمومی پایتون ``x``، ``float(x)`` به ``x.__float__()`` واگذار می " -"شود. اگر :meth:`~object.__float__` تعریف نشده باشد، به " +"برای یک شیء عمومی پایتون ``x``، ``float(x)`` به ``x.__float__()`` واگذار می " +"شود. اگر :meth:`~object.__float__` تعریف نشده باشد، سپس به " ":meth:`~object.__index__` بازمی گردد." #: ../../library/functions.rst:800 @@ -2036,7 +2001,7 @@ msgstr "اگر هیچ آرگومانی داده نشود، ``0.0`` برگردا #: ../../library/functions.rst:802 #, fuzzy msgid "The float type is described in :ref:`typesnumeric`." -msgstr "نوع `float` در :ref:`typesnumeric` توصیف شده است." +msgstr "نوع float در :ref:`typesnumeric` توصیف شده است." #: ../../library/functions.rst:810 #, fuzzy @@ -2044,8 +2009,8 @@ msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." msgstr "" -"در صورتی که ``:meth:`~object.__float__``` تعریف نشده باشد، به " -"``:meth:`~object.__index__``` برمی گردد." +"اگر :meth:`~object.__float__` تعریف نشده باشد، به :meth:`~object.__index__` " +"بازمی گردد." #: ../../library/functions.rst:820 #, fuzzy @@ -2055,10 +2020,10 @@ msgid "" "of the *value* argument; however, there is a standard formatting syntax that" " is used by most built-in types: :ref:`formatspec`." msgstr "" -"تبدیل *value* به یک نمایش \"قالب بندی شده\"، به گونه ای که توسط " -"*format_spec* کنترل می شود. تفسیر *format_spec* بستگی به نوع آرگومان *value*" -" دارد؛ با این حال، یک نحو قالب بندی استاندارد وجود دارد که توسط اکثر انواع " -"داخلی استفاده می شود: :ref:`formatspec`." +"تبدیل *value* به نمایشی \"قالب بندی شده\" که توسط *format_spec* کنترل می " +"شود. تفسیر *format_spec* به نوع آرگومان *value* بستگی دارد؛ با این حال، یک " +"دستور زبان قالب بندی استاندارد وجود دارد که توسط اکثر انواع داخلی استفاده می" +" شود: :ref:`formatspec`." #: ../../library/functions.rst:825 #, fuzzy @@ -2066,8 +2031,8 @@ msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." msgstr "" -"پیش فرض *format_spec* یک رشته خالی است که معمولاً همان اثری را دارد که صدا " -"زدن :func:`str(value) ` دارد." +"پیش فرض *format_spec* یک رشته خالی است که معمولاً همان تأثیر فراخوانی " +":func:`str(value) ` را دارد." #: ../../library/functions.rst:828 #, fuzzy @@ -2079,12 +2044,12 @@ msgid "" ":mod:`object` and the *format_spec* is non-empty, or if either the " "*format_spec* or the return value are not strings." msgstr "" -"هنگام فراخوانی ``format(value, format_spec)``، به " -"``type(value).__format__(value, format_spec)`` ترجمه می شود که هنگام جستجو " -"برای متد :meth:`~object.__format__` مقدار، از دیکشنری نمونه عبور می کند. اگر" -" جستجوی متد به :mod:`object` برسد و *format_spec* غیرخالی باشد، یا اگر " -"*format_spec* یا مقدار بازگشتی رشته نباشند، یک استثنای :exc:`TypeError` " -"ایجاد می شود." +"زمانی که ``format(value, format_spec)`` فراخوانی می شود، به " +"``type(value).__format__(value, format_spec)`` ترجمه می شود که هنگام جستجوی " +"روش :meth:`~object.__format__` مقدار، دیکشنری نمونه را دور می زند. یک " +"استثنای :exc:`TypeError` اگر جستجوی روش به :mod:`object` برسد و " +"*format_spec* غیرخالی باشد، یا اگر هر یک از *format_spec* یا مقدار بازگشتی " +"رشته نباشند، داده می شود." #: ../../library/functions.rst:835 #, fuzzy @@ -2092,8 +2057,8 @@ msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." msgstr "" -"اگر *format_spec* یک رشته خالی نباشد، ``object().__format__(format_spec)`` " -"یک :exc:`TypeError` ایجاد می کند." +"``object().__format__(format_spec)`` خطای :exc:`TypeError` را رخ می دهد اگر " +"*format_spec* یک رشته خالی نباشد." #: ../../library/functions.rst:844 #, fuzzy @@ -2102,8 +2067,8 @@ msgid "" "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and " ":ref:`types-set` for documentation about this class." msgstr "" -"یک شیء جدید از نوع :class:`frozenset` برگردانید، به صورت اختیاری با عناصری " -"که از *iterable* گرفته شده اند. ``frozenset`` یک کلاس داخلی است. برای " +"یک شیء جدید از نوع :class:`frozenset` بازگردانید که به صورت اختیاری می تواند" +" شامل عناصری از *iterable* باشد. ``frozenset`` یک کلاس داخلی است. برای " "مستندات مربوط به این کلاس به :class:`frozenset` و :ref:`types-set` مراجعه " "کنید." @@ -2114,9 +2079,9 @@ msgid "" ":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" " module." msgstr "" -"برای سایر کانتینرها به کلاس های داخلی `:class:`set``، `:class:`list``، " -"`:class:`tuple`` و `:class:`dict`` و همچنین ماژول `:mod:`collections`` " -"مراجعه کنید." +"برای دیگر ظروف، به کلاس های داخلی :class:`set`، :class:`list`، " +":class:`tuple`، و :class:`dict`، همچنین به ماژول :mod:`collections` مراجعه " +"کنید." #: ../../library/functions.rst:856 #, fuzzy @@ -2128,12 +2093,12 @@ msgid "" "exist, *default* is returned if provided, otherwise :exc:`AttributeError` is" " raised. *name* need not be a Python identifier (see :func:`setattr`)." msgstr "" -"مقدار ویژگی (attribute) نام گذاری شده ی *object* را بازمی گرداند. *name* " -"باید یک رشته باشد. اگر رشته، نام یکی از ویژگی های شیء باشد، نتیجه مقدار آن " -"ویژگی خواهد بود. برای مثال، ``getattr(x, 'foobar')`` معادل ``x.foobar`` است." -" اگر ویژگی نام گذاری شده وجود نداشته باشد، در صورت فراهم بودن، *default* " -"بازگردانده می شود، در غیر این صورت :exc:`AttributeError` ایجاد می شود. " -"*name* نیازی نیست که یک شناسه ی پایتون باشد (نگاه کنید به :func:`setattr`)." +"مقدار ویژگی نام گذاری شده *object* را برمی گرداند. *name* باید یک رشته باشد." +" اگر این رشته نام یکی از ویژگی های شیء باشد، نتیجه مقدار آن ویژگی است. به " +"عنوان مثال، ``getattr(x, 'foobar')`` معادل ``x.foobar`` است. اگر ویژگی نام " +"گذاری شده وجود نداشته باشد، *default* در صورت فراهم بودن برگردانده می شود، " +"در غیر این صورت :exc:`AttributeError` تولید می شود. نیازی نیست که *name* یک " +"شناسه پایتون باشد (به :func:`setattr` مراجعه کنید)." #: ../../library/functions.rst:865 #, fuzzy @@ -2144,9 +2109,8 @@ msgid "" ":func:`getattr`." msgstr "" "از آنجا که :ref:`private name mangling ` در زمان " -"کامپایل شدن رخ می دهد، برای بازیابی یک ویژگی خصوصی (ویژگی هایی با دو زیرخط " -"ابتدایی) با استفاده از :func:`getattr`، باید به صورت دستی نام آن ویژگی را " -"تغییر دهید." +"کامپایل رخ می دهد، باید به صورت دستی نام یک ویژگی خصوصی (ویژگی هایی با دو " +"زیرخط ابتدایی) را به منظور بازیابی آن با :func:`getattr` تغییر پیشوند دهید." #: ../../library/functions.rst:873 #, fuzzy @@ -2155,9 +2119,9 @@ msgid "" "within functions, this is set when the function is defined and remains the " "same regardless of where the function is called." msgstr "" -"دایره المعارف ماژول فعلی که اجرا می شود را برگردانید. برای کدهای داخل توابع،" -" این دایره المعارف در زمانی که تابع تعریف می شود تنظیم می شود و مستقل از " -"جایی که تابع فراخوانی می شود ثابت باقی می ماند." +"دایره المعارف (دیکشنری) که فضای نام ماژول جاری را پیاده سازی می کند، برمی " +"گرداند. برای کدهای درون توابع، این دیکشنری زمانی که تابع تعریف می شود تعیین " +"می شود و بدون توجه به محل فراخوانی تابع، به همان صورت باقی می ماند." #: ../../library/functions.rst:880 #, fuzzy @@ -2167,10 +2131,10 @@ msgid "" "(This is implemented by calling ``getattr(object, name)`` and seeing whether" " it raises an :exc:`AttributeError` or not.)" msgstr "" -"آرگومان ها شامل یک شیء و یک رشته هستند. نتیجه ``True`` است اگر رشته، نام یکی" -" از ویژگی های شیء باشد، و ``False`` اگر نباشد. (این از طریق فراخوانی " -"``getattr(object, name)`` پیاده سازی می شود و اینکه آیا یک " -":exc:`AttributeError` تولید می کند یا نه بررسی می شود.)" +"آرگومان ها شامل یک آبجکت و یک رشته هستند. نتیجه ``True`` خواهد بود اگر رشته " +"نام یکی از ویژگی های آبجکت باشد، و ``False`` اگر نباشد. (این با فراخوانی " +"``getattr(object, name)`` و بررسی اینکه آیا :exc:`AttributeError` ایجاد می " +"شود یا نه پیاده سازی شده است.)" #: ../../library/functions.rst:888 #, fuzzy @@ -2180,10 +2144,10 @@ msgid "" "dictionary lookup. Numeric values that compare equal have the same hash " "value (even if they are of different types, as is the case for 1 and 1.0)." msgstr "" -"مقدار هش شیء را برمی گرداند (اگر شیء دارای مقدار هش باشد). مقادیر هش به صورت" -" اعداد صحیح هستند. آنها برای مقایسه سریع کلیدهای دیکشنری در هنگام جستجوی " -"دیکشنری استفاده می شوند. مقادیر عددی که برابر مقایسه می شوند، دارای مقدار هش" -" یکسان هستند (حتی اگر از نوع های مختلفی باشند، مانند 1 و 1.0)." +"مقدار هش آبجکت را برمی گرداند (اگر داشته باشد). مقادیر هش اعداد صحیح هستند. " +"آن ها برای مقایسه سریع کلیدهای دیکشنری در زمان جستجوی دیکشنری استفاده می " +"شوند. مقادیر عددی که برابر مقایسه می شوند، مقدار هش یکسانی دارند (حتی اگر از" +" نوع های مختلفی باشند، مانند 1 و 1.0)." #: ../../library/functions.rst:895 #, fuzzy @@ -2192,9 +2156,9 @@ msgid "" ":func:`hash` truncates the return value based on the bit width of the host " "machine." msgstr "" -"برای آبجکت هایی که دارای متدهای سفارشی :meth:`~object.__hash__` هستند، توجه " -"داشته باشید که :func:`hash` مقدار بازگشتی را بر اساس عرض بیت ماشین میزبان " -"کاهش می دهد." +"برای اشیائی که دارای متدهای :meth:`~object.__hash__` سفارشی هستند، توجه کنید" +" که :func:`hash` مقدار بازگشتی را بر اساس پهنای بیتی ماشین میزبان کوتاه می " +"کند." #: ../../library/functions.rst:902 #, fuzzy @@ -2207,12 +2171,12 @@ msgid "" "argument is any other kind of object, a help page on the object is " "generated." msgstr "" -"سیستم راهنمای داخلی را اجرا کنید. (این تابع برای استفاده تعاملی طراحی شده " -"است.) اگر هیچ آرگومانی داده نشود، سیستم راهنمای تعاملی در کنسول مفسر شروع به" -" کار می کند. اگر آرگومان یک رشته باشد، این رشته به عنوان نام یک ماژول، تابع،" -" کلاس، متد، کلمه کلیدی یا موضوع اسناد جستجو می شود و یک صفحه راهنما در کنسول" -" چاپ می شود. اگر آرگومان هر نوع شیء دیگری باشد، یک صفحه راهنما در مورد آن " -"شیء تولید می شود." +"سامانه راهنمای داخلی را فراخوانی کنید. (این تابع برای استفاده تعاملی در نظر " +"گرفته شده است.) اگر هیچ آرگومانی داده نشود، سامانه راهنمای تعاملی بر روی " +"کنسول مفسر آغاز می شود. اگر آرگومان یک رشته باشد، آن رشته به عنوان نام یک " +"ماژول، تابع، کلاس، متد، کلمه کلیدی یا موضوع مستندات جستجو می شود و یک صفحه " +"راهنما بر روی کنسول چاپ می شود. اگر آرگومان هر نوع شیء دیگری باشد، صفحه " +"راهنمایی در مورد آن شیء ایجاد می شود." #: ../../library/functions.rst:909 #, fuzzy @@ -2222,10 +2186,10 @@ msgid "" "positional-only. For more info, see :ref:`the FAQ entry on positional-only " "parameters `." msgstr "" -"توجه داشته باشید که اگر هنگام فراخوانی :func:`help` در فهرست پارامترهای یک " -"تابع، یک خط مورب (/) ظاهر شود، به این معناست که پارامترهای قبل از خط مورب " -"تنها به صورت مکانی هستند. برای اطلاعات بیشتر، به :ref:`the FAQ entry on " -"positional-only parameters ` مراجعه کنید." +"توجه داشته باشید که اگر یک اسلش (/) در لیست پارامترهای یک تابع زمانی که " +"`:func:`help`` فراخوانی می شود ظاهر شود، به این معنی است که پارامترهای قبل " +"از اسلش تنها موقعیتی هستند. برای اطلاعات بیشتر، `:ref:`the FAQ entry on " +"positional-only parameters `` را ببینید." #: ../../library/functions.rst:914 #, fuzzy @@ -2239,8 +2203,8 @@ msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures" " for callables are now more comprehensive and consistent." msgstr "" -"تغییرات در :mod:`pydoc` و :mod:`inspect` به این معنا است که امضاهای گزارش " -"شده برای قابل فراخوانی ها اکنون جامع تر و سازگارتر هستند." +"تغییرات در :mod:`pydoc` و :mod:`inspect` به این معناست که امضاهای گزارش شده " +"برای callableها اکنون جامع تر و سازگارتر هستند." #: ../../library/functions.rst:923 #, fuzzy @@ -2249,10 +2213,9 @@ msgid "" "\"0x\". If *x* is not a Python :class:`int` object, it has to define an " ":meth:`~object.__index__` method that returns an integer. Some examples:" msgstr "" -"یک عدد صحیح را به یک رشته شانزده شانزدهی با حروف کوچک تبدیل کنید که با " -"\"0x\" پیشوند دارد. اگر *x* یک شیء پایتون :class:`int` نباشد، باید متد " -":meth:`~object.__index__` ای را تعریف کند که یک عدد صحیح بازگرداند. برخی " -"مثال ها:" +"یک عدد صحیح را به یک رشته ی شانزده شان عددی کوچک که با \"0x\" پیشوند دارد، " +"تبدیل کنید. اگر *x* یک شیء Python :class:`int` نیست، باید یک متد " +":meth:`~object.__index__` تعریف کند که یک عدد صحیح برگرداند. چند مثال:" #: ../../library/functions.rst:932 #, fuzzy @@ -2261,9 +2224,8 @@ msgid "" "hexadecimal string with prefix or not, you can use either of the following " "ways:" msgstr "" -"اگر می خواهید یک عدد صحیح را به یک رشته شانزده شانزدهی بزرگ یا کوچک با " -"پیشوند یا بدون پیشوند تبدیل کنید، می توانید از هر یک از روش های زیر استفاده " -"کنید:" +"اگر می خواهید یک عدد صحیح را به رشته ی هگزادسیمال بزرگ یا کوچک با پیشوند یا " +"بدون آن تبدیل کنید، می توانید از یکی از روش های زیر استفاده کنید:" #: ../../library/functions.rst:944 #, fuzzy @@ -2271,8 +2233,8 @@ msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using" " a base of 16." msgstr "" -"همچنین به :func:`int` برای تبدیل یک رشته هگزادسیمال به یک عدد صحیح با " -"استفاده از مبنای 16 مراجعه کنید." +"همچنین به :func:`int` مراجعه کنید برای تبدیل یک رشته هگزادسیمال به عدد صحیح " +"با استفاده از مبنای 16." #: ../../library/functions.rst:949 #, fuzzy @@ -2280,8 +2242,8 @@ msgid "" "To obtain a hexadecimal string representation for a float, use the " ":meth:`float.hex` method." msgstr "" -"برای به دست آوردن نمایشی به صورت رشته شانزده شانزده برای یک عدد اعشاری، از " -"روش :meth:`float.hex` استفاده کنید." +"برای به دست آوردن نمایش رشته ای هگزادسیمال برای یک عدد اعشاری، از متد " +":meth:`float.hex` استفاده کنید." #: ../../library/functions.rst:955 #, fuzzy @@ -2291,9 +2253,9 @@ msgid "" "Two objects with non-overlapping lifetimes may have the same :func:`id` " "value." msgstr "" -"شناسهٔ یک شیء را برمی گرداند. این شناسه یک عدد صحیح است که تضمین می شود طی " -"عمر آن شیء یکتا و ثابت باقی بماند. دو شیء که دورهٔ عمرشان با هم تداخل نداشته" -" باشد ممکن است دارای مقدار :func:`id` یکسانی باشند." +"بازگرداندن \"شناسه\" یک شیء. این یک عدد صحیح است که تضمین می شود منحصر به " +"فرد و ثابت برای این شیء در طول عمر آن باشد. دو شیء با دوره های حیات غیر هم " +"پوشان ممکن است همان مقدار :func:`id` را داشته باشند." #: ../../library/functions.rst:960 #, fuzzy @@ -2306,8 +2268,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." msgstr "" -"یک خطای :ref:`auditing event ` ``builtins.id`` با آرگومان ``id`` " -"ایجاد می کند." +"یک :ref:`auditing event ` ``builtins.id`` با آرگومان ``id`` ایجاد " +"می کند." #: ../../library/functions.rst:968 #, fuzzy @@ -2317,10 +2279,10 @@ msgid "" "converts it to a string (stripping a trailing newline), and returns that. " "When EOF is read, :exc:`EOFError` is raised. Example::" msgstr "" -"اگر آرگومان *prompt* وجود داشته باشد، بدون افزودن یک خط جدید به خروجی " -"استاندارد نوشته می شود. سپس این تابع یک خط از ورودی می خواند، آن را به یک " -"رشته تبدیل می کند (و خط جدید انتهایی را حذف می کند)، و آن را بازمی گرداند. " -"هنگامی که EOF خوانده می شود، :exc:`EOFError` برانگیخته می شود. مثال::" +"اگر آرگومان *prompt* وجود داشته باشد، بدون یک خط جدید انتهایی به خروجی " +"استاندارد نوشته می شود. سپس تابع یک خط از ورودی را خوانده، آن را به یک رشته " +"تبدیل می کند (حذف یک خط جدید انتهایی) و آن را بازمی گرداند. زمانی که EOF " +"خوانده می شود، :exc:`EOFError` برانگیخته می شود. مثال::" #: ../../library/functions.rst:973 #, fuzzy @@ -2331,7 +2293,7 @@ msgid "" "\"Monty Python's Flying Circus\"" msgstr "" ">>> s = input('--> ')\n" -"--> مونتی پایتانز فلاینگ سرکوس\n" +"--> مونتی پایتونز فلاینگ سیرک\n" ">>> s\n" "\"Monty Python's Flying Circus\"" @@ -2341,8 +2303,8 @@ msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." msgstr "" -"اگر ماژول :mod:`readline` بارگذاری شده باشد، :func:`input` از آن برای ارائه " -"ویژگی های ویرایش خطی پیشرفته و تاریخچه بهره خواهد برد." +"اگر ماژول :mod:`readline` بارگذاری شده باشد، سپس :func:`input` از آن برای " +"ارائه ویژگی های ویرایش خط و تاریخچه پیشرفته استفاده خواهد کرد." #: ../../library/functions.rst:981 ../../library/functions.rst:983 #, fuzzy @@ -2350,8 +2312,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" msgstr "" -"قبل از خواندن ورودی، یک :ref:`auditing event ` ``builtins.input`` " -"با آرگومان ``prompt`` ایجاد می کند." +"قبل از اینکه ورودی خوانده شود، یک :ref:`auditing event ` " +"``builtins.input`` با آرگومان ``prompt`` ایجاد می کند." #: ../../library/functions.rst:986 ../../library/functions.rst:988 #, fuzzy @@ -2360,7 +2322,7 @@ msgid "" "the result after successfully reading input." msgstr "" "پس از موفقیت در خواندن ورودی، یک :ref:`auditing event ` " -"``builtins.input/result`` با نتیجه برمی گرداند." +"``builtins.input/result`` با نتیجه ایجاد می کند." #: ../../library/functions.rst:995 #, fuzzy @@ -2368,8 +2330,8 @@ msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." msgstr "" -"یک شیء عدد صحیح برگردانده شده از یک عدد یا یک رشته را برگردانید، یا اگر هیچ " -"آرگومانی داده نشده باشد، \"``0``\" را برگردانید." +"یک شیء عدد صحیح را که از یک شماره یا یک رشته ساخته شده است، برمی گرداند، یا " +"اگر هیچ آرگومان داده نشود، ``0`` را برمی گرداند." #: ../../library/functions.rst:1000 #, fuzzy @@ -2387,7 +2349,7 @@ msgid "" ">>> int('01110011', base=2)\n" "115" msgstr "" -"```>>> int(123.45)\n" +">>> int(123.45)\n" "123\n" ">>> int('123')\n" "123\n" @@ -2398,7 +2360,7 @@ msgstr "" ">>> int('0xface', 0)\n" "64206\n" ">>> int('01110011', base=2)\n" -"115```" +"115" #: ../../library/functions.rst:1015 #, fuzzy @@ -2409,10 +2371,10 @@ msgid "" ":meth:`~object.__trunc__`, it returns ``x.__trunc__()``. For floating-point " "numbers, this truncates towards zero." msgstr "" -"اگر آرگومان `:meth:`~object.__int__`` را تعریف کند، ```int(x)``` مقدار " -"```x.__int__()``` را برمی گرداند. اگر آرگومان `:meth:`~object.__index__`` را" -" تعریف کند، مقدار ```x.__index__()``` را برمی گرداند. اگر آرگومان " -"`:meth:`~object.__trunc__`` را تعریف کند، مقدار ```x.__trunc__()``` را برمی " +"اگر آرگومان :meth:`~object.__int__` را تعریف کند، ``int(x)`` مقدار " +"``x.__int__()`` را بازمی گرداند. اگر آرگومان :meth:`~object.__index__` را " +"تعریف کند، مقدار ``x.__index__()`` را بازمی گرداند. اگر آرگومان " +":meth:`~object.__trunc__` را تعریف کند، مقدار ``x.__trunc__()`` را بازمی " "گرداند. برای اعداد اعشاری، این به سمت صفر گرد می شود." #: ../../library/functions.rst:1021 @@ -2424,11 +2386,11 @@ msgid "" " ``-`` (with no space in between), have leading zeros, be surrounded by " "whitespace, and have single underscores interspersed between digits." msgstr "" -"اگر آرگومان یک عدد نباشد یا اگر *base* ارائه شود، در آن صورت باید یک رشته، " -"نمونه :class:`bytes` یا :class:`bytearray` باشد که یک عدد صحیح در مبنای " -"*base* را نشان می دهد. به صورت اختیاری، رشته می تواند با ``+`` یا ``-`` " -"(بدون فاصله بین آن ها) شروع شود، دارای صفرهای پیشرو باشد، توسط فاصله های " -"خالی احاطه شده باشد و بین ارقام زیرخط های تکی وجود داشته باشد." +"اگر آرگومان یک عدد نباشد یا اگر *base* داده شود، در این صورت باید یک رشته، " +"نمونه ای از :class:`bytes` یا :class:`bytearray` باشد که عددی در مبنای " +"*base* را نمایش می دهد. به طور اختیاری، این رشته می تواند با ``+`` یا ``-`` " +"(بدون فاصله بین آنها) شروع شود، صفرهای پیشرو داشته باشد، با فاصله سفید احاطه" +" شده باشد و بین ارقام خط فاصله دار داشته باشد." #: ../../library/functions.rst:1027 #, fuzzy @@ -2444,17 +2406,17 @@ msgid "" " prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not " "legal, while ``int('010')`` and ``int('010', 8)`` are." msgstr "" -"یک رشته عدد صحیح با پایه-n شامل ارقامی است که هر کدام ارزشی از 0 تا n-1 را " -"نشان می دهند. ارقام 0 تا 9 می توانند توسط هر رقم اعشاری Unicode نشان داده " -"شوند. ارزش های 10 تا 35 می توانند توسط ``a`` تا ``z`` (یا ``A`` تا ``Z``) " -"نمایش داده شوند. مقدار پیش فرض *base* برابر با 10 است. پایه های مجاز 0 و 2 " -"تا 36 هستند. رشته های پایه-2، -8 و -16 می توانند به صورت اختیاری با " -"``0b``/``0B``، ``0o``/``0O``، یا ``0x``/``0X``، همانند مقادیر صحیح در کد، " -"پیشوند داشته باشند. برای پایه 0، رشته به صورت مشابه با یک :ref:`integer " -"literal in code ` تعبیر می شود، به طوری که پایه واقعی 2، 8، 10 یا " -"16 بر اساس پیشوند تعیین می شود. پایه 0 همچنین اعداد با صفرهای پیشرو را مجاز " -"نمی داند: ``int('010', 0)`` معتبر نیست، در حالی که ``int('010')`` و " -"``int('010', 8)`` معتبر هستند." +"یک رشته عدد صحیح پایه-n شامل ارقامی است که هر کدام نماینده ی مقداری از 0 تا " +"n-1 هستند. مقادیر 0 تا 9 می توانند با هر رقم اعشاری یونیکد نمایش داده شوند. " +"مقادیر 10 تا 35 را می توان با ``a`` تا ``z`` (یا ``A`` تا ``Z``) نمایش داد. " +"*base* پیش فرض 10 است. پایه های مجاز 0 و 2 تا 36 هستند. رشته های پایه-2، " +"پایه-8 و پایه-16 می توانند به صورت اختیاری با ``0b``/``0B``، ``0o``/``0O`` " +"یا ``0x``/``0X`` همانند ثابت های عدد صحیح در کد، پیشوند داشته باشند. برای " +"پایه 0، رشته به روشی مشابه با :ref:`integer literal in code ` " +"تفسیر می شود، به این صورت که پایه واقعی با توجه به پیشوند 2، 8، 10 یا 16 " +"تعیین می شود. همچنین پایه 0 اعداد با صفر مقدم را مجاز نمی داند: ``int('010'," +" 0)`` قانونی نیست، در حالی که ``int('010')`` و ``int('010', 8)`` قانونی " +"هستند." #: ../../library/functions.rst:1038 #, fuzzy @@ -2469,16 +2431,16 @@ msgid "" "obtain an integer for the base. Previous versions used :meth:`base.__int__ " "` instead of :meth:`base.__index__ `." msgstr "" -"اگر *base* یک نمونه از :class:`int` نباشد و شیء *base* دارای یک متد " +"اگر *base* یک نمونه از :class:`int` نباشد و شیء *base* دارای متد " ":meth:`base.__index__ ` باشد، آن متد فراخوانی می شود تا یک" -" عدد صحیح برای مبنا به دست آید. نسخه های قبلی به جای :meth:`base.__index__ " +" عدد صحیح برای پایه بدست آید. نسخه های قبلی به جای :meth:`base.__index__ " "` از :meth:`base.__int__ ` استفاده می " "کردند." #: ../../library/functions.rst:1050 #, fuzzy msgid "The first parameter is now positional-only." -msgstr "اولین پارامتر اکنون فقط-موقعیتی است." +msgstr "اولین پارامتر اکنون فقط مکانی است." #: ../../library/functions.rst:1053 #, fuzzy @@ -2487,12 +2449,12 @@ msgid "" "defined." msgstr "" "در صورتی که :meth:`~object.__int__` تعریف نشده باشد، به " -":meth:`~object.__index__` برمی گردد." +":meth:`~object.__index__` بازگشت انجام می دهد." #: ../../library/functions.rst:1056 #, fuzzy msgid "The delegation to :meth:`~object.__trunc__` is deprecated." -msgstr "اقدام به :meth:`~object.__trunc__` منسوخ شده است." +msgstr "تفویض به :meth:`~object.__trunc__` منسوخ شده است." #: ../../library/functions.rst:1059 #, fuzzy @@ -2504,12 +2466,11 @@ msgid "" ":ref:`integer string conversion length limitation ` " "documentation." msgstr "" -"ورودی های رشته ای و نمایش های رشته ای می توانند محدود شوند تا به جلوگیری از " -"حملات انکار سرویس کمک کنند. هنگامی که محدودیت در حین تبدیل یک رشته به " -"«:class:`int`» یا هنگام تبدیل یک «:class:`int`» به رشته ای که ممکن است " -"محدودیت را تجاوز کند، رخ دهد، یک «:exc:`ValueError`» ایجاد می شود. به " -"مستندات «:ref:`integer string conversion length limitation " -"`» مراجعه کنید." +"ورودی های رشته ای و نمایش های رشته می توانند برای جلوگیری از حملات انکار " +"سرویس محدود شوند. هنگامی که محدودیت در حین تبدیل یک رشته به یک :class:`int` " +"یا وقتی که تبدیل یک :class:`int` به یک رشته از حد تجاوز کند، یک " +":exc:`ValueError` ایجاد می شود. به مستندات :ref:`integer string conversion " +"length limitation ` مراجعه کنید." #: ../../library/functions.rst:1069 #, fuzzy @@ -2524,15 +2485,15 @@ msgid "" ":exc:`TypeError` exception is raised. :exc:`TypeError` may not be raised for" " an invalid type if an earlier check succeeds." msgstr "" -"اگر آرگومان *object* نمونه ای از آرگومان *classinfo* باشد، یا زیرکلاسی " +"اگر آرگومان *object* یک نمونه از آرگومان *classinfo* باشد یا زیرکلاسی " "(مستقیم، غیرمستقیم یا :term:`virtual `) از آن، ``True``" -" را بازگردانید. اگر *object* یک شیء از نوع مشخص شده نباشد، تابع همیشه " -"``False`` را برمی گرداند. اگر *classinfo* یک تاپل از اشیاء نوع (یا به صورت " -"بازگشتی، دیگر تاپل های مشابه) یا یک :ref:`types-union` از چندین نوع باشد، " -"اگر *object* نمونه ای از هر یک از این انواع باشد ``True`` را برمی گردانید. " -"اگر *classinfo* یک نوع یا تاپل از انواع و تاپل های این چنینی نباشد، یک " -"استثناء :exc:`TypeError` ایجاد می شود. ممکن است :exc:`TypeError` برای یک نوع" -" نامعتبر ایجاد نشود اگر یک بررسی قبلی موفق باشد." +" را برمی گرداند. اگر *object* یک شیء از نوع داده شده نباشد، تابع همیشه " +"``False`` برمی گردد. اگر *classinfo* یک تاپل از اشیاء نوع (یا بازگشتی، تاپل " +"های دیگر این چنینی) یا :ref:`types-union` از چندین نوع باشد، ``True`` را " +"برمی گرداند اگر *object* یک نمونه از هر یک از انواع باشد. اگر *classinfo* یک" +" نوع یا تاپل هایی از انواع و چنین تاپل هایی نباشد، استثنایی از نوع " +":exc:`TypeError` ایجاد می شود. ممکن است :exc:`TypeError` برای یک نوع نامعتبر" +" ایجاد نشود اگر یک بررسی قبلی موفق باشد." #: ../../library/functions.rst:1080 ../../library/functions.rst:1094 #, fuzzy @@ -2549,12 +2510,12 @@ msgid "" "return ``True`` if *class* is a subclass of any entry in *classinfo*. In " "any other case, a :exc:`TypeError` exception is raised." msgstr "" -"اگر *class* یک زیرکلاس (مستقیم، غیر مستقیم یا :term:`virtual `) از *classinfo* باشد، ``True`` را برمی گرداند. یک کلاس به عنوان یک " -"زیرکلاس از خودش در نظر گرفته می شود. *classinfo* می تواند یک تاپل از اشیاء " -"کلاس (یا به صورت بازگشتی، تاپل های دیگر) یا یک :ref:`types-union` باشد، که " -"در این صورت اگر *class* یک زیرکلاس از هر ورودی در *classinfo* باشد، ``True``" -" را برمی گرداند. در هر مورد دیگر، یک استثنای :exc:`TypeError` ایجاد می شود." +"اگر *class* زیرکلاسی (مستقیم، غیرمستقیم یا :term:`virtual `) از *classinfo* باشد، ``True`` را برمی گرداند. یک کلاس به عنوان " +"زیرکلاس خودش نیز در نظر گرفته می شود. *classinfo* ممکن است یک تاپل از اشیا " +"کلاس (یا به طور بازگشتی، دیگر تاپل های مشابه) یا :ref:`types-union` باشد، که" +" در این حالت اگر *class* زیرکلاس هر ورودی در *classinfo* باشد، ``True`` را " +"برمی گرداند. در هر حالت دیگر، یک استثنای :exc:`TypeError` ایجاد می شود." #: ../../library/functions.rst:1101 #, fuzzy @@ -2572,18 +2533,18 @@ msgid "" "*sentinel*, :exc:`StopIteration` will be raised, otherwise the value will be" " returned." msgstr "" -"یک شیء :term:`iterator` را برمی گرداند. اولین آرگومان بسته به وجود آرگومان " -"دوم به شکل بسیار متفاوتی تفسیر می شود. بدون آرگومان دوم، *object* باید یک " -"شیء مجموعه باشد که از پروتکل :term:`iterable` پشتیبانی کند (متد " -":meth:`~object.__iter__`)، یا باید از پروتکل دنباله دار (متد " -":meth:`~object.__getitem__` با آرگومان های عدد صحیح که از ``0`` شروع می شود)" -" پشتیبانی کند. اگر از هیچ کدام از این پروتکل ها پشتیبانی نکند، " -":exc:`TypeError` به وقوع خواهد پیوست. اگر آرگومان دوم، *sentinel*، داده شود،" -" آنگاه *object* باید یک شیء قابل فراخوانی باشد. در این حالت، تکرارگر ایجاد " -"شده متد :meth:`~iterator.__next__` خود را برای هر بار فراخوانی بدون آرگومان،" -" *object* را فراخوانی خواهد کرد؛ اگر مقدار بازگشتی برابر با *sentinel* باشد،" -" :exc:`StopIteration` به وقوع خواهد پیوست، در غیر این صورت مقدار برگردانده " -"می شود." +"شیء :term:`iterator` را باز می گرداند. آرگومان اول به صورت بسیار متفاوتی " +"بسته به حضور آرگومان دوم تفسیر می شود. بدون آرگومان دوم، *object* باید یک " +"شیء مجموعه ای باشد که از پروتکل :term:`iterable` (روش " +":meth:`~object.__iter__`) پشتیبانی کند، یا باید از پروتکل دنباله ای (روش " +":meth:`~object.__getitem__` با آرگومان های عدد صحیح که از ``0`` شروع می " +"شوند) پشتیبانی کند. اگر از هیچ یک از این پروتکل ها پشتیبانی نکند، " +":exc:`TypeError` تولید می شود. اگر آرگومان دوم، یعنی *sentinel*، ارائه شود، " +"آنگاه *object* باید یک شیء قابل فراخوانی باشد. در این حالت، تکرارگر ساخته " +"شده، برای هر بار فراخوانی روش :meth:`~iterator.__next__` خود، *object* را " +"بدون آرگومان فراخوانی می کند؛ اگر مقدار بازگشتی برابر با *sentinel* باشد، " +":exc:`StopIteration` تولید خواهد شد، در غیر این صورت مقدار بازگردانده می " +"شود." #: ../../library/functions.rst:1115 #, fuzzy @@ -2597,9 +2558,9 @@ msgid "" "block-reader. For example, reading fixed-width blocks from a binary database" " file until the end of file is reached::" msgstr "" -"یکی از کاربردهای مفید فرم دوم :func:`iter` ساخت یک مسدود کننده برای خواندن " -"است. به عنوان مثال، خواندن بلوک های با عرض ثابت از یک فایل پایگاه داده " -"باینری تا زمانی که به انتهای فایل برسد::" +"یکی از کاربردهای مفید فرم دوم :func:`iter` ایجاد یک بلاک خوان است. به عنوان " +"مثال، خواندن بلاک های با عرض ثابت از یک فایل پایگاه داده باینری تا زمانی که " +"به انتهای فایل برسید::" #: ../../library/functions.rst:1121 #, fuzzy @@ -2609,10 +2570,10 @@ msgid "" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" msgstr "" -"از `functools` ماژول `partial` را وارد کنید.\n" -"با استفاده از دستور `with` فایل `'mydata.db'` را به حالت `'rb'` باز کنید. \n" -"برای هر بلاک در `iter` که تابع `partial(f.read, 64)` و انتهای آن به صورت `b''` تعریف شده است، \n" -"تابع `process_block(block)` را اجرا کنید." +"از `functools` ماژول `partial` را وارد کنید\n" +"با استفاده از دستور `with` فایل 'mydata.db' را در حالت خواندن باینری (`rb`) باز کنید:\n" +" برای هر بلوک در تکرار حاصل از `partial(f.read, 64)` که به طور مداوم تا رسیدن به بایت خالی `b''` می خواند:\n" +" `process_block(block)` را اجرا کنید" #: ../../library/functions.rst:1129 #, fuzzy @@ -2621,9 +2582,9 @@ msgid "" " sequence (such as a string, bytes, tuple, list, or range) or a collection " "(such as a dictionary, set, or frozen set)." msgstr "" -"طول (تعداد آیتم ها) یک شیء را برمی گرداند. آرگومان می تواند یک دنباله (مانند" -" string، bytes، tuple، list، یا range) یا یک مجموعه (مانند dictionary، set، " -"یا frozenset) باشد." +"طول (تعداد آیتم ها) یک شیء را برمی گرداند. آرگومان می تواند یک توالی (مثل " +"رشته، بایت ها، تاپل، لیست، یا رنج) یا یک مجموعه (مثل دیکشنری، ست، یا مجموعه " +"ی منجمد) باشد." #: ../../library/functions.rst:1135 #, fuzzy @@ -2631,8 +2592,8 @@ msgid "" "``len`` raises :exc:`OverflowError` on lengths larger than " ":data:`sys.maxsize`, such as :class:`range(2 ** 100) `." msgstr "" -"``len`` زمانی که طول ها بزرگتر از :data:`sys.maxsize` باشد، مانند " -":class:`range(2 ** 100) `، باعث ایجاد :exc:`OverflowError` می شود." +"``len`` خطای :exc:`OverflowError` را روی طول های بزرگ تر از " +":data:`sys.maxsize` ایجاد می کند، مانند :class:`range(2 ** 100) `." #: ../../library/functions.rst:1144 #, fuzzy @@ -2640,8 +2601,8 @@ msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." msgstr "" -"به جای اینکه یک تابع باشد، :class:`list` در واقع یک نوع دنباله قابل تغییر " -"است، همان طور که در :ref:`typesseq-list` و :ref:`typesseq` مستند شده است." +"بجای اینکه یک تابع باشد، :class:`list` در واقع یک نوع توالی قابل تغییر است " +"که در :ref:`typesseq-list` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1150 #, fuzzy @@ -2650,8 +2611,8 @@ msgid "" "variable names as the keys, and their currently bound references as the " "values." msgstr "" -"یک شیء نگاشت را برمی گرداند که جدول نماد محلی فعلی را نشان می دهد، با نام " -"متغیرها به عنوان کلیدها و ارجاعات فعلی مرتبط با آن ها به عنوان مقادیر." +"یک شیء نگاشتی که جدول نمادهای محلی جاری را نمایش می دهد، با نام متغیرها به " +"عنوان کلیدها و ارجاعات در حال حاضر به آنها به عنوان مقادیر، بازمی گرداند." #: ../../library/functions.rst:1154 #, fuzzy @@ -2660,9 +2621,8 @@ msgid "" "single namespace, this function returns the same namespace as " ":func:`globals`." msgstr "" -"در محدوده یک ماژول، و همچنین زمانی که از :func:`exec` یا :func:`eval` با یک " -"فضای نام واحد استفاده می کنید، این تابع همان فضای نامی را که :func:`globals`" -" برمی گرداند، ارائه می دهد." +"در سطح ماژول، همچنین هنگام استفاده از :func:`exec` یا :func:`eval` با یک " +"فضای نام، این تابع همان فضای نامی را که :func:`globals` بازمی گرداند." #: ../../library/functions.rst:1158 #, fuzzy @@ -2670,7 +2630,8 @@ msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." msgstr "" -"در حوزه کلاس، نام فضایی را برمی گرداند که به سازنده متاکلاس ارسال خواهد شد." +"در محدوده کلاس، فضای نامی را برمی گرداند که به سازنده متاکلاس ارسال خواهد " +"شد." #: ../../library/functions.rst:1161 #, fuzzy @@ -2679,7 +2640,7 @@ msgid "" "arguments, it returns the local namespace passed in to the function call." msgstr "" "هنگام استفاده از ``exec()`` یا ``eval()`` با آرگومان های محلی و سراسری " -"جداگانه، فضای نام محلی که به تابع ارسال شده را برمی گرداند." +"جداگانه، فضای نام محلی که به فراخوانی تابع ارسال شده است را برمی گرداند." #: ../../library/functions.rst:1164 #, fuzzy @@ -2691,12 +2652,12 @@ msgid "" "deleting local variables will immediately affect the contents of the " "returned mapping object." msgstr "" -"در تمام موارد فوق، هر بار که ``locals()`` در یک چارچوب اجرایی خاص فراخوانی " -"شود، شیء نگاشت *same* را باز می گرداند. تغییراتی که از طریق شیء نگاشت " -"بازگشتی از ``locals()`` انجام می شود به صورت متغیرهای محلی اختصاص داده شده، " -"مجدداً اختصاص داده شده یا حذف شده قابل مشاهده است، و اختصاص دادن، مجدداً " -"اختصاص دادن یا حذف کردن متغیرهای محلی بلافاصله بر محتوای شیء نگاشت بازگشتی " -"تأثیر خواهد گذاشت." +"در تمامی موارد فوق، هر بار فراخوانی به ``locals()`` در یک چهارچوب اجرایی " +"معین، شیء نگاشت *same* را برمی گرداند. تغییراتی که از طریق شیء نگاشت " +"برگردانده شده از ``locals()`` صورت می گیرد، به عنوان متغیرهای محلی تخصیص " +"داده شده، مجدداً تخصیص داده شده یا حذف شده قابل مشاهده خواهند بود، و تخصیص، " +"باز تخصیص یا حذف متغیرهای محلی بلافاصله بر محتوای شیء نگاشت برگردانده شده " +"تاثیر می گذارد." #: ../../library/functions.rst:1171 #, fuzzy @@ -2710,14 +2671,13 @@ msgid "" "variables and nonlocal cell references does *not* affect the contents of " "previously returned dictionaries." msgstr "" -"در یک :term:`optimized scope` (شامل توابع، تولیدکننده ها و coroutineها)، هر " -"بار که به ``locals()`` فراخوانی می شود، به جای آن یک دیکشنری جدید که شامل " -"وابستگی های متغیرهای محلی تابع و هر گونه ارجاع به سلول های غیرمحلی است را " -"برمی گرداند. در این حالت، تغییرات در نام گذاری که از طریق دیکشنری برگشتی " -"انجام می شود، به متغیرهای محلی مربوطه یا ارجاعات سلولی غیرمحلی *not* نوشته " -"می شوند، و اختصاص دهی، دوباره اختصاص دادن، یا حذف متغیرهای محلی و ارجاعات " -"سلولی غیرمحلی *not* محتوای دیکشنری های برگشتی قبلی را تحت تأثیر قرار نمی " -"دهد." +"در یک :term:`optimized scope` (شامل توابع، ژنراتورها و کوروتین ها)، هر بار " +"فراخوانی ``locals()`` یک دیکشنری جدید بازمی گرداند که شامل وابستگی های فعلی " +"متغیرهای محلی تابع و هرگونه ارجاع سلول غیرمحلی است. در این حالت، تغییرات " +"وابستگی نام که از طریق دیکشنری بازگردانی شده انجام می شود، *not* به متغیرهای" +" محلی یا ارجاعات سلول غیرمحلی مربوطه برگردانده می شوند، و تخصیص، بازتخصیص یا" +" حذف متغیرهای محلی و ارجاعات سلول غیرمحلی، *not* بر محتوای دیکشنری هایی که " +"قبلاً بازگردانده شده اند تأثیر ندارد." #: ../../library/functions.rst:1180 #, fuzzy @@ -2728,10 +2688,11 @@ msgid "" "other scopes, it behaves as if the comprehension were running as a nested " "function." msgstr "" -"فراخوانی ``locals()`` به عنوان بخشی از یک فهم در یک تابع، مولد یا coroutine " -"معادل فراخوانی آن در حوزه ی حاوی است، با این تفاوت که متغیرهای اولیه سازی " -"شده فهم نیز شامل می شوند. در سایر حوزه ها، این عمل به گونه ای رفتار می کند " -"که گویی فهم به عنوان یک تابع تو در تو اجرا می شود." +"فراخوانی ``locals()`` به عنوان قسمتی از یک درک (comprehension) در یک تابع، " +"تولیدکننده(generator) یا coroutine، معادل فراخوانی آن در حوزه(containing " +"scope) است، با این تفاوت که متغیرهای ابتدای درک (comprehension) هم شامل می " +"شوند. در حوزه های دیگر، رفتار به گونه ای است که انگار درک (comprehension) به" +" عنوان یک تابع تو در تو اجرا می شود." #: ../../library/functions.rst:1186 #, fuzzy @@ -2739,8 +2700,8 @@ msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." msgstr "" -"فراخوانی ``locals()`` به عنوان بخشی از یک عبارت تولیدکننده معادل با فراخوانی" -" آن در یک تابع تولیدکننده ی تو در تو است." +"خواندن ``locals()`` به عنوان بخشی از یک بیان ژنراتور معادل است با خواندن آن " +"در یک تابع ژنراتور تو در تو." #: ../../library/functions.rst:1189 #, fuzzy @@ -2748,8 +2709,8 @@ msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." msgstr "" -"رفتار ``locals()`` در یک comprehension به روزرسانی شده است همان طور که در " -":pep:`709` توصیف شده است." +"رفتار ``locals()`` در یک comprehension همانطور که در :pep:`709` توضیح داده " +"شده، به روزرسانی شده است." #: ../../library/functions.rst:1193 #, fuzzy @@ -2760,10 +2721,11 @@ msgid "" "from being defined, the behaviour in other scopes remains unchanged from " "previous versions." msgstr "" -"به عنوان بخشی از :pep:`667`، معانی تغییر دادن اشیای نگاشت که از این تابع " -"برگردانده می شوند اکنون تعریف شده اند. رفتار در :term:`optimized scopes " -"` اکنون همانطور که در بالا توصیف شد است. به جز تعریف شدن، " -"رفتار در سایر حوزه ها نسبت به نسخه های قبلی تغییری نکرده است." +"در بخشی از :pep:`667`، معنای تغییر دادن اشیای نقشه برداری که از این تابع " +"برگردانده می شود، اکنون تعریف شده است. رفتار در :term:`optimized scopes " +"` اکنون همان طور که در بالا توضیح داده شد، توصیف می شود. " +"علاوه بر تعریف شدن، رفتار در سایر حوزه ها نسبت به نسخه های قبلی بدون تغییر " +"باقی مانده است." #: ../../library/functions.rst:1203 #, fuzzy @@ -2775,13 +2737,13 @@ msgid "" " the shortest iterable is exhausted. For cases where the function inputs " "are already arranged into argument tuples, see :func:`itertools.starmap`\\." msgstr "" -"یک \"iterator\" برمی گرداند که \"*function*\" را به هر آیتم از " -"\"*iterable*\" اعمال می کند و نتایج را برمی گرداند. اگر آرگومان های اضافی " -"\"*iterables*\" پاس داده شوند، \"*function*\" باید به همان تعداد آرگومان " -"بگیرد و در موازی بر روی آیتم های هر دو \"iterable\" اعمال می شود. با چندین " -"\"iterable\"، \"iterator\" زمانی متوقف می شود که کوتاه ترین \"iterable\" به " -"پایان برسد. برای مواردی که ورودی های تابع از قبل به شکل \"tuple\"های آرگومان" -" مرتب شده اند، به \":func:`itertools.starmap`\" مراجعه کنید." +"یک iterator برمی گرداند که *function* را بر روی هر آیتم از *iterable* اعمال " +"می کند و نتایج را تولید می کند. اگر آرگومان های اضافی *iterables* داده شده " +"باشند، *function* باید به تعداد آن آرگومان ها باشد و به آیتم ها از تمامی " +"iteratorها به صورت موازی اعمال شود. با وجود چندین iterable، iterator زمانی " +"متوقف می شود که کوتاه ترین iterable به پایان برسد. برای مواردی که ورودی های " +"تابع از پیش به صورت بسته های آرگومان تنظیم شده اند، به " +":func:`itertools.starmap` مراجعه کنید." #: ../../library/functions.rst:1215 #, fuzzy @@ -2789,8 +2751,8 @@ msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" -"بزرگترین آیتم در یک \"iterable\" یا بزرگترین آیتم از بین دو یا چند آرگومان " -"را برمی گرداند." +"بزرگ ترین آیتم در یک iterable یا بزرگ ترین آیتم در میان دو یا چند آرگومان را" +" برمی گرداند." #: ../../library/functions.rst:1218 #, fuzzy @@ -2799,9 +2761,9 @@ msgid "" "The largest item in the iterable is returned. If two or more positional " "arguments are provided, the largest of the positional arguments is returned." msgstr "" -"اگر یک آرگومان موقعیتی فراهم شود، باید یک :term:`iterable` باشد. بزرگترین " -"عنصر در `iterable` برگشت داده می شود. اگر دو یا چند آرگومان موقعیتی فراهم " -"شوند، بزرگترین آرگومان موقعیتی برگشت داده می شود." +"اگر یک آرگومان موقعیتی ارائه شود، باید یک :term:`iterable` باشد. بزرگ ترین " +"آیتم در تکرارپذیر بازگردانده می شود. اگر دو یا چند آرگومان موقعیتی ارائه " +"شوند، بزرگترین در میان آرگومان های موقعیتی بازگردانده می شود." #: ../../library/functions.rst:1223 ../../library/functions.rst:1261 #, fuzzy @@ -2812,12 +2774,11 @@ msgid "" " empty. If the iterable is empty and *default* is not provided, a " ":exc:`ValueError` is raised." msgstr "" -"دو آرگومان اختیاری وجود دارد که فقط با استفاده از کلمات کلیدی قابل استفاده " -"هستند. آرگومان *key* یک تابع ترتیب دهنده ی تک آرگومانی را مشخص می کند، مشابه" -" آنچه برای :meth:`list.sort` استفاده می شود. آرگومان *default* یک شیء را " -"تعیین می کند تا در صورتی که ساختار iterable خالی باشد، برگردانده شود. اگر " -"iterable خالی باشد و *default* ارائه نشده باشد، یک :exc:`ValueError` ایجاد " -"می شود." +"دو آرگومان انتخابی که فقط با استفاده از کلیدواژه قابل استفاده هستند وجود " +"دارد. آرگومان *key* یک تابع مرتب سازی یک پارامتری را مشخص می کند مانند آنچه " +"که برای :meth:`list.sort` استفاده می شود. آرگومان *default* شیء ای را مشخص " +"می کند که در صورتی که ورودی تهی باشد بازگردانده شود. اگر ورودی تهی باشد و " +"*default* ارائه نشده باشد، یک :exc:`ValueError` ایجاد می شود." #: ../../library/functions.rst:1229 #, fuzzy @@ -2827,19 +2788,20 @@ msgid "" "such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and " "``heapq.nlargest(1, iterable, key=keyfunc)``." msgstr "" -"اگر چندین آیتم بیشینه باشند، تابع اولین آیتمی را که مواجه می شود، برمی " -"گرداند. این رفتار با دیگر ابزارهای حفظ پایداری مرتب سازی نظیر " +"اگر چندین آیتم حداکثر باشند، تابع اولین موردی که با آن مواجه می شود را برمی " +"گرداند. این رفتار با دیگر ابزارهای حفظ پایداری مرتب سازی مانند " "``sorted(iterable, key=keyfunc, reverse=True)[0]`` و ``heapq.nlargest(1, " "iterable, key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1234 ../../library/functions.rst:1272 #, fuzzy msgid "Added the *default* keyword-only parameter." -msgstr "افزودن پارامتر فقط-کلیدی *default*." +msgstr "پارامتر فقط-کلیدواژه ای *default* اضافه شد." #: ../../library/functions.rst:1237 ../../library/functions.rst:1275 +#, fuzzy msgid "The *key* can be ``None``." -msgstr "" +msgstr "*key* می تواند ``None`` باشد." #: ../../library/functions.rst:1245 #, fuzzy @@ -2847,8 +2809,8 @@ msgid "" "Return a \"memory view\" object created from the given argument. See " ":ref:`typememoryview` for more information." msgstr "" -"شیء \"نمایش حافظه\" که از آرگومان داده شده ایجاد شده است را برمی گرداند. " -"برای اطلاعات بیشتر به :ref:`typememoryview` مراجعه کنید." +"شیٔ \"دید حافظه\" که از آرگومان داده شده ایجاد می شود را برمی گرداند. برای " +"اطلاعات بیشتر به :ref:`typememoryview` مراجعه کنید." #: ../../library/functions.rst:1253 #, fuzzy @@ -2856,8 +2818,8 @@ msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" -"کوچکترین عنصر در یک ``iterable`` یا کوچکترین عنصر در بین دو یا چند آرگومان " -"را برمی گرداند." +"کوچک ترین آیتم در یک iterable یا کوچک ترین از دو یا چند آرگومان را برمی " +"گرداند." #: ../../library/functions.rst:1256 #, fuzzy @@ -2867,9 +2829,9 @@ msgid "" "arguments are provided, the smallest of the positional arguments is " "returned." msgstr "" -"اگر یک آرگومان موقعیتی ارائه شود، باید یک :term:`iterable` باشد. کوچکترین " -"آیتم در \"iterable\" بازگردانده می شود. اگر دو یا چند آرگومان موقعیتی ارائه " -"شوند، کوچکترین \"آرگومان موقعیتی\" بازگردانده می شود." +"اگر یک آرگومان موقعیتی ارائه شود، باید یک :term:`iterable` باشد. کوچک ترین " +"آیتم در iterable بازگردانده می شود. اگر دو یا چند آرگومان موقعیتی ارائه شود،" +" کوچک ترین آرگومان موقعیتی بازگردانده می شود." #: ../../library/functions.rst:1267 #, fuzzy @@ -2879,10 +2841,10 @@ msgid "" "such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " "iterable, key=keyfunc)``." msgstr "" -"اگر چندین آیتم کمینه باشند، تابع اولین آیتمی که با آن مواجه می شود را بازمی " -"گرداند. این رفتار با سایر ابزارهای حفظ پایداری ترتیب مانند " -"````sorted(iterable, key=keyfunc)[0]```` و ````heapq.nsmallest(1, iterable, " -"key=keyfunc)```` سازگار است." +"اگر چندین مورد حداقلی وجود داشته باشد، این تابع اولین موردی که با آن مواجه " +"می شود را برمی گرداند. این رفتار با سایر ابزارهایی که پایداری ترتیب را حفظ " +"می کنند مانند ``sorted(iterable, key=keyfunc)[0]`` و ``heapq.nsmallest(1, " +"iterable, key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1282 #, fuzzy @@ -2891,9 +2853,10 @@ msgid "" ":meth:`~iterator.__next__` method. If *default* is given, it is returned if" " the iterator is exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" -"برای بازیابی مورد بعدی از :term:`iterator`، روش :meth:`~iterator.__next__` " -"را صدا بزنید. اگر *default* داده شده باشد، در صورتی که پیمایشگر تمام شود، آن" -" بازگردانده می شود، در غیر این صورت :exc:`StopIteration` ایجاد می شود." +"گزینه ی بعدی را از :term:`iterator` با فراخوانی متد " +":meth:`~iterator.__next__` آن بازیابی کنید. اگر *default* داده شود و تکرارگر" +" پایان یافته باشد، آن بازگردانده می شود، در غیر این صورت " +":exc:`StopIteration` ایجاد می شود." #: ../../library/functions.rst:1289 #, fuzzy @@ -2903,10 +2866,10 @@ msgid "" "called, it returns a new featureless object. The constructor does not accept" " any arguments." msgstr "" -"این کلاس پایه ی نهایی تمامی کلاس های دیگر است. این کلاس شامل متدهایی است که " -"برای تمامی نمونه های کلاس های پایتون مشترک می باشند. زمانی که سازنده " -"فراخوانی می شود، یک شیء جدید بدون ویژگی را برمی گرداند. سازنده هیچ آرگومانی " -"را نمی پذیرد." +"این کلاس پایهٔ نهایی برای تمامی کلاس های دیگر است. این کلاس شامل متدهایی است" +" که در همهٔ نمونه های کلاس های پایتون مشترک هستند. زمانی که سازنده فراخوانی " +"می شود، یک شیء جدید و بدون ویژگی برمی گرداند. سازنده هیچ آرگومانی را نمی " +"پذیرد." #: ../../library/functions.rst:1296 #, fuzzy @@ -2915,7 +2878,7 @@ msgid "" " so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" "نمونه های :class:`object` دارای ویژگی های *not* نیستند، بنابراین نمی توانید " -"ویژگی های دلخواه را به یک نمونه از :class:`object` اختصاص دهید." +"ویژگی های دلخواه را به نمونه ای از :class:`object` اختصاص دهید." #: ../../library/functions.rst:1303 #, fuzzy @@ -2925,10 +2888,10 @@ msgid "" "object, it has to define an :meth:`~object.__index__` method that returns an" " integer. For example:" msgstr "" -"یک عدد صحیح را به یک رشته اکتال که با \"0o\" شروع می شود تبدیل کنید. نتیجه " -"یک عبارت معتبر در پایتون است. اگر *x* یک شیء Python :class:`int` نیست، باید " -"یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح را برگرداند. برای " -"مثال:" +"یک عدد صحیح را به یک رشته هشت هشتی که با \"0o\" پیشوند دارد تبدیل کنید. " +"نتیجه یک عبارت معتبر پایتون خواهد بود. اگر *x* یک شیء :class:`int` پایتون " +"نیست، باید یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح " +"برگرداند. برای مثال:" #: ../../library/functions.rst:1313 #, fuzzy @@ -2936,8 +2899,8 @@ msgid "" "If you want to convert an integer number to an octal string either with the " "prefix \"0o\" or not, you can use either of the following ways." msgstr "" -"اگر می خواهید یک عدد صحیح را به یک رشته هشت هشتی تبدیل کنید، چه با پیشوند " -"\"0o\" و چه بدون آن، می توانید از یکی از روش های زیر استفاده کنید." +"اگر می خواهید یک عدد صحیح را به یک رشته هشت پایه تبدیل کنید، چه با پیشوند " +"\"0o\" و چه بدون آن، می توانید از هر یک از روش های زیر استفاده کنید." #: ../../library/functions.rst:1330 #, fuzzy @@ -2946,9 +2909,9 @@ msgid "" "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more" " examples of how to use this function." msgstr "" -"فایل *file* را باز کنید و یک :term:`file object` مربوطه برگردانید. اگر فایل " -"قابل باز شدن نباشد، یک :exc:`OSError` ایجاد می شود. برای دیدن مثال های بیشتر" -" از نحوه استفاده از این تابع به :ref:`tut-files` مراجعه کنید." +"باز کردن *file* و بازگرداندن یک :term:`file object` مربوطه. اگر فایل نتواند " +"باز شود، یک :exc:`OSError` ایجاد می شود. برای مثال های بیشتر از نحوه استفاده" +" از این تابع، به :ref:`tut-files` مراجعه کنید." #: ../../library/functions.rst:1334 #, fuzzy @@ -2959,11 +2922,11 @@ msgid "" " given, it is closed when the returned I/O object is closed unless *closefd*" " is set to ``False``.)" msgstr "" -"*file* یک :term:`path-like object` است که مسیر فایل (به صورت مطلق یا نسبی " -"نسبت به دایرکتوری کاری فعلی) فایل مورد نظر برای باز شدن یا یک عدد صحیح به " -"عنوان شناسه فایل برای بسته بندی فایل را ارائه می دهد. (اگر یک شناسه فایل " -"داده شود، با بسته شدن شیء I/O برگردانده شده، بسته می شود مگر اینکه *closefd*" -" روی ``False`` تنظیم شده باشد.)" +"*file* یک :term:`path-like object` است که مسیر فایل (مطلق یا نسبی نسبت به " +"دایرکتوری کاری فعلی) که قرار است باز شود یا یک توصیفگر فایل عدد صحیح از فایل" +" برای بسته بندی شده را ارائه می دهد. (اگر یک توصیفگر فایل داده شود، هنگامی " +"که شیء I/O بازگشتی بسته می شود، بسته می شود مگر اینکه *closefd* به ``False``" +" تنظیم شود.)" #: ../../library/functions.rst:1340 #, fuzzy @@ -2979,83 +2942,82 @@ msgid "" "(For reading and writing raw bytes use binary mode and leave *encoding* " "unspecified.) The available modes are:" msgstr "" -"*mode* یک رشته اختیاری است که نحوه باز کردن فایل را مشخص می کند. پیش فرض آن " -"``'r'`` است که به معنای باز کردن برای خواندن در حالت متنی است. مقادیر رایج " -"دیگر شامل ``'w'`` برای نوشتن (کوتاه کردن فایل اگر قبلاً وجود داشته باشد)، " -"``'x'`` برای ایجاد انحصاری، و ``'a'`` برای افزودن (که در سیستم های *some* " -"یونیکس، به این معناست که نوشتن ها به انتهای فایل اضافه می شوند بدون توجه به " -"موقعیت فعلی) است. در حالت متنی، اگر *encoding* مشخص نشده باشد، کدگذاری " -"استفاده شده وابسته به پلتفرم است: :func:`locale.getencoding` برای به دست " -"آوردن کدگذاری محل فعلی فراخوانی می شود. (برای خواندن و نوشتن بایت های خام از" -" حالت باینری استفاده کنید و *encoding* را مشخص نکنید.) حالت های در دسترس " -"عبارتند از:" +"*mode* یک رشته اختیاری است که نحوه باز شدن فایل را مشخص می کند. به صورت پیش " +"فرض، ``'r'`` است که به معنای باز کردن برای خواندن در حالت متنی است. سایر " +"مقادیر معمول شامل ``'w'`` برای نوشتن (که در صورت وجود، فایل را کوتاه می " +"کند)، ``'x'`` برای ایجاد انحصاری و ``'a'`` برای افزودن (که در سیستم های " +"*some* Unix به این معناست که *all* نوشتن به انتهای فایل اضافه می شود بدون " +"توجه به موقعیت کنونی جستجو). در حالت متنی، اگر *encoding* مشخص نشده باشد، " +"کدگذاری استفاده شده وابسته به پلتفرم است: :func:`locale.getencoding` " +"فراخوانی می شود تا کدگذاری محلی فعلی را دریافت کند. (برای خواندن و نوشتن " +"بایت های خام از حالت باینری استفاده کنید و *encoding* را مشخص نکنید.) حالت " +"های موجود عبارتند از:" #: ../../library/functions.rst:1357 #, fuzzy msgid "Character" -msgstr "شخصیت" +msgstr "کاراکتر" #: ../../library/functions.rst:1357 #, fuzzy msgid "Meaning" -msgstr "معنا" +msgstr "معنی" #: ../../library/functions.rst:1359 #, fuzzy msgid "``'r'``" msgstr "" -"متنی برای ترجمه در اختیار قرار نگرفته است. لطفاً متن خاصی را ارائه دهید تا " -"بتوانم آن را به فارسی ترجمه کنم." +"متاسفانه متن ارسالی شما شامل کدی نیست که قابل ترجمه باشد. لطفاً متنی از " +"مستندات رسمی پایتون را ارسال کنید تا ترجمه شود." #: ../../library/functions.rst:1359 #, fuzzy msgid "open for reading (default)" -msgstr "پیش فرض: باز کردن برای خواندن" +msgstr "باز کردن برای خواندن (پیش فرض)" #: ../../library/functions.rst:1360 #, fuzzy msgid "``'w'``" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفا متن صحیحی را ارائه دهید تا بتوانم آن را" -" به فارسی ترجمه کنم." +"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را فراهم کنید " +"تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:1360 #, fuzzy msgid "open for writing, truncating the file first" -msgstr "باز کردن برای نوشتن، ابتدا فایل را کوتاه کردن" +msgstr "باز کردن برای نوشتن، ابتدا فایل را خالی می کند" #: ../../library/functions.rst:1361 #, fuzzy msgid "``'x'``" msgstr "" -"متنی برای ترجمه ارائه نشده است. اگر نیاز به کمک دارید، لطفاً متن مورد نظر " -"خود را ارسال کنید تا بتوانم به شما کمک کنم." +"متنی برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را ارسال " +"کنید تا بتوانم به شما کمک کنم." #: ../../library/functions.rst:1361 #, fuzzy msgid "open for exclusive creation, failing if the file already exists" msgstr "" -"ایجاد منحصر به فرد، به این صورت که اگر فایل از قبل وجود داشته باشد، خطا می " -"دهد." +"باز کردن برای ایجاد اختصاصی، در صورتی که فایل از قبل وجود داشته باشد، شکست " +"می خورد." #: ../../library/functions.rst:1362 #, fuzzy msgid "``'a'``" -msgstr "" -"به نظر می رسد متنی که قرار است ترجمه کنم به صورت صحیح ارائه نشده است. لطفاً " -"بخش صحیحی از متن را ارسال کنید تا آن را به فارسی ترجمه کنم." +msgstr "``'a'``" #: ../../library/functions.rst:1362 #, fuzzy msgid "open for writing, appending to the end of file if it exists" -msgstr "باز کردن برای نوشتن، الحاق به انتهای فایل در صورت وجود فایل" +msgstr "" +"باز کردن برای نوشتن، اضافه کردن به انتهای فایل در صورتی که وجود داشته باشد" #: ../../library/functions.rst:1363 #, fuzzy msgid "``'b'``" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه وارد " -"کنید." +"متن ارائه شده برای ترجمه فاقد محتوا است، بنابراین ترجمه فارسی نمی تواند " +"ارائه شود. لطفاً محتوا یا متنی که می خواهید ترجمه شود را مشخص کنید." #: ../../library/functions.rst:1363 ../../library/functions.rst:1507 #, fuzzy @@ -3066,8 +3028,8 @@ msgstr "حالت دودویی" #, fuzzy msgid "``'t'``" msgstr "" -"متنی برای ترجمه فراهم نشده است. لطفاً متنی که می خواهید به فارسی ترجمه شود، " -"ارائه دهید." +"متن برای ترجمه ارائه نشد. لطفاً متن کامل خود را ارسال کنید تا به فارسی ترجمه" +" کنم." #: ../../library/functions.rst:1364 #, fuzzy @@ -3078,14 +3040,13 @@ msgstr "حالت متنی (پیش فرض)" #, fuzzy msgid "``'+'``" msgstr "" -"متنی که ارائه داده اید قابل شناسایی یا ترجمه به زبان فارسی نیست، لطفاً متن " -"صحیح و قابل فهمی از مستندات رسمی پایتون ارائه دهید تا بتوانم آن را برای شما " -"ترجمه کنم." +"متأسفم، متن مشخصی برای ترجمه ارائه نشده است. لطفاً متن اصلی را که مایلید به " +"فارسی ترجمه شود، ارسال کنید." #: ../../library/functions.rst:1365 #, fuzzy msgid "open for updating (reading and writing)" -msgstr "باز کردن برای بروزرسانی (خواندن و نوشتن)" +msgstr "باز برای به روزرسانی (خواندن و نوشتن)" #: ../../library/functions.rst:1368 #, fuzzy @@ -3094,9 +3055,9 @@ msgid "" "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and" " ``'r+b'`` open the file with no truncation." msgstr "" -"حالت پیش فرض ``'r'`` است (برای خواندن متن باز می شود، مترادف با ``'rt'``). " -"حالت های ``'w+'`` و ``'w+b'`` فایل را باز و محتوای آن را حذف می کنند. حالت " -"های ``'r+'`` و ``'r+b'`` فایل را بدون حذف محتوا باز می کنند." +"حالت پیش فرض ``'r'`` است (باز کردن برای خواندن متن، مترادف ``'rt'``). حالت " +"های ``'w+'`` و ``'w+b'`` فایل را باز و محتوای آن را حذف می کنند. حالت های " +"``'r+'`` و ``'r+b'`` فایل را بدون حذف کردن باز می کنند." #: ../../library/functions.rst:1372 #, fuzzy @@ -3109,13 +3070,14 @@ msgid "" "having been first decoded using a platform-dependent encoding or using the " "specified *encoding* if given." msgstr "" -"همانطور که در :ref:`io-overview` ذکر شده است، پایتون بین ورودی/خروجی باینری " -"و متنی تفاوت قائل است. فایل هایی که در حالت باینری باز می شوند (شامل ``'b'``" -" در آرگومان *mode*) محتوای خود را به صورت اشیاء :class:`bytes` بدون هیچگونه " -"رمزگشایی برمی گردانند. در حالت متنی (پیش فرض یا زمانی که ``'t'`` در آرگومان " -"*mode* گنجانده شده است)، محتوای فایل به صورت :class:`str` برمی گردد و این " -"بایت ها ابتدا با استفاده از کدگذاری وابسته به پلتفرم رمزگشایی می شوند یا از " -"*encoding* مشخص شده در صورت وجود، استفاده می شود." +"همانطور که در :ref:`io-overview` ذکر شد، پایتون بین I/O باینری و متنی تمایز " +"قائل می شود. فایل هایی که در حالت باینری باز می شوند (از جمله زمانی که " +"``'b'`` در آرگومان *mode* قرار دارد) محتویات را به صورت اشیاء :class:`bytes`" +" بدون هیچ فرایند کدگشایی برمی گردانند. در حالت متنی (که به صورت پیش فرض است " +"یا زمانی که ``'t'`` در آرگومان *mode* گنجانده شده است)، محتویات فایل به صورت" +" :class:`str` برگردانده می شود؛ به شرطی که بایت ها ابتدا با استفاده از " +"کدگشایی وابسته به پلتفرم یا با استفاده از *encoding* مشخص شده (در صورت " +"تعیین) رمزگشایی شوند." #: ../../library/functions.rst:1382 #, fuzzy @@ -3124,8 +3086,8 @@ msgid "" "files; all the processing is done by Python itself, and is therefore " "platform-independent." msgstr "" -"پایتون به مفهوم فایل های متنی در سیستم عامل زیرین وابسته نیست؛ تمامی پردازش" -" توسط خود پایتون انجام می شود و بنابراین مستقل از پلتفرم است." +"پایتون وابسته به مفهوم فایل های متنی سیستم عامل زیرین نیست؛ تمامی پردازش ها " +"توسط خود پایتون انجام می شود و به همین دلیل مستقل از پلتفرم است." #: ../../library/functions.rst:1386 #, fuzzy @@ -3141,8 +3103,16 @@ msgid "" "*buffering* argument is given, the default buffering policy works as " "follows:" msgstr "" -"\n" -"*buffering* یک عدد صحیح اختیاری است که برای تنظیم سیاست بافر استفاده می شود. مقدار 0 را برای غیرفعال کردن بافرینگ (فقط در حالت باینری مجاز است) و 1 برای انتخاب بافرینگ خطی (فقط در حالت نوشتن متنی قابل استفاده است) و یک عدد صحیح بزرگتر از 1 برای تعیین اندازه بافر ثابت به بایت وارد کنید. توجه داشته باشید که تعیین اندازه بافر به این شکل برای I/O بافر شده باینری اعمال می شود، اما ``TextIOWrapper`` (یعنی فایل هایی که با ``mode='r+'`` باز می شوند) دارای بافر دیگری خواهند بود. برای غیرفعال کردن بافر در ``TextIOWrapper``، از پرچم ``write_through`` برای :func:`io.TextIOWrapper.reconfigure` استفاده کنید. هنگامی که هیچ آرگومان *buffering* ارائه نمی شود، سیاست بافر پیش فرض به صورت زیر عمل می کند:" +"*buffering* یک عدد صحیح اختیاری است که برای تنظیم سیاست بافر استفاده می شود." +" مقدار 0 را برای خاموش کردن بافر (فقط در حالت باینری مجاز است) و 1 برای " +"انتخاب بافر خط (فقط زمانی که در حالت متنی نوشتن انجام می شود قابل استفاده " +"است)، و یک عدد صحیح > 1 را برای نشان دادن اندازه به بایت های یک بافر ثابت " +"استفاده کنید. توجه داشته باشید که تعیین اندازه بافر به این صورت برای I/O " +"بافر باینری اعمال می شود، اما ``TextIOWrapper`` (یعنی فایل هایی که با " +"``mode='r+'`` باز می شوند) بافر متفاوتی خواهد داشت. برای غیرفعال کردن بافر " +"در ``TextIOWrapper``، در نظر داشته باشید که از پرچم ``write_through`` برای " +":func:`io.TextIOWrapper.reconfigure` استفاده کنید. زمانی که هیچ آرگومان " +"*buffering* داده نمی شود، سیاست بافر به صورت پیش فرض به شکل زیر کار می کند:" #: ../../library/functions.rst:1396 #, fuzzy @@ -3152,10 +3122,10 @@ msgid "" " size\" and falling back on :const:`io.DEFAULT_BUFFER_SIZE`. On many " "systems, the buffer will typically be 4096 or 8192 bytes long." msgstr "" -"فایل های باینری در قطعات با اندازه ثابت بافر می شوند؛ اندازه بافر با استفاده" -" از روشی تجربی انتخاب می شود که تلاش می کند «block size» دستگاه زیربنایی را " -"تعیین کند و در نهایت به :const:`io.DEFAULT_BUFFER_SIZE` می رسد. در بسیاری از" -" سیستم ها، اندازه بافر معمولاً 4096 یا 8192 بایت طول دارد." +"فایل های باینری به صورت تکه های با اندازه ثابت بافر می شوند؛ اندازه بافر با " +"استفاده از یک روش حدسی انتخاب می شود که سعی در تعیین \"اندازه بلوک\" دستگاه " +"زیرین دارد و به :const:`io.DEFAULT_BUFFER_SIZE` بازمی گردد. در بسیاری از " +"سیستم ها، بافر معمولاً 4096 یا 8192 بایت طول دارد." #: ../../library/functions.rst:1401 #, fuzzy @@ -3164,9 +3134,9 @@ msgid "" "returns ``True``) use line buffering. Other text files use the policy " "described above for binary files." msgstr "" -"فایل های متنی \"تعاملی\" (فایل هایی که برای آنها :meth:`~io.IOBase.isatty` " -"مقدار ``True`` را برمی گرداند) از بافرینگ خطی استفاده می کنند. سایر فایل های" -" متنی از سیاست توصیف شده در بالا برای فایل های باینری استفاده می کنند." +"فایل های متنی \"تعامل پذیر\" (فایل هایی که :meth:`~io.IOBase.isatty` برگشت " +"``True`` دارند) از بافر خط استفاده می کنند. دیگر فایل های متنی از سیاست شرح " +"داده شده در بالا برای فایل های باینری استفاده می کنند." #: ../../library/functions.rst:1405 #, fuzzy @@ -3177,11 +3147,11 @@ msgid "" " encoding` supported by Python can be used. See the :mod:`codecs` module for" " the list of supported encodings." msgstr "" -"نام رمزگذاری *encoding* برای رمزگشایی یا رمزگذاری فایل استفاده می شود. این " -"باید فقط در حالت متنی استفاده شود. رمزگذاری پیش فرض به پلتفرم وابسته است " -"(هرچه :func:`locale.getencoding` برمی گرداند)، اما هر :term:`text encoding` " -"که توسط پایتون پشتیبانی می شود، قابل استفاده است. برای لیست رمزگذاری های " -"پشتیبانی شده به ماژول :mod:`codecs` مراجعه کنید." +"*encoding* نام کدگذاری است که برای رمزگشایی یا رمزگذاری فایل استفاده می شود." +" این باید فقط در حالت متنی به کار برده شود. کدگذاری پیش فرض بستگی به پلتفرم " +"دارد (هر چه :func:`locale.getencoding` برگرداند)، اما هر :term:`text " +"encoding` که توسط پایتون پشتیبانی شود می تواند استفاده شود. فهرست کدگذاری " +"های پشتیبانی شده را در ماژول :mod:`codecs` ببینید." #: ../../library/functions.rst:1411 #, fuzzy @@ -3192,12 +3162,11 @@ msgid "" "though any error handling name that has been registered with " ":func:`codecs.register_error` is also valid. The standard names include:" msgstr "" -"*errors* یک رشته اختیاری است که مشخص می کند چگونه می بایست خطاهای رمزگذاری و" -" رمزگشایی مدیریت شوند—این نمی تواند در حالت باینری استفاده شود. مجموعه ای از" -" مدیریت کننده های خطای استاندارد موجود است (تحت عنوان :ref:`error-handlers` " -"فهرست شده اند)، هرچند هر نام مدیریت خطایی که با " -":func:`codecs.register_error` ثبت شده باشد نیز معتبر است. نام های استاندارد " -"شامل موارد زیر هستند:" +"*errors* یک رشته اختیاری است که مشخص می کند چگونه خطاهای کدگذاری و رمزگشایی " +"باید مدیریت شوند—این نمی تواند در حالت باینری استفاده شود. تعدادی از مدیریت " +"کننده های خطای استاندارد موجود هستند (در زیر :ref:`error-handlers` لیست شده " +"اند)، اگرچه هر نام مدیریت خطایی که با :func:`codecs.register_error` ثبت شده " +"باشد نیز معتبر است. اسامی استاندارد شامل موارد زیر هستند:" #: ../../library/functions.rst:1419 #, fuzzy @@ -3205,8 +3174,8 @@ msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." msgstr "" -"برای بالا بردن یک استثنای :exc:`ValueError` در صورت وقوع خطای رمزگذاری. " -"مقدار پیش فرض ``None`` دارای همان اثر است." +"برای ایجاد یک استثنای :exc:`ValueError` در صورت بروز خطای کدگذاری، از " +"``'strict'`` استفاده کنید. مقدار پیش فرض ``None`` تأثیر مشابهی دارد." #: ../../library/functions.rst:1423 #, fuzzy @@ -3215,7 +3184,7 @@ msgid "" " data loss." msgstr "" "``'ignore'`` خطاها را نادیده می گیرد. توجه داشته باشید که نادیده گرفتن " -"خطاهای کدگذاری می تواند منجر به از دست دادن داده ها شود." +"خطاهای رمزگذاری می تواند منجر به از دست رفتن داده ها شود." #: ../../library/functions.rst:1426 #, fuzzy @@ -3223,8 +3192,8 @@ msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." msgstr "" -"``'replace'`` باعث می شود که یک نشانگر جایگزین (مانند ``'?'``) در مواردی که " -"داده ها ناقص هستند، درج شود." +"``'replace'`` باعث می شود که یک نشانگر جایگزین (مانند ``'?'``) در جایی که " +"داده های ناقص وجود دارد، درج شود." #: ../../library/functions.rst:1429 #, fuzzy @@ -3235,10 +3204,10 @@ msgid "" "handler is used when writing data. This is useful for processing files in " "an unknown encoding." msgstr "" -"``'surrogateescape'`` هر بایت نادرستی را به عنوان واحدهای کد جانشین پایین از" -" U+DC80 تا U+DCFF نشان می دهد. سپس این واحدهای کد جانشین در هنگام نوشتن داده" -" با استفاده از ``surrogateescape`` به همان بایت ها تبدیل می شوند. این برای " -"پردازش فایل هایی با کدگذاری نامشخص مفید است." +"کد نادرست به عنوان واحدهای کد جانشینی پایین در محدوده U+DC80 تا U+DCFF نمایش" +" داده می شود. این واحدهای کد جانشینی سپس با استفاده از مدیریت خطای " +"``surrogateescape``، هنگام نوشتن داده ها دوباره به بایت های اصلی تبدیل می " +"شوند. این روش برای پردازش فایل ها با کدگذاری نامشخص مفید است." #: ../../library/functions.rst:1436 #, fuzzy @@ -3247,9 +3216,9 @@ msgid "" " not supported by the encoding are replaced with the appropriate XML " "character reference :samp:`&#{nnn};`." msgstr "" -"وقتی که اطلاعات به یک فایل نوشته می شود، ``'xmlcharrefreplace'`` تنها در این" -" حالت پشتیبانی می شود. کاراکترهایی که توسط کدگذاری پشتیبانی نمی شوند، با " -"مرجع کاراکتر XML مناسب جایگزین می گردند، به شکل :samp:`&#{nnn};`." +"``'xmlcharrefreplace'`` تنها زمانی پشتیبانی می شود که به یک فایل نوشته می " +"شود. کاراکترهایی که توسط انکودینگ پشتیبانی نمی شوند با مرجع کاراکتر XML " +"مناسب جایگزین می شوند :samp:`&#{nnn};`." #: ../../library/functions.rst:1440 #, fuzzy @@ -3257,8 +3226,8 @@ msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." msgstr "" -"``'backslashreplace'`` داده های ناقص را با توالی های فرار backslashed پایتون" -" جایگزین می کند." +"``'backslashreplace'`` داده های مخدوش را با دنباله های فرار backslashed " +"پایتون جایگزین می کند." #: ../../library/functions.rst:1443 #, fuzzy @@ -3266,9 +3235,9 @@ msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." msgstr "" -"``'namereplace'`` (فقط هنگامی که در حال نوشتن هستید پشتیبانی می شود) " -"کاراکترهای غیرپشتیبانی شده را با دنباله هایی به شکل ``\\N{...}`` جایگزین می " -"کند." +"با استفاده از ``'namereplace'``، شما می توانید کاراکترهایی که در محیط مورد نظر پشتیبانی نمی شوند را با توالی های گریز ``\\N{...}`` جایگزین کنید. این روش زمانی مفید است که بخواهید مطمئن شوید که تمام کاراکترها به درستی انتقال داده می شوند یا در زمانی که نیاز دارید تا کاراکترهای مشخصی را از طریق پروتکلی منتقل کنید که آن ها را پشتیبانی نمی کند. \n" +"\n" +"این کلیدواژه می تواند به شکل زیر استفاده شود::" #: ../../library/functions.rst:1451 #, fuzzy @@ -3277,9 +3246,9 @@ msgid "" " be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " "follows:" msgstr "" -"*newline* تعیین می کند که چگونه کاراکترهای خط جدید از جریان تحلیل شوند. می " -"تواند ``None``، ``''``، ``'\\n'``، ``'\\r'``، و ``'\\r\\n'`` باشد. عملکرد آن" -" به این صورت است:" +"*newline* تعیین می کند که چگونه کاراکترهای خط جدید از جریان تجزیه شوند. می " +"تواند ``None``، ``''``، ``'\\n'``، ``'\\r'``، و ``'\\r\\n'`` باشد. به صورت " +"زیر کار می کند:" #: ../../library/functions.rst:1455 #, fuzzy @@ -3293,13 +3262,12 @@ msgid "" "given string, and the line ending is returned to the caller untranslated." msgstr "" "هنگام خواندن ورودی از جریان، اگر *newline* برابر با ``None`` باشد، حالت خطوط" -" جدید جهانی فعال می شود. خطوط در ورودی می توانند با ``'\\n'``، ``'\\r'`` یا " -"``'\\r\\n'`` پایان یابند و این ها قبل از آن که به فراخواننده بازگردانده " -"شوند، به ``'\\n'`` ترجمه می شوند. اگر برابر با ``''`` باشد، حالت خطوط جدید " -"جهانی فعال می شود، اما پایان های خطوط به فراخواننده بدون ترجمه بازگردانده می" -" شوند. اگر دارای هر یک از مقادیر قانونی دیگر باشد، خطوط ورودی تنها با رشته ی" -" داده شده خاتمه می یابند و پایان خط به فراخواننده بدون ترجمه بازگردانده می " -"شود." +" جدید جهانی فعال می شود. خطوط در ورودی می توانند با ``'\\n'``، ``'\\r'``، یا" +" ``'\\r\\n'`` پایان یابند و این ها قبل از بازگرداندن به فراخواننده به " +"``'\\n'`` تبدیل می شوند. اگر ``''`` شود، حالت خطوط جدید جهانی فعال است، اما " +"پایان خطوط بدون ترجمه به فراخواننده بازگردانده می شود. اگر دارای هر یک از " +"مقادیر قانونی دیگر باشد، خطوط ورودی فقط با رشته داده شده خاتمه می یابند و " +"پایان خط بدون ترجمه به فراخواننده بازگردانده می شود." #: ../../library/functions.rst:1463 #, fuzzy @@ -3311,10 +3279,10 @@ msgid "" "characters written are translated to the given string." msgstr "" "هنگام نوشتن خروجی به جریان، اگر *newline* برابر با ``None`` باشد، هر کاراکتر" -" ``'\\n'`` نوشته شده به جداکننده خطوط پیش فرض سیستم، :data:`os.linesep`، " -"ترجمه می شود. اگر *newline* برابر با ``''`` یا ``'\\n'`` باشد، هیچ ترجمه ای " -"صورت نمی گیرد. اگر *newline* یکی از مقادیر قانونی دیگر باشد، هر کاراکتر " -"``'\\n'`` نوشته شده به رشته داده شده ترجمه می شود." +" ``'\\n'`` که نوشته شود، به جداکننده خط پیش فرض سیستم، یعنی " +":data:`os.linesep`، تبدیل می شود. اگر *newline* برابر با ``''`` یا ``'\\n'``" +" باشد، هیچ تبدیلی صورت نمی گیرد. اگر *newline* هر یک از مقادیر قانونی دیگر " +"باشد، هر کاراکتر ``'\\n'`` که نوشته شود، به رشته داده شده تبدیل می شود." #: ../../library/functions.rst:1469 #, fuzzy @@ -3324,10 +3292,10 @@ msgid "" "closed. If a filename is given *closefd* must be ``True`` (the default); " "otherwise, an error will be raised." msgstr "" -"اگر *closefd* مقدار ``False`` باشد و یک فایل دسکریپتور به جای نام فایل داده " -"شده باشد، فایل دسکریپتور زیربنایی هنگامی که فایل بسته می شود باز باقی خواهد " -"ماند. اگر نام فایل داده شود، *closefd* باید مقدار ``True`` (که به صورت پیش " -"فرض است) باشد؛ در غیر این صورت، خطایی رخ خواهد داد." +"اگر *closefd* برابر ``False`` باشد و به جای نام فایل یک توصیف گر فایل داده " +"شود، توصیف گر فایل زیرین زمانی که فایل بسته می شود باز نگه داشته خواهد شد. " +"اگر یک نام فایل داده شود، *closefd* باید برابر ``True`` (پیش فرض) باشد؛ در " +"غیر این صورت، خطا رخ خواهد داد." #: ../../library/functions.rst:1474 #, fuzzy @@ -3339,15 +3307,15 @@ msgid "" "similar to passing ``None``)." msgstr "" "یک بازکننده سفارشی می تواند با ارسال یک تابع قابل فراخوانی به عنوان *opener*" -" استفاده شود. سپس توصیف گر فایل اصلی برای شیء فایل با فراخوانی *opener* با " -"(*file*, *flags*) به دست می آید. *opener* باید یک توصیف گر فایل باز را " -"بازگرداند (ارسال :mod:`os.open` به عنوان *opener* منجر به عملکردی مشابه با " -"ارسال ``None`` می شود)." +" مورد استفاده قرار گیرد. شناسه فایل زیرین برای شیء فایل سپس با خواندن " +"*opener* با (*file*, *flags*) به دست می آید. *opener* باید یک شناسه فایل باز" +" را باز گرداند (فرستادن :mod:`os.open` به عنوان *opener* به معنای عملیاتی " +"مشابه با ارسال ``None`` است)." #: ../../library/functions.rst:1480 #, fuzzy msgid "The newly created file is :ref:`non-inheritable `." -msgstr "فایل ایجاد شده جدید :ref:`non-inheritable ` است." +msgstr "فایل تازه ایجاد شده :ref:`non-inheritable ` است." #: ../../library/functions.rst:1482 #, fuzzy @@ -3355,8 +3323,8 @@ msgid "" "The following example uses the :ref:`dir_fd ` parameter of the " ":func:`os.open` function to open a file relative to a given directory::" msgstr "" -"مثال زیر از پارامتر :ref:`dir_fd ` تابع :func:`os.open` برای باز " -"کردن یک فایل نسبت به یک دایرکتوری مشخص استفاده می کند::" +"مثال زیر از پارامتر :ref:`dir_fd ` تابع :func:`os.open` استفاده می " +"کند تا فایلی را نسبت به یک دایرکتوری مشخص باز کند::" #: ../../library/functions.rst:1485 #, fuzzy @@ -3371,17 +3339,15 @@ msgid "" "...\n" ">>> os.close(dir_fd) # don't leak a file descriptor" msgstr "" -"```python\n" ">>> import os\n" ">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" ">>> def opener(path, flags):\n" "... return os.open(path, flags, dir_fd=dir_fd)\n" "...\n" ">>> with open('spamspam.txt', 'w', opener=opener) as f:\n" -"... print('این در somedir/spamspam.txt نوشته خواهد شد', file=f)\n" +"... print('This will be written to somedir/spamspam.txt', file=f)\n" "...\n" -">>> os.close(dir_fd) # از نشت یک توصیف گر فایل جلوگیری کنید\n" -"```" +">>> os.close(dir_fd) # درز ندهید یک شناسه فایل" #: ../../library/functions.rst:1495 #, fuzzy @@ -3398,18 +3364,17 @@ msgid "" "is disabled, the raw stream, a subclass of :class:`io.RawIOBase`, " ":class:`io.FileIO`, is returned." msgstr "" -"نوع :term:`file object` که توسط تابع :func:`open` برگردانده می شود به حالت " -"بستگی دارد. وقتی :func:`open` برای باز کردن یک فایل در حالت متنی (``'w'``، " +"نوع :term:`file object` که توسط تابع :func:`open` برگردانده می شود بستگی به " +"حالت دارد. وقتی :func:`open` برای باز کردن یک فایل در حالت متنی (``'w'``، " "``'r'``، ``'wt'``، ``'rt'``، و غیره) استفاده می شود، یک زیرکلاس از " ":class:`io.TextIOBase` (به طور خاص :class:`io.TextIOWrapper`) را برمی " -"گرداند. هنگامی که برای باز کردن یک فایل در حالت باینری با بافر استفاده می " -"شود، کلاس بازگردانده شده یک زیرکلاس از :class:`io.BufferedIOBase` است. کلاس " -"دقیق متغیر است: در حالت خواندن باینری، یک :class:`io.BufferedReader` برمی " -"گرداند؛ در حالت های نوشتن باینری و افزودن باینری، یک " -":class:`io.BufferedWriter` برمی گرداند، و در حالت خواندن/نوشتن، یک " -":class:`io.BufferedRandom` برمی گرداند. هنگامی که بافر غیرفعال است، جریان " -"خام، که یک زیرکلاس از :class:`io.RawIOBase`، :class:`io.FileIO` است، " -"برگردانده می شود." +"گرداند. وقتی برای باز کردن یک فایل در حالت باینری با بافرینگ استفاده می شود،" +" کلاس بازگشتی یک زیرکلاس از :class:`io.BufferedIOBase` است. کلاس دقیق متفاوت" +" است: در حالت خواندن باینری، یک :class:`io.BufferedReader` را برمی گرداند؛ " +"در حالت های نوشتن باینری و افزودن باینری، یک :class:`io.BufferedWriter` را " +"برمی گرداند و در حالت خواندن/نوشتن، یک :class:`io.BufferedRandom` را برمی " +"گرداند. وقتی بافرینگ غیرفعال است، جریان خام که یک زیرکلاس از " +":class:`io.RawIOBase`، :class:`io.FileIO` است، برگردانده می شود." #: ../../library/functions.rst:1516 #, fuzzy @@ -3418,9 +3383,9 @@ msgid "" "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, " ":mod:`tempfile`, and :mod:`shutil`." msgstr "" -"همچنین ماژول های مربوط به مدیریت فایل ها مانند :mod:`fileinput`، :mod:`io` " -"(که در آن :func:`open` تعریف شده است)، :mod:`os`، :mod:`os.path`، " -":mod:`tempfile` و :mod:`shutil` را ببینید." +"همچنین به ماژول های مدیریت فایل مانند :mod:`fileinput`، :mod:`io` (که در آن " +":func:`open` تعریف شده است)، :mod:`os`، :mod:`os.path`، :mod:`tempfile`، و " +":mod:`shutil` مراجعه کنید." #: ../../library/functions.rst:1520 #, fuzzy @@ -3437,8 +3402,8 @@ msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from" " the original call." msgstr "" -"استدلال ها «``mode``» و «``flags``» ممکن است از فراخوانی اصلی تغییر کرده یا " -"استنتاج شده باشند." +"ممکن است آرگومان های ``mode`` و ``flags`` از تماس اصلی تغییر کرده یا استنباط" +" شده باشند." #: ../../library/functions.rst:1527 #, fuzzy @@ -3455,8 +3420,8 @@ msgstr "حالت ``'x'`` اضافه شد." msgid "" ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" -"خطای :exc:`IOError` که پیش تر فراخوانی می شد، اکنون به عنوان یک نام مستعار " -"برای :exc:`OSError` استفاده می شود." +"خطای :exc:`IOError` که قبلاً ایجاد می شد، اکنون به عنوان یک نام مستعار برای " +":exc:`OSError` است." #: ../../library/functions.rst:1530 #, fuzzy @@ -3464,13 +3429,13 @@ msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." msgstr "" -"اگر فایل در حالت \"ایجاد انحصاری\" باز شده باشد و از قبل وجود داشته باشد، " -"اکنون :exc:`FileExistsError` ایجاد می شود." +"اگر فایلی که در حالت ایجاد انحصاری (``'x'``) باز شده است قبلاً وجود داشته " +"باشد، خطای :exc:`FileExistsError` اکنون فراخوانی می شود." #: ../../library/functions.rst:1535 #, fuzzy msgid "The file is now non-inheritable." -msgstr "فایل اکنون غیر قابل به ارث بردن است." +msgstr "فایل اکنون غیرقابل ارث بری است." #: ../../library/functions.rst:1539 #, fuzzy @@ -3479,21 +3444,21 @@ msgid "" "exception, the function now retries the system call instead of raising an " ":exc:`InterruptedError` exception (see :pep:`475` for the rationale)." msgstr "" -"اگر فراخوانی سیستم قطع شود و \"signal handler\" استثنایی ایجاد نکند، تابع " -"اکنون تلاش مجددی برای فراخوانی سیستم خواهد داشت به جای این که استثناء " -":exc:`InterruptedError` را ایجاد کند (برای دلایل بیشتر به :pep:`475` مراجعه " -"کنید)." +"اگر فراخوانی سیستم قطع شود و کنترل کننده سیگنال استثنایی را ایجاد نکند، این " +"تابع اکنون فراخوانی سیستم را مجدداً تلاش می کند، به جای اینکه یک استثنای " +":exc:`InterruptedError` ایجاد کند (برای درک دلیل به :pep:`475` مراجعه کنید)." #: ../../library/functions.rst:1542 #, fuzzy msgid "The ``'namereplace'`` error handler was added." -msgstr "مدیر خطای ``'namereplace'`` اضافه شد." +msgstr "مدیریت خطای ``'namereplace'`` اضافه شد." #: ../../library/functions.rst:1546 #, fuzzy msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" -"پشتیبانی از اشیائی که :class:`os.PathLike` را پیاده سازی می کنند اضافه شد." +"پشتیبانی از پذیرش اشیایی که پیاده سازی `:class:`os.PathLike`` را دارند اضافه" +" شد." #: ../../library/functions.rst:1547 #, fuzzy @@ -3501,8 +3466,8 @@ msgid "" "On Windows, opening a console buffer may return a subclass of " ":class:`io.RawIOBase` other than :class:`io.FileIO`." msgstr "" -"در ویندوز، باز کردن یک بافر کنسول ممکن است زیرکلاسی از " -"`:class:`io.RawIOBase`` را برگرداند که متفاوت از `:class:`io.FileIO`` است." +"در ویندوز، باز کردن یک بافر کنسول ممکن است زیربخشی از :class:`io.RawIOBase` " +"به جز :class:`io.FileIO` را برگرداند." #: ../../library/functions.rst:1550 #, fuzzy @@ -3517,10 +3482,10 @@ msgid "" "``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign) returns" " ``8364``. This is the inverse of :func:`chr`." msgstr "" -"با توجه به یک رشته که یک کاراکتر یونیکد را نشان می دهد، یک عدد صحیح که نقطه " -"کد یونیکد آن کاراکتر را نشان می دهد برمی گرداند. برای مثال، `ord('A')` عدد " -"صحیح `65` را برمی گرداند و `ord('€')` (علامت یورو) عدد `8364` را برمی " -"گرداند. این معکوس `chr()` است." +"با توجه به یک رشته که نشان دهنده ی یک نویسه ی یونیکد است، یک عدد صحیح که " +"نشان دهنده ی کد پوینت یونیکد آن نویسه است را برمی گرداند. برای مثال، " +"``ord('a')`` عدد صحیح ``97`` را برمی گرداند و ``ord('€')`` (علامت یورو) عدد " +"``8364`` را برمی گرداند. این روش معکوس :func:`chr` است." #: ../../library/functions.rst:1563 #, fuzzy @@ -3530,10 +3495,10 @@ msgid "" " mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the" " power operator: ``base**exp``." msgstr "" -"*base* را به توان *exp* برگردانید؛ اگر *mod* موجود باشد، *base* را به توان " -"*exp* برگردانید، به صورت ماژولوی *mod* (محاسبه شده به طور کارآمدتر از " -"``pow(base, exp) % mod``). فرم دو آرگومانی ``pow(base, exp)`` معادل استفاده " -"از عملگر توان است: ``base**exp``." +"*base* به توان *exp* برمی گرداند؛ اگر *mod* موجود باشد، *base* به توان *exp*" +" را برگردانده و سپس بر *mod* تقسیم می کند (به صورت کارآمدتر از ``pow(base, " +"exp) % mod`` محاسبه می شود). فرم دو آرگومانی ``pow(base, exp)`` معادل " +"استفاده از عملگر توان است: ``base**exp``." #: ../../library/functions.rst:1568 #, fuzzy @@ -3550,17 +3515,17 @@ msgid "" ":class:`float` with an integral exponent, a float result is delivered. For " "example, ``pow(-9, 2.0)`` returns ``81.0``." msgstr "" -"استدلال ها باید از انواع عددی باشند. با انواع عملوند مختلط، قوانین تبدیل " -"برای عملگرهای حسابی دودویی اعمال می شوند. برای عملوندهای `:class:`int``، " -"نتیجه دارای همان نوع عملوندها (پس از تبدیل) است، مگر این که آرگمان دوم منفی " -"باشد؛ در این صورت، همه استدلال ها به نوع `float` تبدیل می شوند و نتیجه ای از" -" نوع `float` ارائه می شود. برای مثال، ```pow(10, 2)``` نتیجه ```100``` می " -"دهد، اما ```pow(10, -2)``` نتیجه ```0.01``` می دهد. برای پایه منفی از نوع " -"`:class:`int`` یا `:class:`float`` و نما غیر صحیح، نتیجه پیچیده ای ارائه می " -"شود. برای مثال، ```pow(-9, 0.5)``` مقداری نزدیک به ```3j``` را برمی گرداند. " -"در حالی که، برای پایه منفی از نوع `:class:`int`` یا `:class:`float`` با نمای" -" صحیح، نتیجه ای از نوع `float` ارائه می شود. برای مثال، ```pow(-9, 2.0)``` " -"نتیجه ```81.0``` را برمی گرداند." +"استدلال ها باید از نوع عددی باشند. با انواع عملوندهای مختلط، قوانین تبدیل " +"نوع برای عملگرهای حسابی دودویی اعمال می شود. برای عملوندهای :class:`int`، " +"نتیجه همان نوع عملوندها را دارد (پس از تبدیل نوع)، مگر اینکه استدلال دوم " +"منفی باشد؛ در این صورت، تمام استدلال ها به float تبدیل می شوند و یک نتیجه " +"float ارائه می شود. به عنوان مثال، ``pow(10, 2)`` به ``100`` ختم می شود، اما" +" ``pow(10, -2)`` به ``0.01`` ختم می شود. برای یک پایه منفی از نوع " +":class:`int` یا :class:`float` و توان غیر صحیح، یک نتیجه مختلط ارائه می شود." +" به عنوان مثال، ``pow(-9, 0.5)`` به مقداری نزدیک به ``3j`` برمی گردد. در " +"حالی که، برای یک پایه منفی از نوع :class:`int` یا :class:`float` با توان " +"صحیح، یک نتیجه float ارائه می شود. برای مثال، ``pow(-9, 2.0)`` به ``81.0`` " +"ختم می شود." #: ../../library/functions.rst:1580 #, fuzzy @@ -3571,17 +3536,17 @@ msgid "" "``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " "*base* modulo *mod*." msgstr "" -"برای عملوندهای :class:`int` یعنی *base* و *exp*، اگر *mod* موجود باشد، *mod*" -" باید از نوع عدد صحیح باشد و *mod* نباید صفر باشد. اگر *mod* وجود داشته باشد" -" و *exp* منفی باشد، *base* باید نسبت به *mod* اول باشد. در آن صورت، " -"``pow(inv_base, -exp, mod)`` بازگردانده می شود، جایی که *inv_base* یک معکوس " -"برای *base* به پیمانه *mod* است." +"برای عملوندهای :class:`int`، *base* و *exp*، اگر *mod* حضور داشته باشد، " +"*mod* نیز باید از نوع عدد صحیح باشد و *mod* نباید صفر باشد. اگر *mod* حضور " +"داشته باشد و *exp* منفی باشد، *base* باید نسبت به *mod* اول باشند. در این " +"صورت، ``pow(inv_base, -exp, mod)`` بازگردانده می شود، جایی که *inv_base* " +"معکوس *base* به پیمانه *mod* است." #: ../../library/functions.rst:1586 #, fuzzy msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" -"در اینجا مثالی از محاسبه معکوس برای ``38`` به پیمانه ``97`` آمده است::" +"در اینجا مثالی از محاسبه معکوس برای ``38`` به پیمانه ``97`` آورده شده است::" #: ../../library/functions.rst:1588 #, fuzzy @@ -3591,12 +3556,10 @@ msgid "" ">>> 23 * 38 % 97 == 1\n" "True" msgstr "" -"```python\n" ">>> pow(38, -1, mod=97)\n" "23\n" ">>> 23 * 38 % 97 == 1\n" -"True\n" -"```" +"True" #: ../../library/functions.rst:1593 #, fuzzy @@ -3604,8 +3567,8 @@ msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the" " second argument to be negative, permitting computation of modular inverses." msgstr "" -"برای عملوندهای :class:`int`، فرم سه پارامتری ``pow`` اکنون اجازه می دهد که " -"آرگومان دوم منفی باشد و محاسبه ی معکوس های مدولار را ممکن می سازد." +"برای عملوندهای :class:`int`، قالب سه پارامتری ``pow`` اکنون اجازه می دهد که " +"آرگومان دوم منفی باشد، که محاسبه معکوس های ماژولار را ممکن می سازد." #: ../../library/functions.rst:1598 #, fuzzy @@ -3613,7 +3576,7 @@ msgid "" "Allow keyword arguments. Formerly, only positional arguments were " "supported." msgstr "" -"استفاده از آرگومان های کلیدی را ممکن کنید. قبلاً فقط آرگومان های موقعیتی " +"اجازه به استفاده از آرگومان های کلمه کلیدی. قبلاً فقط آرگومان های موقعیتی " "پشتیبانی می شدند." #: ../../library/functions.rst:1605 @@ -3623,9 +3586,9 @@ msgid "" "by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " "keyword arguments." msgstr "" -"متن *objects* را به جریان متنی *file* چاپ کن، که با *sep* جدا شده و با *end*" -" دنبال می شود. *sep*، *end*، *file* و *flush*، در صورت وجود، باید به صورت " -"آرگومان های کلیدی داده شوند." +"متن *objects* را به جریان متنی *file* چاپ کن، جدا شده توسط *sep* و به دنبال " +"آن *end*. *sep*, *end*, *file*, و *flush*، اگر موجود باشند، باید به عنوان " +"آرگومان های کلمه کلیدی داده شوند." #: ../../library/functions.rst:1609 #, fuzzy @@ -3636,11 +3599,11 @@ msgid "" "use the default values. If no *objects* are given, :func:`print` will just " "write *end*." msgstr "" -"همه آرگومان های بدون کلیدواژه به رشته ها تبدیل می شوند همانطور که " -":func:`str` انجام می دهد و به جریان داده ها نوشته می شوند، با *sep* جدا می " -"شوند و با *end* دنبال می شوند. هر دو *sep* و *end* باید رشته باشند؛ همچنین " -"می توانند ``None`` باشند، که به معنای استفاده از مقادیر پیش فرض است. اگر هیچ" -" *objects* داده نشود، :func:`print` فقط *end* را خواهد نوشت." +"تمام آرگومان های غیر کلیدی مانند :func:`str` به رشته ها تبدیل شده و به جریان" +" نوشته می شوند، که با *sep* از هم جدا شده و به دنبال آن *end* می آید. هر دو " +"*sep* و *end* باید رشته باشند؛ آنها می توانند همچنین ``None`` باشند، که به " +"معنای استفاده از مقادیر پیش فرض است. اگر هیچ *objects* داده نشود، " +":func:`print` تنها *end* را خواهد نوشت." #: ../../library/functions.rst:1615 #, fuzzy @@ -3650,11 +3613,11 @@ msgid "" " arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" -"آرگومان *file* باید شیئی با متد ``write(string)`` باشد؛ اگر این متد وجود " -"نداشته باشد یا ``None`` باشد، :data:`sys.stdout` مورد استفاده قرار می گیرد. " -"از آنجا که آرگومان های چاپ شده به رشته های متنی تبدیل می شوند، :func:`print`" -" نمی تواند با اشیاء فایل در حالت باینری استفاده شود. برای این موارد، به جای " -"آن از ``file.write(...)`` استفاده کنید." +"آرگومان *file* بایستی یک شیء با متد ``write(string)`` باشد؛ اگر حضور نداشته " +"باشد یا ``None``، :data:`sys.stdout` استفاده خواهد شد. از آنجا که آرگومان " +"های چاپ شده به رشته های متنی تبدیل می شوند، :func:`print` نمی تواند با اشیاء" +" فایل در حالت باینری استفاده شود. برای این موارد، به جای آن از " +"``file.write(...)`` استفاده کنید." #: ../../library/functions.rst:1620 #, fuzzy @@ -3662,18 +3625,18 @@ msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." msgstr "" -"عملکرد بافر خروجی معمولاً توسط *file* تعیین می شود. با این حال، اگر *flush* " -"صحیح باشد، جریان به اجبار تخلیه می شود." +"بافرینگ خروجی معمولاً توسط *file* تعیین می شود. با این حال، اگر *flush* " +"برابر با true باشد، جریان به طور اجباری تخلیه می شود." #: ../../library/functions.rst:1624 #, fuzzy msgid "Added the *flush* keyword argument." -msgstr "یک آرگومان کلیدی به نام *flush* اضافه شد." +msgstr "کلیدواژه *flush* اضافه شد." #: ../../library/functions.rst:1630 #, fuzzy msgid "Return a property attribute." -msgstr "یک ویژگی خاصیت را برمی گرداند." +msgstr "یک ویژگی «property» را برمی گرداند." #: ../../library/functions.rst:1632 #, fuzzy @@ -3682,14 +3645,14 @@ msgid "" "for setting an attribute value. *fdel* is a function for deleting an " "attribute value. And *doc* creates a docstring for the attribute." msgstr "" -"*fget* یک تابع برای دریافت مقدار یک ویژگی است. *fset* یک تابع برای تنظیم " -"مقدار یک ویژگی است. *fdel* یک تابع برای حذف مقدار یک ویژگی است. و *doc* یک " -"docstring برای ویژگی ایجاد می کند." +"تابع *fget* برای دریافت مقدار یک ویژگی است. تابع *fset* برای تنظیم مقدار یک " +"ویژگی است. تابع *fdel* برای حذف مقدار یک ویژگی است. و *doc* یک رشته مستندات " +"برای ویژگی ایجاد می کند." #: ../../library/functions.rst:1636 #, fuzzy msgid "A typical use is to define a managed attribute ``x``::" -msgstr "استفاده معمول این است که یک صفت مدیریت شده به نام ``x`` تعریف شود::" +msgstr "استفاده معمول این است که یک ویژگی مدیریت شده ``x`` تعریف شود::" #: ../../library/functions.rst:1638 #, fuzzy @@ -3709,14 +3672,26 @@ msgid "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" msgstr "" -"کلاسی `C` که در کد مشاهده می کنید، دارای قابلیت مدیریت ویژگی ها است. در این کلاس:\n" +"کلاسی به نام C وجود دارد که در آن یک خصوصیت به نام `x` تعریف شده است. این خصوصیت به کمک توابع مخصوص به خود مقداردهی و حذف می شود و همچنین مقدار آن را بازمی گرداند. در این کلاس، خصوصیت `x` به روش زیر پیاده سازی شده است:\n" "\n" -"- ابتدا، با استفاده از متد `__init__` مقداردهی اولیه صورت می گیرد و متغیر خصوصی `_x` روی `None` تنظیم می شود.\n" -"- متد `getx` مقدار `_x` را برمی گرداند.\n" -"- متد `setx` امکان تنظیم مقدار جدیدی برای `_x` را فراهم می کند.\n" -"- متد `delx` متغیر `_x` را حذف می کند.\n" +"```python\n" +"class C:\n" +" def __init__(self):\n" +" self._x = None\n" +"\n" +" def getx(self):\n" +" return self._x\n" "\n" -"در نهایت، با استفاده از `property`، ویژگی `x` ایجاد می شود که شامل متدهای `getx`، `setx`، و `delx` است و توضیحی به صورت \"I'm the 'x' property.\" نیز برای آن قرار داده شده است." +" def setx(self, value):\n" +" self._x = value\n" +"\n" +" def delx(self):\n" +" del self._x\n" +"\n" +" x = property(getx, setx, delx, \"I'm the 'x' property.\")\n" +"```\n" +"\n" +"در اینجا، `property` به شکلی استفاده شده است که توابع `getx`, `setx` و `delx` را به عنوان دسترسی دهنده (accessor)، تنظیم کننده (mutator) و حذف کننده (deleter) مربوط به خصوصیت `x` تعریف می کند." #: ../../library/functions.rst:1653 #, fuzzy @@ -3724,9 +3699,8 @@ msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." msgstr "" -"اگر *c* مثالی از *C* باشد، ``c.x`` گیرنده را فراخوانی می کند، ``c.x = " -"value`` تنظیم کننده را فراخوانی می کند و ``del c.x`` حذف کننده را فراخوانی " -"می کند." +"اگر *c* یک نمونه از *C* باشد، ``c.x`` فراخوانی گر getter، ``c.x = value`` " +"فراخوانی گر setter، و ``del c.x`` فراخوانی گر deleter خواهد بود." #: ../../library/functions.rst:1656 #, fuzzy @@ -3736,11 +3710,11 @@ msgid "" "possible to create read-only properties easily using :func:`property` as a " ":term:`decorator`::" msgstr "" -"اگر داده شود، *doc* به عنوان داک استرینگ ویژگی آن خصیصه استفاده می شود. در " -"غیر این صورت، خصیصه داک استرینگ *fget* را (اگر وجود داشته باشد) کپی خواهد " -"کرد. این امکان را فراهم می کند که بتوان به راحتی با استفاده از " -":func:`property` به عنوان یک :term:`decorator` ویژگی های فقط خواندنی ایجاد " -"کرد::" +"اگر *doc* داده شود، به عنوان توضیحات مختصر (docstring) ویژگی (property " +"attribute) استفاده خواهد شد. در غیر این صورت، ویژگی توضیحات مختصر *fget* را " +"کپی می کند (اگر موجود باشد). این امکان را فراهم می کند که با استفاده از " +":func:`property` به عنوان یک :term:`decorator` به راحتی ویژگی های فقط " +"خواندنی ایجاد کرد::" #: ../../library/functions.rst:1660 #, fuzzy @@ -3760,7 +3734,7 @@ msgstr "" "\n" " @property\n" " def voltage(self):\n" -" \"\"\"ولتاژ فعلی را دریافت کنید.\"\"\"\n" +" \"\"\"ولتاژ فعلی را بگیر.\"\"\"\n" " return self._voltage" #: ../../library/functions.rst:1669 @@ -3770,9 +3744,9 @@ msgid "" "\"getter\" for a read-only attribute with the same name, and it sets the " "docstring for *voltage* to \"Get the current voltage.\"" msgstr "" -"دکوراتور ``@property``، متد :meth:`!voltage` را به یک \"getter\" برای یک " -"ویژگی فقط خواندنی با همان نام تبدیل می کند و docstring برای *voltage* را به " -"\"دریافت ولتاژ فعلی\" تنظیم می کند." +"دکوریتور ``@property`` متد :meth:`!voltage` را به یک \"getter\" برای یک " +"ویژگی فقط خواندنی با همان نام تبدیل می کند و مستندات (docstring) *voltage* " +"را به عبارت \"ولتاژ فعلی را بگیر\" تنظیم می کند." #: ../../library/functions.rst:1677 #, fuzzy @@ -3782,10 +3756,10 @@ msgid "" "accessor function set to the decorated function. This is best explained " "with an example:" msgstr "" -"یک شیء property دارای متدهای ``getter``، ``setter`` و ``deleter`` می باشد که" -" به عنوان دکوریتورهایی قابل استفاده هستند که یک نسخه ی کپی از property ایجاد" -" می کنند و تابع دسترسی مربوطه را به تابع دکوریت شده اختصاص می دهند. این " -"موضوع به بهترین شکل با یک مثال توضیح داده می شود:" +"یک شیء property دارای متدهای ``getter``، ``setter`` و ``deleter`` است که به " +"عنوان دکوریتورهایی استفاده می شوند و یک نسخه از property را با تابع دسترسی " +"دهنده مربوطه که به تابع دکوریت شده تنظیم شده است، ایجاد می کنند. این موضوع " +"با یک مثال بهتر توضیح داده می شود:" #: ../../library/functions.rst:1682 #, fuzzy @@ -3807,15 +3781,26 @@ msgid "" " def x(self):\n" " del self._x" msgstr "" -"کلاسی به نام `C` تعریف شده است. \n" +"کلاسی به نام `C` داریم که با استفاده از `property` مدیریت یک ویژگی را انجام می دهد. این کد شامل یک مقدار خصوصی `_x` است که به وسیله روش های `getter`، `setter` و `deleter` برای خاصیت `x` قابل دسترسی و تغییر است. \n" "\n" -"در تابع سازنده `__init__`، متغیری به نام `_x` با مقدار اولیه `None` ایجاد می شود.\n" +"کد به شکل زیر است::\n" +"\n" +"class C:\n" +" def __init__(self):\n" +" self._x = None\n" "\n" -"متُد `@property` به نام `x` تعریف شده است که با استفاده از این متُد، می توانیم به مقدار `_x` دسترسی پیدا کنیم. توضیح کوتاهی هم برای این متُد قرار داده شده است: \"من ویژگی 'x' هستم.\"\n" +" @property\n" +" def x(self):\n" +" \"\"\"I'm the 'x' property.\"\"\"\n" +" return self._x\n" "\n" -"متُدی به نام `@x.setter` وجود دارد که به ما اجازه می دهد تا یک مقدار جدید به `_x` اختصاص دهیم.\n" +" @x.setter\n" +" def x(self, value):\n" +" self._x = value\n" "\n" -"با استفاده از متُد `@x.deleter` می توانیم `_x` را حذف کنیم." +" @x.deleter\n" +" def x(self):\n" +" del self._x" #: ../../library/functions.rst:1701 #, fuzzy @@ -3824,8 +3809,8 @@ msgid "" "additional functions the same name as the original property (``x`` in this " "case.)" msgstr "" -"این کد دقیقاً معادل نمونه اول است. مطمئن شوید که به توابع اضافی همان نام " -"خاصیت اصلی (در اینجا ``x``) را بدهید." +"این کد دقیقاً معادل با مثال اول است. مطمئن شوید که به توابع اضافی همان نام " +"ویژگی اصلی (در این مورد ``x``) را بدهید." #: ../../library/functions.rst:1705 #, fuzzy @@ -3833,22 +3818,20 @@ msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and" " ``fdel`` corresponding to the constructor arguments." msgstr "" -"شیء ویژگی بازگردانده شده همچنین دارای خصوصیات ``fget``، ``fset`` و ``fdel`` " -"است که با آرگومان های سازنده مطابقت دارند." +"شیء ویژگی بازگشتی همچنین دارای خصوصیات ``fget``، ``fset``، و ``fdel`` می " +"باشد که با آرگومان های سازنده مطابقت دارند." #: ../../library/functions.rst:1708 #, fuzzy msgid "The docstrings of property objects are now writeable." -msgstr "" -"رشته های مستندات (docstrings) برای اشیاء ویژگی (property) اکنون قابل نوشتن " -"هستند." +msgstr "رشته های مستندات اشیاء ویژگی اکنون قابل نوشتن هستند." #: ../../library/functions.rst:1713 #, fuzzy msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." -msgstr "نگهدارنده ی نام ویژگی. نام ویژگی می تواند در زمان اجرا تغییر کند." +msgstr "ویژگی نگهدارنده نام خاصیت. نام خاصیت می تواند در زمان اجرا تغییر کند." #: ../../library/functions.rst:1724 #, fuzzy @@ -3856,8 +3839,8 @@ msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." msgstr "" -"به جای اینکه یک تابع باشد، :class:`range` در واقع یک نوع دنباله تغییرناپذیر " -"است، همانطور که در :ref:`typesseq-range` و :ref:`typesseq` مستند شده است." +"در واقع :class:`range` به جای اینکه یک تابع باشد، یک نوع دنباله تغییرناپذیر " +"است، همان طور که در :ref:`typesseq-range` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1730 #, fuzzy @@ -3872,19 +3855,19 @@ msgid "" "method. If :func:`sys.displayhook` is not accessible, this function will " "raise :exc:`RuntimeError`." msgstr "" -"یک رشته که نمایش قابل چاپ یک شیء را شامل می شود، برمی گرداند. برای بسیاری از" -" انواع، این تابع تلاش می کند تا رشته ای را برگرداند که وقتی به :func:`eval` " -"ارسال می شود، شیئی با همان مقدار را تولید کند؛ در غیر این صورت، نمایش به " -"صورت رشته ای در داخل علامت های زاویه دار است که نام نوع شیء را به همراه " -"اطلاعات اضافی که اغلب شامل نام و آدرس شیء است، شامل می شود. یک کلاس می تواند" -" کنترل کند که این تابع برای نمونه های خود چه چیزی برمی گرداند، با تعریف یک " -"متد :meth:`~object.__repr__`. اگر :func:`sys.displayhook` در دسترس نباشد، " -"این تابع :exc:`RuntimeError` تولید خواهد کرد." +"یک رشته شامل نمایش قابل چاپ یک شیء را بازمی گرداند. برای بسیاری از انواع، " +"این تابع تلاش می کند رشته ای ارائه دهد که در صورتی که به :func:`eval` ارسال " +"شود، شیئی با همان مقدار ایجاد کند؛ در غیر این صورت، نمایش یک رشته ای است که " +"در داخل علامت های زاویه دار قرار گرفته و نام نوع شیء را به همراه اطلاعات " +"اضافی که اغلب شامل نام و آدرس شیء است، دارد. یک کلاس می تواند کنترل کند که " +"این تابع برای نمونه هایش چه چیزی را بازمی گرداند، با تعریف یک متد " +":meth:`~object.__repr__`. اگر :func:`sys.displayhook` قابل دسترسی نباشد، این" +" تابع :exc:`RuntimeError` را ایجاد خواهد کرد." #: ../../library/functions.rst:1741 #, fuzzy msgid "This class has a custom representation that can be evaluated::" -msgstr "این کلاس دارای یک نمایش سفارشی است که می تواند ارزیابی شود::" +msgstr "این کلاس یک نمایش سفارشی دارد که می تواند ارزیابی شود::" #: ../../library/functions.rst:1743 #, fuzzy @@ -3897,15 +3880,13 @@ msgid "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" msgstr "" -"```python\n" -"class Person:\n" -" def __init__(self, name, age):\n" -" self.name = name\n" -" self.age = age\n" +"کلاس `Person`:\n" +" def __init__(self، نام، سن):\n" +" self.name = نام\n" +" self.age = سن\n" "\n" " def __repr__(self):\n" -" return f\"Person('{self.name}', {self.age})\"\n" -"```" +" برگرداندن f\"Person('{self.name}', {self.age})\"" #: ../../library/functions.rst:1754 #, fuzzy @@ -3915,10 +3896,10 @@ msgid "" ":meth:`~object.__len__` method and the :meth:`~object.__getitem__` method " "with integer arguments starting at ``0``)." msgstr "" -"بازگرداندن یک :term:`iterator` معکوس. *seq* باید شئ ای باشد که یک متد " -":meth:`~object.__reversed__` داشته باشد یا از پروتکل دنباله ای پشتیبانی کند " -"(متد :meth:`~object.__len__` و متد :meth:`~object.__getitem__` با آرگومان " -"های عدد صحیح که از ``0`` شروع می شود)." +"یک :term:`iterator` معکوس برگردانید. *seq* باید شیئی باشد که یک متد " +":meth:`~object.__reversed__` داشته باشد یا از پروتکل توالی پشتیبانی کند (متد" +" :meth:`~object.__len__` و متد :meth:`~object.__getitem__` با آرگومان های " +"صحیح که از ``0`` شروع می شوند)." #: ../../library/functions.rst:1762 #, fuzzy @@ -3927,9 +3908,8 @@ msgid "" "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " "input." msgstr "" -"عدد *number* را با دقت *ndigits* بعد از نقطه اعشار گرد می کند. اگر *ndigits*" -" حذف شود یا برابر با ``None`` باشد، نزدیک ترین عدد صحیح به ورودی خود را برمی" -" گرداند." +"مقدار *number* را به دقت *ndigits* بعد از نقطه اعشار گرد کنید. اگر *ndigits*" +" حذف شود یا ``None`` باشد، نزدیک ترین عدد صحیح به ورودی خود را برمی گرداند." #: ../../library/functions.rst:1766 #, fuzzy @@ -3942,13 +3922,13 @@ msgid "" "negative). The return value is an integer if *ndigits* is omitted or " "``None``. Otherwise, the return value has the same type as *number*." msgstr "" -"برای نوع های داخلی که از :func:`round` پشتیبانی می کنند، مقادیر به نزدیک " -"ترین مضرب ۱۰ به توان منفی *ndigits* گرد می شوند؛ اگر دو مضرب به یک اندازه " -"نزدیک باشند، گرد کردن به سمت گزینه زوج انجام می شود (بنابراین، برای مثال، هم" -" ``round(0.5)`` و هم ``round(-0.5)`` به ``0`` گرد می شوند، و ``round(1.5)`` " -"به ``2`` گرد می شود). هر مقدار صحیحی برای *ndigits* معتبر است (مثبت، صفر یا " -"منفی). اگر *ndigits* حذف شود یا ``None`` باشد، مقدار بازگشتی یک عدد صحیح " -"است. در غیر این صورت، مقدار بازگشتی همان نوع *number* را دارد." +"برای انواع داخلی که از :func:`round` پشتیبانی می کنند، مقادیر به نزدیک ترین " +"مضرب 10 به توان منفی *ndigits* گرد می شوند؛ اگر دو مضرب به یک اندازه نزدیک " +"باشند، گرد کردن به سمت گزینه زوج انجام می شود (مثلاً هر دو ``round(0.5)`` و " +"``round(-0.5)`` به ``0`` گرد می شوند، و ``round(1.5)`` به ``2``). هر مقدار " +"صحیحی برای *ndigits* معتبر است (مثبت، صفر یا منفی). مقدار بازگشتی یک عدد " +"صحیح است اگر *ndigits* حذف شود یا ``None`` باشد. در غیر این صورت، مقدار " +"بازگشتی همان نوع *number* را دارد." #: ../../library/functions.rst:1775 #, fuzzy @@ -3956,8 +3936,8 @@ msgid "" "For a general Python object ``number``, ``round`` delegates to " "``number.__round__``." msgstr "" -"برای یک شی عمومی پایتون ``number``، ``round`` به ``number.__round__`` واگذار" -" می کند." +"برای یک شیء عمومی پایتون ``number``، ``round`` به ``number.__round__`` " +"واگذار می کند." #: ../../library/functions.rst:1780 #, fuzzy @@ -3968,11 +3948,11 @@ msgid "" "represented exactly as a float. See :ref:`tut-fp-issues` for more " "information." msgstr "" -"رفتار :func:`round` برای اعداد اعشاری می تواند شگفت آور باشد: به عنوان مثال،" -" ``round(2.675, 2)`` به جای ``2.68``، ``2.67`` را می دهد. این یک ایراد نیست:" -" این نتیجه این واقعیت است که اکثر کسرهای ده دهی نمی توانند به صورت دقیق به " -"عنوان یک عدد اعشاری نمایانده شوند. برای اطلاعات بیشتر به :ref:`tut-fp-" -"issues` مراجعه کنید." +"رفتار :func:`round` برای اعداد اعشاری می تواند غیرمنتظره باشد: به عنوان " +"مثال، ``round(2.675, 2)`` نتیجه ``2.67`` را می دهد به جای نتیجه ی مورد " +"انتظار ``2.68``. این یک باگ نیست: این نتیجه ای از این واقعیت است که اکثر " +"کسرهای اعشاری نمی توانند به طور دقیق به صورت یک عدد اعشاری نمایش داده شوند. " +"برای اطلاعات بیشتر به :ref:`tut-fp-issues` مراجعه کنید." #: ../../library/functions.rst:1792 #, fuzzy @@ -3981,9 +3961,9 @@ msgid "" "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" "set` for documentation about this class." msgstr "" -"یک شیء جدید :class:`set` برمی گرداند که می تواند به صورت اختیاری دارای " -"عناصری گرفته شده از *iterable* باشد. ``set`` یک کلاس داخلی است. برای مستندات" -" مربوط به این کلاس به :class:`set` و :ref:`types-set` مراجعه کنید." +"یک شیء جدید :class:`set` برمی گرداند که به طور اختیاری شامل عناصر گرفته شده " +"از *iterable* است. ``set`` یک کلاس داخلی است. برای مستندات مربوط به این " +"کلاس، به :class:`set` و :ref:`types-set` مراجعه کنید." #: ../../library/functions.rst:1796 #, fuzzy @@ -3992,9 +3972,9 @@ msgid "" ":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" " module." msgstr "" -"برای سایر محفظه ها، به کلاس های داخلی `:class:`frozenset``, `:class:`list``," -" `:class:`tuple`` و `:class:`dict`` و همچنین ماژول `:mod:`collections`` " -"مراجعه کنید." +"برای سایر کانتینرها به کلاس های داخلی :class:`frozenset`، :class:`list`، " +":class:`tuple` و :class:`dict` و همچنین ماژول :mod:`collections` مراجعه " +"کنید." #: ../../library/functions.rst:1803 #, fuzzy @@ -4005,10 +3985,11 @@ msgid "" "provided the object allows it. For example, ``setattr(x, 'foobar', 123)`` " "is equivalent to ``x.foobar = 123``." msgstr "" -"این متن بخش مکمل :func:`getattr` است. آرگومان ها شامل یک شیء، یک رشته و یک " -"مقدار دلخواه هستند. رشته ممکن است نام یک ویژگی موجود یا ویژگی جدیدی باشد. " -"این تابع مقدار را به ویژگی اختصاص می دهد، به شرطی که شیء اجازه دهد. به عنوان" -" مثال، ``setattr(x, 'foobar', 123)`` معادل ``x.foobar = 123`` است." +"این متن معادل :func:`getattr` است. آرگومان ها شامل یک شیء، یک رشته و یک " +"مقدار دلخواه هستند. این رشته ممکن است به یک ویژگی موجود یا یک ویژگی جدید " +"اشاره کند. این تابع مقدار را به ویژگی اختصاص می دهد، به شرطی که شیء اجازه " +"دهد. به عنوان مثال، ``setattr(x, 'foobar', 123)`` معادل با ``x.foobar = " +"123`` است." #: ../../library/functions.rst:1809 #, fuzzy @@ -4019,12 +4000,12 @@ msgid "" "attribute whose name is not an identifier will not be accessible using the " "dot notation, but is accessible through :func:`getattr` etc.." msgstr "" -"*name* لازم نیست یک شناسه پایتون باشد همانطور که در :ref:`identifiers` تعریف" -" شده است، مگر اینکه شیء بخواهد آن را اعمال کند، به عنوان مثال در یک " +"نیازی نیست *name* یک شناسه Python باشد همانطور که در :ref:`identifiers` " +"تعریف شده است، مگر اینکه شیء بخواهد آن را اعمال کند، برای مثال در یک " ":meth:`~object.__getattribute__` سفارشی یا از طریق " -":attr:`~object.__slots__`. یک ویژگی که نام آن یک شناسه نیست به وسیله نقطه " -"گذاری قابل دسترسی نخواهد بود، اما از طریق :func:`getattr` و غیره قابل دسترسی" -" است." +":attr:`~object.__slots__`. یک ویژگی که نام آن یک شناسه نباشد با استفاده از " +"نشانه گذاری نقطه ای قابل دسترسی نیست، اما از طریق :func:`getattr` و غیره " +"قابل دسترسی است." #: ../../library/functions.rst:1817 #, fuzzy @@ -4034,9 +4015,9 @@ msgid "" " with two leading underscores) name in order to set it with :func:`setattr`." msgstr "" "از آنجا که :ref:`private name mangling ` در زمان " -"کامپایل اتفاق می افتد، باید به صورت دستی نام یک ویژگی خصوصی (ویژگی هایی که " -"دارای دو آندرلاین در ابتدای خود هستند) را تغییر شکل دهید تا بتوانید آن را با" -" :func:`setattr` تنظیم کنید." +"کامپایل اتفاق می افتد، برای تنظیم یک ویژگی خصوصی (ویژگی هایی با دو زیرخط " +"پیشرو)، باید به صورت دستی نام آن را تغییر دهید تا با :func:`setattr` تنظیم " +"شود." #: ../../library/functions.rst:1826 #, fuzzy @@ -4045,9 +4026,9 @@ msgid "" "``range(start, stop, step)``. The *start* and *step* arguments default to " "``None``." msgstr "" -"یک شیء `:term:`slice`` بازگردانده می شود که مجموعه ای از شاخص های مشخص شده " -"توسط ```range(start, stop, step)``` را نمایش می دهد. آرگومان های `*start*` و" -" `*step*` به طور پیش فرض برابر با ```None``` هستند." +"یک شیء :term:`slice` بازگردانید که مجموعه ای از شاخص ها را که توسط " +"``range(start, stop, step)`` مشخص شده اند نشان می دهد. آرگومان های *start* و" +" *step* به طور پیش فرض ``None`` هستند." #: ../../library/functions.rst:1834 #, fuzzy @@ -4057,10 +4038,10 @@ msgid "" "default). They have no other explicit functionality; however, they are used" " by NumPy and other third-party packages." msgstr "" -"آبجکت های \"Slice\" دارای صفات داده ای فقط خواندنی :attr:`!start`، " -":attr:`!stop`، و :attr:`!step` هستند که صرفاً مقادیر آرگومان ها (یا مقدار " -"پیش فرض آنها) را بازمی گردانند. این صفات عملکرد صریح دیگری ندارند؛ با این " -"حال، توسط NumPy و سایر بسته های شخص ثالث مورد استفاده قرار می گیرند." +"اشیاء برش دارای ویژگی های داده ای تنها خواندنی :attr:`!start`، :attr:`!stop`" +" و :attr:`!step` هستند که صرفاً مقادیر آرگومان ها (یا مقدار پیش فرض آن ها) " +"را برمی گردانند. آن ها هیچ ویژگی عملیاتی دیگری ندارند؛ با این حال، توسط " +"NumPy و سایر بسته های شخص ثالث استفاده می شوند." #: ../../library/functions.rst:1839 #, fuzzy @@ -4070,10 +4051,10 @@ msgid "" ":func:`itertools.islice` for an alternate version that returns an " ":term:`iterator`." msgstr "" -"اشیای Slice همچنین هنگامی که از نحوه ایندکس بندی گسترده استفاده می شود ایجاد" -" می شوند. برای مثال: ``a[start:stop:step]`` یا ``a[start:stop, i]``. برای " -"نسخه ای جایگزین که یک :term:`iterator` را برمی گرداند به " -":func:`itertools.islice` مراجعه کنید." +"اشیاء Slice همچنین زمانی تولید می شوند که از سینتکس اندیس گذاری گسترده " +"استفاده می شود. برای مثال: ``a[start:stop:step]`` یا ``a[start:stop, i]``. " +"به :func:`itertools.islice` مراجعه کنید برای نسخه جایگزینی که یک " +":term:`iterator` برمی گرداند." #: ../../library/functions.rst:1844 #, fuzzy @@ -4081,21 +4062,21 @@ msgid "" "Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, " ":attr:`~slice.stop`, and :attr:`~slice.step` are hashable)." msgstr "" -"از این به بعد اشیاء `Slice` :term:`hashable` هستند (در صورتی که " -":attr:`~slice.start`، :attr:`~slice.stop` و :attr:`~slice.step` قابل هش " -"باشند)." +"اشیای Slice اکنون :term:`hashable` هستند (با فرض اینکه :attr:`~slice.start`،" +" :attr:`~slice.stop` و :attr:`~slice.step` قابل هش هستند)." #: ../../library/functions.rst:1850 #, fuzzy msgid "Return a new sorted list from the items in *iterable*." -msgstr "یک لیست مرتب شده جدید از آیتم های موجود در `*iterable*` بازگردانید." +msgstr "بازگرداندن یک لیست مرتب جدید از آیتم های موجود در *iterable*." #: ../../library/functions.rst:1852 #, fuzzy msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" -"دارای دو آرگومان اختیاری است که باید به صورت آرگومان های کلیدواژه مشخص شوند." +"دارای دو آرگومان اختیاری است که باید به صورت آرگومان های کلمه کلیدی مشخص " +"شوند." #: ../../library/functions.rst:1854 #, fuzzy @@ -4105,9 +4086,9 @@ msgid "" "``key=str.lower``). The default value is ``None`` (compare the elements " "directly)." msgstr "" -"*key* یک تابع با یک آرگومان را مشخص می کند که برای استخراج کلید مقایسه از هر" -" عنصر در *iterable* استفاده می شود (برای مثال، ``key=str.lower``). مقدار پیش" -" فرض ``None`` است (عناصر را به طور مستقیم مقایسه کنید)." +"تابع *key* یک آرگومان را مشخص می کند که از هر عنصر در *iterable* برای " +"استخراج یک کلید مقایسه استفاده می شود (برای مثال، ``key=str.lower``). مقدار " +"پیش فرض ``None`` است (عناصر را مستقیماً مقایسه کنید)." #: ../../library/functions.rst:1858 #, fuzzy @@ -4115,8 +4096,8 @@ msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." msgstr "" -"*reverse* یک مقدار بولی است. اگر به ``True`` تنظیم شود، سپس عناصر لیست طوری " -"مرتب می شوند که گویی هر مقایسه برعکس انجام شده است." +"مقدار *reverse* یک مقدار بولی است. اگر بر روی ``True`` تنظیم شود، عناصر لیست" +" به صورتی مرتب می شوند که انگار هر مقایسه ای معکوس شده است." #: ../../library/functions.rst:1861 #, fuzzy @@ -4124,8 +4105,8 @@ msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a" " *key* function." msgstr "" -"برای تبدیل یک تابع قدیمی *cmp* به یک تابع *key* از " -":func:`functools.cmp_to_key` استفاده کنید." +"از :func:`functools.cmp_to_key` برای تبدیل یک تابع *cmp* به تابع *key* " +"استفاده کنید." #: ../../library/functions.rst:1864 #, fuzzy @@ -4135,10 +4116,10 @@ msgid "" "compare equal --- this is helpful for sorting in multiple passes (for " "example, sort by department, then by salary grade)." msgstr "" -"تابع داخلی :func:`sorted` تضمین شده که پایدار است. یک مرتب سازی پایدار است " -"اگر تضمین کند که ترتیب نسبی عناصری که برابر مقایسه می شوند را تغییر نمی دهد " -"ــ این ویژگی در مرتب سازی های چند مرحله ای مفید است (برای مثال، ابتدا بر " -"اساس بخش و سپس براساس درجه حقوق مرتب سازی کنید)." +"تابع داخلی :func:`sorted` تضمین می شود که پایدار باشد. یک مرتب سازی زمانی " +"پایدار است که اطمینان دهد ترتیب نسبی عناصر برابر را تغییر نمی دهد --- این " +"امر برای مرتب سازی در چندین مرحله مفید است (به عنوان مثال، ابتدا بر اساس " +"دپارتمان، سپس بر اساس درجه حقوق مرتب سازی کنید)." #: ../../library/functions.rst:1869 #, fuzzy @@ -4152,27 +4133,27 @@ msgid "" "mixed type comparisons which can call reflected the :meth:`~object.__gt__` " "method." msgstr "" -"الگوریتم مرتب سازی تنها از مقایسه های ``<`` بین اقلام استفاده می کند. در " -"حالی که تعریف یک تابع :meth:`~object.__lt__` برای مرتب سازی کافی خواهد بود، " -":PEP:`8` توصیه می کند که هر شش :ref:`rich comparisons ` پیاده " -"سازی شوند. این کار به جلوگیری از خطاها در هنگام استفاده از داده های مشابه با" -" ابزارهای مرتب سازی دیگر مانند :func:`max` که به یک روش پایه متفاوت متکی " -"هستند، کمک می کند. پیاده سازی هر شش مقایسه همچنین به جلوگیری از سردرگمی در " -"مقایسه های نوع مختلط که می توانند تابع انعکاسی :meth:`~object.__gt__` را " -"فراخوانی کنند، کمک می کند." +"الگوریتم مرتب سازی تنها از مقایسه های ``<`` بین آیتم ها استفاده می کند. " +"درحالی که تعریف یک متد :meth:`~object.__lt__` برای مرتب سازی کافی است، " +":PEP:`8` توصیه می کند که هر شش مقایسه :ref:`rich comparisons ` " +"پیاده سازی شوند. این کار به جلوگیری از بروز باگ ها در هنگام استفاده از همان " +"داده ها با ابزارهای دیگر مرتب سازی مانند :func:`max` که به یک روش زیرین " +"متفاوت وابسته هستند، کمک می کند. پیاده سازی هر شش مقایسه همچنین به جلوگیری " +"از سردرگمی در مقایسه های نوع های مختلط که می توانند متد " +":meth:`~object.__gt__` منعکس شده را فراخوانی کنند، کمک می کند." #: ../../library/functions.rst:1878 #, fuzzy msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" -"برای مثال های مرتب سازی و یک آموزش کوتاه درباره مرتب سازی، به " -":ref:`sortinghowto` مراجعه کنید." +"برای مثال های مرتب سازی و یک آموزش کوتاه مرتب سازی، به :ref:`sortinghowto` " +"مراجعه کنید." #: ../../library/functions.rst:1882 #, fuzzy msgid "Transform a method into a static method." -msgstr "تبدیل یک متد به یک متد استاتیک." +msgstr "یک متد را به یک متد استاتیک تبدیل کنید." #: ../../library/functions.rst:1884 #, fuzzy @@ -4180,8 +4161,8 @@ msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" msgstr "" -"یک متد ایستا به طور پیش فرض یک آرگومان اولیه دریافت نمی کند. برای تعریف یک " -"متد ایستا، از این روش استفاده کنید::" +"یک متد استاتیک، اولین آرگومان را به طور ضمنی دریافت نمی کند. برای اعلام یک " +"متد استاتیک از این روش استفاده کنید::" #: ../../library/functions.rst:1887 #, fuzzy @@ -4190,11 +4171,17 @@ msgid "" " @staticmethod\n" " def f(arg1, arg2, argN): ..." msgstr "" -"کلاس `C`:\n" -"```python\n" -"@staticmethod\n" -"def f(arg1, arg2, argN): ...\n" -"```" +"کلاس ها می توانند شامل روش های ثابت یا ``staticmethod`` باشند. تفاوت این است که یک روش ثابت به نمونه ای از کلاس نیازی ندارد و می تواند بدون ایجاد یک شی از کلاس استفاده شود.\n" +"\n" +"روش های ثابت با استفاده از دکوراتور ``@staticmethod`` تعریف می شوند. این روش ها همچنان به کلاس به عنوان اولین پارامتر منتقل نمی شوند، بلکه مانند توابع نرمال رفتار می کنند. این یعنی که برای فراخوانی آن ها نیازی به نمونه سازی از کلاس نیست.\n" +"\n" +"مثال::\n" +"\n" +" class C:\n" +" @staticmethod\n" +" def f(arg1, arg2, argN): ...\n" +"\n" +"در اینجا، ``f`` یک روش ثابت است که با کلاس ``C`` تعریف شده است. برای اجرای آن، نیازی به ساختاردهی یک شی از کلاس نیست و مستقیماً می توان آن را فراخوانی کرد." #: ../../library/functions.rst:1891 #, fuzzy @@ -4202,8 +4189,8 @@ msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see " ":ref:`function` for details." msgstr "" -"فرم ``@staticmethod`` یک تابع :term:`decorator` است -- برای جزئیات، " -":ref:`function` را ببینید." +"فرم ``@staticmethod`` یک تابع :term:`decorator` است -- برای جزئیات به " +":ref:`function` مراجعه کنید." #: ../../library/functions.rst:1894 #, fuzzy @@ -4213,10 +4200,10 @@ msgid "" ":term:`descriptor` is also callable, so it can be used in the class " "definition (such as ``f()``)." msgstr "" -"یک متد استاتیک می تواند هم بر روی کلاس (مانند ``C.f()``) و هم بر روی یک " -"نمونه (مانند ``C().f()``) فراخوانی شود. علاوه بر این، متد استاتیک " -":term:`descriptor` نیز قابل فراخوانی است، بنابراین می توان آن را در تعریف " -"کلاس (مانند ``f()``) استفاده کرد." +"یک متد ایستا می تواند یا روی کلاس (مانند ``C.f()``) یا روی یک نمونه (مانند " +"``C().f()``) فراخوانی شود. علاوه بر این، متد ایستا :term:`descriptor` نیز " +"قابل فراخوانی است، بنابراین می توان در تعریف کلاس (مانند ``f()``) از آن " +"استفاده کرد." #: ../../library/functions.rst:1899 #, fuzzy @@ -4225,9 +4212,9 @@ msgid "" "see :func:`classmethod` for a variant that is useful for creating alternate " "class constructors." msgstr "" -"متدهای ثابت در پایتون مشابه متدهای موجود در جاوا یا C++ هستند. همچنین، به " -":func:`classmethod` برای یک نوع دیگر که برای ایجاد سازنده های کلاس جایگزین " -"مفید است، مراجعه کنید." +"متدهای استاتیک در پایتون مشابه آن هایی هستند که در جاوا یا C++ یافت می شوند." +" همچنین، :func:`classmethod` را ببینید که یک واریانت مفید برای ایجاد سازنده " +"های کلاس جایگزین است." #: ../../library/functions.rst:1903 #, fuzzy @@ -4238,11 +4225,11 @@ msgid "" "want to avoid the automatic transformation to instance method. For these " "cases, use this idiom::" msgstr "" -"مانند تمام دکوریتورها، امکان فراخوانی ```staticmethod``` به عنوان یک تابع " -"معمولی و انجام عملیاتی با نتیجه ی آن نیز وجود دارد. این امر در برخی موارد " -"ضروری است که شما به یک ارجاع به تابعی از داخل بدنه ی کلاس نیاز دارید و می " -"خواهید از تبدیل خودکار آن به یک متد نمونه جلوگیری کنید. برای این موارد، از " -"این روش استفاده کنید::" +"مانند تمام دکوراتورها، این امکان نیز وجود دارد که ``staticmethod`` را به " +"عنوان یک تابع عادی فراخوانی کنید و کاری با نتیجه آن انجام دهید. این در برخی " +"موارد لازم است که به ارجاعی به یک تابع از بدنه کلاس نیاز دارید و می خواهید " +"از تبدیل خودکار به متد نمونه جلوگیری کنید. برای این موارد، از این عبارت " +"استفاده کنید::" #: ../../library/functions.rst:1909 #, fuzzy @@ -4253,19 +4240,23 @@ msgid "" "class C:\n" " method = staticmethod(regular_function)" msgstr "" -"```python\n" -"def تابع_عادی():\n" +"تابع توابع ایستا\n" +"\n" +"تابع `staticmethod` یک شیء روش است که با استفاده از یک تابع معمولی ساخته می شود. به برنامه نویسان اجازه می دهد تا بدون نیاز به نمونه سازی از کلاس، تابع را مستقیماً روی کلاس فراخوانی کنند.\n" +"\n" +"یک مثال ساده::\n" +"\n" +"def regular_function():\n" " ...\n" "\n" "class C:\n" -" متد = staticmethod(تابع_عادی)\n" -"```" +" method = staticmethod(regular_function)" #: ../../library/functions.rst:1915 #, fuzzy msgid "For more information on static methods, see :ref:`types`." msgstr "" -"برای اطلاعات بیشتر در مورد روش های ایستا، به :ref:`types` مراجعه کنید." +"برای اطلاعات بیشتر در مورد متدهای استاتیک، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:1917 #, fuzzy @@ -4276,17 +4267,19 @@ msgid "" ":attr:`~function.__annotations__`), have a new ``__wrapped__`` attribute, " "and are now callable as regular functions." msgstr "" -"روش های ایستا اکنون ویژگی های متدی (:attr:`~function.__module__`، " +"متدهای ایستا اکنون ویژگی های متد (:attr:`~function.__module__`، " ":attr:`~function.__name__`، :attr:`~function.__qualname__`، " ":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " -"برند، دارای ویژگی جدید ``__wrapped__`` هستند و اکنون به عنوان توابع معمولی " -"قابل فراخوانی هستند." +"برند، یک ویژگی جدید به نام ``__wrapped__`` دارند و اکنون به عنوان توابع " +"معمولی قابل فراخوانی هستند." #: ../../library/functions.rst:1933 #, fuzzy msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." -msgstr "نسخه ای از *object* برگردانید. جزئیات بیشتر را در :func:`str` ببینید." +msgstr "" +"نسخه :class:`str` از *object* را برگردانید. برای جزئیات، به :func:`str` " +"مراجعه کنید." #: ../../library/functions.rst:1935 #, fuzzy @@ -4294,8 +4287,8 @@ msgid "" "``str`` is the built-in string :term:`class`. For general information about" " strings, see :ref:`textseq`." msgstr "" -"``str`` رشته داخلی :term:`class` است. برای اطلاعات کلی در مورد رشته ها، به " -":ref:`textseq` مراجعه کنید." +"``str`` رشته ی داخلی :term:`class` است. برای اطلاعات عمومی درباره رشته ها، " +"به :ref:`textseq` مراجعه کنید." #: ../../library/functions.rst:1941 #, fuzzy @@ -4304,9 +4297,9 @@ msgid "" "the total. The *iterable*'s items are normally numbers, and the start value" " is not allowed to be a string." msgstr "" -"مجموع *start* و آیتم های یک *iterable* را از چپ به راست محاسبه کرده و کل را " -"برمی گرداند. آیتم های *iterable* معمولاً اعداد هستند و مقدار شروع نمی تواند " -"یک رشته باشد." +"مجموعه *start* و اقلام یک *iterable* از چپ به راست جمع بندی شده و کل مقدار " +"را بازمی گرداند. اقلام *iterable* به صورت معمول اعداد هستند و مقدار شروع نمی" +" تواند یک رشته باشد." #: ../../library/functions.rst:1945 #, fuzzy @@ -4317,16 +4310,16 @@ msgid "" "precision, see :func:`math.fsum`\\. To concatenate a series of iterables, " "consider using :func:`itertools.chain`." msgstr "" -"برای برخی از موارد استفاده، جایگزین های خوبی برای :func:`sum` وجود دارد. روش" -" سریع و ترجیح داده شده برای به هم پیوستن یک دنباله از رشته ها، فراخوانی " -"``''.join(sequence)`` است. برای اضافه کردن مقادیر اعشاری با دقت بالا، به " -":func:`math.fsum` مراجعه کنید. برای به هم پیوستن تعدادی از ایتربل ها، " -"استفاده از :func:`itertools.chain` را در نظر بگیرید." +"برای برخی از موارد استفاده، جایگزین های مناسبی برای :func:`sum` وجود دارد. " +"روش ترجیحی و سریع برای اتصال یک دنباله از رشته ها، فراخوانی " +"``''.join(sequence)`` است. برای افزودن مقادیر اعشاری با دقت بالا، به " +":func:`math.fsum` مراجعه کنید. برای اتصال یک سری از تکرارپذیرها، استفاده از " +":func:`itertools.chain` را در نظر بگیرید." #: ../../library/functions.rst:1951 #, fuzzy msgid "The *start* parameter can be specified as a keyword argument." -msgstr "پارامتر *start* می تواند به عنوان یک آرگومان کلیدواژه ای مشخص شود." +msgstr "می توان پارامتر *start* را به عنوان یک آرگومان کلیدی مشخص کرد." #: ../../library/functions.rst:1954 #, fuzzy @@ -4334,8 +4327,8 @@ msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." msgstr "" -"جمع اعداد اعشاری به الگوریتمی تغییر یافت که دقت بالاتر و جابجایی بهتری را در" -" بیشتر نسخه ها فراهم می کند." +"جمع اعداد اعشاری به الگوریتمی تغییر یافت که در اکثر بیلدها دقت بالاتر و " +"جابجایی بهتری دارد." #: ../../library/functions.rst:1961 #, fuzzy @@ -4344,9 +4337,9 @@ msgid "" "class of *type*. This is useful for accessing inherited methods that have " "been overridden in a class." msgstr "" -"یک شیء پروکسی برمی گرداند که تماس های روش را به یک کلاس والد یا هم رده از " -"`*type*` محول می کند. این کار برای دسترسی به متدهای به ارث برده شده که در یک" -" کلاس بازنویسی شده اند، مفید است." +"یک شی نماینده برگردانید که فراخوانی های متد را به کلاس والد یا هم سطح *type*" +" واگذار می کند. این برای دسترسی به متدهای به ارث رسیده که در یک کلاس نادیده " +"گرفته شده اند، مفید است." #: ../../library/functions.rst:1965 #, fuzzy @@ -4354,8 +4347,8 @@ msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." msgstr "" -"*object_or_type* تعیین کننده :term:`method resolution order` برای جستجو است." -" جستجو از کلاسی که بلافاصله بعد از *type* قرار دارد، آغاز می شود." +"*object_or_type* تعیین می کند که :term:`method resolution order` جستجو شود. " +"جستجو از کلاسی که درست بعد از *type* است شروع می شود." #: ../../library/functions.rst:1969 #, fuzzy @@ -4364,9 +4357,9 @@ msgid "" "-> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" -"برای مثال، اگر :attr:`~type.__mro__` از *object_or_type* برابر ``D -> B -> C" -" -> A -> object`` باشد و مقدار *type* برابر ``B`` باشد، سپس :func:`super` در" -" ``C -> A -> object`` جستجو می کند." +"به عنوان مثال، اگر :attr:`~type.__mro__` از *object_or_type*، ``D -> B -> C " +"-> A -> object`` باشد و مقدار *type* برابر با ``B`` باشد، سپس :func:`super` " +"به جستجوی ``C -> A -> object`` می پردازد." #: ../../library/functions.rst:1973 #, fuzzy @@ -4377,9 +4370,9 @@ msgid "" "whenever the inheritance hierarchy is updated." msgstr "" "ویژگی :attr:`~type.__mro__` کلاس مربوط به *object_or_type*، ترتیب جستجوی حل " -"روش را که توسط :func:`getattr` و :func:`super` استفاده می شود، فهرست می کند." -" این ویژگی پویا است و هر زمان که سلسله مراتب وراثت به روز شود، می تواند " -"تغییر کند." +"روش را که توسط هر دو :func:`getattr` و :func:`super` استفاده می شود، فهرست " +"می کند. این ویژگی پویا است و هر زمان که سلسله مراتب وراثت به روزرسانی شود، " +"می تواند تغییر کند." #: ../../library/functions.rst:1978 #, fuzzy @@ -4389,10 +4382,10 @@ msgid "" "If the second argument is a type, ``issubclass(type2, type)`` must be true " "(this is useful for classmethods)." msgstr "" -"اگر آرگومان دوم حذف شود، شیء `super` بازگشتی بدون پیوند خواهد بود. اگر " -"آرگومان دوم یک شیء باشد، ``isinstance(obj, type)`` باید صحیح باشد. اگر " -"آرگومان دوم یک نوع باشد، ``issubclass(type2, type)`` باید صحیح باشد (این " -"مورد برای `classmethods` مفید است)." +"اگر آرگومان دوم حذف شود، شیء `super` بازگشتی بدون باند خواهد بود. اگر " +"آرگومان دوم یک شیء باشد، باید ``isinstance(obj, type)`` صحیح باشد. اگر " +"آرگومان دوم یک نوع باشد، باید ``issubclass(type2, type)`` صحیح باشد (این " +"برای متدهای کلاسی مفید است)." #: ../../library/functions.rst:1983 #, fuzzy @@ -4404,12 +4397,12 @@ msgid "" "argument :func:`!super` will not work as expected within nested functions, " "including generator expressions, which implicitly create nested functions.)" msgstr "" -"وقتی مستقیماً در یک متد عادی از یک کلاس فراخوانی می شود، هر دو آرگومان ممکن " -"است حذف شوند (\":func:`!super` با صفر آرگومان\"). در این حالت، *type* کلاس " -"محصورکننده خواهد بود و *obj* اولین آرگومان تابع بلافاصله محصورکننده خواهد " -"بود (که معمولاً ``self`` است). (این به این معناست که :func:`!super` با صفر " -"آرگومان به گونه ای که انتظار می رود در توابع تو در تو عمل نخواهد کرد، از " -"جمله عبارات مولد که به طور ضمنی توابع تو در تو ایجاد می کنند.)" +"هنگامی که مستقیماً در یک متد عادی یک کلاس فراخوانی می شود، هر دو آرگومان " +"ممکن است حذف شوند (\":func:`!super` بدون آرگومان\"). در این حالت، *type* " +"کلاس محصور کننده و *obj* اولین آرگومان تابع محصور کننده بلافاصله (معمولاً " +"``self``) خواهد بود. (این بدان معناست که استفاده از :func:`!super` بدون " +"آرگومان در توابع تو در تو، از جمله عبارات تولید کننده که به طور ضمنی توابع " +"تو در تو ایجاد می کنند، مطابق انتظار کار نخواهد کرد.)" #: ../../library/functions.rst:1990 #, fuzzy @@ -4419,10 +4412,10 @@ msgid "" "naming them explicitly, thus making the code more maintainable. This use " "closely parallels the use of *super* in other programming languages." msgstr "" -"دو کاربرد معمول برای *super* وجود دارد. در یک سلسله مراتب کلاس با ارث بری " -"تک، *super* می تواند برای اشاره به کلاس های والد بدون نام بردن صریح آن ها " -"استفاده شود، که این کار کد را آسان تر برای نگهداری می کند. این استفاده شباهت" -" زیادی با استفاده از *super* در زبان های برنامه نویسی دیگر دارد." +"دو کاربرد معمول برای *super* وجود دارد. در یک سلسله مراتب کلاسی با وراثت " +"یگانه، می توان از *super* برای اشاره به کلاس های والد بدون نام گذاری صریح آن" +" ها استفاده کرد، که به این ترتیب کد قابل نگهداری تر می شود. این کاربرد به " +"شدت مشابه استفاده از *super* در دیگر زبان های برنامه نویسی است." #: ../../library/functions.rst:1995 #, fuzzy @@ -4437,21 +4430,21 @@ msgid "" "that order adapts to changes in the class hierarchy, and because that order " "can include sibling classes that are unknown prior to runtime)." msgstr "" -"دومین مورد استفاده، پشتیبانی از وراثت چندگانه مشارکتی در یک محیط اجرایی پویا" -" است. این مورد استفاده به طور خاص در زبان پایتون وجود دارد و در زبان هایی که" -" به صورت ایستا کامپایل می شوند یا تنها از وراثت تک گانه پشتیبانی می کنند، " -"یافت نمی شود. این امکان را فراهم می کند تا در «نمودارهای الماس شکل»، کلاس " -"های پایه ی مختلفی یک متد یکسان را پیاده سازی کنند. طراحی خوب اقتضا می کند که" -" چنین پیاده سازی هایی در هر مورد دارای امضای فراخوانی یکسانی باشند (زیرا " -"ترتیب فراخوانی ها در زمان اجرا تعیین می شود، زیرا آن ترتیب با تغییرات در " -"سلسله مراتب کلاس تطبیق می یابد و زیرا آن ترتیب می تواند شامل کلاس های هم " -"سطحی باشد که قبل از زمان اجرا ناشناخته هستند)." +"مورد استفاده دوم پشتیبانی از ارث بری چندگانه تعاونی در محیط اجرایی پویا است." +" این مورد استفاده مختص پایتون است و در زبان های کامپایل شده استاتیک یا زبان " +"هایی که تنها از ارث بری تکی پشتیبانی می کنند، یافت نمی شود. این امکان وجود " +"دارد تا \"نمودارهای الماس\" را پیاده سازی کرد جایی که چندین کلاس پایه همان " +"متد را پیاده سازی می کنند. طراحی خوب ایجاب می کند که چنین پیاده سازی هایی در" +" هر مورد دارای امضای فراخوانی مشابه باشند (زیرا ترتیب فراخوانی ها در زمان " +"اجرا تعیین می شود، زیرا این ترتیب به تغییرات در سلسله مراتب کلاس ها سازگار " +"است، و زیرا این ترتیب می تواند شامل کلاس های هم سطحی باشد که پیش از زمان " +"اجرا ناشناخته هستند)." #: ../../library/functions.rst:2005 #, fuzzy msgid "For both use cases, a typical superclass call looks like this::" msgstr "" -"برای هر دو مورد استفاده، یک فراخوانی معمولی به کلاس پدر به این شکل است::" +"برای هر دو مورد استفاده، یک فراخوانی به کلاس پایه معمولاً به این شکل است::" #: ../../library/functions.rst:2007 #, fuzzy @@ -4476,9 +4469,9 @@ msgid "" "lookups. One possible use case for this is calling :term:`descriptors " "` in a parent or sibling class." msgstr "" -"علاوه بر جستجوی متدها، :func:`super` همچنین برای جستجوی ویژگی ها نیز کار می " -"کند. یکی از موارد استفاده ممکن برای این کار، فراخوانی :term:`descriptors " -"` در یک کلاس پدر یا هم سطح است." +"علاوه بر جستجوهای متد، :func:`super` برای جستجوی ویژگی ها نیز کار می کند. " +"یکی از موارد ممکن استفاده از این، فراخوانی :term:`descriptors ` " +"در یک کلاس والد یا هم سطح است." #: ../../library/functions.rst:2016 #, fuzzy @@ -4491,11 +4484,12 @@ msgid "" "using statements or operators such as ``super()[name]``." msgstr "" "توجه داشته باشید که :func:`super` به عنوان بخشی از فرآیند بایندینگ برای " -"جستجوی صریح ویژگی های نقطه ای مانند ``super().__getitem__(name)`` پیاده سازی" -" شده است. این کار را با پیاده سازی روش :meth:`~object.__getattribute__` خود " -"برای جستجوی کلاس ها به ترتیب قابل پیش بینی که از وراثت چندگانه تعاونی " -"پشتیبانی می کند، انجام می دهد. بر این اساس، :func:`super` برای جستجوهای ضمنی" -" با استفاده از دستورات یا عملگرهایی مانند ``super()[name]`` تعریف نشده است." +"جستجوهای صریح صفت های نقطه دار مانند ``super().__getitem__(name)`` پیاده " +"سازی شده است. این کار را با پیاده سازی متد :meth:`~object.__getattribute__` " +"خود برای جستجو در کلاس ها به ترتیبی قابل پیش بینی که از ارث بری چندگانه " +"تعاونی پشتیبانی می کند انجام می دهد. بنابراین، :func:`super` برای جستجوهای " +"ضمنی با استفاده از عبارات یا عملگرهایی مانند ``super()[name]`` تعریف نشده " +"است." #: ../../library/functions.rst:2024 #, fuzzy @@ -4507,12 +4501,11 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" -"همچنین توجه داشته باشید که، به جز فرم بدون آرگومان، استفاده از :func:`super`" -" به داخل متدها محدود نمی شود. فرم دو آرگومانی به طور دقیق آرگومان ها را مشخص" -" کرده و مراجع مناسب را ایجاد می کند. فرم بدون آرگومان فقط داخل تعریف یک کلاس" -" کار می کند، زیرا کامپایلر جزئیات لازم را برای بازیابی صحیح کلاسی که تعریف " -"می شود، پر می کند و همچنین به نمونه فعلی برای متدهای معمولی دسترسی پیدا می " -"کند." +"توجه داشته باشید که، به جز شکل بدون آرگومان، `:func:`super`` محدود به " +"استفاده در داخل متدها نیست. شکل دو آرگومانی، آرگومان ها را به طور دقیق مشخص " +"می کند و ارجاعات مناسب را می سازد. شکل بدون آرگومان فقط در داخل تعریف کلاس " +"کار می کند، زیرا کامپایلر جزئیات لازم را برای بازیابی صحیح کلاس در حال تعریف" +" و همچنین دسترسی به نمونه فعلی برای متدهای عادی پر می کند." #: ../../library/functions.rst:2031 #, fuzzy @@ -4521,7 +4514,7 @@ msgid "" ":func:`super`, see `guide to using super() " "`_." msgstr "" -"برای پیشنهادات عملی درباره چگونگی طراحی کلاس های تعاونی با استفاده از " +"برای پیشنهادات عملی درباره چگونگی طراحی کلاس های همکاری با استفاده از " ":func:`super`، به `guide to using super() " "`_ " "مراجعه کنید." @@ -4532,8 +4525,9 @@ msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." msgstr "" -":class:`tuple` در واقع یک نوع دنباله ٔ تغییرناپذیر است، نه یک تابع، همانطور " -"که در :ref:`typesseq-tuple` و :ref:`typesseq` مستند شده است." +"در حقیقت، به جای اینکه یک تابع باشد، :class:`tuple` در واقع یک نوع دنبالهٔ " +"تغییرناپذیر است، همان طور که در :ref:`typesseq-tuple` و :ref:`typesseq` " +"مستند شده است." #: ../../library/functions.rst:2050 #, fuzzy @@ -4543,7 +4537,8 @@ msgid "" ":attr:`object.__class__`." msgstr "" "با یک آرگومان، نوع یک *object* را برمی گرداند. مقدار بازگشتی یک شیء نوع است " -"و معمولاً همان شیئی است که توسط :attr:`object.__class__` برگردانده می شود." +"و به طور کلی همان شیء ای است که توسط :attr:`object.__class__` برگشت داده می " +"شود." #: ../../library/functions.rst:2054 #, fuzzy @@ -4551,8 +4546,8 @@ msgid "" "The :func:`isinstance` built-in function is recommended for testing the type" " of an object, because it takes subclasses into account." msgstr "" -"تابع داخلی :func:`isinstance` برای آزمون نوع یک شی توصیه می شود زیرا زیرکلاس" -" ها را نیز در نظر می گیرد." +"عملکرد توکار :func:`isinstance` برای آزمودن نوع یک شی توصیه می شود، زیرا " +"زیرکلاس ها را نیز در نظر می گیرد." #: ../../library/functions.rst:2057 #, fuzzy @@ -4567,14 +4562,14 @@ msgid "" ":attr:`~type.__dict__` attribute. The following two statements create " "identical :class:`!type` objects:" msgstr "" -"با سه آرگومان، یک شیء نوع جدید بازگردانده می شود. این اساساً یک فرم پویا از " -"دستور :keyword:`class` است. رشته ی *name* نام کلاس می باشد و به ویژگی " +"با سه آرگومان، یک شیء نوع جدید برمی گرداند. این اساساً یک فرم پویا از دستور " +":keyword:`class` است. رشته *name* نام کلاس است و به ویژگی " ":attr:`~type.__name__` تبدیل می شود. تاپل *bases* شامل کلاس های پایه است و " "به ویژگی :attr:`~type.__bases__` تبدیل می شود؛ اگر خالی باشد، " -":class:`object`، که پایه نهایی تمام کلاس ها است، اضافه می شود. دیکشنری " -"*dict* شامل تعاریف ویژگی و متدها برای بدنه کلاس است؛ ممکن است قبل از تبدیل " -"شدن به ویژگی :attr:`~type.__dict__` کپی یا بسته بندی شود. دو دستور زیر اشیاء" -" :class:`!type` یکسانی ایجاد می کنند:" +":class:`object`، پایگاه نهایی همه کلاس ها، اضافه می شود. دیکشنری *dict* شامل" +" تعاریف ویژگی ها و روش ها برای بدنه کلاس است؛ ممکن است قبل از تبدیل به ویژگی" +" :attr:`~type.__dict__` کپی شود یا بسته بندی شود. دو دستور زیر اشیاء " +":class:`!type` یکسانی ایجاد می کنند:" #: ../../library/functions.rst:2072 #, fuzzy @@ -4587,15 +4582,15 @@ msgid "" ":ref:`Documentation on attributes and methods on classes `." msgstr "" -"متنی برای ترجمه فراهم نشده است. لطفاً متن دقیق تری ارائه کنید تا بتوانم به " -"شما کمک کنم." +":ref:`Documentation on attributes and methods on classes `." #: ../../library/functions.rst:2075 #, fuzzy msgid ":ref:`bltin-type-objects`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه به فارسی را " -"ارائه دهید تا بتوانم به شما کمک کنم." +"متن شما شامل بخشی برای ترجمه نبود. لطفاً متن اصلی که نیاز به ترجمه دارد را " +"ارسال کنید تا به فارسی ترجمه شود." #: ../../library/functions.rst:2077 #, fuzzy @@ -4605,14 +4600,14 @@ msgid "" "in the same way that keywords in a class definition (besides *metaclass*) " "would." msgstr "" -"آرگومان های کلیدواژه ای که به فرم سه آرگومانی ارائه می شوند، به ماشین " -"متاکلاس مناسب (معمولاً :meth:`~object.__init_subclass__`) به همان شیوه ای که" -" کلیدواژه ها در تعریف یک کلاس (به جز *metaclass*) می باشند، ارسال می شوند." +"استدلالات کلیدی که به فرم سه آرگومان داده می شوند، به مکانیزم متاکلاس مناسب " +"(معمولاً :meth:`~object.__init_subclass__`) به همان روشی که کلمات کلیدی در " +"تعریف کلاس (به جز *metaclass*) داده می شوند، ارسال می گردند." #: ../../library/functions.rst:2082 #, fuzzy msgid "See also :ref:`class-customization`." -msgstr "همچنین به :ref:`class-customization` مراجعه کنید." +msgstr "همچنین نگاه کنید به :ref:`class-customization`." #: ../../library/functions.rst:2084 #, fuzzy @@ -4620,8 +4615,9 @@ msgid "" "Subclasses of :class:`!type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." msgstr "" -"زیرکلاس های :class:`!type` که ``type.__new__`` را بازنویسی نمی کنند ممکن است" -" دیگر نتوانند از فرم تک آرگومانی برای بدست آوردن نوع یک شیء استفاده کنند." +"زیرکلاس های :class:`!type` که ``type.__new__`` را بازتعریف نمی کنند، ممکن " +"است دیگر نتوانند از قالب یک آرگومانی برای بدست آوردن نوع یک شیء استفاده " +"کنند." #: ../../library/functions.rst:2091 #, fuzzy @@ -4629,8 +4625,8 @@ msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance," " or any other object with a :attr:`!__dict__` attribute." msgstr "" -"ویژگی :attr:`~object.__dict__` را برای یک ماژول، کلاس، نمونه یا هر شیء دیگری" -" که دارای ویژگی :attr:`!__dict__` است، برگردانید." +"صفت :attr:`~object.__dict__` را برای یک ماژول، کلاس، نمونه یا هر شیء دیگری " +"که دارای صفت :attr:`!__dict__` است، برگردانید." #: ../../library/functions.rst:2094 #, fuzzy @@ -4640,16 +4636,16 @@ msgid "" "restrictions on their :attr:`!__dict__` attributes (for example, classes use" " a :class:`types.MappingProxyType` to prevent direct dictionary updates)." msgstr "" -"اشیائی مانند ماژول ها و نمونه ها دارای یک ویژگی قابل به روزرسانی " -":attr:`~object.__dict__` هستند؛ با این حال، اشیاء دیگر ممکن است محدودیت هایی" -" در نوشتن روی ویژگی های :attr:`!__dict__` خود داشته باشند (برای مثال، کلاس " -"ها از یک :class:`types.MappingProxyType` برای جلوگیری از به روزرسانی مستقیم " -"دیکشنری استفاده می کنند)." +"اشیایی مانند ماژول ها و نمونه ها دارای یک ویژگی قابل به روزرسانی " +":attr:`~object.__dict__` هستند؛ اما، دیگر اشیا ممکن است محدودیت هایی برای " +"نوشتن بر روی ویژگی های :attr:`!__dict__` خود داشته باشند (به عنوان مثال، " +"کلاس ها از یک :class:`types.MappingProxyType` برای جلوگیری از به روزرسانی " +"مستقیم دیکشنری استفاده می کنند)." #: ../../library/functions.rst:2099 #, fuzzy msgid "Without an argument, :func:`vars` acts like :func:`locals`." -msgstr "بدون آرگومان، :func:`vars` شبیه :func:`locals` عمل می کند." +msgstr "بدون هیچ آرگومانی، :func:`vars` مانند :func:`locals` عمل می کند." #: ../../library/functions.rst:2101 #, fuzzy @@ -4658,9 +4654,9 @@ msgid "" "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class" " defines the :attr:`~object.__slots__` attribute)." msgstr "" -"اگر یک شیء مشخص شود اما دارای ویژگی :attr:`~object.__dict__` نباشد (به عنوان" -" مثال، اگر کلاس آن ویژگی :attr:`~object.__slots__` را تعریف کند)، یک استثنای" -" :exc:`TypeError` ایجاد می شود." +"اگر یک شیء مشخص شود ولی صفت :attr:`~object.__dict__` نداشته باشد، یک استثنا " +"از نوع :exc:`TypeError` ایجاد می شود (برای مثال، اگر کلاس آن صفت " +":attr:`~object.__slots__` را تعریف کرده باشد)." #: ../../library/functions.rst:2107 #, fuzzy @@ -4668,8 +4664,8 @@ msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." msgstr "" -"نتیجه ی فراخوانی این تابع بدون آرگومان مطابق توضیحات ارائه شده برای " -"«:func:`locals`» داخلی به روزرسانی شده است." +"نتیجه ی فراخوانی این تابع بدون آرگومان به روزرسانی شده است، همان طور که برای" +" توکار :func:`locals` توضیح داده شده است." #: ../../library/functions.rst:2113 #, fuzzy @@ -4677,8 +4673,8 @@ msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." msgstr "" -"بر روی چندین iterable به صورت موازی iteration انجام دهید و tupleهایی با یک " -"آیتم از هر کدام تولید کنید." +"از چند iterable به صورت موازی عبور کنید و تاپل هایی با یک آیتم از هر کدام " +"تولید کنید." #: ../../library/functions.rst:2116 #, fuzzy @@ -4695,14 +4691,12 @@ msgid "" "(2, 'spice')\n" "(3, 'everything nice')" msgstr "" -"```python\n" -">>> for item in zip([1, 2, 3], ['شکر', 'ادویه', 'هر چیز خوب']):\n" +">>> برای آیتم در zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" "... print(item)\n" "...\n" -"(1, 'شکر')\n" -"(2, 'ادویه')\n" -"(3, 'هر چیز خوب')\n" -"```" +"(1, 'sugar')\n" +"(2, 'spice')\n" +"(3, 'everything nice')" #: ../../library/functions.rst:2125 #, fuzzy @@ -4710,9 +4704,8 @@ msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." msgstr "" -"به طور رسمی تر: :func:`zip` یک تکرارگر از تاپل ها را بازمی گرداند، که در آن " -"تاپل شماره ی *i* شامل عنصر شماره ی *i* از هر یک از قابل تکرارهای آرگومان " -"است." +"به طور رسمی تر: :func:`zip` یک iterator از tuple ها را برمی گرداند، که در آن" +" *i*-امین tuple شامل *i*-امین عنصر از هر یک از iterable های آرگومان است." #: ../../library/functions.rst:2128 #, fuzzy @@ -4721,8 +4714,8 @@ msgid "" "columns into rows. This is similar to `transposing a matrix " "`_." msgstr "" -"راه دیگر برای تفکر در مورد :func:`zip` این است که سطرها را به ستون ها و ستون" -" ها را به سطرها تبدیل می کند. این شبیه به `transposing a matrix " +"راه دیگری برای درک :func:`zip` این است که سطرها را به ستون ها و ستون ها را " +"به سطرها تبدیل می کند. این شبیه به `transposing a matrix " "`_ است." #: ../../library/functions.rst:2132 @@ -4732,9 +4725,9 @@ msgid "" "iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a " ":class:`list`." msgstr "" -":func:`zip` تنبل است: عناصر تا زمانی که روی «iterable» مکرر نشوند، پردازش " -"نمی شوند، برای مثال توسط یک «:keyword:`!for`» حلقه یا با قرار دادن در یک " -"«:class:`list`»." +":func:`zip` تنبل است: عناصر پردازش نخواهند شد تا زمانی که به روی آی ترابل " +"iteration انجام شود، به عنوان مثال توسط یک حلقه :keyword:`!for` یا با بسته " +"بندی در یک :class:`list`." #: ../../library/functions.rst:2136 #, fuzzy @@ -4744,10 +4737,10 @@ msgid "" "the code that prepared these iterables. Python offers three different " "approaches to dealing with this issue:" msgstr "" -"یک نکته که باید در نظر داشت این است که \"iterables\" هایی که به " -"\":func:`zip`\" داده می شوند ممکن است طول های متفاوتی داشته باشند؛ گاهی به " -"خاطر طراحی و گاهی به دلیل یک باگ در کدی که این \"iterables\" ها را آماده " -"کرده است. پایتون سه رویکرد مختلف برای برخورد با این مسأله ارائه می دهد:" +"یک نکته ای که باید در نظر گرفت این است که ممکن است قابل تکرارهایی که به " +"`:func:`zip`` داده می شوند طول های متفاوتی داشته باشند؛ گاهی به دلیل طراحی و" +" گاهی به خاطر یک باگ در کدی که این قابل تکرارها را آماده کرده است. پایتون سه" +" رویکرد متفاوت برای مقابله با این مشکل ارائه می دهد:" #: ../../library/functions.rst:2141 #, fuzzy @@ -4756,9 +4749,9 @@ msgid "" "will ignore the remaining items in the longer iterables, cutting off the " "result to the length of the shortest iterable::" msgstr "" -"به طور پیش فرض، :func:`zip` زمانی که اولین iterable به پایان می رسد متوقف می" -" شود. این تابع اقلام باقی مانده در iterable های طولانی تر را نادیده می گیرد " -"و نتیجه را به طول کوتاه ترین iterable قطع می کند::" +"به طور پیش فرض، :func:`zip` زمانی که کوتاه ترین تکرارپذیر به پایان می رسد، " +"متوقف می شود. این تابع آیتم های باقی مانده در تکرارپذیرهای طولانی تر را " +"نادیده می گیرد و نتیجه را به طول کوتاه ترین تکرارپذیر محدود می کند::" #: ../../library/functions.rst:2145 #, fuzzy @@ -4766,10 +4759,8 @@ msgid "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" msgstr "" -"```python\n" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" -"[(0, 'fee'), (1, 'fi'), (2, 'fo')]\n" -"```" +"[(0, 'fee'), (1, 'fi'), (2, 'fo')]" #: ../../library/functions.rst:2148 #, fuzzy @@ -4778,9 +4769,9 @@ msgid "" "equal length. In such cases, it's recommended to use the ``strict=True`` " "option. Its output is the same as regular :func:`zip`::" msgstr "" -":func:`zip` معمولاً در مواردی استفاده می شود که فرض می شود طول تکرارپذیرها " -"برابر است. در چنین مواردی، توصیه می شود از گزینه ``strict=True`` استفاده " -"کنید. خروجی آن مشابه :func:`zip` معمولی است::" +":func:`zip` معمولاً در مواردی استفاده می شود که فرض بر این است که iterableها" +" دارای طول یکسانی هستند. در چنین مواردی، توصیه می شود از گزینه " +"``strict=True`` استفاده شود. خروجی آن مشابه :func:`zip` معمولی است::" #: ../../library/functions.rst:2152 #, fuzzy @@ -4788,10 +4779,8 @@ msgid "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" msgstr "" -"```python\n" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" -"[('a', 1), ('b', 2), ('c', 3)]\n" -"```" +"[('a', 1), ('b', 2), ('c', 3)]" #: ../../library/functions.rst:2155 #, fuzzy @@ -4799,7 +4788,7 @@ msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " "is exhausted before the others:" msgstr "" -"برخلاف رفتار پیش فرض، اگر یکی از iterableها قبل از دیگران به انتها برسد، یک " +"برخلاف رفتار پیش فرض، اگر یکی از iterable ها قبل از بقیه به اتمام برسد، یک " ":exc:`ValueError` ایجاد می کند:" #: ../../library/functions.rst:2173 @@ -4809,9 +4798,9 @@ msgid "" "different lengths will be silenced, possibly manifesting as a hard-to-find " "bug in another part of the program." msgstr "" -"بدون آرگومان ``strict=True``، هر باگی که منجر به طول های متفاوت در iterable " -"ها شود، نادیده گرفته می شود و ممکن است به صورت یک باگ سخت برای یافتن در " -"قسمتی دیگر از برنامه ظاهر شود." +"بدون آرگومان ``strict=True``، هر باگی که منجر به طول های متفاوت در تکرار " +"شونده ها شود نادیده گرفته می شود و ممکن است به عنوان یک باگ سخت در بخش دیگری" +" از برنامه ظاهر شود." #: ../../library/functions.rst:2177 #, fuzzy @@ -4820,9 +4809,9 @@ msgid "" "iterables have the same length. This is done by " ":func:`itertools.zip_longest`." msgstr "" -"Iterableهای کوتاه تر می توانند با یک مقدار ثابت پر شوند تا همه ی iterableها " -"طول یکسانی داشته باشند. این کار توسط :func:`itertools.zip_longest` انجام می " -"شود." +"به منظور اینکه تمامی اشیاء قابل تکرار طول یکسانی داشته باشند، می توان اشیاء " +"قابل تکرار کوتاه تر را با یک مقدار ثابت تکمیل کرد. این کار با استفاده از " +":func:`itertools.zip_longest` انجام می شود." #: ../../library/functions.rst:2181 #, fuzzy @@ -4830,8 +4819,8 @@ msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator" " of 1-tuples. With no arguments, it returns an empty iterator." msgstr "" -"لبه های خاص: با یک آرگومان تکرارشونده، `:func:`zip`` یک تکرارگر از تک تایی " -"ها بازمی گرداند. بدون هیچ آرگومانی، یک تکرارگر خالی بازمی گرداند." +"موارد خاص: با یک آرگومان قابل تکرار، :func:`zip` یک تکرارگر از 1-تایی ها را " +"بازمی گرداند. بدون هیچ آرگومانی، یک تکرارگر خالی را بازمی گرداند." #: ../../library/functions.rst:2184 #, fuzzy @@ -4847,12 +4836,12 @@ msgid "" "``n`` times so that each output tuple has the result of ``n`` calls to the " "iterator. This has the effect of dividing the input into n-length chunks." msgstr "" -"ترتیب ارزیابی از چپ به راست برای گزینه های قابل تکرار تضمین شده است. این امر" -" باعث می شود که یک ایدئوم برای دسته بندی یک سری داده به گروه های به طول n با" -" استفاده از ``zip(*[iter(s)]*n, strict=True)`` ممکن شود. این کار تکرارگر " -"*same* را ``n`` بار تکرار می کند به طوری که هر تاپل خروجی نتیجه ``n`` " -"فراخوانی با تکرارگر را داشته باشد. این باعث می شود که ورودی به قطعاتی به طول" -" n تقسیم شود." +"ترتیب ارزیابی از چپ به راست برای iterableها تضمین شده است. این امر امکان " +"استفاده از یک اصطلاح برای خوشه بندی یک سری داده به گروه های با طول n را با " +"استفاده از ``zip(*[iter(s)]*n, strict=True)`` فراهم می کند. این کار، تکرار " +"کننده *same* را ``n`` بار تکرار می کند به طوری که هر tuple خروجی نتیجه ``n``" +" بار فراخوانی تکرارکننده را در بر دارد. این تاثیر تقسیم ورودی به بخش های با " +"طول n را دارد." #: ../../library/functions.rst:2192 #, fuzzy @@ -4860,7 +4849,7 @@ msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" msgstr "" -":func:`zip` همراه با عملگر ``*`` می تواند برای باز کردن یک لیست استفاده " +":func:`zip` به همراه عملگر ``*`` می تواند برای باز کردن یک لیست استفاده " "شود::" #: ../../library/functions.rst:2195 @@ -4874,15 +4863,13 @@ msgid "" ">>> x == list(x2) and y == list(y2)\n" "True" msgstr "" -"```python\n" ">>> x = [1, 2, 3]\n" ">>> y = [4, 5, 6]\n" ">>> list(zip(x, y))\n" "[(1, 4), (2, 5), (3, 6)]\n" ">>> x2, y2 = zip(*zip(x, y))\n" ">>> x == list(x2) and y == list(y2)\n" -"True\n" -"```" +"True" #: ../../library/functions.rst:2203 #, fuzzy @@ -4895,8 +4882,8 @@ msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." msgstr "" -"این یک تابع پیشرفته است که بر خلاف :func:`importlib.import_module` در برنامه" -" نویسی روزانه پایتون مورد نیاز نیست." +"این یک تابع پیشرفته است که برخلاف :func:`importlib.import_module` در برنامه " +"نویسی روزمره پایتون مورد نیاز نیست." #: ../../library/functions.rst:2218 #, fuzzy @@ -4911,12 +4898,12 @@ msgid "" "discouraged in favor of :func:`importlib.import_module`." msgstr "" "این تابع توسط عبارت :keyword:`import` فراخوانی می شود. برای تغییر معنای " -"عبارت :keyword:`!import`، می توان آن را جایگزین کرد (با وارد کردن ماژول " -":mod:`builtins` و اختصاص دادن به ``builtins.__import__``)، اما انجام این کار" -" شدیداً **strongly** توصیه نمی شود زیرا معمولاً استفاده از قلاب های وارد (به" -" :pep:`302` مراجعه کنید) برای دستیابی به اهداف مشابه ساده تر است و مشکلاتی " -"با کدی که فرض می کند اجرای پیش فرض وارد استفاده می شود ایجاد نمی کند. " -"استفاده مستقیم از :func:`__import__` نیز به جای " +"عبارت :keyword:`!import` می توان آن را (با وارد کردن ماژول :mod:`builtins` و" +" اختصاص به ``builtins.__import__``) جایگزین کرد، اما این کار به شدت " +"**strongly** توصیه نمی شود زیرا به طور معمول استفاده از قلاب های واردات (به " +":pep:`302` مراجعه کنید) برای دستیابی به همان اهداف ساده تر است و مشکلاتی با " +"کدی که فرض می کند پیاده سازی واردات پیش فرض در حال استفاده است، ایجاد نمی " +"کند. استفاده مستقیم از :func:`__import__` نیز به نفع " ":func:`importlib.import_module` توصیه نمی شود." #: ../../library/functions.rst:2227 @@ -4929,12 +4916,12 @@ msgid "" "does not use its *locals* argument at all and uses its *globals* only to " "determine the package context of the :keyword:`import` statement." msgstr "" -"تابع ماژول *name* را وارد می کند و ممکن است از *globals* و *locals*ی داده " -"شده برای تعیین نحوه تفسیر نام در یک بستر پکیج استفاده کند. *fromlist* نام " -"اشیاء یا زیرماژول هایی را فراهم می کند که باید از ماژولی که توسط *name* داده" -" شده است، وارد شوند. پیاده سازی استاندارد به هیچ وجه از آرگومان *locals* " -"استفاده نمی کند و تنها برای تعیین بستر پکیج دستور :keyword:`import` از " -"*globals* استفاده می کند." +"این تابع ماژول *name* را ایمپورت می کند، و ممکن است از *globals* و *locals* " +"داده شده برای تعیین نحوه تفسیر نام در یک زمینه بسته استفاده کند. *fromlist* " +"نام اشیاء یا زیرماژول هایی را می دهد که باید از ماژولی که توسط *name* داده " +"شده است، ایمپورت شوند. پیاده سازی استاندارد از آرگومان *locals* خود به هیچ " +"وجه استفاده نمی کند و از *globals* خود تنها برای تعیین زمینه بسته عبارت " +":keyword:`import` استفاده می کند." #: ../../library/functions.rst:2234 #, fuzzy @@ -4946,9 +4933,10 @@ msgid "" "details)." msgstr "" "*level* مشخص می کند که آیا از واردات مطلق یا نسبی استفاده شود. ``0`` (پیش " -"فرض) به این معنی است که فقط واردات مطلق انجام شود. مقادیر مثبت برای *level* " -"نشان دهنده تعداد دایرکتوری های والد برای جستجو نسبت به دایرکتوری ماژولی است " -"که :func:`__import__` را فراخوانی می کند (جزئیات را در :pep:`328` ببینید)." +"فرض) به معنی انجام فقط واردات مطلق است. مقادیر مثبت برای *level* تعداد " +"دایرکتوری های پدر را که نسبت به دایرکتوری ماژولی که :func:`__import__` را " +"فراخوانی می کند جستجو می شوند، نشان می دهد (برای جزئیات به :pep:`328` مراجعه" +" کنید)." #: ../../library/functions.rst:2240 #, fuzzy @@ -4958,10 +4946,10 @@ msgid "" "module named by *name*. However, when a non-empty *fromlist* argument is " "given, the module named by *name* is returned." msgstr "" -"هنگامی که متغیر *name* به شکل ``package.module`` است، معمولاً بسته سطح بالا " -"(نام تا اولین نقطه) بازگردانده می شود، *not* ماژولی که با *name* نام گذاری " -"شده است. با این حال، زمانی که یک آرگومان *fromlist* غیر خالی داده می شود، " -"ماژول نام گذاری شده توسط *name* بازگردانده می شود." +"هنگامی که متغیر *name* به شکل ``package.module`` باشد، معمولاً بسته سطح بالا" +" (نام تا اولین نقطه) برگشت داده می شود، *not* ماژول نام گذاری شده توسط " +"*name*. با این حال، هنگامی که یک آرگومان غیرخالی *fromlist* داده می شود، " +"ماژول نام گذاری شده توسط *name* برگشت داده می شود." #: ../../library/functions.rst:2245 #, fuzzy @@ -4969,26 +4957,28 @@ msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" msgstr "" -"به عنوان مثال، عبارت ``import spam`` به بایت کدی تبدیل می شود که شبیه به کد " -"زیر است::" +"به عنوان مثال، عبارت ``import spam`` به بایت کدی شبیه به کد زیر منجر می " +"شود::" #: ../../library/functions.rst:2248 #, fuzzy msgid "spam = __import__('spam', globals(), locals(), [], 0)" -msgstr "`spam = __import__('spam', globals(), locals(), [], 0)`" +msgstr "``spam = __import__('spam', globals(), locals(), [], 0)``" #: ../../library/functions.rst:2250 #, fuzzy msgid "The statement ``import spam.ham`` results in this call::" -msgstr "دستور ``import spam.ham`` منجر به این فراخوانی می شود::" +msgstr "عبارت ``import spam.ham`` منجر به این فراخوانی می شود::" #: ../../library/functions.rst:2252 #, fuzzy msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" msgstr "" -"```python\n" -"spam = __import__('spam.ham', globals(), locals(), [], 0)\n" -"```" +"``spam = __import__('spam.ham', globals(), locals(), [], 0)``: این خط از کد " +"در پایتون برای وارد کردن ماژولی با نام `'spam.ham'` استفاده می شود. این تابع" +" برای برنامه نویسی پویا و زمانی که نام ماژول ممکن است در زمان اجرا تعیین " +"شود، مفید است. پارامترها به این صورت هستند: نام ماژول، نگهدارنده ی فضای نام " +"های سراسری و محلی، لیستی از اشیا و سطح (که در این مثال صفر است)." #: ../../library/functions.rst:2254 #, fuzzy @@ -4997,7 +4987,7 @@ msgid "" " the object that is bound to a name by the :keyword:`import` statement." msgstr "" "توجه کنید که :func:`__import__` در اینجا ماژول سطح بالا را برمی گرداند زیرا " -"این شیء توسط عبارت :keyword:`import` به یک نام وابسته شده است." +"این شیء است که با عبارت :keyword:`import` به نامی متصل شده است." #: ../../library/functions.rst:2257 #, fuzzy @@ -5005,7 +4995,8 @@ msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" -"از سوی دیگر، دستور ``from spam.ham import eggs, sausage as saus`` منجر به ::" +"از طرف دیگر، عبارت ``from spam.ham import eggs, sausage as saus`` به نتیجه " +"می رسد در ::" #: ../../library/functions.rst:2260 #, fuzzy @@ -5014,11 +5005,9 @@ msgid "" "eggs = _temp.eggs\n" "saus = _temp.sausage" msgstr "" -"```python\n" "_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" "eggs = _temp.eggs\n" -"saus = _temp.sausage\n" -"```" +"saus = _temp.sausage" #: ../../library/functions.rst:2264 #, fuzzy @@ -5028,8 +5017,8 @@ msgid "" "respective names." msgstr "" "در اینجا، ماژول ``spam.ham`` از :func:`__import__` برگردانده می شود. از این " -"شیء، نام هایی که باید وارد شوند استخراج و به نام های مربوطه اختصاص داده می " -"شوند." +"شیء، نام هایی که باید وارد شوند بازیابی شده و به نام های مربوطه خود اختصاص " +"داده می شوند." #: ../../library/functions.rst:2268 #, fuzzy @@ -5037,7 +5026,7 @@ msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." msgstr "" -"اگر به سادگی می خواهید یک ماژول (احتمالاً درون یک پکیج) را با نام وارد کنید،" +"اگر به سادگی می خواهید یک ماژول (احتمالاً درون یک بسته) را با نام وارد کنید،" " از :func:`importlib.import_module` استفاده کنید." #: ../../library/functions.rst:2271 @@ -5046,8 +5035,8 @@ msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." msgstr "" -"مقادیر منفی برای *level* دیگر پشتیبانی نمی شوند (که به طور همزمان مقدار پیش " -"فرض به 0 تغییر یافته است)." +"دیگر مقادیر منفی برای *level* پشتیبانی نمی شوند (که همچنین مقدار پیش فرض را " +"به 0 تغییر می دهد)." #: ../../library/functions.rst:2275 #, fuzzy @@ -5055,8 +5044,8 @@ msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." msgstr "" -"هنگامی که گزینه های خط فرمان :option:`-E` یا :option:`-I` استفاده می شوند، " -"متغیر محیطی :envvar:`PYTHONCASEOK` اکنون نادیده گرفته می شود." +"زمانی که گزینه های خط فرمان :option:`-E` یا :option:`-I` استفاده می شوند، " +"متغیر محیطی :envvar:`PYTHONCASEOK` در حال حاضر نادیده گرفته می شود." #: ../../library/functions.rst:2280 #, fuzzy @@ -5070,9 +5059,9 @@ msgid "" "you are reading the code from a file, make sure to use newline conversion " "mode to convert Windows or Mac-style newlines." msgstr "" -"توجه داشته باشید که تجزیه گر تنها قرارداد پایان خط به سبک Unix را می پذیرد. " -"اگر در حال خواندن کد از یک فایل هستید، مطمئن شوید که از حالت تبدیل newline " -"برای تبدیل newlineهای به سبک Windows یا Mac استفاده کنید." +"توجه داشته باشید که تجزیه گر تنها سبک پایان خط یونیکس را می پذیرد. اگر کد را" +" از یک فایل می خوانید، اطمینان حاصل کنید که حالت تبدیل خط جدید را برای تبدیل" +" پایان خط های ویندوز یا مک استفاده کنید." #: ../../library/functions.rst:154 #, fuzzy @@ -5087,20 +5076,17 @@ msgstr "نوع" #: ../../library/functions.rst:648 #, fuzzy msgid "built-in function" -msgstr "تابع ساختاریافته" +msgstr "تابع داخلی" #: ../../library/functions.rst:648 #, fuzzy msgid "exec" -msgstr "" -"اجرای \"``\" در پایتون برای اجرای کدهای پایتون که به صورت رشته ها ارائه می " -"شوند، استفاده می شود. این تابع این امکان را می دهد که در زمان اجرا، کدهای " -"پویا تولید و اجرا شوند." +msgstr "اجرا کردن" #: ../../library/functions.rst:746 #, fuzzy msgid "NaN" -msgstr "نان" +msgstr "نا عدد (NaN)" #: ../../library/functions.rst:746 #, fuzzy @@ -5120,7 +5106,7 @@ msgstr "رشته" #: ../../library/functions.rst:814 #, fuzzy msgid "format() (built-in function)" -msgstr "تابع توکار ()`format`" +msgstr "()format (تابع توکار)" #: ../../library/functions.rst:1325 #, fuzzy @@ -5145,12 +5131,12 @@ msgstr "حالت ها" #: ../../library/functions.rst:1446 #, fuzzy msgid "universal newlines" -msgstr "یونیورسال نیولاینز" +msgstr "خطوط جدید جهانی (universal newlines)" #: ../../library/functions.rst:1507 #, fuzzy msgid "line-buffered I/O" -msgstr "ورودی/خروجی بافر خطی" +msgstr "ورودی/خروجی با اندازه بافر خطی" #: ../../library/functions.rst:1507 #, fuzzy @@ -5175,7 +5161,7 @@ msgstr "بافرینگ" #: ../../library/functions.rst:1507 #, fuzzy msgid "text mode" -msgstr "حالت متنی" +msgstr "حالت متن" #: ../../library/functions.rst:1507 ../../library/functions.rst:2209 #, fuzzy @@ -5190,15 +5176,12 @@ msgstr "سیستم" #: ../../library/functions.rst:1925 #, fuzzy msgid "str() (built-in function)" -msgstr "" -"()تابع داخلی) str) \n" -"\n" -"تابع داخلی \"str()\" در پایتون برای تبدیل یک آبجکت به رشته ای از نوع string استفاده می شود." +msgstr "تابع داخلی `str()`" #: ../../library/functions.rst:2048 #, fuzzy msgid "object" -msgstr "شیء" +msgstr "شی:" #: ../../library/functions.rst:2209 #, fuzzy diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 62c850cbc..c114cbb79 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/appendix.rst:5 #, fuzzy msgid "Appendix" -msgstr "پیوست" +msgstr "ضمیمه" #: ../../tutorial/appendix.rst:11 #, fuzzy @@ -38,8 +38,8 @@ msgid "" "interpreter is supported on all platforms with minimal line control " "capabilities." msgstr "" -"دو نوع مختلف از :term:`REPL` تعاملی وجود دارد. مفسر کلاسیک و پایه بر روی " -"تمام پلتفرم ها با قابلیت های حداقلی کنترل خط پشتیبانی می شود." +"دو نوع از ``:term:`REPL``` تعاملی وجود دارد. مفسر کلاسیک پایه در تمامی " +"پلتفرم ها با قابلیت های حداقلی کنترل خط پشتیبانی می شود." #: ../../tutorial/appendix.rst:17 #, fuzzy @@ -54,15 +54,15 @@ msgid "" " \"paste mode\", which makes pasting larger blocks of code easier. Press " ":kbd:`F3` to return to the regular prompt." msgstr "" -"در سیستم های Windows یا سیستم های Unix مانندی که از :mod:`curses` پشتیبانی " -"می کنند، به طور پیش فرض یک پوسته تعاملی جدید استفاده می شود. این پوسته از " -"رنگ، ویرایش چندخطی، مرور تاریخچه و حالت چسباندن پشتیبانی می کند. برای " -"غیرفعال کردن رنگ، جزئیات را در :ref:`using-on-controlling-color` مشاهده " -"کنید. کلیدهای تابعی برخی قابلیت های اضافی را ارائه می دهند. :kbd:`F1` مرورگر" -" کمک تعاملی :mod:`pydoc` را اجرا می کند. :kbd:`F2` امکان مرور تاریخچه خط " -"فرمان را بدون خروجی و بدون :term:`>>>` و :term:`...` فراهم می آورد. " -":kbd:`F3` حالت \"چسباندن\" را اجرا می کند، که چسباندن بلوک های بزرگ تر کد را" -" آسان تر می کند. برای بازگشت به اعلان عادی :kbd:`F3` را فشار دهید." +"در ویندوز یا سیستم های مشابه یونیکس که از :mod:`curses` پشتیبانی می کنند، به" +" طور پیش فرض از یک پوسته تعاملی جدید استفاده می شود. این پوسته از رنگ، " +"ویرایش چندخطی، مرور تاریخچه و حالت چسباندن پشتیبانی می کند. برای غیرفعال " +"کردن رنگ، به :ref:`using-on-controlling-color` مراجعه کنید. کلیدهای عملکردی " +"عملکرد اضافی فراهم می کنند. :kbd:`F1` مرورگر راهنمای تعاملی :mod:`pydoc` را " +"اجرا می کند. :kbd:`F2` اجازه می دهد تاریخچه خط فرمان را بدون خروجی و بدون " +"اعلان های :term:`>>>` و :term:`...` مرور کنید. :kbd:`F3` وارد \"حالت " +"چسباندن\" می شود که چسباندن بلوک های کد بزرگ تر را آسان تر می کند. با فشردن " +":kbd:`F3` به اعلان معمولی برگردید." #: ../../tutorial/appendix.rst:28 #, fuzzy @@ -71,9 +71,8 @@ msgid "" "or :kbd:`quit`. Adding call parentheses after those commands is not " "required." msgstr "" -"هنگامی که از شل تعاملی جدید استفاده می کنید، با تایپ \":kbd:`exit`\" یا " -"\":kbd:`quit`\" از شل خارج شوید. اضافه کردن پرانتز های فراخوانی بعد از این " -"دستورات لازم نیست." +"هنگام استفاده از شل تعاملی جدید، با تایپ :kbd:`exit` یا :kbd:`quit` از شل " +"خارج شوید. افزودن پرانتزهای فراخوانی بعد از این دستورات لازم نیست." #: ../../tutorial/appendix.rst:32 #, fuzzy @@ -81,13 +80,13 @@ msgid "" "If the new interactive shell is not desired, it can be disabled via the " ":envvar:`PYTHON_BASIC_REPL` environment variable." msgstr "" -"اگر محیط تعاملی جدید نخواسته باشد، می توان آن را از طریق متغیر محیطی " -":envvar:`PYTHON_BASIC_REPL` غیرفعال کرد." +"اگر پوسته تعاملی جدید مورد نظر نیست، می توان با استفاده از متغیر محیطی " +":envvar:`PYTHON_BASIC_REPL` آن را غیرفعال کرد." #: ../../tutorial/appendix.rst:38 #, fuzzy msgid "Error Handling" -msgstr "مدیریت خطاها" +msgstr "مدیریت خطا" #: ../../tutorial/appendix.rst:40 #, fuzzy @@ -102,14 +101,14 @@ msgid "" " All error messages are written to the standard error stream; normal output" " from executed commands is written to standard output." msgstr "" -"هنگامی که خطایی رخ می دهد، مفسر یک پیام خطا و یک ردگیری پشته چاپ می کند. در " -"حالت تعاملی، سپس به اعلان اصلی بازمی گردد؛ هنگامی که ورودی از یک فایل می " -"آید، بعد از چاپ ردگیری پشته با وضعیتی غیر صفر خارج می شود. (استثناهایی که " -"توسط یک بند \"``:keyword:`except```\" در یک دستور \"``:keyword:`try```\" " -"مدیریت می شوند، در این زمینه خطا نیستند.) برخی خطاها به صورت غیر قابل تغییر " -"مرگبار هستند و باعث خروج با وضعیت غیر صفر می شوند؛ این مسئله برای ناسازگاری " -"های داخلی و برخی موارد کمبود حافظه صدق می کند. تمامی پیام های خطا به جریان " -"خروجی استاندارد خطا نوشته می شوند؛ خروجی عادی دستورات اجرا شده به خروجی " +"وقتی خطایی رخ می دهد، مفسر یک پیام خطا و یک دید کلی از پشته را چاپ می کند. " +"در حالت تعاملی، سپس به پیام اولیه بازمی گردد؛ وقتی ورودی از یک فایل می آید، " +"بعد از چاپ دید کلی پشته، با وضعیت خروج غیر صفر از برنامه خارج می شود. " +"(استثناهایی که توسط یک بند :keyword:`except` در یک دستور :keyword:`try` " +"مدیریت می شوند در این زمینه خطا نیستند.) برخی خطاها بدون قید و شرط مرگبار " +"هستند و موجب خروج با وضعیت غیر صفر می شوند؛ این حالت به ناسازگاری های داخلی " +"و برخی موارد تمام شدن حافظه اعمال می شود. تمام پیام های خطا به جریان خطای " +"استاندارد نوشته می شوند؛ خروجی نرمال از فرمان ها ی اجرا شده به خروجی " "استاندارد نوشته می شود." #: ../../tutorial/appendix.rst:50 @@ -121,16 +120,15 @@ msgid "" " the :exc:`KeyboardInterrupt` exception, which may be handled by a " ":keyword:`try` statement." msgstr "" -"فشردن نویسه ی interrupt (معمولاً :kbd:`Control-C` یا :kbd:`Delete`) در حالت " -"prompt اولیه یا ثانویه، ورودی را لغو کرده و به prompt اولیه بر می گرداند. " -"[#]_ زدن یک interrupt در هنگام اجرای یک دستور باعث می شود که استثنای " -":exc:`KeyboardInterrupt` رخ دهد، که ممکن است توسط دستور :keyword:`try` مورد " -"پردازش قرار گیرد." +"با وارد کردن کاراکتر قطع (معمولاً :kbd:`Control-C` یا :kbd:`Delete`) در " +"اعلان اولیه یا ثانویه، ورودی لغو شده و به اعلان اولیه بازمی گردد. [#]_ وارد " +"کردن یک قطع در حین اجرای یک دستور، استثنای :exc:`KeyboardInterrupt` را " +"افزایش می دهد، که ممکن است توسط یک عبارت :keyword:`try` مدیریت شود." #: ../../tutorial/appendix.rst:60 #, fuzzy msgid "Executable Python Scripts" -msgstr "اسکریپت های اجرایی پایتون" +msgstr "اسکریپت های قابل اجرای پایتون" #: ../../tutorial/appendix.rst:62 #, fuzzy @@ -138,8 +136,8 @@ msgid "" "On BSD'ish Unix systems, Python scripts can be made directly executable, " "like shell scripts, by putting the line ::" msgstr "" -"در سیستم های Unix به سبک BSD، اسکریپت های Python می توانند مانند اسکریپت های" -" شل به صورت مستقیم اجرایی شوند، با قرار دادن خط ::" +"در سیستم های یونیکس مانند BSD، اسکریپت های پایتون را می توان به صورت مستقیم " +"اجراپذیر کرد، مانند اسکریپت های شل، با قرار دادن خط ::" #: ../../tutorial/appendix.rst:65 #, fuzzy @@ -156,11 +154,12 @@ msgid "" "(``'\\r\\n'``) line ending. Note that the hash, or pound, character, " "``'#'``, is used to start a comment in Python." msgstr "" -"(با فرض اینکه مفسر در :envvar:`PATH` کاربر باشد) در ابتدای اسکریپت و دادن " -"حالت اجرایی به فایل. ``#!`` باید دو کاراکتر اول فایل باشد. در برخی از پلتفرم" -" ها، این خط اول باید با یک پایان خط به سبک یونیکس (``'\\n'``) پایان یابد، نه" -" یک پایان خط ویندوزی (``'\\r\\n'``). توجه داشته باشید که کاراکتر هشتگ یا " -"پوند، ``'#'``، برای شروع یک نظر در پایتون استفاده می شود." +"(فرض را بر این می گیریم که مفسر روی :envvar:`PATH` کاربر است) در ابتدای " +"اسکریپت و دادن حالت اجرایی به فایل. ``#!`` باید دو کاراکتر اول فایل باشد. در" +" برخی از پلتفرم ها، این خط اول باید با یک پایان خط به سبک یونیکس " +"(``'\\n'``)، و نه پایان خط به سبک ویندوز (``'\\r\\n'``) به پایان برسد. توجه " +"داشته باشید که کاراکتر هش یا پوند، ``'#'``، برای شروع یک نظر (کامنت) در " +"پایتون استفاده می شود." #: ../../tutorial/appendix.rst:74 #, fuzzy @@ -168,8 +167,8 @@ msgid "" "The script can be given an executable mode, or permission, using the " ":program:`chmod` command." msgstr "" -"برای اسکریپت می توان با استفاده از دستور :program:`chmod` حالت اجرایی یا " -"اجازه لازم را تعیین کرد." +"با استفاده از فرمان :program:`chmod` می توان به اسکریپت حالتی اجرایی یا مجوز" +" داد." #: ../../tutorial/appendix.rst:77 #, fuzzy @@ -185,16 +184,16 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"در سیستم های ویندوز، مفهومی به نام \"حالت اجرایی\" وجود ندارد. نصاب پایتون " -"به طور خودکار فایل های ``.py`` را با ``python.exe`` مرتبط می کند تا با دو " -"بار کلیک روی یک فایل پایتون، به صورت یک اسکریپت اجرا شود. همچنین ممکن است " -"پسوند ``.pyw`` باشد که در این صورت، پنجره کنسول که به طور معمول ظاهر می شود،" -" نمایش داده نمی شود." +"در سیستم های ویندوز، مفهومی به نام \"حالت اجرایی\" وجود ندارد. نصب کننده " +"پایتون به طور خودکار فایل های ``.py`` را با ``python.exe`` مرتبط می کند به " +"طوری که با دوبار کلیک روی یک فایل پایتون، آن به صورت یک اسکریپت اجرا می شود." +" پسوند می تواند ``.pyw`` نیز باشد که در این حالت، پنجره کنسولی که به طور " +"معمول ظاهر می شود، مخفی می گردد." #: ../../tutorial/appendix.rst:91 #, fuzzy msgid "The Interactive Startup File" -msgstr "فایل استارتاپ تعاملی" +msgstr "فایل شروع به کار تعاملی" #: ../../tutorial/appendix.rst:93 #, fuzzy @@ -205,11 +204,11 @@ msgid "" "the name of a file containing your start-up commands. This is similar to " "the :file:`.profile` feature of the Unix shells." msgstr "" -"هنگامی که از پایتون به صورت تعاملی استفاده می کنید، اغلب مفید است که برخی " -"دستورات استاندارد هر بار که مفسر شروع به کار می کند، اجرا شوند. شما می " -"توانید این کار را با تنظیم یک متغیر محیطی به نام :envvar:`PYTHONSTARTUP` به " -"نام فایل حاوی دستورات اولیه خود انجام دهید. این شبیه ویژگی :file:`.profile` " -"در پوسته های یونیکس است." +"زمانی که از پایتون به صورت تعاملی استفاده می کنید، معمولاً مفید است که " +"تعدادی دستورات استاندارد هر بار که مفسر شروع می شود اجرا شوند. شما می توانید" +" این کار را با تنظیم یک متغیر محیطی به نام :envvar:`PYTHONSTARTUP` به نام " +"فایلی که حاوی دستورات شروع به کار شماست، انجام دهید. این ویژگی مشابه قابلیت " +":file:`.profile` در شِل های یونیکس است." #: ../../tutorial/appendix.rst:99 #, fuzzy @@ -222,13 +221,13 @@ msgid "" " qualification in the interactive session. You can also change the prompts " "``sys.ps1`` and ``sys.ps2`` in this file." msgstr "" -"این فایل فقط در نشست های تعاملی خوانده می شود، نه زمانی که پایتون دستورات را" -" از یک اسکریپت می خواند، و نه هنگامی که :file:`/dev/tty` به عنوان منبع صریح " -"دستورات ارائه شده است (که در غیر این صورت مانند یک نشست تعاملی عمل می کند). " -"این فایل در همان فضای نامی که دستورات تعاملی اجرا می شوند، اجرا می شود، به " -"طوری که اشیاءی که تعریف یا وارد می کند می توانند بدون نیاز به اشاره در نشست " -"تعاملی استفاده شوند. شما همچنین می توانید اعلان های ``sys.ps1`` و " -"``sys.ps2`` را در این فایل تغییر دهید." +"این فایل فقط در جلسات تعاملی خوانده می شود و نه زمانی که پایتون دستورات را " +"از یک اسکریپت می خواند و نه وقتی که :file:`/dev/tty` به عنوان منبع صریح " +"دستورات داده می شود (که به هرحال مانند یک جلسه تعاملی رفتار می کند). این " +"فایل در همان فضای نامی اجرا می شود که دستورات تعاملی اجرا می شوند، به طوری " +"که اشیائی که تعریف یا وارد می کند می توانند بدون نیاز به تعیین در جلسه " +"تعاملی استفاده شوند. همچنین می توانید پرسش ها ``sys.ps1`` و ``sys.ps2`` را " +"در این فایل تغییر دهید." #: ../../tutorial/appendix.rst:107 #, fuzzy @@ -239,11 +238,11 @@ msgid "" "want to use the startup file in a script, you must do this explicitly in the" " script::" msgstr "" -"اگر می خواهید یک فایل راه اندازی اضافی از دایرکتوری فعلی بخوانید، می توانید " -"این کار را در فایل راه اندازی سراسری با استفاده از کدی مانند ``if " +"اگر می خواهید فایل استارت آپ اضافی از دایرکتوری جاری بخوانید، می توانید این " +"کار را در فایل استارت آپ جهانی با استفاده از کدی مثل ``if " "os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`` برنامه " -"ریزی کنید. اگر می خواهید از فایل راه اندازی در یک اسکریپت استفاده کنید، باید" -" این کار را به صراحت در اسکریپت انجام دهید::" +"ریزی کنید. اگر می خواهید فایل استارت آپ را در یک اسکریپت استفاده کنید، باید " +"به طور صریح این کار را در اسکریپت انجام دهید::" #: ../../tutorial/appendix.rst:113 #, fuzzy @@ -255,14 +254,12 @@ msgid "" " startup_file = fobj.read()\n" " exec(startup_file)" msgstr "" -"```python\n" -"import os\n" -"filename = os.environ.get('PYTHONSTARTUP')\n" -"if filename and os.path.isfile(filename):\n" -" with open(filename) as fobj:\n" -" startup_file = fobj.read()\n" -" exec(startup_file)\n" -"```" +"وارد کردن کتابخانه ی os \n" +"filename = os.environ.get('PYTHONSTARTUP') \n" +"اگر filename و os.path.isfile(filename): \n" +" با open(filename) به صورت fobj: \n" +" startup_file = fobj.read() \n" +" اجرا کردن startup_file " #: ../../tutorial/appendix.rst:124 #, fuzzy @@ -277,10 +274,10 @@ msgid "" " location of your user site-packages directory. Start Python and run this " "code::" msgstr "" -"پایتون دو قلاب را برای سفارشی سازی آن فراهم می کند: :index:`sitecustomize` و" -" :index:`usercustomize`. برای مشاهده نحوه کار، ابتدا باید مکان دایرکتوری " -"user site-packages خود را پیدا کنید. پایتون را اجرا کنید و این کد را وارد " -"کنید::" +"پایتون دو قلاب برای سفارشی سازی در اختیار شما قرار می دهد: " +":index:`sitecustomize` و :index:`usercustomize`. برای دیدن چگونگی کارکرد آن " +"ها، ابتدا باید محل دایرکتوری user site-packages خود را پیدا کنید. پایتون را" +" راه اندازی کنید و این کد را اجرا کنید::" #: ../../tutorial/appendix.rst:130 #, fuzzy @@ -289,11 +286,9 @@ msgid "" ">>> site.getusersitepackages()\n" "'/home/user/.local/lib/python3.x/site-packages'" msgstr "" -"```python\n" ">>> import site\n" ">>> site.getusersitepackages()\n" -"'/home/user/.local/lib/python3.x/site-packages'\n" -"```" +"'/home/user/.local/lib/python3.x/site-packages'" #: ../../tutorial/appendix.rst:134 #, fuzzy @@ -303,10 +298,10 @@ msgid "" " unless it is started with the :option:`-s` option to disable the automatic " "import." msgstr "" -"اکنون می توانید فایلی به نام :file:`usercustomize.py` در آن دایرکتوری ایجاد " -"کنید و هر چیزی که می خواهید در آن قرار دهید. این کار بر هر بار اجرای Python " -"تأثیر خواهد گذاشت، مگر اینکه با گزینه :option:`-s` شروع شود تا واردات خودکار" -" غیرفعال شود." +"اکنون می توانید فایلی با نام :file:`usercustomize.py` در آن دایرکتوری ایجاد " +"کنید و هر چیزی که می خواهید در آن قرار دهید. این کار بر تمام اجراهای Python " +"تأثیر خواهد گذاشت، مگر اینکه Python با گزینه :option:`-s` اجرا شود تا وارد " +"کردن خودکار را غیرفعال کند." #: ../../tutorial/appendix.rst:138 #, fuzzy @@ -316,17 +311,17 @@ msgid "" " imported before :index:`usercustomize`. See the documentation of the " ":mod:`site` module for more details." msgstr "" -"`:index:`sitecustomize`` به همان روش کار می کند، اما معمولاً توسط مدیر " -"رایانه در پوشه کلی سایت پکیج ها ایجاد می شود و قبل از " -"`:index:`usercustomize` وارد می شود. برای جزئیات بیشتر به مستندات ماژول " +":index:`sitecustomize` به همان روش کار می کند، اما معمولاً توسط مدیر رایانه " +"در دایرکتوری جهانی site-packages ایجاد می شود و قبل از " +":index:`usercustomize` وارد می شود. برای جزئیات بیشتر به مستندات ماژول " ":mod:`site` مراجعه کنید." #: ../../tutorial/appendix.rst:145 #, fuzzy msgid "Footnotes" -msgstr "پانویس ها" +msgstr "پانوشت ها" #: ../../tutorial/appendix.rst:146 #, fuzzy msgid "A problem with the GNU Readline package may prevent this." -msgstr "مشکلی در بسته GNU Readline ممکن است از این امر جلوگیری کند." +msgstr "مشکلی در بسته GNU Readline ممکن است از این جلوگیری کند." diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 1b8637459..3afcb1259 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -32,20 +32,21 @@ msgid "" "As well as the :keyword:`while` statement just introduced, Python uses a few" " more that we will encounter in this chapter." msgstr "" -"علاوه بر عبارت :keyword:`while` که به تازگی معرفی شد، پایتون از چند عبارت " -"دیگر نیز استفاده می کند که در این فصل با آن ها روبرو خواهیم شد." +"همچنین علاوه بر دستور :keyword:`while` که تازه معرفی شد، پایتون از چند دستور" +" دیگر نیز استفاده می کند که در این فصل با آنها روبرو خواهیم شد." #: ../../tutorial/controlflow.rst:14 #, fuzzy msgid ":keyword:`!if` Statements" -msgstr "بیانیه های :keyword:`!if`" +msgstr ":keyword:`!if` عبارات" #: ../../tutorial/controlflow.rst:16 #, fuzzy msgid "" "Perhaps the most well-known statement type is the :keyword:`if` statement. " "For example::" -msgstr "شاید مشهورترین نوع گزاره، گزاره :keyword:`if` باشد. برای مثال::" +msgstr "" +"شاید شناخته شده ترین نوع دستورات، دستور :keyword:`if` باشد. به عنوان مثال::" #: ../../tutorial/controlflow.rst:19 #, fuzzy @@ -64,19 +65,19 @@ msgid "" "...\n" "More" msgstr "" -"```>>> x = int(input(\"لطفاً یک عدد صحیح وارد کنید: \"))\n" -"لطفاً یک عدد صحیح وارد کنید: 42\n" +">>> x = int(input(\"Please enter an integer: \"))\n" +"Please enter an integer: 42\n" ">>> if x < 0:\n" "... x = 0\n" -"... print('منفی به صفر تغییر یافت')\n" +"... print('Negative changed to zero')\n" "... elif x == 0:\n" -"... print('صفر')\n" +"... print('Zero')\n" "... elif x == 1:\n" -"... print('تکی')\n" +"... print('Single')\n" "... else:\n" -"... print('بیشتر')\n" +"... print('More')\n" "...\n" -"بیشتر```" +"More" #: ../../tutorial/controlflow.rst:33 #, fuzzy @@ -87,11 +88,11 @@ msgid "" ":keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " "``switch`` or ``case`` statements found in other languages." msgstr "" -"می تواند صفر یا چندین بخش :keyword:`elif` وجود داشته باشد، و بخش " -":keyword:`else` اختیاری است. کلیدواژه ':keyword:`!elif`' به معنی 'else if' " -"است و برای جلوگیری از تورفتگی بیش از حد مفید است. دنباله ای از " +"ممکن است هیچ یا تعداد بیشتری از بخش های :keyword:`elif` وجود داشته باشد، و " +"بخش :keyword:`else` اختیاری است. کلمه کلیدی ':keyword:`!elif`' کوتاه شده " +"برای 'else if' است و برای جلوگیری از تو رفتگی بیش از حد مفید است. توالی " ":keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... جایگزینی برای " -"دستورات ``switch`` یا ``case`` که در زبان های دیگر یافت می شود." +"دستورات ``switch`` یا ``case`` است که در زبان های دیگر یافت می شود." #: ../../tutorial/controlflow.rst:39 #, fuzzy @@ -100,14 +101,14 @@ msgid "" "specific types or attributes, you may also find the :keyword:`!match` " "statement useful. For more details see :ref:`tut-match`." msgstr "" -"اگر در حال مقایسه یک مقدار با چندین ثابت هستید، یا در حال بررسی نوع ها یا " -"ویژگی های خاصی هستید، ممکن است بیانیه :keyword:`!match` نیز برایتان مفید " -"باشد. برای جزئیات بیشتر به :ref:`tut-match` مراجعه کنید." +"اگر در حال مقایسه یک مقدار با چند ثابت هستید، یا نوع ها یا ویژگی های خاصی را" +" بررسی می کنید، ممکن است بیانیه ی :keyword:`!match` را نیز مفید بیابید. برای" +" جزئیات بیشتر به :ref:`tut-match` مراجعه کنید." #: ../../tutorial/controlflow.rst:46 #, fuzzy msgid ":keyword:`!for` Statements" -msgstr "اظهارات :keyword:`!for`" +msgstr "دستورات :keyword:`!for`" #: ../../tutorial/controlflow.rst:51 #, fuzzy @@ -120,12 +121,12 @@ msgid "" " a string), in the order that they appear in the sequence. For example (no " "pun intended):" msgstr "" -"بیانیهٔ :keyword:`for` در پایتون کمی با آن چه که ممکن است در C یا پاسکال به " -"آن عادت کرده باشید متفاوت است. به جای اینکه همیشه بر روی یک پیشرفت حسابی از " -"اعداد تکرار کند (مانند پاسکال)، یا به کاربر امکان تعریف هم گام تکرار و هم " -"شرط توقف را بدهد (مثل C)، بیانیهٔ :keyword:`!for` پایتون بر روی آیتم های هر " -"دنباله ای (یک لیست یا یک رشته) تکرار می کند، به ترتیبی که در دنباله ظاهر می " -"شوند. برای مثال:" +"بیانیه :keyword:`for` در پایتون کمی با آنچه ممکن است در C یا Pascal به آن " +"عادت کرده باشید متفاوت است. به جای آنکه همیشه بر روی یک پیشرفت عددی حسابی " +"حرکت کند (مثل Pascal)، یا امکان تعریف گام تکرار و شرط توقف را برای کاربر " +"فراهم کند (مثل C)، بیانیه :keyword:`!for` در پایتون بر روی آیتم های هر توالی" +" (مثل یک لیست یا رشته) به ترتیبی که در توالی ظاهر می شوند، تکرار می کند. " +"برای مثال:" #: ../../tutorial/controlflow.rst:63 #, fuzzy @@ -139,15 +140,14 @@ msgid "" "window 6\n" "defenestrate 12" msgstr "" -" ```>>> # اندازه گیری چند رشته:\n" +">>> # اندازه گیری چند رشته:\n" ">>> words = ['cat', 'window', 'defenestrate']\n" ">>> for w in words:\n" "... print(w, len(w))\n" "...\n" "cat 3\n" "window 6\n" -"defenestrate 12\n" -"```" +"defenestrate 12" #: ../../tutorial/controlflow.rst:72 #, fuzzy @@ -156,10 +156,9 @@ msgid "" "can be tricky to get right. Instead, it is usually more straight-forward to" " loop over a copy of the collection or to create a new collection::" msgstr "" -"هنگامی که کدی در حال پیمایش یک مجموعه است و همزمان آن مجموعه را تغییر می " -"دهد، ممکن است پیاده سازی آن به درستی دشوار باشد. به جای این کار، معمولاً " -"ساده تر است که بر روی یک نسخه ی کپی از مجموعه پیمایش کنید یا یک مجموعه جدید " -"ایجاد کنید::" +"هنگامی که کدی مجموعه ای را در حالی که بر روی همان مجموعه تکرار می کند، تغییر" +" می دهد، ممکن است دچار پیچیدگی شود. به جای آن، معمولاً راحت تر است که بر روی" +" یک کپی از مجموعه عمل کنید یا یک مجموعه جدید ایجاد کنید::" #: ../../tutorial/controlflow.rst:76 #, fuzzy @@ -181,12 +180,12 @@ msgstr "" "# ایجاد یک مجموعه نمونه\n" "users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" "\n" -"# استراتژی: تکرار بر روی یک کپی\n" +"# استراتژی: تکرار بر روی یک نسخه\n" "for user, status in users.copy().items():\n" " if status == 'inactive':\n" " del users[user]\n" "\n" -"# استراتژی: ایجاد یک مجموعه جدید\n" +"# استراتژی: ایجاد یک مجموعه جدید\n" "active_users = {}\n" "for user, status in users.items():\n" " if status == 'active':\n" @@ -203,8 +202,8 @@ msgid "" "If you do need to iterate over a sequence of numbers, the built-in function " ":func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" -"اگر نیاز دارید که بر روی یک دنباله از اعداد تکرار کنید، تابع داخلی `range()`" -" بسیار مفید است. این تابع توالی های حسابی تولید می کند:" +"اگر نیاز دارید روی یک دنباله از اعداد تکرار انجام دهید، تابع داخلی " +":func:`range` بسیار کارآمد است. این تابع دنباله های حسابی تولید می کند::" #: ../../tutorial/controlflow.rst:99 #, fuzzy @@ -218,16 +217,14 @@ msgid "" "3\n" "4" msgstr "" -"```\n" -">>> for i in range(5):\n" +">>> برای i در range(5):\n" "... print(i)\n" "...\n" "0\n" "1\n" "2\n" "3\n" -"4\n" -"```" +"4" #: ../../tutorial/controlflow.rst:108 #, fuzzy @@ -237,11 +234,10 @@ msgid "" " It is possible to let the range start at another number, or to specify a " "different increment (even negative; sometimes this is called the 'step')::" msgstr "" -"نقطه ی پایانی که داده شده، هرگز جزئی از دنباله ی تولید شده نیست؛ " -"````range(10)```` ده مقدار تولید می کند، این شاخص های قانونی برای آیتم های " -"یک دنباله به طول ۱۰ است. همچنین این امکان وجود دارد که دامنه از عدد دیگری " -"شروع شود، یا یک افزاینده ی متفاوت (حتی منفی؛ گاهی اوقات به آن «گام» گفته می " -"شود) مشخص شود." +"نقطه انتهایی هرگز بخشی از دنباله تولیدشده نیست؛ ```range(10)``` ده مقدار " +"تولید می کند که شاخص های مجاز برای آیتم های یک دنباله با طول ۱۰ هستند. این " +"امکان وجود دارد که محدوده شروع از عدد دیگری باشد یا یک افزایش (حتی منفی؛ که " +"گاهی اوقات به آن «گام» گفته می شود) متفاوت را مشخص کنید::" #: ../../tutorial/controlflow.rst:113 #, fuzzy @@ -255,7 +251,6 @@ msgid "" ">>> list(range(-10, -100, -30))\n" "[-10, -40, -70]" msgstr "" -"```python\n" ">>> list(range(5, 10))\n" "[5, 6, 7, 8, 9]\n" "\n" @@ -263,8 +258,7 @@ msgstr "" "[0, 3, 6, 9]\n" "\n" ">>> list(range(-10, -100, -30))\n" -"[-10, -40, -70]\n" -"```" +"[-10, -40, -70]" #: ../../tutorial/controlflow.rst:122 #, fuzzy @@ -272,8 +266,8 @@ msgid "" "To iterate over the indices of a sequence, you can combine :func:`range` and" " :func:`len` as follows::" msgstr "" -"برای پیمایش بر روی شاخص های یک دنباله، می توانید ``:func:`range``` و " -"``:func:`len``` را به صورت زیر ترکیب کنید::" +"برای پیمایش در شاخص های یک دنباله، می توانید :func:`range` و :func:`len` را " +"به صورت زیر ترکیب کنید::" #: ../../tutorial/controlflow.rst:125 #, fuzzy @@ -304,13 +298,13 @@ msgid "" "In most such cases, however, it is convenient to use the :func:`enumerate` " "function, see :ref:`tut-loopidioms`." msgstr "" -"در بیشتر این موارد، استفاده از تابع :func:`enumerate` راحت تر است، به " -":ref:`tut-loopidioms` مراجعه کنید." +"در بیشتر چنین مواردی، با این حال، استفاده از تابع :func:`enumerate` راحت تر " +"است، به :ref:`tut-loopidioms` مراجعه کنید." #: ../../tutorial/controlflow.rst:138 #, fuzzy msgid "A strange thing happens if you just print a range::" -msgstr "اتفاق عجیبی می افتد اگر فقط یک `range` را چاپ کنید::" +msgstr "اگر فقط یک محدوده (range) را چاپ کنید، یک اتفاق عجیب رخ می دهد::" #: ../../tutorial/controlflow.rst:140 #, fuzzy @@ -318,10 +312,8 @@ msgid "" ">>> range(10)\n" "range(0, 10)" msgstr "" -"```python\n" -">>> range(10)\n" -"range(0, 10)\n" -"```" +">>> range(10) \n" +"range(0, 10)" #: ../../tutorial/controlflow.rst:143 #, fuzzy @@ -331,10 +323,10 @@ msgid "" "items of the desired sequence when you iterate over it, but it doesn't " "really make the list, thus saving space." msgstr "" -"به طرق مختلف، شیء بازگردانده شده توسط :func:`range` به گونه ای رفتار می کند " -"که انگار یک لیست است، اما در واقع لیست نیست. این یک شیء است که هنگام پیمایش " -"بر روی آن، آیتم های پی در پی از دنباله مورد نظر را باز می گرداند، اما واقعاً" -" لیست را ایجاد نمی کند و به این ترتیب فضای حافظه را ذخیره می کند." +"از بسیاری جهات، شیء بازگشتی توسط :func:`range` به گونه ای رفتار می کند که " +"گویی لیست است، اما در واقع این گونه نیست. این شیء ای است که هنگام مرور به " +"دنبال آن، آیتم های متوالی از دنباله مورد نظر را برمی گرداند، اما واقعاً لیست" +" را ایجاد نمی کند، بنابراین در مصرف فضا صرفه جویی می کند." #: ../../tutorial/controlflow.rst:148 #, fuzzy @@ -345,11 +337,11 @@ msgid "" ":keyword:`for` statement is such a construct, while an example of a function" " that takes an iterable is :func:`sum`::" msgstr "" -"ما چنین شی ای را :term:`iterable` می نامیم، به این معنی که برای استفاده با " -"توابع و ساختارهایی مناسب است که انتظار دارند بتوانند از آن مبدا، آیتم های " -"متوالی را دریافت کنند تا زمانی که منابع تمام شود. ما دیده ایم که دستور " -":keyword:`for` یک چنین ساختاری است، در حالی که مثالی از یک تابع که یک " -"iterable را می پذیرد، :func:`sum` است." +"ما به چنین شیء که :term:`iterable` نامیده می شود، اشاره می کنیم. این به " +"معنای مناسب بودن به عنوان هدف برای توابع و ساختارهایی است که انتظار دارند تا" +" زمانی که منابع تمام نشده است، موارد متوالی را بتوانند بدست آورند. ما دیده " +"ایم که عبارت :keyword:`for` چنین ساختاری است، در حالی که مثالی از تابعی که " +"یک iterable را می پذیرد، :func:`sum` است::" #: ../../tutorial/controlflow.rst:154 #, fuzzy @@ -357,10 +349,8 @@ msgid "" ">>> sum(range(4)) # 0 + 1 + 2 + 3\n" "6" msgstr "" -"```python\n" ">>> sum(range(4)) # 0 + 1 + 2 + 3\n" -"6\n" -"```" +"6" #: ../../tutorial/controlflow.rst:157 #, fuzzy @@ -369,14 +359,14 @@ msgid "" " arguments. In chapter :ref:`tut-structures`, we will discuss in more " "detail about :func:`list`." msgstr "" -"در ادامه، توابع بیشتری را خواهیم دید که قابل تکرارها (iterables) را بازمی " -"گردانند و آنها را به عنوان آرگومان می پذیرند. در فصل :ref:`tut-structures` " +"بعداً به توابع بیشتری خواهیم پرداخت که مقادیر قابل تکرار بازمی گردانند و به " +"عنوان آرگومان مقادیر قابل تکرار را می پذیرند. در فصل :ref:`tut-structures`، " "درباره :func:`list` با جزئیات بیشتری بحث خواهیم کرد." #: ../../tutorial/controlflow.rst:164 #, fuzzy msgid ":keyword:`!break` and :keyword:`!continue` Statements" -msgstr "بیانیه های :keyword:`!break` و :keyword:`!continue`" +msgstr ":keyword:`!break` و :keyword:`!continue` دستورات" #: ../../tutorial/controlflow.rst:166 #, fuzzy @@ -384,8 +374,8 @@ msgid "" "The :keyword:`break` statement breaks out of the innermost enclosing " ":keyword:`for` or :keyword:`while` loop::" msgstr "" -"دستور :keyword:`break` از درونی ترین حلقه ی :keyword:`for` یا " -":keyword:`while` خارج می شود::" +"عبارت :keyword:`break` از درون حلقه :keyword:`for` یا :keyword:`while` که " +"نزدیک ترین حلقه محصورکننده است، خارج می شود::" #: ../../tutorial/controlflow.rst:169 #, fuzzy @@ -401,24 +391,20 @@ msgid "" "8 equals 2 * 4\n" "9 equals 3 * 3" msgstr "" -"```python\n" -">>> for n in range(2, 10):\n" -"... for x in range(2, n):\n" -"... if n % x == 0:\n" +">>> برای n در بازه 2 تا 10:\n" +"... برای x در بازه 2 تا n:\n" +"... اگر n % x == 0:\n" "... print(f\"{n} برابر است با {x} ضربدر {n//x}\")\n" "... break\n" "... else:\n" -"... print(f\"{n} یک عدد اول است\")\n" -"6 برابر است با 2 ضربدر 3\n" -"9 برابر است با 3 ضربدر 3\n" -"```" +"... print(f\"{n} یک عدد اول است\")" #: ../../tutorial/controlflow.rst:180 #, fuzzy msgid "" "The :keyword:`continue` statement continues with the next iteration of the " "loop::" -msgstr "بیانیه :keyword:`continue` با تکرار بعدی حلقه ادامه می یابد::" +msgstr "عبارت :keyword:`continue` به اجرای تکرار بعدی حلقه ادامه می دهد::" #: ../../tutorial/controlflow.rst:183 #, fuzzy @@ -438,27 +424,25 @@ msgid "" "Found an even number 8\n" "Found an odd number 9" msgstr "" -"```\n" ">>> for num in range(2, 10):\n" "... if num % 2 == 0:\n" "... print(f\"Found an even number {num}\")\n" "... continue\n" "... print(f\"Found an odd number {num}\")\n" "...\n" -"```\n" -"عدد زوج یافت شد 2\n" -"عدد فرد یافت شد 3\n" -"عدد زوج یافت شد 4\n" -"عدد فرد یافت شد 5\n" -"عدد زوج یافت شد 6\n" -"عدد فرد یافت شد 7\n" -"عدد زوج یافت شد 8\n" -"عدد فرد یافت شد 9" +"Found an even number 2\n" +"Found an odd number 3\n" +"Found an even number 4\n" +"Found an odd number 5\n" +"Found an even number 6\n" +"Found an odd number 7\n" +"Found an even number 8\n" +"Found an odd number 9" #: ../../tutorial/controlflow.rst:202 #, fuzzy msgid ":keyword:`!else` Clauses on Loops" -msgstr "بندهای :keyword:`!else` در مورد حلقه ها" +msgstr ":keyword:`!else` گزاره ها در حلقه ها" #: ../../tutorial/controlflow.rst:204 #, fuzzy @@ -468,9 +452,9 @@ msgid "" "finishes without executing the :keyword:`!break`, the :keyword:`!else` " "clause executes." msgstr "" -"در یک حلقه :keyword:`!for` یا :keyword:`!while`، عبارت :keyword:`!break` " -"ممکن است با یک بخش :keyword:`!else` همراه شود. اگر حلقه بدون اجرای " -":keyword:`!break` به پایان برسد، بخش :keyword:`!else` اجرا می شود." +"در یک حلقه :keyword:`!for` یا :keyword:`!while`، دستور :keyword:`!break` " +"ممکن است با یک بند :keyword:`!else` جفت شود. اگر حلقه بدون اجرای " +":keyword:`!break` به پایان برسد، بند :keyword:`!else` اجرا می شود." #: ../../tutorial/controlflow.rst:208 #, fuzzy @@ -478,8 +462,8 @@ msgid "" "In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " "loop finishes its final iteration, that is, if no break occurred." msgstr "" -"در یک حلقه :keyword:`for`، بخش :keyword:`!else` پس از اتمام آخرین تکرار حلقه" -" اجرا می شود، یعنی اگر هیچ توقفی اتفاق نیفتاده باشد." +"در یک حلقه :keyword:`for`، عبارت :keyword:`!else` بعد از اتمام آخرین تکرار " +"حلقه اجرا می شود، یعنی اگر هیچ وقفه ای رخ نداده باشد." #: ../../tutorial/controlflow.rst:211 #, fuzzy @@ -487,7 +471,7 @@ msgid "" "In a :keyword:`while` loop, it's executed after the loop's condition becomes" " false." msgstr "" -"در یک حلقه :keyword:`while`، این دستور پس از نادرست شدن شرط حلقه اجرا می " +"در یک حلقه :keyword:`while`، این دستور زمانی اجرا می شود که شرط حلقه غلط " "شود." #: ../../tutorial/controlflow.rst:213 @@ -498,10 +482,10 @@ msgid "" "ending the loop early, such as a :keyword:`return` or a raised exception, " "will also skip execution of the :keyword:`else` clause." msgstr "" -"در هر نوع حلقه، بند :keyword:`!else` در صورتی **not** اجرا می شود که حلقه با" -" یک :keyword:`break` خاتمه یافته باشد. البته، روش های دیگری برای خاتمه " -"زودهنگام حلقه مانند یک :keyword:`return` یا بروز یک استثنا وجود دارد که " -"اجرای بند :keyword:`else` را نیز نادیده می گیرد." +"در هر نوع حلقه، بند :keyword:`!else` زمانی اجرا می شود که حلقه توسط " +":keyword:`break` خاتمه یافته باشد. البته، سایر راه های پایان دادن زود هنگام " +"حلقه، مانند :keyword:`return` یا بروز یک استثنا، نیز باعث می شوند که اجرای " +"بند :keyword:`else` نادیده گرفته شود." #: ../../tutorial/controlflow.rst:218 #, fuzzy @@ -509,7 +493,7 @@ msgid "" "This is exemplified in the following :keyword:`!for` loop, which searches " "for prime numbers::" msgstr "" -"این در حلقه ی :keyword:`!for` زیر که به جستجوی اعداد اول می پردازد، نشان " +"این مورد در حلقه :keyword:`!for` زیر، که به دنبال اعداد اول می گردد، نشان " "داده شده است::" #: ../../tutorial/controlflow.rst:221 @@ -533,23 +517,13 @@ msgid "" "8 equals 2 * 4\n" "9 equals 3 * 3" msgstr "" -"```\n" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" "... if n % x == 0:\n" -"... print(n, 'برابر است با', x, '*', n // x)\n" +"... print(n, 'مساوی است با', x, '*', n//x)\n" "... break\n" "... else:\n" -"... print(n, 'یک عدد اول است')\n" -"2 یک عدد اول است\n" -"3 یک عدد اول است\n" -"4 برابر است با 2 * 2\n" -"5 یک عدد اول است\n" -"6 برابر است با 2 * 3\n" -"7 یک عدد اول است\n" -"8 برابر است با 2 * 4\n" -"9 برابر است با 3 * 3\n" -"```" +"... print(n, 'یک عدد اول است')" #: ../../tutorial/controlflow.rst:239 #, fuzzy @@ -557,7 +531,7 @@ msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the ``for`` loop, **not** the ``if`` statement.)" msgstr "" -"(بله، این کد درست است. با دقت نگاه کنید: بند ``else`` به حلقه ``for`` تعلق " +"(بله، این کد درست است. با دقت نگاه کنید: قسمت ``else`` به حلقه ``for`` تعلق " "دارد، **not** به عبارت ``if``.)" #: ../../tutorial/controlflow.rst:242 @@ -569,11 +543,11 @@ msgid "" " If the condition is ever true, a ``break`` will happen. If the condition is" " never true, the ``else`` clause outside the loop will execute." msgstr "" -"یک راه برای فکر کردن به بخش else این است که فرض کنید همراه با ``if`` درون " -"حلقه آمده است. همان طور که حلقه اجرا می شود، یک دنباله مانند if/if/if/else " -"را اجرا خواهد کرد. ``if`` درون حلقه قرار دارد و چندین بار برخورد می کند. اگر" -" شرطی درست باشد، یک ``break`` رخ خواهد داد. اگر شرط هیچ وقت درست نباشد، بخش " -"``else`` بیرون از حلقه اجرا خواهد شد." +"راهی برای فکر کردن به عبارت else این است که آن را با ``if`` درون حلقه تصور " +"کنیم. زمانی که حلقه اجرا می شود، یک دنباله مانند if/if/if/else را اجرا خواهد" +" کرد. ``if`` درون حلقه است و چندین بار با آن مواجه می شود. اگر شرطی درست " +"باشد، یک ``break`` رخ خواهد داد. اگر شرط هرگز درست نباشد، عبارت ``else`` " +"خارج از حلقه اجرا خواهد شد." #: ../../tutorial/controlflow.rst:248 #, fuzzy @@ -586,15 +560,16 @@ msgid "" "handling`." msgstr "" "هنگامی که با یک حلقه استفاده می شود، عبارت ``else`` بیشتر با عبارت ``else`` " -"یک دستور :keyword:`try` وجه اشتراک دارد تا با عبارت دستورات ``if``: بخش " -"``else`` یک دستور ``try`` زمانی اجرا می شود که هیچ استثنایی رخ ندهد، و بخش " -"``else`` یک حلقه زمانی اجرا می شود که هیچ ``break`` رخ ندهد. برای اطلاعات " -"بیشتر درباره دستور ``try`` و استثناها، به :ref:`tut-handling` مراجعه کنید." +"از یک دستور :keyword:`try` مشترک است تا با آن از دستورات ``if``: بند " +"``else`` از یک دستور ``try`` زمانی اجرا می شود که هیچ استثنائی رخ نمی دهد، و" +" بند ``else`` یک حلقه زمانی اجرا می شود که هیچ ``break`` رخ نمی دهد. برای " +"اطلاعات بیشتر درباره دستور ``try`` و استثنائات، به :ref:`tut-handling` " +"مراجعه کنید." #: ../../tutorial/controlflow.rst:257 #, fuzzy msgid ":keyword:`!pass` Statements" -msgstr "ایکس ای اس دی اف00 بیانیه ها" +msgstr "عبارات :keyword:`!pass`" #: ../../tutorial/controlflow.rst:259 #, fuzzy @@ -602,8 +577,9 @@ msgid "" "The :keyword:`pass` statement does nothing. It can be used when a statement " "is required syntactically but the program requires no action. For example::" msgstr "" -"\n" -"عبارت :keyword:`pass` هیچ کاری انجام نمی دهد. از آن می توان زمانی استفاده کرد که به لحاظ نحوی یک عبارت لازم است ولی برنامه به هیچ اقدامی نیاز ندارد. برای مثال::" +"عبارت :keyword:`pass` هیچ کاری انجام نمی دهد. می تواند زمانی استفاده شود که " +"از لحاظ نحوی یک عبارت لازم است اما برنامه نیازی به عمل خاصی ندارد. برای " +"مثال::" #: ../../tutorial/controlflow.rst:262 #, fuzzy @@ -612,9 +588,9 @@ msgid "" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." msgstr "" -"```>>> while True:\n" -"... pass # انتظار بیهوده برای وقفه صفحه کلید (Ctrl+C)\n" -"...```" +">>> while True:\n" +"... pass # منتظر دریافت قطع برنامه با صفحه کلید (Ctrl+C)\n" +"..." #: ../../tutorial/controlflow.rst:266 #, fuzzy @@ -628,11 +604,9 @@ msgid "" "... pass\n" "..." msgstr "" -"```python\n" ">>> class MyEmptyClass:\n" "... pass\n" -"...\n" -"```" +"..." #: ../../tutorial/controlflow.rst:272 #, fuzzy @@ -642,10 +616,10 @@ msgid "" "to keep thinking at a more abstract level. The :keyword:`!pass` is silently" " ignored::" msgstr "" -"مکان دیگری که \":keyword:`pass`\" می تواند استفاده شود به عنوان یک جای " -"نگهدار برای یک تابع یا بدنه شرطی است وقتی که در حال کار بر روی کد جدید " -"هستید، به شما اجازه می دهد تا به تفکر در سطحی انتزاعی تر ادامه دهید. " -"\":keyword:`!pass`\" به صورت بی صدا نادیده گرفته می شود::" +"محل دیگری که :keyword:`pass` می تواند استفاده شود، به عنوان جایگزین برای " +"بدنه یک تابع یا بخش شرطی است وقتی که شما در حال کار بر روی کد جدید هستید. " +"این کار به شما این امکان را می دهد که همچنان در سطحی انتزاعی تر فکر کنید. " +":keyword:`!pass` به صورت خاموشی نادیده گرفته می شود::" #: ../../tutorial/controlflow.rst:276 #, fuzzy @@ -654,16 +628,14 @@ msgid "" "... pass # Remember to implement this!\n" "..." msgstr "" -"```python\n" ">>> def initlog(*args):\n" "... pass # به یاد داشته باشید که این را پیاده سازی کنید!\n" -"...\n" -"```" +"..." #: ../../tutorial/controlflow.rst:284 #, fuzzy msgid ":keyword:`!match` Statements" -msgstr "اظهارات :keyword:`!match`" +msgstr "دستورات :keyword:`!match`" #: ../../tutorial/controlflow.rst:286 #, fuzzy @@ -676,21 +648,20 @@ msgid "" "also extract components (sequence elements or object attributes) from the " "value into variables." msgstr "" -"یک عبارت :keyword:`match` یک عبارت را می گیرد و مقدار آن را با الگوهای پیاپی" -" که به صورت یک یا چند بلوک `case` داده شده اند، مقایسه می کند. این از نظر " -"ظاهری مشابه با یک عبارت switch در زبان های C، Java یا JavaScript (و بسیاری " -"دیگر از زبان ها) است، اما بیشتر با تطبیق الگو در زبان هایی مانند Rust یا " -"Haskell شباهت دارد. تنها اولین الگویی که مطابقت پیدا کند، اجرا می شود و می " -"تواند اجزا (عناصر دنباله ای یا ویژگی های شیء) را از مقدار استخراج کرده و در " -"متغیرها قرار دهد." +"یک گزاره :keyword:`match` یک عبارت را گرفته و مقدار آن را با الگوهای متوالی " +"که به صورت یک یا چند بلوک `case` ارائه شده اند مقایسه می کند. این از نظر " +"ظاهری شبیه به گزاره `switch` در C، جاوا یا جاوااسکریپت (و بسیاری از زبان های" +" دیگر) است، اما به تطابق الگو در زبان هایی مانند Rust یا Haskell شباهت " +"بیشتری دارد. فقط اولین الگوی که مطابقت دارد اجرا می شود و همچنین می تواند " +"مؤلفه هایی (عناصر توالی یا ویژگی های شی) را از مقدار استخراج کرده و به " +"متغیرها اختصاص دهد." #: ../../tutorial/controlflow.rst:294 #, fuzzy msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" -"ساده ترین شکل مقایسه، یک مقدار موضوع را با یک یا چند مقدار ادبی مقایسه می " -"کند::" +"ساده ترین شکل، یک مقدار موضوع را با یک یا چند مقدار ثابت مقایسه می کند::" #: ../../tutorial/controlflow.rst:296 #, fuzzy @@ -707,16 +678,16 @@ msgid "" " return \"Something's wrong with the internet\"" msgstr "" "```python\n" -"def خطا_http(وضعیت):\n" -" تطبیق وضعیت:\n" -" مورد 400:\n" -" بازگرداندن \"درخواست نامعتبر\"\n" -" مورد 404:\n" -" بازگرداندن \"یافت نشد\"\n" -" مورد 418:\n" -" بازگرداندن \"من یک قوری هستم\"\n" -" مورد _: \n" -" بازگرداندن \"مشکلی در اینترنت وجود دارد\"\n" +"def http_error(status):\n" +" match status:\n" +" case 400:\n" +" return \"Bad request\"\n" +" case 404:\n" +" return \"Not found\"\n" +" case 418:\n" +" return \"I'm a teapot\"\n" +" case _:\n" +" return \"Something's wrong with the internet\"\n" "```" #: ../../tutorial/controlflow.rst:307 @@ -725,17 +696,17 @@ msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." msgstr "" -"به بلوک آخر توجه کنید: \"نام متغیر\" ``_`` به عنوان *wildcard* عمل می کند و " -"هرگز در تطابق شکست نمی خورد. اگر هیچ کدام از موارد مطابقت نداشته باشد، هیچ " -"کدام از شاخه ها اجرا نمی شوند." +"به آخرین بلوک توجه کنید: \"نام متغیر\" ``_`` به عنوان یک *wildcard* عمل می " +"کند و هرگز در تطابق شکست نمی خورد. اگر هیچ موردی تطابق نداشته باشد، هیچ یک " +"از شاخه ها اجرا نمی شوند." #: ../../tutorial/controlflow.rst:310 #, fuzzy msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" -"می توانید چندین لیترال را در یک الگو با استفاده از ``|`` (\"یا\") ترکیب " -"کنید::" +"می توانید چندین مقدار ثابت را با استفاده از ``|`` (\"یا\") در یک الگوی واحد " +"ترکیب کنید::" #: ../../tutorial/controlflow.rst:312 #, fuzzy @@ -743,8 +714,8 @@ msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" msgstr "" -"مورد ۴۰۱ | ۴۰۳ | ۴۰۴:\n" -" بازگرداندن \"مجاز نیست\"" +"مورد 401 | 403 | 404:\n" +" بازگشت \"مجاز نیست\"" #: ../../tutorial/controlflow.rst:315 #, fuzzy @@ -752,8 +723,8 @@ msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" msgstr "" -"الگوها می توانند شبیه تخصیص های بازگشایی باشند و می توانند برای متصل کردن " -"متغیرها استفاده شوند::" +"الگوها می توانند شبیه به تخصیص های باز کردن بسته ها باشند و می توانند برای " +"بستن متغیرها استفاده شوند::" #: ../../tutorial/controlflow.rst:318 #, fuzzy @@ -771,11 +742,10 @@ msgid "" " case _:\n" " raise ValueError(\"Not a point\")" msgstr "" -"```python\n" -"# نقطه یک جفت (x, y) است\n" +"# point یک تاپل (x, y) است\n" "match point:\n" " case (0, 0):\n" -" print(\"مبدأ\")\n" +" print(\"Origin\")\n" " case (0, y):\n" " print(f\"Y={y}\")\n" " case (x, 0):\n" @@ -783,8 +753,7 @@ msgstr "" " case (x, y):\n" " print(f\"X={x}, Y={y}\")\n" " case _:\n" -" raise ValueError(\"نقطه نیست\")\n" -"```" +" raise ValueError(\"Not a point\")" #: ../../tutorial/controlflow.rst:331 #, fuzzy @@ -796,11 +765,11 @@ msgid "" " which makes it conceptually similar to the unpacking assignment ``(x, y) = " "point``." msgstr "" -"با دقت آن را مطالعه کنید! الگوی اول شامل دو قسمت لغوی است و می توان آن را به" -" عنوان یک گسترش از الگوی لغوی که در بالا نشان داده شده، در نظر گرفت. اما دو " -"الگوی بعدی شامل یک لغو و یک متغیر هستند و متغیر *binds* یک مقدار از موضوع " -"(``point``) دریافت می کند. الگوی چهارم دو مقدار را می گیرد که از نظر مفهومی " -"شبیه به تخصیص گشودن ``(x, y) = point`` است." +"این مورد را به دقت مطالعه کنید! الگوی اول دارای دو مقدار ثابت است و می تواند" +" به عنوان توسعه ای از الگوی ثابت نشان داده شده در بالا در نظر گرفته شود. اما" +" دو الگوی بعدی یک مقدار ثابت و یک متغیر را ترکیب می کنند و متغیر *binds* " +"مقداری از موضوع (``point``) می گیرد. الگوی چهارم دو مقدار را می گیرد که از " +"نظر مفهومی شبیه تخصیص بازکردن ``(x, y) = point`` است." #: ../../tutorial/controlflow.rst:338 #, fuzzy @@ -810,8 +779,8 @@ msgid "" "to capture attributes into variables::" msgstr "" "اگر از کلاس ها برای ساختاردهی داده های خود استفاده می کنید، می توانید از نام" -" کلاس به همراه یک لیست از آرگومان ها که شبیه به یک سازنده است، اما با قابلیت" -" ضبط ویژگی ها در متغیرها استفاده کنید::" +" کلاس همراه با لیست آرگومان ها که شبیه به یک سازنده است استفاده کنید، اما با" +" قابلیت ذخیره سازی ویژگی ها در متغیرها::" #: ../../tutorial/controlflow.rst:342 #, fuzzy @@ -835,24 +804,22 @@ msgid "" " print(\"Not a point\")" msgstr "" "کلاس `Point`:\n" -"```python\n" -" def __init__(self, x, y):\n" -" self.x = x\n" -" self.y = y\n" +" تعریف `__init__` (خود، x، y):\n" +" خود. x = x\n" +" خود. y = y\n" "\n" -"def where_is(point):\n" -" match point:\n" -" case Point(x=0, y=0):\n" -" print(\"مبدأ\")\n" -" case Point(x=0, y=y):\n" -" print(f\"Y={y}\")\n" -" case Point(x=x, y=0):\n" -" print(f\"X={x}\")\n" -" case Point():\n" -" print(\"جای دیگر\")\n" -" case _:\n" -" print(\"نقطه نیست\")\n" -"```" +"تعریف `where_is` (نقطه):\n" +" تطابق نقطه:\n" +" مورد `Point(x=0, y=0)`:\n" +" چاپ (\"مبدأ\")\n" +" مورد `Point(x=0, y=y)`:\n" +" چاپ (f\"Y={y}\")\n" +" مورد `Point(x=x, y=0)`:\n" +" چاپ (f\"X={x}\")\n" +" مورد `Point`():\n" +" چاپ (\"یک جای دیگر\")\n" +" مورد _:\n" +" چاپ (\"نقطه نیست\")" #: ../../tutorial/controlflow.rst:360 #, fuzzy @@ -864,12 +831,12 @@ msgid "" " \"y\"), the following patterns are all equivalent (and all bind the ``y`` " "attribute to the ``var`` variable)::" msgstr "" -"شما می توانید از پارامترهای موقعیتی با برخی کلاس های داخلی که برای ویژگی " -"هایشان یک ترتیب ارائه می دهند (مثلاً \"dataclasses\") استفاده کنید. همچنین " -"می توانید با تنظیم ویژگی خاص \"``__match_args__``\" در کلاس های خود، موقعیت " -"خاصی برای ویژگی ها در الگوها تعریف کنید. اگر این ویژگی به (\"x\", \"y\") " -"تنظیم شده باشد، الگوهای زیر همگی معادل هستند (و همگی ویژگی \"``y``\" را به " -"متغیر \"``var``\" متصل می کنند):" +"شما می توانید از پارامترهای جایگاهی با برخی کلاس های داخلی که برای ویژگی " +"هایشان ترتیب ارائه می دهند (مانند dataclasses) استفاده کنید. شما همچنین می " +"توانید موقعیت خاصی برای ویژگی ها در الگوها تعیین کنید با تنظیم ویژگی خاص " +"``__match_args__`` در کلاس های خود. اگر این ویژگی به صورت (\"x\", \"y\") " +"تنظیم شود، الگوهای زیر همگی معادل هستند (و همه ویژگی ``y`` را به متغیر " +"``var`` متصل می کنند)::" #: ../../tutorial/controlflow.rst:366 #, fuzzy @@ -879,10 +846,10 @@ msgid "" "Point(x=1, y=var)\n" "Point(y=var, x=1)" msgstr "" -"``Point(1, var)`` \n" -"``Point(1, y=var)`` \n" -"``Point(x=1, y=var)`` \n" -"``Point(y=var, x=1)`` " +"Point(1, var) \n" +"Point(1, y=var) \n" +"Point(x=1, y=var) \n" +"Point(y=var, x=1) " #: ../../tutorial/controlflow.rst:371 #, fuzzy @@ -895,13 +862,13 @@ msgid "" "(recognized by the \"(...)\" next to them like ``Point`` above) are never " "assigned to." msgstr "" -"روش توصیه شده برای خواندن الگوها این است که به آن ها به عنوان شکلی گسترده از" -" چیزی که در سمت چپ یک تخصیص قرار می دهید نگاه کنید، تا بفهمید که کدام " -"متغیرها به چه چیزی تنظیم می شوند. تنها نام های مستقل (مانند ``var`` در بالا)" -" با یک عبارت match تخصیص داده می شوند. نام های نقطه دار (مانند ``foo.bar``)،" -" نام های ویژگی (مانند ``x=`` و ``y=`` در بالا) یا نام های کلاس (که با \"()\"" -" در کنار آن ها مانند ``Point`` در بالا شناخته می شوند) هرگز تخصیص داده نمی " -"شوند." +"یک روش پیشنهادی برای خواندن الگوها این است که به آن ها به عنوان یک فرم گسترش" +" یافته از چیزی که در سمت چپ یک انتساب قرار می دهید نگاه کنید، تا بفهمید کدام" +" متغیرها به چه چیزی تنظیم خواهند شد. تنها نام های مستقل (مانند ``var`` در " +"بالا) توسط یک عبارت مطابقت تخصیص داده می شوند. نام های نقطه دار (مانند " +"``foo.bar``)، نام های خصوصیت (``x=`` و ``y=`` در بالا) یا نام های کلاس (که " +"با \"(...)\" در کنار آنها شناخته می شوند، مانند ``Point`` در بالا) هرگز " +"تخصیص داده نمی شوند." #: ../../tutorial/controlflow.rst:378 #, fuzzy @@ -909,9 +876,9 @@ msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of" " Points, with ``__match_args__`` added, we could match it like this::" msgstr "" -"الگوها می توانند به صورت دلخواه تو در تو باشند. به عنوان مثال، اگر ما فهرستی" -" کوتاه از نقطه ها داشته باشیم که \"``__match_args__``\" به آن اضافه شده است،" -" می توانیم آن را به این صورت مطابقت دهیم:" +"الگوها می توانند به صورت دلخواه تو در تو باشند. برای مثال، اگر یک لیست کوتاه" +" از نقاط داشته باشیم که ``__match_args__`` به آن اضافه شده باشد، می توانیم " +"به این شکل آن را تطبیق دهیم::" #: ../../tutorial/controlflow.rst:381 #, fuzzy @@ -940,17 +907,17 @@ msgstr "" " self.x = x\n" " self.y = y\n" "\n" -"بررسی points:\n" -" در صورتی که []:\n" -" چاپ کن \"هیچ نقطه ای وجود ندارد\"\n" -" در صورتی که [Point(0, 0)]:\n" -" چاپ کن \"مبدا\"\n" -" در صورتی که [Point(x, y)]:\n" -" چاپ کن f\"نقطه ای منفرد {x}, {y}\"\n" -" در صورتی که [Point(0, y1), Point(0, y2)]:\n" -" چاپ کن f\"دو نقطه روی محور Y در {y1}, {y2}\"\n" -" در غیر این صورت:\n" -" چاپ کن \"چیز دیگری\"" +"match points:\n" +" case []:\n" +" print(\"هیچ نقطه ای وجود ندارد\")\n" +" case [Point(0, 0)]:\n" +" print(\"مبدا\")\n" +" case [Point(x, y)]:\n" +" print(f\"نقطه منفرد {x}, {y}\")\n" +" case [Point(0, y1), Point(0, y2)]:\n" +" print(f\"دو نقطه روی محور Y در {y1}, {y2}\")\n" +" case _:\n" +" print(\"چیز دیگری\")" #: ../../tutorial/controlflow.rst:399 #, fuzzy @@ -959,9 +926,10 @@ msgid "" "guard is false, ``match`` goes on to try the next case block. Note that " "value capture happens before the guard is evaluated::" msgstr "" -"ما می توانیم یک بند ``if`` به یک الگو اضافه کنیم که به نام \"نگهبان\" شناخته" -" می شود. اگر نگهبان نادرست باشد، ``match`` به بلوک حالت بعدی می رود. توجه " -"کنید که پیش از ارزیابی نگهبان، مقدار ضبط می شود::" +"ما می توانیم به یک الگو یک عبارت ``if`` اضافه کنیم که به عنوان \"نگهبان\" " +"شناخته می شود. اگر نگهبان نادرست باشد، ``match`` به تلاش برای بلوک مورد بعدی" +" ادامه می دهد. توجه داشته باشید که دریافت مقدار قبل از ارزیابی نگهبان اتفاق " +"می افتد::" #: ../../tutorial/controlflow.rst:403 #, fuzzy @@ -972,16 +940,16 @@ msgid "" " case Point(x, y):\n" " print(f\"Not on the diagonal\")" msgstr "" -"نقطه تطبیق:\n" -" درصورت Point(x, y) اگر x == y:\n" -" print(f\"Y=X در {x}\")\n" -" درصورت Point(x, y):\n" -" print(f\"روی قطر نیست\")" +"مطابقت نقطه:\n" +" case Point(x, y) if x == y:\n" +" print(f\"Y=X at {x}\")\n" +" case Point(x, y):\n" +" print(f\"Not on the diagonal\")" #: ../../tutorial/controlflow.rst:409 #, fuzzy msgid "Several other key features of this statement:" -msgstr "ویژگی های کلیدی دیگری از این عبارت:" +msgstr "چند ویژگی کلیدی دیگر از این عبارت:" #: ../../tutorial/controlflow.rst:411 #, fuzzy @@ -990,9 +958,9 @@ msgid "" "meaning and actually match arbitrary sequences. An important exception is " "that they don't match iterators or strings." msgstr "" -"همانند تخصیص های بازکردن، الگوهای تاپل و لیست دقیقا همان معنا را دارند و در " -"واقع با دنباله های دلخواه تطابق دارند. یک استثنای مهم این است که آن ها با " -"تکرارگرها یا رشته ها تطابق ندارند." +"الگوهای تاپل و لیست دقیقاً همان معنی تخصیص های بازگشایی را دارند و در واقع " +"با توالی های دلخواه مطابقت دارند. یک استثنای مهم این است که با «iterator»ها " +"یا رشته ها مطابقت ندارند." #: ../../tutorial/controlflow.rst:415 #, fuzzy @@ -1002,10 +970,10 @@ msgid "" "also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items " "without binding the remaining items." msgstr "" -"الگوهای توالی از بازکردن گسترده پشتیبانی می کنند: ```[x, y, *rest]``` و " -"```(x, y, *rest)``` مشابه انتساب های بازکردن کار می کنند. نام بعد از ```*```" -" نیز می تواند ```_``` باشد، بنابراین ```(x, y, *_)``` با یک دنباله حداقل دو " -"آیتم بدون اتصال آیتم های باقی مانده مطابقت دارد." +"الگوهای دنباله از باز کردن گسترده پشتیبانی می کنند: ``[x, y, *rest]`` و " +"``(x, y, *rest)`` مشابه اختصاص های باز کردن عمل می کنند. نام پس از ``*`` نیز" +" می تواند ``_`` باشد، بنابراین ``(x, y, *_)`` با دنباله ای که حداقل دو آیتم " +"دارد، بدون اینکه آیتم های باقی مانده را مقید کند، مطابقت دارد." #: ../../tutorial/controlflow.rst:420 #, fuzzy @@ -1016,22 +984,20 @@ msgid "" "also supported. (But ``**_`` would be redundant, so it is not allowed.)" msgstr "" "الگوهای نگاشت: ``{\"bandwidth\": b, \"latency\": l}`` مقادیر " -"``\"bandwidth\"`` و ``\"latency\"`` را از یک دیکشنری استخراج می کند. برخلاف " -"الگوهای ترتیبی، کلیدهای اضافی نادیده گرفته می شوند. یک بازگشایی مانند " -"``**rest`` نیز پشتیبانی می شود. (اما ``**_`` اضافی است، بنابراین مجاز نیست.)" +"``\"bandwidth\"`` و ``\"latency\"`` را از یک دیکشنری استخراج می کند. بر خلاف" +" الگوهای ترتیبی، کلیدهای اضافی نادیده گرفته می شوند. یک استخراج مانند " +"``**rest`` نیز پشتیبانی می شود. (اما ``**_`` اضافی خواهد بود، بنابراین مجاز " +"نیست.)" #: ../../tutorial/controlflow.rst:425 #, fuzzy msgid "Subpatterns may be captured using the ``as`` keyword::" -msgstr "زیرالگوها ممکن است با استفاده از کلیدواژه ```as``` ضبط شوند::" +msgstr "زیر الگوها ممکن است با استفاده از کلیدواژه ``as`` ثبت شوند::" #: ../../tutorial/controlflow.rst:427 #, fuzzy msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." -msgstr "" -"```python\n" -"case (Point(x1, y1), Point(x2, y2) as p2): ...\n" -"```" +msgstr "در حالت (Point(x1, y1)، Point(x2, y2) به عنوان p2): ..." #: ../../tutorial/controlflow.rst:429 #, fuzzy @@ -1039,8 +1005,8 @@ msgid "" "will capture the second element of the input as ``p2`` (as long as the input" " is a sequence of two points)" msgstr "" -"عنصر دوم ورودی را به عنوان ``p2`` ضبط خواهد کرد (تا زمانی که ورودی دنباله ای" -" از دو نقطه باشد)." +"عنصر دوم ورودی را به عنوان ``p2`` دریافت خواهد کرد (به شرطی که ورودی یک " +"دنباله از دو نقطه باشد)" #: ../../tutorial/controlflow.rst:432 #, fuzzy @@ -1048,8 +1014,8 @@ msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" -"بیشتر نوع های داده به صورت برابری مقایسه می شوند، اما تک گزینه های " -"```True```، ```False``` و ```None``` بر اساس شناسه مقایسه می شوند." +"بیشتر لیترال ها از طریق برابری مقایسه می شوند، اما سینگلتون های ``True``، " +"``False`` و ``None`` از طریق هویت مقایسه می شوند." #: ../../tutorial/controlflow.rst:435 #, fuzzy @@ -1057,9 +1023,9 @@ msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" msgstr "" -"الگوها می توانند از ثابت های نام گذاری شده استفاده کنند. این ثابت ها باید " -"نام های نقطه گذاری شده باشند تا از تفسیر آن ها به عنوان متغیرهای اسیر " -"جلوگیری شود::" +"الگوها می توانند از ثابت های نام گذاری شده استفاده کنند. این نام ها باید به " +"صورت نقطه گذاری شده باشند تا از تفسیر آن ها به عنوان متغیرهای دستگیر جلوگیری" +" شود::" #: ../../tutorial/controlflow.rst:438 #, fuzzy @@ -1087,15 +1053,15 @@ msgstr "" " GREEN = 'green'\n" " BLUE = 'blue'\n" "\n" -"color = Color(input(\"انتخاب خود را بین 'red'، 'blue' یا 'green' وارد کنید: \"))\n" +"color = Color(input(\"Enter your choice of 'red', 'blue' or 'green': \"))\n" "\n" "match color:\n" " case Color.RED:\n" -" print(\"من قرمز می بینم!\")\n" +" print(\"I see red!\")\n" " case Color.GREEN:\n" -" print(\"چمن سبز است\")\n" +" print(\"Grass is green\")\n" " case Color.BLUE:\n" -" print(\"احساس ناراحتی می کنم :(\")\n" +" print(\"I'm feeling the blues :(\")\n" "```" #: ../../tutorial/controlflow.rst:454 @@ -1104,7 +1070,7 @@ msgid "" "For a more detailed explanation and additional examples, you can look into " ":pep:`636` which is written in a tutorial format." msgstr "" -"برای توضیحات دقیق تر و مثال های بیشتر، می توانید به :pep:`636` که به صورت " +"برای توضیح کامل تر و مثال های اضافی، می توانید به :pep:`636` که به صورت " "آموزشی نوشته شده است، مراجعه کنید." #: ../../tutorial/controlflow.rst:460 @@ -1118,7 +1084,7 @@ msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" msgstr "" -"می توانیم یک تابع ایجاد کنیم که سری فیبوناچی را تا یک حد دلخواه بنویسد::" +"ما می توانیم یک تابع ایجاد کنیم که سری فیبوناچی را تا یک مرز دلخواه بنویسد::" #: ../../tutorial/controlflow.rst:465 #, fuzzy @@ -1135,17 +1101,17 @@ msgid "" ">>> fib(2000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" msgstr "" -"```>>> def fib(n): # تولید دنباله فیبوناچی کمتر از n```\n" -"```... \"\"\"چاپ دنباله فیبوناچی کمتر از n.\"\"\"```\n" -"```... a, b = 0, 1```\n" -"```... while a < n:```\n" -"```... print(a, end=' ')```\n" -"```... a, b = b, a+b```\n" -"```... print()```\n" -"```...```\n" -"```>>> # اکنون تابعی که تعریف کرده ایم را فراخوانی می کنیم:```\n" -"```>>> fib(2000)```\n" -"```0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597```" +">>> def fib(n): # نوشتن دنباله فیبوناچی کمتر از n\n" +"... \"\"\"چاپ دنباله فیبوناچی کمتر از n.\"\"\"\n" +"... a, b = 0, 1\n" +"... while a < n:\n" +"... print(a, end=' ')\n" +"... a, b = b, a+b\n" +"... print()\n" +"...\n" +">>> # حالا تابعی که تعریف کرده ایم را صدا می زنیم:\n" +">>> fib(2000)\n" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" #: ../../tutorial/controlflow.rst:482 #, fuzzy @@ -1155,9 +1121,10 @@ msgid "" "parameters. The statements that form the body of the function start at the " "next line, and must be indented." msgstr "" -"کلمه کلیدی :keyword:`def` یک تابع *definition* را معرفی می کند. بعد از آن " -"باید نام تابع و لیست پرانتزدار پارامترهای رسمی بیاید. دستورات تشکیل دهنده " -"بدنه تابع در خط بعدی شروع می شوند و باید تو رفتگی داشته باشند." +"کلیدواژه :keyword:`def` یک تابع به نام *definition* معرفی می کند. این " +"کلیدواژه باید با نام تابع و لیستی از پارامترهای رسمی که در پرانتز قرار " +"دارند، دنبال شود. دستورات تشکیل دهنده بدنه تابع از خط بعد شروع می شوند و " +"باید تورفتگی داشته باشند." #: ../../tutorial/controlflow.rst:487 #, fuzzy @@ -1170,13 +1137,13 @@ msgid "" "interactively browse through code; it's good practice to include docstrings " "in code that you write, so make a habit of it." msgstr "" -"اولین دستور در بدنه ی تابع، می تواند به صورت اختیاری یک رشته ی متنی («string" -" literal») باشد؛ این رشته ی متنی، رشته ی مستندات تابع یا :dfn:`docstring` " -"نامیده می شود. (اطلاعات بیشتر درباره ی docstringها در بخش :ref:`tut-" -"docstrings` یافت می شود.) ابزارهایی وجود دارند که از docstringها برای تولید " -"خودکار مستندات آنلاین یا چاپی استفاده می کنند، یا به کاربر اجازه می دهند به " -"صورت تعاملی کد را مرور کند؛ بنابراین، قراردادن docstringها در کدی که می " -"نویسید یک عادت خوب است." +"اولین دستور در بدنه تابع می تواند به انتخاب شما یک عبارت رشته ای باشد؛ این " +"عبارت رشته ای، رشته مستندات تابع یا :dfn:`docstring` است. (اطلاعات بیشتر " +"درباره docstring ها را می توانید در بخش :ref:`tut-docstrings` بیابید.) " +"ابزارهایی وجود دارند که از docstring ها برای تولید خودکار مستندات آنلاین یا " +"چاپی استفاده می کنند، یا به کاربر اجازه می دهند به صورت تعاملی به مرور کد " +"بپردازند؛ بهتر است در کدی که می نویسید docstring ها را اضافه کنید و از آن به" +" عنوان یک عادت استفاده نمایید." #: ../../tutorial/controlflow.rst:494 #, fuzzy @@ -1192,16 +1159,15 @@ msgid "" "for variables of enclosing functions, named in a :keyword:`nonlocal` " "statement), although they may be referenced." msgstr "" -"معرفی *execution* در یک تابع جدول نماد جدیدی برای متغیرهای محلی تابع ایجاد " -"می کند. به طور دقیق تر، تمامی تخصیص های متغیر در یک تابع، مقدار را در جدول " -"نماد محلی ذخیره می کنند؛ در حالی که ارجاعات متغیر ابتدا به جدول نماد محلی " -"نگاه می کنند، سپس به جدول نماد محلی توابع محصور کننده، سپس به جدول نماد " -"سراسری و در نهایت به جدول نام های داخلی مراجعه می کنند. بنابراین، متغیرهای " -"سراسری و متغیرهای توابع محصور کننده نمی توانند به طور مستقیم در درون یک تابع" -" مقداری تخصیص داده شوند (مگر اینکه، برای متغیرهای سراسری، در یک بیانیه " -":keyword:`global` نام گذاری شده باشند، یا برای متغیرهای توابع محصور کننده، " -"در یک بیانیه :keyword:`nonlocal` نام گذاری شده باشند)، هرچند ممکن است به " -"آنها ارجاع شود." +"*execution* یک تابع یک جدول نماد جدید برای متغیرهای محلی تابع معرفی می کند. " +"به طور دقیق تر، تمامی انتساب های متغیر در یک تابع، مقدار را در جدول نماد " +"محلی ذخیره می کنند؛ در حالی که ارجاعات متغیر ابتدا در جدول نماد محلی جستجو " +"می شوند، سپس در جدول نماد محلی توابع محیطی، سپس در جدول نماد جهانی، و در " +"نهایت در جدول نام های داخلی. بنابراین، متغیرهای جهانی و متغیرهای توابع محیطی" +" نمی توانند به صورت مستقیم یک مقدار را در یک تابع دریافت کنند (مگر اینکه " +"برای متغیرهای جهانی، در یک عبارت :keyword:`global` نام گذاری شده باشند، یا " +"برای متغیرهای توابع محیطی، در یک عبارت :keyword:`nonlocal` نام گذاری شده " +"باشند)، اگرچه می توان به آنها ارجاع داد." #: ../../tutorial/controlflow.rst:505 #, fuzzy @@ -1213,12 +1179,11 @@ msgid "" "another function, or calls itself recursively, a new local symbol table is " "created for that call." msgstr "" -"پارامترهای واقعی (آرگومان ها) در یک فراخوانی تابع، زمانی که تابع فراخوانی می" -" شود، در جدول نماد های محلی تابع مورد نظر معرفی می شوند؛ بنابراین، آرگومان " -"ها با استفاده از *call by value* منتقل می شوند (که در آن *value* همیشه یک " -"شیء *reference* است، نه مقدار شیء). [#]_ هنگامی که یک تابع، تابع دیگری را " -"فراخوانی می کند یا به طور بازگشتی خود را فراخوانی می کند، یک جدول نماد محلی " -"جدید برای آن فراخوانی ایجاد می شود." +"پارامترهای واقعی (آرگومان ها) در یک فراخوانی تابع در جدول نمادهای محلی تابع " +"فراخوانی شده معرفی می شوند؛ بنابراین، آرگومان ها به صورت *call by value* (که" +" *value* همیشه یک شیء *reference* است، نه مقدار شیء) منتقل می شوند. [#]_ " +"زمانی که تابعی، تابع دیگری را فراخوانی می کند یا به صورت بازگشتی خود را صدا " +"می زند، یک جدول نماد محلی جدید برای آن فراخوانی ایجاد می شود." #: ../../tutorial/controlflow.rst:512 #, fuzzy @@ -1228,10 +1193,10 @@ msgid "" "to by that name as a user-defined function. Other names can also point to " "that same function object and can also be used to access the function::" msgstr "" -"تعریف یک تابع، نام تابع را با شیء تابع در جدول نماد فعلی مرتبط می کند. مفسر،" -" شیء اشاره شده توسط آن نام را به عنوان یک تابع تعریف شده توسط کاربر تشخیص می" -" دهد. نام های دیگری نیز می توانند به همان شیء تابع اشاره کنند و برای دسترسی " -"به تابع استفاده شوند:" +"تعریف یک تابع، نام تابع را با شیء تابع در جدول نمادهای جاری مرتبط می کند. " +"مفسر، شیء اشاره شده توسط آن نام را به عنوان یک تابع تعریف شده توسط کاربر " +"تشخیص می دهد. نام های دیگر نیز می توانند به همان شیء تابع اشاره کنند و برای " +"دسترسی به تابع استفاده شوند::" #: ../../tutorial/controlflow.rst:517 #, fuzzy @@ -1242,13 +1207,11 @@ msgid "" ">>> f(100)\n" "0 1 1 2 3 5 8 13 21 34 55 89" msgstr "" -"```plaintext\n" ">>> fib\n" "\n" ">>> f = fib\n" ">>> f(100)\n" -"0 1 1 2 3 5 8 13 21 34 55 89\n" -"```" +"0 1 1 2 3 5 8 13 21 34 55 89" #: ../../tutorial/controlflow.rst:523 #, fuzzy @@ -1261,13 +1224,13 @@ msgid "" "the only value written. You can see it if you really want to using " ":func:`print`::" msgstr "" -"اگر از زبان های دیگر آمده اید، ممکن است بگویید که ``fib`` یک تابع نیست بلکه " -"یک رویه است چرا که مقداری را برنمی گرداند. در حقیقت، حتی توابعی که بیان " -":keyword:`return` ندارند نیز مقداری را برمی گردانند، هرچند که این مقدار " -"بسیار کسل کننده است. این مقدار را ``None`` (یک نام داخلی) می نامند. نوشتن " -"مقدار ``None`` به طور معمول توسط مفسر نادیده گرفته می شود اگر این مقدار تنها" -" مقداری باشد که نوشته شود. اگر واقعاً بخواهید می توانید با استفاده از " -":func:`print` آن را ببینید::" +"اگر از زبان های دیگر به Python آمده باشید، ممکن است بگویید که ``fib`` یک " +"تابع نیست بلکه یک دستور است زیرا مقداری را برنمی گرداند. در واقع، حتی توابعی" +" که دستور :keyword:`return` را ندارند هم مقداری را برمی گردانند، اگرچه یک " +"مقدار کاملاً خسته کننده. این مقدار ``None`` نامیده می شود (این یک نام داخلی " +"است). نوشتن مقدار ``None`` معمولاً توسط مفسر پنهان می شود اگر که تنها مقداری" +" باشد که نوشته می شود. اگر بخواهید واقعاً آن را ببینید، می توانید از " +":func:`print` استفاده کنید::" #: ../../tutorial/controlflow.rst:530 #, fuzzy @@ -1276,11 +1239,9 @@ msgid "" ">>> print(fib(0))\n" "None" msgstr "" -"```python\n" ">>> fib(0)\n" ">>> print(fib(0))\n" -"هیچ\n" -"```" +"None" #: ../../tutorial/controlflow.rst:534 #, fuzzy @@ -1288,8 +1249,8 @@ msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" msgstr "" -"نوشتن یک تابع که لیستی از اعداد دنباله فیبوناچی را برمی گرداند، به جای چاپ " -"کردن آن، ساده است::" +"نوشتن یک تابع که به جای چاپ کردن، یک لیست از اعداد سری فیبوناچی را بازمی " +"گرداند، ساده است::" #: ../../tutorial/controlflow.rst:537 #, fuzzy @@ -1307,26 +1268,23 @@ msgid "" ">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" msgstr "" -"```python\n" ">>> def fib2(n): # بازگرداندن سری فیبوناچی تا n\n" -"... \"\"\"یک لیست حاوی سری فیبوناچی تا n را برمی گرداند.\"\"\"\n" +"... \"\"\"یک لیست شامل سری فیبوناچی تا n برمی گرداند.\"\"\"\n" "... result = []\n" "... a, b = 0, 1\n" "... while a < n:\n" -"... result.append(a) # به توضیحات زیر مراجعه کنید\n" +"... result.append(a) # به توضیحات پایین رجوع کنید\n" "... a, b = b, a+b\n" "... return result\n" "...\n" ">>> f100 = fib2(100) # فراخوانی تابع\n" ">>> f100 # نوشتن نتیجه\n" -"[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]\n" -"```" +"[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" #: ../../tutorial/controlflow.rst:550 #, fuzzy msgid "This example, as usual, demonstrates some new Python features:" -msgstr "" -"این مثال، مانند همیشه، تعدادی از ویژگی های جدید Python را نشان می دهد:" +msgstr "این مثال، طبق معمول، برخی از ویژگی های جدید پایتون را نشان می دهد:" #: ../../tutorial/controlflow.rst:552 #, fuzzy @@ -1335,9 +1293,9 @@ msgid "" ":keyword:`!return` without an expression argument returns ``None``. Falling " "off the end of a function also returns ``None``." msgstr "" -"عبارت :keyword:`return` مقداری را از یک تابع برمی گرداند. :keyword:`!return`" -" بدون یک عبارت، مقدار ``None`` را بازمی گرداند. خروج از انتهای یک تابع نیز " -"``None`` را بازمی گرداند." +"دستور :keyword:`return` مقداری را از یک تابع بازمی گرداند. " +":keyword:`!return` بدون آرگومان عبارت ``None`` را بازمی گرداند. با رسیدن به " +"انتهای یک تابع نیز ``None`` بازگردانده می شود." #: ../../tutorial/controlflow.rst:556 #, fuzzy @@ -1354,21 +1312,21 @@ msgid "" "this example it is equivalent to ``result = result + [a]``, but more " "efficient." msgstr "" -"دستور ``result.append(a)`` یک *method* از شیء لیست ``result`` را فراخوانی می" -" کند. یک متد، تابعی است که به یک شیء «تعلق دارد» و به نام ``obj.methodname``" -" شناخته می شود، که در آن ``obj`` برخی شیء (که ممکن است یک عبارت باشد)، و " -"``methodname`` نام یک متد است که توسط نوع شیء تعریف شده است. انواع مختلف " +"دستور ``result.append(a)`` یک *method* از شی لیست ``result`` را فراخوانی می " +"کند. یک متد، تابعی است که به یک شی 'تعلق' دارد و به صورت ``obj.methodname`` " +"نامیده می شود، که در آن ``obj`` یک شی (که می تواند یک عبارت باشد) و " +"``methodname`` نام متدی است که توسط نوع آن شی تعریف شده است. انواع مختلف، " "متدهای مختلفی را تعریف می کنند. متدهای انواع مختلف ممکن است نام یکسانی داشته" -" باشند بدون اینکه سردرگمی ایجاد کنند. (امکان تعریف انواع و متدهای شیء " -"خودتان، با استفاده از *classes* وجود دارد، به :ref:`tut-classes` مراجعه " -"کنید) متد :meth:`!append` که در مثال نشان داده شده، برای اشیاء لیست تعریف " -"شده است؛ این متد یک عنصر جدید را به انتهای لیست اضافه می کند. در این مثال " -"معادل با ``result = result + [a]`` است، اما به صورت کارآمدتر." +" باشند بدون این که ابهامی ایجاد کنند. (این امکان وجود دارد که نوع اشیا و " +"متدهای خود را با استفاده از *classes* تعریف کنید، به :ref:`tut-classes` " +"مراجعه کنید) متد :meth:`!append` که در مثال نشان داده شده برای اشیای لیست " +"تعریف شده است؛ این متد یک عنصر جدید را به انتهای لیست اضافه می کند. در این " +"مثال معادل ``result = result + [a]`` است، اما کارآمدتر." #: ../../tutorial/controlflow.rst:571 #, fuzzy msgid "More on Defining Functions" -msgstr "بیشتر دربارهٔ تعریف توابع" +msgstr "بیشتر درباره تعریف توابع" #: ../../tutorial/controlflow.rst:573 #, fuzzy @@ -1376,13 +1334,13 @@ msgid "" "It is also possible to define functions with a variable number of arguments." " There are three forms, which can be combined." msgstr "" -"همچنین می توان توابعی با تعداد متغیری از آرگومان ها تعریف کرد. سه نوع وجود " -"دارد که می توان آن ها را ترکیب کرد." +"همچنین تعریف توابع با تعداد متغیری از آرگومان ها ممکن است. سه فرم وجود دارد " +"که می توان آن ها را با هم ترکیب کرد." #: ../../tutorial/controlflow.rst:580 #, fuzzy msgid "Default Argument Values" -msgstr "مقادیر پیش فرض آرگومان ها" +msgstr "مقادیر پیش فرض برای آرگومان ها" #: ../../tutorial/controlflow.rst:582 #, fuzzy @@ -1391,9 +1349,9 @@ msgid "" "arguments. This creates a function that can be called with fewer arguments " "than it is defined to allow. For example::" msgstr "" -"مفیدترین شکل این است که یک مقدار پیش فرض برای یک یا چند آرگومان مشخص کنید. " -"این کار یک تابع ایجاد می کند که می تواند با آرگومان های کمتری نسبت به آنچه " -"تعریف شده، فراخوانی شود. برای مثال:" +"مفیدترین شکل این است که مقدار پیش فرضی برای یک یا چند آرگومان مشخص شود. این " +"باعث می شود که یک تابع قابل فراخوانی با آرگومان های کمتر از آنچه که تعریف " +"شده است باشد. برای مثال::" #: ../../tutorial/controlflow.rst:586 #, fuzzy @@ -1410,8 +1368,11 @@ msgid "" " raise ValueError('invalid user response')\n" " print(reminder)" msgstr "" +"\n" +"تعریف یک تابع ساده برای پرسیدن یک سوال از کاربر و انتظار دریافت یک پاسخ معتبر:\n" +"\n" "```python\n" -"def ask_ok(prompt, retries=4, reminder='لطفا دوباره امتحان کنید!'):\n" +"def ask_ok(prompt, retries=4, reminder='Please try again!'):\n" " while True:\n" " reply = input(prompt)\n" " if reply in {'y', 'ye', 'yes'}:\n" @@ -1420,14 +1381,14 @@ msgstr "" " return False\n" " retries = retries - 1\n" " if retries < 0:\n" -" raise ValueError('پاسخ کاربر نامعتبر است')\n" +" raise ValueError('invalid user response')\n" " print(reminder)\n" "```" #: ../../tutorial/controlflow.rst:598 #, fuzzy msgid "This function can be called in several ways:" -msgstr "این تابع می تواند به روش های مختلفی فراخوانی شود:" +msgstr "این تابع می تواند به چندین روش فراخوانی شود:" #: ../../tutorial/controlflow.rst:600 #, fuzzy @@ -1435,8 +1396,7 @@ msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to " "quit?')``" msgstr "" -"فقط آرگومان اجباری را ارائه می دهید: ``ask_ok('Do you really want to " -"quit?')``" +"تنها آرگومان اجباری داده شده: ``ask_ok('Do you really want to quit?')``" #: ../../tutorial/controlflow.rst:602 #, fuzzy @@ -1444,7 +1404,8 @@ msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" -"دادن یکی از آرگومان های اختیاری: ``ask_ok('OK to overwrite the file?', 2)``" +"استفاده از یکی از آرگومان های اختیاری: ``ask_ok('OK to overwrite the file?'," +" 2)``" #: ../../tutorial/controlflow.rst:604 #, fuzzy @@ -1452,8 +1413,8 @@ msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come" " on, only yes or no!')``" msgstr "" -"یا حتی ارسال همه آرگومان ها: ``ask_ok('OK to overwrite the file?', 2, 'Come " -"on, only yes or no!')``" +"یا حتی با وارد کردن همه آرگومان ها: ``ask_ok('OK to overwrite the file?', 2," +" 'Come on, only yes or no!')``" #: ../../tutorial/controlflow.rst:607 #, fuzzy @@ -1461,8 +1422,8 @@ msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." msgstr "" -"این مثال همچنین کلمه کلیدی :keyword:`in` را معرفی می کند. این تست بررسی می " -"کند که آیا یک دنباله شامل یک مقدار خاص است یا خیر." +"این مثال همچنین کلمه کلیدی :keyword:`in` را معرفی می کند. این کلمه بررسی می " +"کند که آیا یک دنباله شامل یک مقدار خاص است یا نه." #: ../../tutorial/controlflow.rst:610 #, fuzzy @@ -1470,8 +1431,8 @@ msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" msgstr "" -"مقادیر پیش فرض در نقطه تعریف تابع در حوزه *defining* ارزیابی می شوند، " -"بنابراین ::" +"مقادیر پیش فرض در لحظه تعریف تابع در دامنه *defining* ارزیابی می شوند، به " +"طوری که::" #: ../../tutorial/controlflow.rst:613 #, fuzzy @@ -1484,22 +1445,18 @@ msgid "" "i = 6\n" "f()" msgstr "" -"```python\n" "i = 5\n" "\n" "def f(arg=i):\n" " print(arg)\n" "\n" "i = 6\n" -"f()\n" -"```\n" -"\n" -"در این کد، ابتدا متغیر `i` با مقدار ۵ تعریف شده است. سپس تابعی به نام `f` تعریف می شود که یک آرگومان دارد که مقدار پیش فرض آن برابر با `i` است. پس از تعریف تابع، مقدار `i` به ۶ تغییر داده می شود. در نهایت، تابع `f` بدون ارسال آرگومان فراخوانی می شود، بنابراین مقدار پیش فرض `i` که ۵ بود، چاپ می شود." +"f()" #: ../../tutorial/controlflow.rst:621 #, fuzzy msgid "will print ``5``." -msgstr "چاپ خواهد کرد ``5``." +msgstr "عبارت ``5`` را چاپ خواهد کرد." #: ../../tutorial/controlflow.rst:623 #, fuzzy @@ -1509,10 +1466,10 @@ msgid "" "dictionary, or instances of most classes. For example, the following " "function accumulates the arguments passed to it on subsequent calls::" msgstr "" -"ارزش پیش فرض تنها یک بار ارزیابی می شود. این موضوع زمانی تفاوت ایجاد می کند " -"که مقدار پیش فرض یک شیء قابل تغییر مانند یک لیست، دیکشنری یا نمونه ای از " -"اکثر کلاس ها باشد. به عنوان مثال، تابع زیر مقادیر آرگومان هایی که در " -"فراخوانی های بعدی به آن ارسال می شود را جمع می کند::" +"مقدار پیش فرض تنها یک بار ارزیابی می شود. این موضوع هنگامی که پیش فرض یک شیء" +" قابل تغییر مانند یک لیست، دیکشنری، یا نمونه هایی از اکثر کلاس ها باشد، " +"تفاوت ایجاد می کند. به عنوان مثال، تابع زیر آرگومان هایی که به آن ارسال شده " +"اند را در فراخوانی های بعدی جمع آوری می کند::" #: ../../tutorial/controlflow.rst:628 #, fuzzy @@ -1525,15 +1482,13 @@ msgid "" "print(f(2))\n" "print(f(3))" msgstr "" -"```python\n" -"def f(a, L=[]):\n" -" L.append(a)\n" -" return L\n" +"تعریف تابع `f` که دو آرگومان `a` و `L` که پیش فرض یک لیست خالی `[]` است، می پذیرد. این تابع مقدار `a` را به لیست `L` اضافه کرده و سپس `L` را برمی گرداند.\n" "\n" -"print(f(1))\n" -"print(f(2))\n" -"print(f(3))\n" -"```" +"در این مثال، چاپ مقادیر زیر رخ خواهد داد::\n" +"\n" +" [1]\n" +" [1, 2]\n" +" [1, 2, 3]" #: ../../tutorial/controlflow.rst:636 #, fuzzy @@ -1547,11 +1502,11 @@ msgid "" "[1, 2]\n" "[1, 2, 3]" msgstr "" -"[۱]\n" +"[1]\n" "\n" -"[۱, ۲]\n" +"[1, 2]\n" "\n" -"[۱, ۲, ۳]" +"[1, 2, 3]" #: ../../tutorial/controlflow.rst:642 #, fuzzy @@ -1571,13 +1526,13 @@ msgid "" " L.append(a)\n" " return L" msgstr "" -"```python\n" -"def f(a, L=None):\n" -" if L is None:\n" -" L = []\n" -" L.append(a)\n" -" return L\n" -"```" +"تابع پیش فرض های قابل تغییر: این مثال نشان می دهد که چگونه ممکن است یک مقدار" +" پیش فرض لیست به طور غیرمنتظره تغییر کند. وقتی که از لیستی به عنوان یک مقدار" +" پیش فرض برای یک آرگومان استفاده می کنید، باید محتاط باشید، زیرا اگر مقدار " +"پیش فرض فقط یکبار در هنگام تعریف تابع ارزیابی شده باشد، تابع ممکن است مقدار " +"پیش فرض را در فراخوانی های بعدی تغییر دهد. در این مثال، اگر `L` `None` " +"نباشد، سپس مقدار پیش فرض استفاده می شود و مقدار `a` را به انتهای لیست پیش " +"فرض اضافه می کند، اما در غیر این صورت یک لیست جدید ساخته شده است." #: ../../tutorial/controlflow.rst:655 #, fuzzy @@ -1591,8 +1546,8 @@ msgid "" "argument>` of the form ``kwarg=value``. For instance, the following " "function::" msgstr "" -"توابع را می توان با استفاده از :term:`keyword arguments ` " -"به شکل ``kwarg=value`` فراخوانی کرد. برای مثال، تابع زیر::" +"تابع ها می توانند با استفاده از :term:`keyword arguments `" +" به فرم ``kwarg=value`` نیز فراخوانی شوند. به عنوان مثال، تابع زیر::" #: ../../tutorial/controlflow.rst:660 #, fuzzy @@ -1604,11 +1559,11 @@ msgid "" " print(\"-- It's\", state, \"!\")" msgstr "" "```python\n" -"def parrot(voltage, state='خشک شده', action='پوووم', type='آبی نروژی'):\n" -" print(\"-- این طوطی\", action, \"نخواهد کرد\", end=' ')\n" -" print(\"اگر\", voltage, \"ولت برق از آن عبور بدهید.\")\n" -" print(\"-- پرهای زیبایی دارد،\", type)\n" -" print(\"-- این\", state, \"است!\")\n" +"def parrot(voltage, state='خشک', action='پرواز', type='آبی نروژی'):\n" +" print(\"-- این طوطی نمی تواند\", action, end=' ')\n" +" print(\"اگر شما\", voltage, \"ولت از آن عبور دهید.\")\n" +" print(\"-- پرهای زیبا،\", type)\n" +" print(\"-- آن\", state, \"است!\")\n" "```" #: ../../tutorial/controlflow.rst:666 @@ -1618,8 +1573,8 @@ msgid "" "(``state``, ``action``, and ``type``). This function can be called in any " "of the following ways::" msgstr "" -"یک آرگومان اجباری (``voltage``) و سه آرگومان اختیاری (``state``, ``action``," -" و ``type``) می پذیرد. این تابع می تواند به هر یک از روش های زیر فراخوانی " +"یک آرگومان ضروری (``voltage``) و سه آرگومان اختیاری (``state``، ``action`` و" +" ``type``) را می پذیرد. این تابع می تواند به هر یک از روش های زیر فراخوانی " "شود::" #: ../../tutorial/controlflow.rst:670 @@ -1632,17 +1587,17 @@ 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(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(1000) # 1 آرگومان موقعیتی\n" +"parrot(voltage=1000) # 1 آرگومان کلیدواژه ای\n" +"parrot(voltage=1000000, action='VOOOOOM') # 2 آرگومان کلیدواژه ای\n" +"parrot(action='VOOOOOM', voltage=1000000) # 2 آرگومان کلیدواژه ای\n" +"parrot('a million', 'bereft of life', 'jump') # 3 آرگومان موقعیتی\n" +"parrot('a thousand', state='pushing up the daisies') # 1 موقعیتی، 1 کلیدواژه ای" #: ../../tutorial/controlflow.rst:677 #, fuzzy msgid "but all the following calls would be invalid::" -msgstr "اما همه ی فراخوانی های زیر نامعتبر خواهند بود:" +msgstr "اما تمامی فراخوانی های زیر نامعتبر خواهند بود::" #: ../../tutorial/controlflow.rst:679 #, fuzzy @@ -1652,10 +1607,10 @@ msgid "" "parrot(110, voltage=220) # duplicate value for the same argument\n" "parrot(actor='John Cleese') # unknown keyword argument" msgstr "" -"```parrot()``` # آرگومان مورد نیاز وجود ندارد\n" -"```parrot(voltage=5.0, 'dead')``` # آرگومان بدون کلیدواژه بعد از آرگومان کلیدواژه دار\n" -"```parrot(110, voltage=220)``` # مقدار تکراری برای همان آرگومان\n" -"```parrot(actor='John Cleese')``` # آرگومان کلیدواژه ناشناخته" +"parrot() # آرگومان مورد نیاز وارد نشده است\n" +"parrot(voltage=5.0, 'dead') # آرگومان غیر کلیدی بعد از آرگومان کلیدی\n" +"parrot(110, voltage=220) # مقدار تکراری برای یک آرگومان\n" +"parrot(actor='John Cleese') # آرگومان کلیدی ناشناخته" #: ../../tutorial/controlflow.rst:684 #, fuzzy @@ -1668,13 +1623,13 @@ msgid "" " may receive a value more than once. Here's an example that fails due to " "this restriction::" msgstr "" -"در یک فراخوانی تابع، آرگومان های کلیدی باید پس از آرگومان های موقعیتی قرار " -"گیرند. تمام آرگومان های کلیدی ارسال شده باید با یکی از آرگومان هایی که توسط " -"تابع پذیرفته می شوند مطابقت داشته باشند (برای مثال ``actor`` یک آرگومان " -"معتبر برای تابع ``parrot`` نیست) و ترتیب آن ها مهم نیست. این شامل آرگومان " -"های غیر اختیاری نیز می شود (برای مثال ``parrot(voltage=1000)`` نیز معتبر " -"است). هیچ آرگومانی نباید بیش از یک بار مقدار دریافت کند. در اینجا مثالی " -"آورده شده است که به دلیل این محدودیت با شکست مواجه می شود:" +"در یک فراخوانی تابع، آرگومان های کلیدی باید پس از آرگومان های موضعی بیایند. " +"همه آرگومان های کلیدی که ارسال می شوند باید با یکی از آرگومان های پذیرفته " +"شده توسط تابع مطابقت داشته باشند (برای مثال ``actor`` یک آرگومان معتبر برای " +"تابع ``parrot`` نیست)، و ترتیب آنها اهمیتی ندارد. این شامل آرگومان های غیر " +"اختیاری نیز می باشد (برای مثال ``parrot(voltage=1000)`` هم معتبر است). هیچ " +"آرگومانی نباید بیش از یک بار مقداری بگیرد. در اینجا مثالی آورده شده که به " +"دلیل این محدودیت شکست می خورد::" #: ../../tutorial/controlflow.rst:692 #, fuzzy @@ -1691,9 +1646,9 @@ msgstr "" "... pass\n" "...\n" ">>> function(0, a=0)\n" -"آخرین فراخوانی اخیر:\n" -" فایل \"\", خط 1، در \n" -"TypeError: function() دریافت کرد مقادیر متعدد برای آرگومان 'a'" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: function() got multiple values for argument 'a'" #: ../../tutorial/controlflow.rst:700 #, fuzzy @@ -1706,13 +1661,13 @@ msgid "" "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`` " -"باشد.) به عنوان مثال، اگر تابعی به این صورت تعریف کنیم:" +"وقتی یک پارامتر رسمی نهایی به فرم ``**name`` وجود دارد، یک دیکشنری (به " +":ref:`typesmapping` مراجعه کنید) حاوی تمام آرگومان های کلیدواژه ای به جز آن " +"هایی که به پارامتر رسمی مربوط می شوند، دریافت می کند. این می تواند با یک " +"پارامتر رسمی به فرم ``*name`` ترکیب شود (در زیرشاخه بعدی توضیح داده می شود) " +"که یک :ref:`tuple ` شامل آرگومان های موقعیتی بیشتر از لیست " +"پارامتر رسمی دریافت می کند. (``*name`` باید قبل از ``**name`` بیاید.) برای " +"مثال، اگر ما یک تابع شبیه به این تعریف کنیم::" #: ../../tutorial/controlflow.rst:708 #, fuzzy @@ -1726,7 +1681,6 @@ msgid "" " for kw in keywords:\n" " print(kw, \":\", keywords[kw])" msgstr "" -"```python\n" "def cheeseshop(kind, *arguments, **keywords):\n" " print(\"-- Do you have any\", kind, \"?\")\n" " print(\"-- I'm sorry, we're all out of\", kind)\n" @@ -1734,13 +1688,12 @@ msgstr "" " print(arg)\n" " print(\"-\" * 40)\n" " for kw in keywords:\n" -" print(kw, \":\", keywords[kw])\n" -"```" +" print(kw, \":\", keywords[kw])" #: ../../tutorial/controlflow.rst:717 #, fuzzy msgid "It could be called like this::" -msgstr "می تواند به این صورت فراخوانی شود::" +msgstr "می توان این گونه آن را فراخوانی کرد::" #: ../../tutorial/controlflow.rst:719 #, fuzzy @@ -1751,18 +1704,16 @@ msgid "" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" msgstr "" -"```python\n" -"cheeseshop(\"لیمبورگر\", \"آقا، این خیلی روان است.\",\n" -" \"آقا، این واقعاً خیلی، خیلی روان است.\",\n" +"cheeseshop(\"Limburger\", \"این خیلی روان است، آقا.\",\n" +" \"این واقعاً خیلی، خیلی روان است، آقا.\",\n" " shopkeeper=\"مایکل پیلین\",\n" " client=\"جان کلیز\",\n" -" sketch=\"طرح فروشگاه پنیر\")\n" -"```" +" sketch=\"طرح مغازه پنیر\")" #: ../../tutorial/controlflow.rst:725 #, fuzzy msgid "and of course it would print:" -msgstr "و البته این به صورت زیر چاپ می شود:" +msgstr "و البته چاپ می کند:" #: ../../tutorial/controlflow.rst:727 #, fuzzy @@ -1776,15 +1727,14 @@ msgid "" "client : John Cleese\n" "sketch : Cheese Shop Sketch" msgstr "" -"\n" -"-- آیا «Limburger» دارید؟\n" -"-- متأسفم، «Limburger» تمام کرده ایم.\n" -"خیلی آبکی است، قربان.\n" -"واقعاً خیلی، خیلی آبکی است، قربان.\n" +"-- آیا «لیمبورگر» دارید؟\n" +"-- متاسفم، ما «لیمبورگر» تمام کرده ایم.\n" +"بسیار شل است، آقا.\n" +"واقعاً خیلی، خیلی شل است، آقا.\n" "----------------------------------------\n" -"فروشنده : مایکل پیلین\n" -"مشتری : جان کلیز\n" -"طرح : طرح «Cheese Shop Sketch»" +"فروشنده : Michael Palin\n" +"مشتری : John Cleese\n" +"نمایشنامه : Cheese Shop Sketch" #: ../../tutorial/controlflow.rst:738 #, fuzzy @@ -1792,8 +1742,8 @@ msgid "" "Note that the order in which the keyword arguments are printed is guaranteed" " to match the order in which they were provided in the function call." msgstr "" -"توجه داشته باشید که ترتیب چاپ آرگومان های کلیدی تضمین شده است که مطابق با " -"ترتیبی باشد که در فراخوانی تابع ارائه شده اند." +"توجه داشته باشید که ترتیب چاپ آرگومان های کلیدی تضمین می شود که مطابق با " +"ترتیب ارائه شان در فراخوانی تابع باشد." #: ../../tutorial/controlflow.rst:742 #, fuzzy @@ -1809,16 +1759,16 @@ msgid "" " at the function definition to determine if items are passed by position, by" " position or keyword, or by keyword." msgstr "" -"به طور پیش فرض، آرگومان ها می توانند به یک تابع Python یا به وسیله مکان و یا" -" صراحتاً به وسیله کلیدواژه گذرانده شوند. برای خوانایی و عملکرد بهتر، منطقی " -"است که نحوه گذراندن آرگومان ها محدود شود به طوری که توسعه دهنده تنها با نگاه" -" کردن به تعریف تابع بتواند تعیین کند که آیا موارد به وسیله مکان، به وسیله " -"مکان یا کلیدواژه، یا به وسیله کلیدواژه گذرانده می شوند." +"به طور پیش فرض، آرگومان ها ممکن است به یک تابع پایتون یا به صورت موقعیتی یا " +"به صورت صریح با کلیدواژه ارسال شوند. برای خوانایی و عملکرد بهتر، منطقی است " +"که نحوه ارسال آرگومان ها محدود شود تا توسعه دهنده فقط به تعریف تابع نگاه کند" +" تا تعیین کند که آیتم ها به صورت موقعیتی، به صورت موقعیتی یا کلیدواژه، یا به" +" صورت کلیدواژه ارسال شوند." #: ../../tutorial/controlflow.rst:750 #, fuzzy msgid "A function definition may look like:" -msgstr "یک تعریف تابع ممکن است به این شکل باشد:" +msgstr "تعریف یک تابع ممکن است به این شکل باشد:" #: ../../tutorial/controlflow.rst:752 #, fuzzy @@ -1830,13 +1780,13 @@ msgid "" " | - Keyword only\n" " -- Positional only" msgstr "" -"```\n" +"```python\n" "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" " ----------- ---------- ----------\n" " | | |\n" -" | مکانی یا کلیدواژه ای |\n" -" | - فقط کلیدواژه ای\n" -" -- فقط مکانی\n" +" | موقعیت یا کلمه کلیدی |\n" +" | - فقط کلمه کلیدی\n" +" -- فقط موقعیت\n" "```" #: ../../tutorial/controlflow.rst:761 @@ -1847,15 +1797,15 @@ msgid "" "positional-only, positional-or-keyword, and keyword-only. Keyword parameters" " are also referred to as named parameters." msgstr "" -"جایی که ``/`` و ``*`` انتخابی هستند. در صورت استفاده، این نمادها نوع پارامتر" -" را بر اساس چگونگی ارسال آرگومان ها به تابع تعیین می کنند: فقط مقامی، مقامی " -"یا کلیدی، و فقط کلیدی. پارامترهای کلیدی به عنوان پارامترهای نام گذاری شده " -"نیز شناخته می شوند." +"در جایی که ``/`` و ``*`` اختیاری هستند. اگر استفاده شوند، این نمادها نوع " +"پارامتر را با نحوه ارسال آرگومان ها به تابع نشان می دهند: فقط-موقعیتی، " +"موقعیتی-یا-کلیدواژه ای، و فقط-کلیدواژه ای. پارامترهای کلیدواژه ای به عنوان " +"پارامترهای نام گذاری شده نیز شناخته می شوند." #: ../../tutorial/controlflow.rst:768 #, fuzzy msgid "Positional-or-Keyword Arguments" -msgstr "آرگومان های مکانی یا کلیدواژه ای" +msgstr "آرگومان های موقعیتی یا کلیدواژه ای" #: ../../tutorial/controlflow.rst:770 #, fuzzy @@ -1863,8 +1813,8 @@ msgid "" "If ``/`` and ``*`` are not present in the function definition, arguments may" " be passed to a function by position or by keyword." msgstr "" -"اگر ``/`` و ``*`` در تعریف تابع حضور نداشته باشند، آرگومان ها ممکن است به " -"صورت موقعیتی یا با استفاده از کلیدواژه به یک تابع منتقل شوند." +"اگر ``/`` و ``*`` در تعریف تابع وجود نداشته باشند، آرگومان ها ممکن است به " +"صورت موقعیتی یا با استفاده از کلمات کلیدی به تابع ارسال شوند." #: ../../tutorial/controlflow.rst:775 #, fuzzy @@ -1882,12 +1832,12 @@ msgid "" "parameters. If there is no ``/`` in the function definition, there are no " "positional-only parameters." msgstr "" -"با بررسی دقیق تر، می توان برخی از پارامترها را به عنوان *positional-only* " -"علامت گذاری کرد. اگر *positional-only*، ترتیب پارامترها مهم است و پارامترها " -"نمی توانند با استفاده از کلیدواژه ارسال شوند. پارامترهای فقط موقعیتی قبل از " -"یک ``/`` (خط مورب) قرار می گیرند. ``/`` برای جداسازی منطقی پارامترهای فقط " -"موقعیتی از بقیه پارامترها استفاده می شود. اگر در تعریف تابع ``/`` وجود " -"نداشته باشد، پارامترهای فقط موقعیتی وجود ندارند." +"با نگاه دقیق تر به این موضوع، امکان علامت گذاری پارامترهای خاصی به عنوان " +"*positional-only* وجود دارد. در صورت *positional-only*، ترتیب پارامترها " +"اهمیت دارد و پارامترها نمی توانند با استفاده از کلیدواژه ارسال شوند. " +"پارامترهای فقط موضعی قبل از ``/`` (اسلش رو به جلو) قرار می گیرند. ``/`` برای" +" جداسازی منطقی پارامترهای فقط موضعی از بقیه پارامترها استفاده می شود. اگر در" +" تعریف تابع ``/`` وجود نداشته باشد، پارامترهای فقط موضعی وجود ندارند." #: ../../tutorial/controlflow.rst:785 #, fuzzy @@ -1901,7 +1851,7 @@ msgstr "" #: ../../tutorial/controlflow.rst:789 #, fuzzy msgid "Keyword-Only Arguments" -msgstr "آرگومان های فقط-کلیدواژه ای" +msgstr "آرگومان های فقط کلیدواژه ای" #: ../../tutorial/controlflow.rst:791 #, fuzzy @@ -1910,9 +1860,9 @@ msgid "" "passed by keyword argument, place an ``*`` in the arguments list just before" " the first *keyword-only* parameter." msgstr "" -"برای مشخص کردن پارامترها به عنوان *keyword-only* که نشان می دهد پارامترها " -"باید با آرگومان کلیدواژه ای ارسال شوند، یک ``*`` را در لیست آرگومان ها، درست" -" قبل از اولین پارامتر *keyword-only* قرار دهید." +"برای مشخص کردن پارامترها به عنوان *keyword-only*، که نشان دهنده این است که " +"پارامترها باید به صورت آرگومان کلیدواژه ای ارسال شوند، یک ``*`` را در فهرست " +"آرگومان ها دقیقاً قبل از اولین پارامتر *keyword-only* قرار دهید." #: ../../tutorial/controlflow.rst:797 #, fuzzy @@ -1925,8 +1875,8 @@ msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" msgstr "" -"تعاریف مثال تابع زیر را در نظر بگیرید و به علامت های ``/`` و ``*`` با دقت " -"توجه کنید::" +"نمونه تعریف های تابع زیر را با دقت به علامت های ``/`` و ``*`` در نظر " +"بگیرید::" #: ../../tutorial/controlflow.rst:802 #, fuzzy @@ -1943,7 +1893,6 @@ msgid "" ">>> def combined_example(pos_only, /, standard, *, kwd_only):\n" "... print(pos_only, standard, kwd_only)" msgstr "" -"```python\n" ">>> def standard_arg(arg):\n" "... print(arg)\n" "...\n" @@ -1954,8 +1903,7 @@ msgstr "" "... print(arg)\n" "...\n" ">>> def combined_example(pos_only, /, standard, *, kwd_only):\n" -"... print(pos_only, standard, kwd_only)\n" -"```" +"... print(pos_only, standard, kwd_only)" #: ../../tutorial/controlflow.rst:815 #, fuzzy @@ -1964,9 +1912,9 @@ msgid "" "places no restrictions on the calling convention and arguments may be passed" " by position or keyword::" msgstr "" -"اولین تعریف تابع، ``standard_arg``، که به صورت معمولی ترین فرم است، محدودیتی" -" بر شیوه فراخوانی ندارد و آرگومان ها می توانند به صورت موقعیتی یا کلیدواژه " -"ای ارسال شوند::" +"تعریف اولین تابع، ``standard_arg``، به صورت معمول ترین فرم، هیچ محدودیتی در " +"روش فراخوانی ندارد و آرگومان ها می توانند با استفاده از موقعیت یا کلمه کلیدی" +" ارسال شوند::" #: ../../tutorial/controlflow.rst:819 #, fuzzy @@ -1989,8 +1937,8 @@ 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`` محدود به استفاده تنها از پارامترهای موقعیتی است " -"زیرا در تعریف تابع یک ``/`` وجود دارد::" +"تابع دوم ``pos_only_arg`` محدود به استفاده از پارامترهای موقعیتی است زیرا یک" +" ``/`` در تعریف تابع وجود دارد::" #: ../../tutorial/controlflow.rst:828 #, fuzzy @@ -2003,15 +1951,13 @@ msgid "" " File \"\", line 1, in \n" "TypeError: pos_only_arg() got some positional-only arguments passed as keyword arguments: 'arg'" msgstr "" -"```python\n" ">>> pos_only_arg(1)\n" "1\n" "\n" ">>> pos_only_arg(arg=1)\n" -"ردیابی اخیر (آخرین فراخوان):\n" +"ردیابی اخیر (آخرین تماس اخیر):\n" " فایل \"\"، خط 1، در \n" -"TypeError: تابع pos_only_arg() تعدادی از آرگومان هایی که فقط به صورت موقعیتی باید ارسال شوند را به صورت کلیدواژه ای دریافت کرده است: 'arg'\n" -"```" +"TypeError: pos_only_arg() تعدادی آرگومان فقط-مکانی به عنوان آرگومان کلیدواژه ای دریافت کرد: 'arg'" #: ../../tutorial/controlflow.rst:836 #, fuzzy @@ -2019,8 +1965,8 @@ msgid "" "The third function ``kwd_only_arg`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" msgstr "" -"سومین تابع ``kwd_only_arg`` تنها استفاده از آرگومان های کلید واژه ای را " -"اجازه می دهد، همانطور که با ``*`` در تعریف تابع نشان داده شده است::" +"تابع سوم ``kwd_only_arg`` تنها اجازه استفاده از آرگومان های کلیدی را می دهد " +"همانطور که توسط ``*`` در تعریف تابع نشان داده می شود::" #: ../../tutorial/controlflow.rst:839 #, fuzzy @@ -2033,23 +1979,20 @@ msgid "" ">>> kwd_only_arg(arg=3)\n" "3" msgstr "" -"```\n" ">>> kwd_only_arg(3)\n" -"ردیابی اخیر تماس آخر:\n" -" فایل \"\", خط 1، در \n" -"TypeError: تابع kwd_only_arg() هیچ آرگومان موضعی نمی پذیرد اما 1 آرگومان داده شده است\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: kwd_only_arg() takes 0 positional arguments but 1 was given\n" "\n" ">>> kwd_only_arg(arg=3)\n" "3\n" -"```" #: ../../tutorial/controlflow.rst:847 #, fuzzy msgid "" "And the last uses all three calling conventions in the same function " "definition::" -msgstr "" -"و در آخری از هر سه قرارداد فراخوانی در تعریف یک تابع استفاده شده است::" +msgstr "و در نهایت از هر سه روش فراخوانی در همان تعریف تابع استفاده می کند::" #: ../../tutorial/controlflow.rst:850 #, fuzzy @@ -2070,21 +2013,21 @@ msgid "" " File \"\", line 1, in \n" "TypeError: combined_example() got some positional-only arguments passed as keyword arguments: 'pos_only'" msgstr "" -"```>>> combined_example(1, 2, 3)``` \n" -"دریابی خطا (آخرین تماس اخیر): \n" -"  فایل \"\"، خط 1، در \n" -"TypeError: تابع \"combined_example\" تعداد 2 آرگومان به صورت موضعی می پذیرد اما 3 آرگومان داده شده است\n" +">>> combined_example(1, 2, 3)\n" +"دنباله ی ردگیری اخیر (آخر):\n" +" File \"\", خط 1، در \n" +"TypeError: تابع `combined_example()` به جای ۳ آرگومان، تنها ۲ آرگومان موقعیتی دریافت می کند.\n" "\n" -"```>>> combined_example(1, 2, kwd_only=3)``` \n" +">>> combined_example(1, 2, kwd_only=3)\n" "1 2 3\n" "\n" -"```>>> combined_example(1, standard=2, kwd_only=3)``` \n" +">>> combined_example(1, standard=2, kwd_only=3)\n" "1 2 3\n" "\n" -"```>>> combined_example(pos_only=1, standard=2, kwd_only=3)``` \n" -"دریابی خطا (آخرین تماس اخیر): \n" -"  فایل \"\"، خط 1، در \n" -"TypeError: تابع \"combined_example\" برخی از آرگومان های فقط-موضعی را به صورت آرگومان های کلیدواژه ای دریافت کرده است: 'pos_only'" +">>> combined_example(pos_only=1, standard=2, kwd_only=3)\n" +"دنباله ی ردگیری اخیر (آخر):\n" +" File \"\", خط 1، در \n" +"TypeError: تابع `combined_example()` بعضی آرگومان های تنها-موقعیت را به صورت آرگومان کلیدواژه ای دریافت کرده است: 'pos_only'" #: ../../tutorial/controlflow.rst:867 #, fuzzy @@ -2093,9 +2036,8 @@ msgid "" "between the positional argument ``name`` and ``**kwds`` which has ``name`` " "as a key::" msgstr "" -"در نهایت، به این تعریف تابع توجه کنید که ممکن است برخوردی بین آرگومان " -"موقعیتی ``name`` و ``**kwds`` که به صورت ``name`` به عنوان کلید است، وجود " -"داشته باشد::" +"در نهایت، به این تعریف تابع که دارای یک برخورد احتمالی بین آرگومان موقعیتی " +"``name`` و ``**kwds`` که ``name`` را به عنوان کلید دارد، توجه کنید::" #: ../../tutorial/controlflow.rst:869 #, fuzzy @@ -2103,12 +2045,9 @@ msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" msgstr "" -"```python\n" -"def foo(name, **kwds):\n" -" return 'name' in kwds\n" -"```\n" -"\n" -"این تابع یک آرگومان با نام `name` و تعداد نامشخصی از آرگومان های کلیدی (`**kwds`) می پذیرد و بررسی می کند که آیا کلید `'name'` در آرگومان های کلیدی وجود دارد یا خیر. ⟩" +"تعریف تابعی با نام `foo` که دو آرگومان می گیرد: `name` و `**kwds`. این تابع " +"بررسی می کند آیا `'name'` به عنوان یک کلید در `kwds` وجود دارد یا خیر و " +"مقدار بولین برمی گرداند." #: ../../tutorial/controlflow.rst:872 #, fuzzy @@ -2116,9 +2055,8 @@ msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" msgstr "" -"هیچ فراخوانی ای وجود ندارد که بتوان آن را به گونه ای انجام داد که ``True`` " -"برگردد، زیرا کلیدواژه ``'name'`` همیشه به اولین پارامتر متصل خواهد شد. برای " -"مثال::" +"هیچ فراخوانی وجود ندارد که موجب بازگشت ``True`` شود زیرا کلیدواژه ``'name'``" +" همیشه به اولین پارامتر متصل خواهد شد. برای مثال::" #: ../../tutorial/controlflow.rst:875 #, fuzzy @@ -2130,9 +2068,9 @@ msgid "" ">>>" msgstr "" ">>> foo(1, **{'name': 2})\n" -"آخرین بازبینی (خطایابی):\n" +"دریابی خطا (اخیراً آخرین تماس):\n" " فایل \"\", خط 1، در \n" -"TypeError: تابع foo() مقدارهای متعددی برای پارامتر 'name' دریافت کرده است\n" +"TypeError: تابع foo() مقادیر متعددی برای آرگومان 'name' دریافت کرده است\n" ">>>" #: ../../tutorial/controlflow.rst:881 @@ -2142,9 +2080,9 @@ msgid "" "``name`` as a positional argument and ``'name'`` as a key in the keyword " "arguments::" msgstr "" -"اما با استفاده از ``/`` (آرگومان های فقط موقعیتی)، این امر امکان پذیر است " -"زیرا ``name`` را به عنوان یک آرگومان موقعیتی و ``'name'`` را به عنوان یک " -"کلید در آرگومان های کلیدی می پذیرد::" +"اما با استفاده از ``/`` (آرگومان های تنها مکانی)، این امکان وجود دارد زیرا " +"``name`` را به عنوان یک آرگومان مکانی و ``'name'`` را به عنوان یک کلید در " +"آرگومان های کلیدواژه ای مجاز می کند::" #: ../../tutorial/controlflow.rst:883 #, fuzzy @@ -2159,7 +2097,7 @@ msgstr "" "... return 'name' in kwds\n" "...\n" ">>> foo(1, **{'name': 2})\n" -"درست" +"True" #: ../../tutorial/controlflow.rst:889 #, fuzzy @@ -2167,8 +2105,8 @@ msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." msgstr "" -"به عبارت دیگر، نام های پارامترهای فقط موقعیتی می توانند در ``**kwds`` بدون " -"ابهام استفاده شوند." +"به عبارت دیگر، نام های پارامترهای فقط موقعیتی را می توان در ``**kwds`` بدون " +"ابهام استفاده کرد." #: ../../tutorial/controlflow.rst:894 #, fuzzy @@ -2181,22 +2119,24 @@ msgid "" "The use case will determine which parameters to use in the function " "definition::" msgstr "" -"موارد استفاده تعیین خواهند کرد که کدام پارامترها را در تعریف تابع استفاده " -"کنید::" +"مورد استفاده تعیین خواهد کرد که کدام پارامترها را در تعریف تابع مورد استفاده" +" قرار دهید::" #: ../../tutorial/controlflow.rst:898 #, fuzzy msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "" -"```python\n" -"def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" -"```\n" +"تعریف یک تابع می تواند شامل انواع مختلفی از آرگومان ها باشد. در تابعی که در زیر تعریف شده، از چهار نوع آرگومان استفاده شده است:\n" "\n" -"تعریف تابعی به نام `f` با آرگومان های زیر:\n" +"1. \"positional-only\" آرگومان ها: `pos1` و `pos2` آرگومان هایی هستند که تنها می توان آن ها را با استفاده از موقعیت آن ها فراخوانی کرد.\n" "\n" -"- `pos1` و `pos2`: آرگومان های موقعیتی که باید به طور اجباری موقعیتی فرستاده شوند.\n" -"- `pos_or_kwd`: آرگومانی که می تواند به صورت موقعیتی یا کلمه کلیدی فرستاده شود.\n" -"- `kwd1` و `kwd2`: آرگومان های کلمه کلیدی که باید به طور اجباری با نامشان فرستاده شوند." +"2. ترکیبی از \"positional\" و \"keyword\" آرگومان: `pos_or_kwd` را می توان به صورت موقعیتی یا به عنوان کلیدواژه فراخوانی کرد.\n" +"\n" +"3. \"keyword-only\" آرگومان ها: `kwd1` و `kwd2` فقط می توانند با کلیدواژه نام گذاری شوند.\n" +"\n" +"استفاده از خط های مورب `/` و `*` به طور خاص برای مشخص کردن نوع آرگومان ها به کار می رود. تابعی که مشاهده می کنید ممکن است به عنوان مثال برای نشان دادن این مفهوم به کار رود::\n" +"\n" +"def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" #: ../../tutorial/controlflow.rst:900 #, fuzzy @@ -2212,10 +2152,10 @@ msgid "" " is called or if you need to take some positional parameters and arbitrary " "keywords." msgstr "" -"زمانی که می خواهید نام پارامترها در دسترس کاربر نباشد، از پارامترهای فقط " -"موقعیت دار استفاده کنید. این زمانی مفید است که نام پارامترها معنی واقعی " -"ندارند، اگر می خواهید ترتیب آرگومان ها هنگام فراخوانی تابع رعایت شود، یا اگر" -" نیاز دارید برخی پارامترهای موقعیت دار و کلیدواژه های دلخواه را بپذیرید." +"از پارامترهای تنها موقعیتی استفاده کنید اگر می خواهید نام پارامترها برای " +"کاربر قابل دسترسی نباشد. این روش زمانی مفید است که نام های پارامترها معنای " +"خاصی ندارند، اگر می خواهید ترتیب آرگومان ها را هنگام فراخوانی تابع تحمیل " +"کنید یا اگر نیاز دارید تعدادی پارامتر موقعیتی و کلمات کلیدی دلخواه بگیرید." #: ../../tutorial/controlflow.rst:907 #, fuzzy @@ -2224,9 +2164,9 @@ msgid "" " understandable by being explicit with names or you want to prevent users " "relying on the position of the argument being passed." msgstr "" -"از کلمات کلیدی تنها زمانی استفاده کنید که نام ها دارای معنا هستند و تعریف " -"تابع با استفاده صریح از نام ها قابل فهم تر می شود یا می خواهید از اتکای " -"کاربران به موقعیت آرگومان در فراخوانی تابع جلوگیری کنید." +"از کلمه کلیدی when استفاده کنید زمانی که نام ها معنا دارند و تعریف تابع با " +"صراحت بیشتری از طریق نام ها قابل درک است یا می خواهید از تکیه کاربران بر " +"موقعیت آرگومان هایی که ارسال می شوند جلوگیری کنید." #: ../../tutorial/controlflow.rst:910 #, fuzzy @@ -2234,13 +2174,13 @@ msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." msgstr "" -"برای یک API، از «positional-only» استفاده کنید تا از ایجاد تغییرات شکسته در " -"API جلوگیری شود اگر نام پارامتر در آینده تغییر کند." +"برای یک API، از پارامترهای فقط-موضعی استفاده کنید تا از ایجاد تغییرات مخرب " +"در API در صورت تغییر نام پارامتر در آینده جلوگیری کنید." #: ../../tutorial/controlflow.rst:916 #, fuzzy msgid "Arbitrary Argument Lists" -msgstr "فهرست آرگومان های دلخواه" +msgstr "فهرست های آرگومان دلخواه" #: ../../tutorial/controlflow.rst:921 #, fuzzy @@ -2250,11 +2190,10 @@ msgid "" "wrapped up in a tuple (see :ref:`tut-tuples`). Before the variable number " "of arguments, zero or more normal arguments may occur. ::" msgstr "" -"در نهایت، کم استفاده ترین گزینه این است که مشخص کنیم یک تابع می تواند با " -"تعداد نامشخصی از آرگومان ها فراخوانی شود. این آرگومان ها در یک ``tuple`` " -"پیچیده می شوند (به :ref:`tut-tuples` مراجعه کنید). قبل از آرگومان های با " -"تعداد متغیر، ممکن است صفر یا تعداد بیشتری از آرگومان های معمولی وجود داشته " -"باشند. ::" +"در نهایت، کمترین گزینه مورد استفاده این است که مشخص کنید یک تابع می تواند با" +" تعداد دلخواهی از آرگومان ها فراخوانی شود. این آرگومان ها در یک `tuple` بسته" +" بندی می شوند (به :ref:`tut-tuples` مراجعه کنید). قبل از آرگومان های متغیر، " +"ممکن است صفر یا بیشتر آرگومان های عادی رخ دهند. ::" #: ../../tutorial/controlflow.rst:926 #, fuzzy @@ -2262,12 +2201,10 @@ msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" msgstr "" -"```python\n" -"def write_multiple_items(file, separator, *args):\n" -" file.write(separator.join(args))\n" -"```\n" -"\n" -"تابع `write_multiple_items` برای نوشتن چندین آیتم در یک فایل با استفاده از یک جداکننده." +"تعریف `write_multiple_items` تابعی است که سه پارامتر دریافت می کند: `file`، " +"`separator`، و آرگومان های دلخواه `args`. تابع داده های موجود در `args` را " +"با استفاده از `separator` به یک رشته ترکیب می کند و آن را داخل فایل می " +"نویسد." #: ../../tutorial/controlflow.rst:930 #, fuzzy @@ -2279,11 +2216,10 @@ msgid "" " be used as keywords rather than positional arguments. ::" msgstr "" "به طور معمول، این آرگومان های *variadic* در انتهای لیست پارامترهای رسمی قرار" -" می گیرند، زیرا آن ها تمام آرگومان های ورودی باقی مانده را که به تابع ارسال " -"می شوند جمع آوری می کنند. هر پارامتر رسمی که بعد از پارامتر ``*args`` قرار " -"گیرد، به عنوان آرگومان های «فقط کلیدواژه ای» محسوب می شود، به این معنی که آن" -" ها فقط می توانند به عنوان کلیدواژه ها استفاده شوند و نه به عنوان آرگومان " -"های مکانی. ::" +" می گیرند، زیرا تمامی آرگومان های ورودی باقی مانده که به تابع ارسال می شوند " +"را جمع آوری می کنند. هر پارامتر رسمی که بعد از پارامتر ``*args`` قرار گیرد " +"به عنوان آرگومان های 'فقط-کلید واژه' تلقی می شود، به این معنا که تنها می " +"توانند به صورت کلید واژه ای استفاده شوند و نه به شکل آرگومان مکانی. ::" #: ../../tutorial/controlflow.rst:936 #, fuzzy @@ -2296,20 +2232,34 @@ msgid "" ">>> concat(\"earth\", \"mars\", \"venus\", sep=\".\")\n" "'earth.mars.venus'" msgstr "" -"```python\n" ">>> def concat(*args, sep=\"/\"):\n" "... return sep.join(args)\n" "...\n" ">>> concat(\"earth\", \"mars\", \"venus\")\n" "'earth/mars/venus'\n" ">>> concat(\"earth\", \"mars\", \"venus\", sep=\".\")\n" -"'earth.mars.venus'\n" -"```" +"'earth.mars.venus'" #: ../../tutorial/controlflow.rst:947 #, fuzzy msgid "Unpacking Argument Lists" -msgstr "بازکردن لیست های آرگومان" +msgstr "" +"باز کردن لیست آرگومان ها\n" +"\n" +"در مواردی که توابع زیادی از نیازی به استفاده می شود، از توانایی بسته بندی و باز کردن لیست آرگومان ها استفاده شود که می تواند بسیار مفید باشد. برای مثال، تابع `range()` تابعی است که انتظار دارد آرگومان هایش جداگانه و به عنوان پارامترهای مستقل فرستاده شوند::\n" +"\n" +"```python\n" +">>> list(range(3, 6)) # معمولی\n" +"[3, 4, 5]\n" +"```\n" +"\n" +"اگر لیستی از آرگومان ها وجود داشته باشد، می توان از عملگر `*` برای باز کردن لیست به داخل آرگومان های جداگانه استفاده کرد::\n" +"\n" +"```python\n" +">>> args = [3, 6]\n" +">>> list(range(*args)) # بازکردن لیست به آرگومان های منفرد\n" +"[3, 4, 5]\n" +"```" #: ../../tutorial/controlflow.rst:949 #, fuzzy @@ -2321,12 +2271,12 @@ msgid "" "separately, write the function call with the ``*``\\ -operator to unpack " "the arguments out of a list or tuple::" msgstr "" -"وضعیت معکوس زمانی رخ می دهد که آرگومان ها در یک لیست یا تاپل قرار دارند اما " -"نیاز به بازکردن برای فراخوانی تابعی که به آرگومان های موقعیتی مجزا نیاز " -"دارد، وجود دارد. به عنوان مثال، تابع داخلی :func:`range` به آرگومان های " -"جداگانه *start* و *stop* نیاز دارد. اگر این آرگومان ها جداگانه در دسترس " -"نباشند، فراخوانی تابع را با عملگر ``*``\\ بنویسید تا آرگومان ها از یک لیست " -"یا تاپل باز شوند." +"وضعیت معکوس زمانی رخ می دهد که آرگومان ها به صورت یک لیست یا تاپل هستند، اما" +" لازم است برای فراخوانی تابعی که به آرگومان های موقعیتی جداگانه نیاز دارد، " +"آن ها باز شوند. برای مثال، تابع داخلی :func:`range` انتظار دارد که آرگومان " +"های *start* و *stop* به صورت جداگانه ارائه شوند. اگر آن ها به صورت جداگانه " +"موجود نباشند، فراخوانی تابع را با عملگر ``*``\\ برای باز کردن آرگومان ها از " +"یک لیست یا تاپل بنویسید::" #: ../../tutorial/controlflow.rst:956 #, fuzzy @@ -2337,10 +2287,10 @@ msgid "" ">>> list(range(*args)) # call with arguments unpacked from a list\n" "[3, 4, 5]" msgstr "" -">>> list(range(3, 6)) # فراخوانی عادی با آرگومان های جداگانه\n" +">>> list(range(3, 6)) # فراخوان معمولی با آرگومان های جداگانه\n" "[3, 4, 5]\n" ">>> args = [3, 6]\n" -">>> list(range(*args)) # فراخوانی با باز کردن آرگومان ها از لیست\n" +">>> list(range(*args)) # فراخوان با آرگومان هایی که از یک لیست باز شده اند\n" "[3, 4, 5]" #: ../../tutorial/controlflow.rst:965 @@ -2349,8 +2299,8 @@ msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" msgstr "" -"به همین شکل، دیکشنری ها می توانند با استفاده از عملگر ``**``\\ آرگومان های " -"کلیدواژه ای را فراهم کنند::" +"به همین ترتیب، دیکشنری ها می توانند آرگومان های کلیدی را با عملگر ``**``\\ " +"ارائه دهند::" #: ../../tutorial/controlflow.rst:968 #, fuzzy @@ -2364,21 +2314,19 @@ msgid "" ">>> parrot(**d)\n" "-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !" msgstr "" -"```python\n" ">>> def parrot(voltage, state='a stiff', action='voom'):\n" -"... print(\"-- This parrot wouldn't\", action, end=' ')\n" -"... print(\"if you put\", voltage, \"volts through it.\", end=' ')\n" -"... print(\"E's\", state, \"!\")\n" +"... print(\"-- این طوطی نمی خواهد\", action, end=' ')\n" +"... print(\"اگر شما\", voltage, \"ولت از آن عبور دهید.\", end=' ')\n" +"... print(\"او\", state, \"است!\")\n" "...\n" -">>> d = {\"voltage\": \"four million\", \"state\": \"bleedin' demised\", \"action\": \"VOOM\"}\n" +">>> d = {\"voltage\": \"چهار میلیون\", \"state\": \"مرده و بی حرکت\", \"action\": \"VOOM\"}\n" ">>> parrot(**d)\n" -"-- این طوطی نمی شد VOOM اگر شما گذاشتید چهار میلیون ولت از آن عبور کند. او مرده ی آشکار است!\n" -"```" +"-- این طوطی نمی خواهد VOOM اگر شما چهار میلیون ولت از آن عبور دهید. او مرده و بی حرکت است!" #: ../../tutorial/controlflow.rst:981 #, fuzzy msgid "Lambda Expressions" -msgstr "عبارات \"Lambda\"" +msgstr "عبارات لمبدا" #: ../../tutorial/controlflow.rst:983 #, fuzzy @@ -2391,13 +2339,12 @@ msgid "" "function definitions, lambda functions can reference variables from the " "containing scope::" msgstr "" -"توابع ناشناس کوچک می توانند با استفاده از کلمه کلیدی ``:keyword:`lambda``` " -"ایجاد شوند. این تابع مجموع دو آرگومان خود را برمی گرداند: ````lambda a, b: " -"a+b````. توابع ``lambda`` می توانند هر جایی که اشیاء تابعی مورد نیاز هستند " -"استفاده شوند. از نظر نحوی، آنها به یک عبارت واحد محدود می شوند. از نظر " -"معنایی، آنها فقط یک تراکم نحوی برای تعریف تابع عادی هستند. مانند تعریف توابع" -" تودرتو، توابع ``lambda`` می توانند به متغیرهای حوزه محاط دسترسی داشته " -"باشند::" +"تابع های ناشناس کوچک را می توان با کلمه کلیدی :keyword:`lambda` ایجاد کرد. " +"این تابع جمع دو آرگومان خود را برمی گرداند: ``lambda a, b: a+b``. تابع های " +"لامبدا را می توان در هر جایی که اشیاء تابع مورد نیاز باشند استفاده کرد. این " +"تابع ها به لحاظ نحوی به یک عبارت واحد محدود می شوند. از نظر معنایی، آنها فقط" +" یک میانبر نحوی برای تعریف تابع عادی هستند. همانند تعریف تابع های تو در تو، " +"تابع های لامبدا می توانند به متغیرهای موجود در حوزه حاوی خود مراجعه کنند::" #: ../../tutorial/controlflow.rst:991 #, fuzzy @@ -2411,7 +2358,6 @@ msgid "" ">>> f(1)\n" "43" msgstr "" -"```python\n" ">>> def make_incrementor(n):\n" "... return lambda x: x + n\n" "...\n" @@ -2420,7 +2366,6 @@ msgstr "" "42\n" ">>> f(1)\n" "43\n" -"```" #: ../../tutorial/controlflow.rst:1000 #, fuzzy @@ -2428,8 +2373,8 @@ msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument::" msgstr "" -"مثال بالا از یک عبارت lambda برای بازگرداندن یک تابع استفاده می کند. استفاده" -" دیگر این است که یک تابع کوچک را به عنوان یک آرگومان ارسال کنیم::" +"مثال بالا از یک عبارت لامبدا برای بازگرداندن یک تابع استفاده می کند. یک " +"کاربرد دیگر این است که یک تابع کوچک را به عنوان آرگومان ارسال کنید::" #: ../../tutorial/controlflow.rst:1003 #, fuzzy @@ -2439,9 +2384,9 @@ msgid "" ">>> pairs\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" msgstr "" -">>> جفت ها = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" -">>> جفت ها.sort(key=lambda pair: pair[1])\n" -">>> جفت ها\n" +">>> زوج ها = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" +">>> زوج ها.مرتب سازی(key=lambda pair: pair[1])\n" +">>> زوج ها\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" #: ../../tutorial/controlflow.rst:1012 @@ -2455,8 +2400,8 @@ msgid "" "Here are some conventions about the content and formatting of documentation " "strings." msgstr "" -"در اینجا برخی از قراردادها درباره محتوای متنی و فرمت بندی رشته های مستندات " -"آمده است." +"در اینجا برخی قواعد مربوط به محتوا و قالب بندی رشته های مستندات آورده شده " +"است." #: ../../tutorial/controlflow.rst:1022 #, fuzzy @@ -2467,10 +2412,10 @@ msgid "" "to be a verb describing a function's operation). This line should begin " "with a capital letter and end with a period." msgstr "" -"اولین خط باید همیشه یک خلاصه ی کوتاه و مختصر از هدف شیء باشد. برای اختصار، " -"نباید به طور صریح نام یا نوع شیء ذکر شود، چون این اطلاعات از راه های دیگری " -"در دسترس است (به غیر از مواقعی که نام یک فعل توصیف گر عملکرد یک تابع باشد). " -"این خط باید با حرف بزرگ شروع شود و با نقطه به پایان برسد." +"اولین خط باید همیشه یک خلاصه کوتاه و مختصر از هدف شیء باشد. به دلیل اختصار، " +"نباید به صورت صریح نام یا نوع شیء را بیان کند، زیرا این اطلاعات از طریق روش " +"های دیگر در دسترس است (مگر در مواردی که نام، یک فعل توصیف کننده عملکرد یک " +"تابع باشد). این خط باید با حرف بزرگ شروع شود و با نقطه پایان یابد." #: ../../tutorial/controlflow.rst:1028 #, fuzzy @@ -2481,9 +2426,8 @@ msgid "" "object's calling conventions, its side effects, etc." msgstr "" "اگر در رشته مستندات خطوط بیشتری وجود داشته باشد، خط دوم باید خالی باشد تا " -"بخش خلاصه به صورت تصویری از بقیه توضیحات جدا شود. خطوط بعدی باید شامل یک یا " -"چند پاراگراف باشند که به توصیف قرارداده های فراخوانی شیء، اثرات جانبی آن و " -"غیره می پردازند." +"خلاصه را به صورت بصری از بقیه توضیحات جدا کند. خطوط بعدی باید یک یا چند " +"پاراگراف باشد که روش های فراخوانی شی، اثرات جانبی آن و غیره را توضیح دهد." #: ../../tutorial/controlflow.rst:1033 #, fuzzy @@ -2500,21 +2444,21 @@ msgid "" "they occur all their leading whitespace should be stripped. Equivalence of " "whitespace should be tested after expansion of tabs (to 8 spaces, normally)." msgstr "" -"تجزیه گر Python تورفتگی را از رشته های چندخطی در Python حذف نمی کند، " -"بنابراین ابزارهایی که مستندات را پردازش می کنند باید در صورت تمایل تورفتگی " -"را حذف کنند. این کار با استفاده از روش زیر انجام می شود. اولین خط غیر خالی " -"بعد از اولین خط رشته، مقدار تورفتگی کل رشته مستندات را تعیین می کند. (نمی " -"توانیم از خط اول استفاده کنیم زیرا معمولاً در کنار اولین کوتیشن های رشته " -"قرار دارد و تورفتگی آن در رشته مشخص نیست.) فاصله \"معادل\" با این تورفتگی " -"سپس از ابتدای تمامی خطوط رشته حذف می شود. خطوطی که تورفتگی کمتری دارند نباید" -" وجود داشته باشند، اما اگر وجود داشته باشند، تمامی فاصله های اولیه آن ها " -"باید حذف شود. معادل بودن فاصله گذاری باید بعد از گسترش تب ها (معمولاً به ۸ " +"تجزیه کننده پایتون از تو رفتگی در رشته های چند خطی در پایتون چشم پوشی نمی " +"کند، بنابراین ابزارهایی که مستندات را پردازش می کنند باید در صورت نیاز تو " +"رفتگی را حذف کنند. این کار با استفاده از قرارداد زیر انجام می شود: اولین خط " +"غیرخالی از خطوط اول رشته، مقدار تو رفتگی برای کل رشته مستندات را تعیین می " +"کند. (ما نمی توانیم از خط اول استفاده کنیم زیرا معمولاً در کنار علامت های " +"نقل قول باز رشته است و تو رفتگی آن در رشته مشخص نیست.) سپس فاصله \"معادل\" " +"با این تو رفتگی از ابتدای تمام خطوط رشته حذف می شود. خطوطی که کم تر تو رفته " +"باشند، نباید وجود داشته باشند، اما اگر وجود داشتند، تمام فاصله های ابتدایی " +"آن ها باید حذف شوند. معادل بودن فاصله باید پس از گسترش تب ها (معمولاً به 8 " "فاصله) بررسی شود." #: ../../tutorial/controlflow.rst:1045 #, fuzzy msgid "Here is an example of a multi-line docstring::" -msgstr "در اینجا مثالی از یک `docstring` چند خطی آمده است::" +msgstr "در اینجا یک نمونه از یک ``docstring`` چند خطی آورده شده است::" #: ../../tutorial/controlflow.rst:1047 #, fuzzy @@ -2531,24 +2475,22 @@ msgid "" "\n" " No, really, it doesn't do anything." msgstr "" -"```python\n" ">>> def my_function():\n" -"... \"\"\"هیچ کاری انجام نمی دهد، اما مستند شده است.\n" +"... \"\"\"هیچ کاری انجام نمی دهد، اما مستندش می کند.\n" "...\n" -"... نه، واقعا هیچ کاری انجام نمی دهد.\n" +"... نه، واقعاً هیچ کاری انجام نمی دهد.\n" "... \"\"\"\n" "... pass\n" "...\n" ">>> print(my_function.__doc__)\n" -"هیچ کاری انجام نمی دهد، اما مستند شده است.\n" +"هیچ کاری انجام نمی دهد، اما مستندش می کند.\n" "\n" -" نه، واقعا هیچ کاری انجام نمی دهد.\n" -"```" +" نه، واقعاً هیچ کاری انجام نمی دهد." #: ../../tutorial/controlflow.rst:1063 #, fuzzy msgid "Function Annotations" -msgstr "حاشیه نویسی توابع" +msgstr "توضیحات تابع" #: ../../tutorial/controlflow.rst:1071 #, fuzzy @@ -2557,10 +2499,9 @@ msgid "" "information about the types used by user-defined functions (see :pep:`3107` " "and :pep:`484` for more information)." msgstr "" -":ref:`Function annotations ` کاملاً اختیاری هستند و اطلاعات " -"متادیتا درباره نوع هایی که توسط توابع تعریف شده توسط کاربر استفاده می شوند " -"را ارائه می دهند (برای اطلاعات بیشتر به :pep:`3107` و :pep:`484` مراجعه " -"کنید)." +"اطلاعات متا :ref:`Function annotations ` در مورد انواع استفاده شده" +" توسط توابع تعریف شده توسط کاربر به طور کامل اختیاری هستند (برای اطلاعات " +"بیشتر به :pep:`3107` و :pep:`484` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1075 #, fuzzy @@ -2575,13 +2516,13 @@ msgid "" "following example has a required argument, an optional argument, and the " "return value annotated::" msgstr "" -"ویژگی :attr:`!__annotations__` تابع به صورت یک دیکشنری ذخیره می شود و تأثیری" -" بر دیگر قسمت های تابع ندارد. توضیحات پارامترها با دو نقطه بعد از نام " -"پارامتر تعریف می شوند و با یک عبارت که مقدار توضیح را ارزیابی می کند، دنبال " -"می شوند. توضیحات بازگشت توسط یک ``->`` عبارتی، که بین لیست پارامترها و دو " -"نقطه نشان دهنده پایان بیانیه :keyword:`def` قرار دارد، تعریف می شود. مثال " -"زیر شامل یک آرگومان اجباری، یک آرگومان اختیاری و مقدار بازگشتی همراه با " -"توضیحات است::" +":term:`Annotations ` به صورت یک دیکشنری در خصوصیت " +":attr:`!__annotations__` تابع ذخیره می شوند و بر هیچ بخش دیگری از تابع " +"تأثیری ندارند. توضیحات پارامترها با یک دو نقطه بعد از نام پارامتر تعریف می " +"شوند که با یک عبارت برای ارزیابی به مقدار توضیح ارائه می شوند. توضیحات " +"بازگشتی با یک ``->`` به همراه یک عبارت، بین لیست پارامتر و دو نقطه ای که " +"پایان دستور :keyword:`def` را نشان می دهد، تعریف می شوند. مثال زیر دارای یک " +"آرگومان اجباری، یک آرگومان اختیاری و مقدار بازگشتی توضیح داده شده است::" #: ../../tutorial/controlflow.rst:1084 #, fuzzy @@ -2596,20 +2537,15 @@ msgid "" "Arguments: spam eggs\n" "'spam and eggs'" msgstr "" -"```python\n" ">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" "... print(\"Annotations:\", f.__annotations__)\n" "... print(\"Arguments:\", ham, eggs)\n" "... return ham + ' and ' + eggs\n" "...\n" ">>> f('spam')\n" -"```\n" -"\n" -"```\n" "Annotations: {'ham': , 'return': , 'eggs': }\n" "Arguments: spam eggs\n" -"'spam and eggs'\n" -"```" +"'spam and eggs'" #: ../../tutorial/controlflow.rst:1097 #, fuzzy @@ -2625,12 +2561,11 @@ msgid "" "than others. Making it easy for others to read your code is always a good " "idea, and adopting a nice coding style helps tremendously for that." msgstr "" -"اکنون که قصد دارید بخش های طولانی تر و پیچیده تری از Python بنویسید، زمان " -"مناسبی است تا درباره ی *coding style* صحبت کنیم. بیشتر زبان ها را می توان به" -" روش های مختلفی نوشت (یا به عبارتی مختصرتر، *formatted*)؛ برخی از این سبک ها" -" خواناتر از بقیه هستند. اینکه کد شما به راحتی توسط دیگران خوانده شود، همیشه " -"ایده خوبی است و استفاده از یک سبک کدنویسی مناسب به شدت در این زمینه کمک می " -"کند." +"حالا که قرار است قطعات طولانی تر و پیچیده تری از پایتون بنویسید، زمان خوبی " +"است برای صحبت درباره ی *coding style*. بیشتر زبان ها را می توان به سبک های " +"مختلف نوشت (یا به طور خلاصه تر، *formatted*)؛ برخی از این سبک ها نسبت به " +"بقیه خواناتر هستند. راحت کردن خواندن کد شما برای دیگران همیشه ایده ی خوبی " +"است و اتخاذ یک سبک کدنویسی خوب برای این امر بسیار کمک کننده خواهد بود." #: ../../tutorial/controlflow.rst:1108 #, fuzzy @@ -2640,15 +2575,33 @@ msgid "" " Python developer should read it at some point; here are the most important " "points extracted for you:" msgstr "" -"برای پایتون، :pep:`8` به عنوان راهنمای سبک ظاهر شده است که اکثر پروژه ها به " -"آن پایبند هستند؛ این راهنما به یک سبک کدنویسی بسیار خوانا و خوش نما تاکید " -"دارد. هر توسعه دهنده پایتون باید در برخی مواقع آن را بخواند؛ در اینجا " -"مهمترین نکات استخراج شده برای شما آمده است:" +"برای پایتون، :pep:`8` به عنوان راهنمای سبک که اکثر پروژه ها از آن پیروی می " +"کنند ظهور کرده است؛ این راهنما یک سبک کدنویسی بسیار خوانا و چشم نواز را " +"ترویج می دهد. هر توسعه دهنده ی پایتون باید در مقطعی آن را بخواند؛ در اینجا " +"مهم ترین نکات برای شما استخراج شده اند:" #: ../../tutorial/controlflow.rst:1113 #, fuzzy msgid "Use 4-space indentation, and no tabs." -msgstr "برای تورفتگی از چهار فاصله استفاده کنید و از تب استفاده نکنید." +msgstr "" +"متد های تعریف شده در یک بدنه کلاس تعریف کننده رفتار اشیاء آن کلاس هستند. وقتی یک متد در زمینه یک شیء قابل اجرا باشد، متد نامیده می شود: \n" +"\n" +" x.f()\n" +"\n" +"در اصطلاح: روش دریافت پیام f با پارامترهایی که در پرانتز بعدی تابع فراخوانی می شود. \n" +"\n" +"متد شیئی که در آن تعریف شده اند را به عنوان اولین آرگومانشان می گیرند، که به طور معمول self نامیده می شود. \n" +"\n" +"متدها می توانند به طور مستقیم با کلاس هایی به شکلی فراخوانی شوند که در دسترس ماژول محلی هستند:\n" +"\n" +" class C:\n" +" def f(self, x):\n" +" return (self, x)\n" +"\n" +"هنگامی که یک روش فراخوانی شود، میدان تهی شده با ارزیابی یک شیء مشخص، نشانگر شیء تازه ساخته شده می شود. برای نمونه:\n" +"\n" +" x = C()\n" +" print(x.f(1))" #: ../../tutorial/controlflow.rst:1115 #, fuzzy @@ -2657,14 +2610,45 @@ msgid "" "nesting depth) and large indentation (easier to read). Tabs introduce " "confusion, and are best left out." msgstr "" -"۴ فاصله یک مصالحه خوب بین تورفتگی کوچک (که عمق تو در تویی بیشتری را امکان " -"پذیر می کند) و تورفتگی بزرگ (که خواندن را آسان تر می کند) می باشد. استفاده " -"از tabها باعث سردرگمی می شود و بهتر است از آن ها استفاده نشود." +"استفاده از ۴ فاصله یک توافق خوب بین تورفتگی کوچک (که عمق تو در تویی بیشتری " +"را اجازه می دهد) و تورفتگی بزرگ (که خواندن را آسان تر می کند) است. استفاده " +"از تب ها باعث سردرگمی می شود و بهتر است از آن ها اجتناب شود." #: ../../tutorial/controlflow.rst:1119 #, fuzzy msgid "Wrap lines so that they don't exceed 79 characters." -msgstr "خطوط را طوری بپیچانید که از ۷۹ کاراکتر تجاوز نکنند." +msgstr "" +"متغیرهای محلی به صورت پیش فرض در اسکوپ توابع تعریف می شوند. برای ایجاد \n" +"متغیرهای در سطح ماژول، یا باید متغیر را در خارج از هر تابعی تعریف کنید، \n" +"یا از کلمه کلیدی ``global`` استفاده کنید. هیچ اسکوپی در سطح کلاس وجود ندارد. \n" +"با این حال، یک تعریف کلاس با یک اسکوپ توابع محصور می شود::\n" +"\n" +"```python\n" +"class B:\n" +" b = 4\n" +"```\n" +"\n" +"متغیرهایی که درون یک تعریف کلاس به آنها ارجاع داده می شود، باید یا \n" +"به عنوان پارامتر تابع استفاده شوند یا به عنوان متغیرهای سراسری باشند. \n" +"عملگر `.` در دسترسی به متغیرهای تعریف شده در فضای خارجی به کار می رود::\n" +"\n" +"```python\n" +"a = 3\n" +"\n" +"class C:\n" +" a = 5 # Shadows module variable 'a'\n" +" \n" +" def f(self):\n" +" print(a)\n" +" print(self.a)\n" +"\n" +"c = C()\n" +"c.f()\n" +"print(a)\n" +"```\n" +"\n" +"در این مثال، خروجی 3 و 5 خواهد بود، چون ``a`` داخل کلاس یک فضای اسکوپ محلی \n" +"می سازد که سایه ای بر روی متغیر ``a`` در سطح ماژول می اندازد." #: ../../tutorial/controlflow.rst:1121 #, fuzzy @@ -2672,8 +2656,8 @@ msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." msgstr "" -"این کار به کاربرانی که نمایشگرهای کوچکی دارند کمک می کند و امکان قرار دادن " -"چندین فایل کد را در کنار هم بر روی نمایشگرهای بزرگتر فراهم می آورد." +"این به کاربران با نمایشگرهای کوچک کمک می کند و امکان داشتن چندین فایل کد " +"کنار هم بر روی نمایشگرهای بزرگتر را فراهم می سازد." #: ../../tutorial/controlflow.rst:1124 #, fuzzy @@ -2681,18 +2665,35 @@ msgid "" "Use blank lines to separate functions and classes, and larger blocks of code" " inside functions." msgstr "" -"از خطوط خالی برای جدا کردن توابع و کلاس ها، و بلوک های بزرگ تر کد داخل توابع" -" استفاده کنید." +"برای دستیابی و مدیریت فایل ها در پایتون، می توانید از کتابخانه ی استاندارد استفاده کنید. تابع ``open()`` که در پایتون وجود دارد، ابزاری قدرتمند برای خواندن و نوشتن فایل ها است. با استفاده از این تابع، می توانید فایل ها را به حالت مختلفی مانند 'خواندن' و 'نوشتن' باز کنید.\n" +"\n" +"برای باز کردن یک فایل، می توانید از تابع ``open()`` ، همراه با آرگومان های ('نام فایل', 'حالت') استفاده کنید.\n" +"\n" +"مثال::\n" +"\n" +" file = open('example.txt', 'r')\n" +"\n" +"در این مثال، ما پرونده ای به نام 'example.txt' را در حالت خواندن باز می کنیم.\n" +"\n" +"پایتون همچنین مفهوم 'مدیریت محتویات' را معرفی کرده است که استفاده از آن با بیان 'with' یا 'همراه با' امکان پذیر است. این روش، منابع را به هنگام اتمام استفاده آزاد می کند.\n" +"\n" +"مثال::\n" +"\n" +" with open('example.txt', 'r') as file:\n" +" contents = file.read()\n" +" print(contents)\n" +"\n" +"در این قطعه کد، 'example.txt' باز می شود و محتوای آن خوانده و چاپ می گردد. پس از اتمام بلوک 'with'، فایل به طور خودکار بسته می شود." #: ../../tutorial/controlflow.rst:1127 #, fuzzy msgid "When possible, put comments on a line of their own." -msgstr "در صورت امکان، نظرات را در خطی مجزا قرار دهید." +msgstr "وقتی ممکن است، نظرات را در خط خودشان قرار دهید." #: ../../tutorial/controlflow.rst:1129 #, fuzzy msgid "Use docstrings." -msgstr "از \"docstrings\" استفاده کنید." +msgstr "از رشته های مستندات استفاده کنید." #: ../../tutorial/controlflow.rst:1131 #, fuzzy @@ -2700,8 +2701,8 @@ msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" -"از فضاها در اطراف عملگرها و بعد از ویرگول ها استفاده کنید، اما به صورت " -"مستقیم در داخل ساختارهای براکت گذاری نه: ``a = f(1, 2) + g(3, 4)``." +"از فاصله گذاری اطراف عملگرها و بعد از کاماها استفاده کنید، اما مستقیماً داخل" +" سازه های براکتی فاصله گذاری نکنید: ``a = f(1, 2) + g(3, 4)``." #: ../../tutorial/controlflow.rst:1134 #, fuzzy @@ -2711,11 +2712,11 @@ msgid "" "functions and methods. Always use ``self`` as the name for the first method" " argument (see :ref:`tut-firstclasses` for more on classes and methods)." msgstr "" -"کلاس ها و توابع خود را به صورت یکدست نام گذاری کنید؛ طبق قراردادی که وجود " -"دارد از ``UpperCamelCase`` برای کلاس ها و از ``lowercase_with_underscores`` " -"برای توابع و متدها استفاده کنید. همیشه از ``self`` به عنوان نام اولین " -"آرگومان متد استفاده کنید (برای آگاهی بیشتر در مورد کلاس ها و متدها به " -":ref:`tut-firstclasses` مراجعه کنید)." +"نام گذاری کلاس ها و توابع خود را به طور مداوم انجام دهید؛ عرف این است که " +"برای کلاس ها از ``UpperCamelCase`` و برای توابع و متدها از " +"``lowercase_with_underscores`` استفاده کنید. همیشه از ``self`` به عنوان نام " +"اولین آرگومان متد استفاده کنید (برای اطلاعات بیشتر در مورد کلاس ها و متدها " +"به :ref:`tut-firstclasses` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1139 #, fuzzy @@ -2724,9 +2725,9 @@ msgid "" "environments. Python's default, UTF-8, or even plain ASCII work best in any" " case." msgstr "" -"اگر قصد دارید کد شما در محیط های بین المللی استفاده شود، از کدگذاری های " -"پیچیده استفاده نکنید. به طور کلی، کدگذاری پیش فرض Python یعنی UTF-8، یا حتی " -"ASCII ساده، بهترین عملکرد را خواهد داشت." +"در محیط های بین المللی، از کدگذاری های پیچیده استفاده نکنید. به طور کلی، " +"مقدار پیش فرض پایتون، که UTF-8 است، و حتی ASCII ساده برای هر نوع استفاده " +"بهترین کارایی را دارند." #: ../../tutorial/controlflow.rst:1143 #, fuzzy @@ -2735,14 +2736,14 @@ msgid "" " slightest chance people speaking a different language will read or maintain" " the code." msgstr "" -"به همین ترتیب، اگر حتی کوچک ترین احتمالی وجود دارد که افرادی با زبان های " -"متفاوت کد را بخوانند یا نگهداری کنند، از کاراکترهای غیر ASCII در شناسه ها " -"استفاده نکنید." +"به همین ترتیب، از کاراکترهای غیر از ASCII در شناسه ها استفاده نکنید اگر حتی " +"به صورت جزئی احتمال دارد افرادی که به زبان های دیگر صحبت می کنند کد را " +"بخوانند یا نگهداری کنند." #: ../../tutorial/controlflow.rst:1149 #, fuzzy msgid "Footnotes" -msgstr "پانویس ها" +msgstr "پاورقی ها" #: ../../tutorial/controlflow.rst:1150 #, fuzzy @@ -2752,8 +2753,8 @@ msgid "" "makes to it (items inserted into a list)." msgstr "" "در واقع، *call by object reference* توصیف بهتری خواهد بود، زیرا اگر یک شیء " -"قابل تغییر ارسال شود، فردی که آن را فراخوانی کرده تغییراتی که فراخوانی شونده" -" بر روی آن اعمال می کند (اقلامی که در لیست درج می شوند) را مشاهده خواهد کرد." +"قابل تغییر انتقال داده شود، فراخواننده هر تغییری را که فراخوانده شده در آن " +"ایجاد کند، مشاهده خواهد کرد (موارد وارد شده در یک لیست)." #: ../../tutorial/controlflow.rst:48 #, fuzzy @@ -2768,12 +2769,12 @@ msgstr "برای" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy msgid "documentation strings" -msgstr "رشته های مستندسازی" +msgstr "رشته های مستندات" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy msgid "docstrings" -msgstr "رشته های مستندات" +msgstr "دکسترینگ ها" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy @@ -2783,19 +2784,45 @@ msgstr "رشته ها، مستندات" #: ../../tutorial/controlflow.rst:918 #, fuzzy msgid "* (asterisk)" -msgstr "ستاره (`*`)" +msgstr "" +"* (ستاره) در پایتون برای ایجاد یک لیست جدید از ترکیب دو یا چند IEnumerable استفاده می شود. برای استفاده از آن، کافیست به سادگی لیست های مورد نظر را با یک `*` در کنار هم قرار دهید تا لیست جدید شامل تمامی اعضای آن ها ایجاد شود. در ادامه یک مثال ساده آورده شده است:: \n" +"\n" +"```\n" +"list1 = [1, 2, 3]\n" +"list2 = [4, 5, 6]\n" +"combined_list = [*list1, *list2]\n" +"print(combined_list) # خروجی: [1, 2, 3, 4, 5, 6]\n" +"```\n" +"\n" +"به طور مشابه، `*` می تواند برای ترکیب کردن مجموعه ها (tuples) نیز به کار رود:: \n" +"\n" +"```\n" +"tuple1 = (1, 2, 3)\n" +"tuple2 = (4, 5, 6)\n" +"combined_tuple = (*tuple1, *tuple2)\n" +"print(combined_tuple) # خروجی: (1, 2, 3, 4, 5, 6)\n" +"```\n" +"\n" +"علاوه بر این، `*` می تواند برای باز کردن (unpacking) آرایه ها نیز مورد استفاده قرار گیرد. مثلا اگر یک تابع چندین مقدار بازگرداند، می توان آن مقادیر را درون متغیر های جداگانه ذخیره کرد که نشان می دهد چگونه داده های پیچیده با استفاده از این عملگر مدیریت شوند." #: ../../tutorial/controlflow.rst:918 ../../tutorial/controlflow.rst:962 #, fuzzy msgid "in function calls" -msgstr "در صدا زدن توابع" +msgstr "در فراخوانی تابع ها" #: ../../tutorial/controlflow.rst:962 #, fuzzy msgid "**" msgstr "" -"به نظر می رسد که متنی برای ترجمه فراهم نشده است. لطفاً متن مورد نظر خود را " -"برای ترجمه وارد کنید." +"متد :: یکی از متدهای مهم در کلاس ها در پایتون `__init__` است که به عنوان سازنده ی کلاس شناخته می شود. این متد زمانی که یک شیء جدید از کلاس ایجاد می شود، به صورت خودکار اجرا می گردد و به شما اجازه می دهد تا مقداردهی اولیه متغیرهای شیء را انجام دهید و حالت شروع شیء را تنظیم کنید.\n" +"\n" +"به مثال زیر توجه کنید::\n" +"\n" +"class MyClass:\n" +" def __init__(self, name):\n" +" self.name = name\n" +"\n" +"در این مثال، زمانی که شما یک شیء جدید از `MyClass` را ایجاد می کنید، متد `__init__` فراخوانی شده و مقدار اولیه برای ویژگی `name` تنظیم می شود." #: ../../tutorial/controlflow.rst:1066 #, fuzzy @@ -2805,27 +2832,56 @@ msgstr "تابع" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid "annotations" -msgstr "حاشیه نویسی ها" +msgstr "" +"annotations\n" +"ترجمه به \"حاشیه نویسی\" یا \"تعلیقات\" بسته به زمینه است. در برنامه نویسی، اغلب به معنای حاشیه نویسی های توضیحی در مورد نوع داده ها یا مستند کردن موارد در کد استفاده می شود." #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid "->" -msgstr "لطفا متنی که می خواهید به فارسی ترجمه شود را برایم ارسال کنید." +msgstr "" +"ماژول `textwrap` دارای دو کلاس برای قالب بندی پاراگراف است:\n" +"\n" +"- `TextWrapper`: این کلاس برای بسته بندی و قالب بندی متن استفاده می شود. روش های مختلفی برای تنظیم پارامترهای بسته بندی دارد، از جمله تغییر طول خط و کنترل رفتار تقسیم جملات.\n" +"\n" +"- `IndentedTextWrapper`: این کلاس مانند `TextWrapper` عمل می کند، با این تفاوت که می تواند تورفتگی برای خطوط بسته بندی شده و خطوط اولیه تنظیم کند. \n" +"\n" +"مثال های زیر نشان می دهند که چگونه می توان از این روش ها استفاده کرد::\n" +"\n" +" import textwrap\n" +"\n" +" sample_text = '''\n" +" Python is a high-level, interpreted, interactive and object-oriented scripting language. \n" +" Python is designed to be highly readable. \n" +" '''\n" +"\n" +" wrapper = textwrap.TextWrapper(width=50)\n" +"\n" +" word_list = wrapper.wrap(text=sample_text)\n" +" for element in word_list:\n" +" print(element)\n" +"\n" +"برای تورفتگی متن، می توان از گزینه های `initial_indent` و `subsequent_indent` استفاده کرد::\n" +"\n" +" wrapper = textwrap.TextWrapper(initial_indent=' ', subsequent_indent=' ', width=50)\n" +" output = wrapper.wrap(text=sample_text)\n" +" for element in output:\n" +" print(element)" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid "function annotations" -msgstr "یادداشت های توابع" +msgstr "توضیحات تابع" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid ": (colon)" -msgstr "دو نقطه (:)" +msgstr ": (دونقطه)" #: ../../tutorial/controlflow.rst:1100 #, fuzzy msgid "coding" -msgstr "کدگذاری" +msgstr "کدنویسی" #: ../../tutorial/controlflow.rst:1100 #, fuzzy diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 7b7768256..a7be0e1d2 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -32,13 +32,13 @@ msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." msgstr "" -"این فصل برخی از مواردی که قبلاً درباره آن ها یاد گرفته اید را با جزئیات " -"بیشتری توضیح می دهد و همچنین موارد جدیدی را نیز اضافه می کند." +"این فصل برخی از مواردی را که قبلاً یاد گرفته اید با جزئیات بیشتری توصیف می " +"کند و همچنین برخی از موارد جدید را نیز اضافه می کند." #: ../../tutorial/datastructures.rst:13 #, fuzzy msgid "More on Lists" -msgstr "بیشتر درباره لیست ها" +msgstr "بیشتر در مورد لیست ها" #: ../../tutorial/datastructures.rst:15 #, fuzzy @@ -46,13 +46,13 @@ msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" msgstr "" -"نوع داده ای فهرست دارای چندین متد اضافی است. در اینجا تمامی متدهای شیء های " -"فهرست آورده شده اند:" +"نوع داده ای لیست روش های بیشتری دارد. در اینجا تمام روش های اشیاء لیست وجود " +"دارد:" #: ../../tutorial/datastructures.rst:22 #, fuzzy msgid "Add an item to the end of the list. Similar to ``a[len(a):] = [x]``." -msgstr "یک آیتم به انتهای لیست اضافه کنید. مشابه ``a[len(a):] = [x]``." +msgstr "یک آیتم به انتهای لیست اضافه کنید. مشابه با ``a[len(a):] = [x]``." #: ../../tutorial/datastructures.rst:28 #, fuzzy @@ -60,7 +60,7 @@ msgid "" "Extend the list by appending all the items from the iterable. Similar to " "``a[len(a):] = iterable``." msgstr "" -"لیست را با اضافه کردن همه آیتم ها از قابل تکرار گسترش دهید. مشابه " +"لیست را با افزودن تمام آیتم ها از شیء قابل تکرار گسترش دهید. مشابه " "``a[len(a):] = iterable``." #: ../../tutorial/datastructures.rst:35 @@ -70,9 +70,9 @@ msgid "" "element before which to insert, so ``a.insert(0, x)`` inserts at the front " "of the list, and ``a.insert(len(a), x)`` is equivalent to ``a.append(x)``." msgstr "" -"یک آیتم را در یک موقعیت مشخص وارد کنید. اولین آرگومان، شاخص المانی است که " -"قبل از آن قرار گیرد، بنابراین `insert(0, X)` آیتمی را در ابتدای لیست قرار می" -" دهد و `insert(1, X)` معادل `append(X)` است." +"یک آیتم را در یک موقعیت مشخص درج کنید. اولین آرگومان، شاخص المانی است که قبل" +" از آن درج انجام می شود. بنابراین ``a.insert(0, x)`` در ابتدای لیست درج می " +"شود و ``a.insert(len(a), x)`` معادل ``a.append(x)`` است." #: ../../tutorial/datastructures.rst:43 #, fuzzy @@ -80,7 +80,7 @@ msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " "a :exc:`ValueError` if there is no such item." msgstr "" -"اولین مورد را از لیست که مقدار آن برابر با *x* است حذف کنید. اگر چنین آیتمی " +"اولین مورد را از لیست که مقدار آن برابر با *x* است حذف کنید. اگر چنین موردی " "وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." #: ../../tutorial/datastructures.rst:50 @@ -91,15 +91,15 @@ msgid "" "list. It raises an :exc:`IndexError` if the list is empty or the index is " "outside the list range." msgstr "" -"مورد در موقعیت داده شده در لیست را حذف کرده و آن را بازمی گرداند. اگر هیچ " -"اندیسی مشخص نشده باشد، ``a.pop()`` آخرین مورد در لیست را حذف و بازمی گرداند." -" اگر لیست خالی باشد یا اندیس خارج از محدوده لیست باشد، یک :exc:`IndexError` " -"ایجاد می کند." +"مورد را در موقعیت داده شده در لیست حذف کرده و آن را برمی گرداند. اگر هیچ " +"شاخصی مشخص نشده باشد، ``a.pop()`` آخرین مورد موجود در لیست را حذف کرده و " +"برمی گرداند. اگر لیست خالی باشد یا شاخص خارج از محدوده لیست باشد، " +":exc:`IndexError` ایجاد می کند." #: ../../tutorial/datastructures.rst:59 #, fuzzy msgid "Remove all items from the list. Similar to ``del a[:]``." -msgstr "همهٔ آیتم ها را از لیست حذف کنید. مشابه ``del a[:]``." +msgstr "همه اقلام را از لیست حذف کنید. مشابه ``del a[:]``." #: ../../tutorial/datastructures.rst:65 #, fuzzy @@ -107,8 +107,8 @@ msgid "" "Return zero-based index in the list of the first item whose value is equal " "to *x*. Raises a :exc:`ValueError` if there is no such item." msgstr "" -"برگرداندن شاخص بر مبنای صفر در لیست برای اولین موردی که مقدار آن برابر با " -"*x* است. اگر چنین موردی وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." +"مقدار شاخص صفرم در لیست از اولین موردی که مقدارش برابر با *x* است را برمی " +"گرداند. اگر چنین موردی وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." #: ../../tutorial/datastructures.rst:68 #, fuzzy @@ -118,15 +118,14 @@ msgid "" " list. The returned index is computed relative to the beginning of the full" " sequence rather than the *start* argument." msgstr "" -"استدلال های اختیاری *start* و *end* به همان صورت که در نشانه گذاری برش " -"استفاده می شوند تفسیر شده و برای محدود کردن جستجو به زیردنباله خاصی از لیست " -"به کار می روند. اندیس برگردانده شده نسبت به ابتدای کل دنباله محاسبه می شود و" -" نه نسبت به آرگومان *start*." +"آرگومان های اختیاری *start* و *end* همانند نمادگذاری برش تعبیر می شوند و " +"برای محدود کردن جستجو به زیرتوالی خاصی از لیست استفاده می شوند. شاخص بازگشتی" +" نسبت به ابتدای کل توالی محاسبه می شود و نه نسبت به آرگومان *start*." #: ../../tutorial/datastructures.rst:77 #, fuzzy msgid "Return the number of times *x* appears in the list." -msgstr "تعداد دفعاتی که *x* در لیست ظاهر می شود را برگردانید." +msgstr "تعداد دفعاتی که *x* در لیست ظاهر می شود را برگردان." #: ../../tutorial/datastructures.rst:83 #, fuzzy @@ -134,23 +133,23 @@ msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." msgstr "" -"اقلام لیست را به صورت درجا مرتب کنید (آرگومان ها می توانند برای سفارشی سازی " -"مرتب سازی استفاده شوند، برای توضیحات آن ها به :func:`sorted` مراجعه کنید)." +"اقلام لیست را در جای خود مرتب کنید (می توان از آرگومان ها برای سفارشی سازی " +"مرتب سازی استفاده کرد، برای توضیح آنها به :func:`sorted` مراجعه کنید)." #: ../../tutorial/datastructures.rst:90 #, fuzzy msgid "Reverse the elements of the list in place." -msgstr "عناصر لیست را به صورت درجا معکوس کنید." +msgstr "عناصر لیست را به صورت در جا معکوس کنید." #: ../../tutorial/datastructures.rst:96 #, fuzzy msgid "Return a shallow copy of the list. Similar to ``a[:]``." -msgstr "یک کپی سطحی از لیست را برمی گرداند. مشابه با ``a[:]``." +msgstr "برگشتی یک کپی سطحی از لیست. مشابه ``a[:]``." #: ../../tutorial/datastructures.rst:99 #, fuzzy msgid "An example that uses most of the list methods::" -msgstr "مثالی که از بیشتر متدهای لیست استفاده می کند::" +msgstr "یک مثال که از اکثر متدهای لیست استفاده می کند::" #: ../../tutorial/datastructures.rst:101 #, fuzzy @@ -176,44 +175,26 @@ msgid "" ">>> fruits.pop()\n" "'pear'" msgstr "" -"```python\n" ">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']\n" -"```\n" -"```python\n" -">>> fruits.count('apple')\n" -"```\n" -"2\n" -"```python\n" -">>> fruits.count('tangerine')\n" -"```\n" -"0\n" -"```python\n" -">>> fruits.index('banana')\n" -"```\n" -"3\n" -"```python\n" -">>> fruits.index('banana', 4) # یافتن موز بعدی از موقعیت ۴\n" -"```\n" -"6\n" -"```python\n" -">>> fruits.reverse()\n" -">>> fruits\n" -"```\n" -"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']\n" -"```python\n" -">>> fruits.append('grape')\n" -">>> fruits\n" -"```\n" -"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']\n" -"```python\n" -">>> fruits.sort()\n" -">>> fruits\n" -"```\n" -"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']\n" -"```python\n" -">>> fruits.pop()\n" -"```\n" -"'pear'" +">>> fruits.count('apple') \n" +"۲ \n" +">>> fruits.count('tangerine') \n" +"۰ \n" +">>> fruits.index('banana') \n" +"۳ \n" +">>> fruits.index('banana', 4) # پیدا کردن موز بعدی از مکان ۴ \n" +"۶ \n" +">>> fruits.reverse() \n" +">>> fruits \n" +"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange'] \n" +">>> fruits.append('grape') \n" +">>> fruits \n" +"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape'] \n" +">>> fruits.sort() \n" +">>> fruits \n" +"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear'] \n" +">>> fruits.pop() \n" +"'pear' " #: ../../tutorial/datastructures.rst:122 #, fuzzy @@ -223,10 +204,10 @@ msgid "" "default ``None``. [#]_ This is a design principle for all mutable data " "structures in Python." msgstr "" -"ممکن است متوجه شده باشید که روش هایی مانند ```insert```، ```remove``` یا " -"```sort``` که فقط لیست را تغییر می دهند، هیچ مقدار بازگشتی چاپ نمی کنند -- " -"آن ها مقدار پیش فرض ```None``` را بازمی گردانند. [#]_ این یک اصل طراحی برای " -"تمام ساختارهای داده ای تغییرپذیر در پایتون است." +"ممکن است متوجه شده باشید که متدهایی مانند ``insert``، ``remove`` یا ``sort``" +" که فقط لیست را تغییر می دهند، هیچ مقدار بازگشتی چاپ شده ای ندارند -- آن ها " +"مقدار پیش فرض ``None`` را بازمی گردانند. [#]_ این یک اصل طراحی برای تمامی " +"ساختارهای داده قابل تغییر در پایتون است." #: ../../tutorial/datastructures.rst:127 #, fuzzy @@ -237,16 +218,16 @@ msgid "" "other types. Also, there are some types that don't have a defined ordering " "relation. For example, ``3+4j < 5+7j`` isn't a valid comparison." msgstr "" -"موضوع دیگری که ممکن است متوجه شوید این است که همه داده ها قابل مرتب سازی یا " -"مقایسه نیستند. به عنوان مثال، ``[None, 'hello', 10]`` مرتب نمی شود زیرا " -"اعداد صحیح نمی توانند با رشته ها مقایسه شوند و ``None`` نمی تواند با انواع " -"دیگر مقایسه شود. همچنین، برخی انواع وجود دارند که رابطه ترتیب بندی تعریف شده" -" ای ندارند. برای مثال، ``3+4j < 5+7j`` یک مقایسه معتبر نیست." +"چیز دیگری که ممکن است متوجه شوید این است که همه داده ها نمی توانند مرتب یا " +"مقایسه شوند. به عنوان مثال، ``[None, 'hello', 10]`` مرتب نمی شود زیرا اعداد " +"صحیح نمی توانند با رشته ها مقایسه شوند و ``None`` نمی تواند با انواع دیگر " +"مقایسه شود. همچنین، برخی از انواع وجود دارند که رابطه مرتب سازی مشخصی " +"ندارند. برای مثال، ``3+4j < 5+7j`` یک مقایسه معتبر نیست." #: ../../tutorial/datastructures.rst:138 #, fuzzy msgid "Using Lists as Stacks" -msgstr "استفاده از فهرست ها به عنوان پشته ها" +msgstr "استفاده از لیست ها به عنوان پشته ها" #: ../../tutorial/datastructures.rst:143 #, fuzzy @@ -257,11 +238,11 @@ msgid "" "item from the top of the stack, use :meth:`!pop` without an explicit index." " For example::" msgstr "" -"روش های لیست استفاده از یک لیست به عنوان یک پشته را بسیار آسان می کنند، جایی" -" که آخرین عنصر اضافه شده اولین بخشی است که بازیابی می شود (\"آخرین ورودی، " -"اولین خروجی\"). برای اضافه کردن یک آیتم به بالای پشته، از " -"``:meth:`!append``` استفاده کنید. برای بازیابی یک آیتم از بالای پشته، از " -"``:meth:`!pop``` بدون اشاره گر مشخص استفاده کنید. برای مثال::" +"متدهای لیست استفاده از یک لیست به عنوان یک پشته را بسیار آسان می کنند، جایی " +"که آخرین عنصر اضافه شده اولین عنصر بازیابی شده است (\"آخرین ورودی، اولین " +"خروجی\"). برای افزودن یک آیتم به بالای پشته از :meth:`!append` استفاده کنید." +" برای بازیابی یک آیتم از بالای پشته، از :meth:`!pop` بدون یک اندیس مشخص " +"استفاده کنید. برای مثال::" #: ../../tutorial/datastructures.rst:148 #, fuzzy @@ -282,7 +263,6 @@ msgid "" ">>> stack\n" "[3, 4]" msgstr "" -"```python\n" ">>> stack = [3, 4, 5]\n" ">>> stack.append(6)\n" ">>> stack.append(7)\n" @@ -297,8 +277,7 @@ msgstr "" ">>> stack.pop()\n" "5\n" ">>> stack\n" -"[3, 4]\n" -"```" +"[3, 4]" #: ../../tutorial/datastructures.rst:168 #, fuzzy @@ -314,11 +293,12 @@ msgid "" "list are fast, doing inserts or pops from the beginning of a list is slow " "(because all of the other elements have to be shifted by one)." msgstr "" -"همچنین می توان از لیست به عنوان صف استفاده کرد، به طوری که اولین عنصر اضافه " -"شده، اولین عنصری است که برداشته می شود (اولین ورودی، اولین خروجی)؛ با این " -"حال، لیست ها برای این منظور کارآمد نیستند. باوجود اینکه اضافه کردن و برداشتن" -" از انتهای لیست سریع است، درج یا برداشتن از ابتدای لیست کند است (زیرا بقیه " -"عناصر باید به اندازه یک واحد جابه جا شوند)." +"همچنین می توان از یک لیست به عنوان صف استفاده کرد، به طوری که اولین عنصری که" +" اضافه می شود، اولین عنصری است که بازیابی می شود (\"اولین ورودی، اولین " +"خروجی\")؛ با این حال، لیست ها برای این منظور کارآمد نیستند. در حالی که اضافه" +" کردن ها و حذف ها از انتهای لیست سریع هستند، انجام وارد کردن ها یا حذف ها از" +" ابتدای لیست کند است (زیرا همه عناصر دیگر باید به اندازه یک واحد جابجا " +"شوند)." #: ../../tutorial/datastructures.rst:178 #, fuzzy @@ -327,7 +307,7 @@ msgid "" "have fast appends and pops from both ends. For example::" msgstr "" "برای پیاده سازی یک صف، از :class:`collections.deque` استفاده کنید که برای " -"افزودن و حذف سریع از هر دو طرف طراحی شده است. به عنوان مثال:" +"افزودن و حذف سریع از هر دو انتها طراحی شده است. برای مثال::" #: ../../tutorial/datastructures.rst:181 #, fuzzy @@ -343,21 +323,21 @@ msgid "" ">>> queue # Remaining queue in order of arrival\n" "deque(['Michael', 'Terry', 'Graham'])" msgstr "" -">>> از collections ماژول `deque` را وارد کنید\n" -">>> صف = `deque`([\"Eric\"، \"John\"، \"Michael\"])\n" -">>> صف را با افزودن \"Terry\" گسترش دهید # Terry وارد می شود\n" -">>> صف را با افزودن \"Graham\" گسترش دهید # Graham وارد می شود\n" -">>> صف را از سمت چپ حذف کنید # اولین فرد وارد شده اکنون خارج می شود\n" +">>> from collections import deque\n" +">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n" +">>> queue.append(\"Terry\") # تری می آید\n" +">>> queue.append(\"Graham\") # گراهام می آید\n" +">>> queue.popleft() # اولین نفری که آمد حالا می رود\n" "'Eric'\n" -">>> صف را از سمت چپ حذف کنید # دومین فرد وارد شده اکنون خارج می شود\n" +">>> queue.popleft() # دومی نفری که آمد حالا می رود\n" "'John'\n" -">>> صف # صف باقی مانده به ترتیب ورود\n" -"`deque`(['Michael'، 'Terry'، 'Graham'])" +">>> queue # صف باقی مانده به ترتیب ورود\n" +"deque(['Michael', 'Terry', 'Graham'])" #: ../../tutorial/datastructures.rst:196 #, fuzzy msgid "List Comprehensions" -msgstr "فهرست های فشرده نویسی (List Comprehensions)" +msgstr "لیست کامپرهنشن ها" #: ../../tutorial/datastructures.rst:198 #, fuzzy @@ -367,16 +347,16 @@ msgid "" "operations applied to each member of another sequence or iterable, or to " "create a subsequence of those elements that satisfy a certain condition." msgstr "" -"لیست کامپری هنشن ها یک روش مختصر برای ایجاد لیست ها ارائه می دهند. کاربردهای" -" رایج آن ها شامل ایجاد لیست های جدید است که در آن هر عنصر نتیجه ی برخی " -"عملیات ها است که بر روی هر عضو دنباله یا قابل iter اعمال می شود، یا برای " -"ایجاد یک زیر دنباله از آن عناصری که یک شرط خاص را برآورده می کنند، استفاده " -"می شوند." +"تعبیرات لیستی روشی مختصر برای ایجاد لیست ها فراهم می کند. کاربردهای معمول " +"شامل ایجاد لیست های جدیدی است که در آن هر عنصر نتیجه ٔ اعمال عملیات هایی بر " +"روی هر عضو یک توالی یا قابل پیمایش دیگر است، یا ایجاد زیرتوالی از آن عناصر " +"که یک شرط خاص را برآورده می کنند." #: ../../tutorial/datastructures.rst:203 #, fuzzy msgid "For example, assume we want to create a list of squares, like::" -msgstr "به عنوان مثال، فرض کنیم می خواهیم لیستی از مربع ها ایجاد کنیم، مانند:" +msgstr "" +"به عنوان مثال، فرض کنید می خواهیم فهرستی از مربعات ایجاد کنیم، مانند::" #: ../../tutorial/datastructures.rst:205 #, fuzzy @@ -388,14 +368,12 @@ msgid "" ">>> squares\n" "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" msgstr "" -"```python\n" -">>> مربعات = []\n" -">>> برای x در محدوده(10):\n" -"... مربعات.اضافه کردن(x**2)\n" +">>> squares = []\n" +">>> for x in range(10):\n" +"... squares.append(x**2)\n" "...\n" -">>> مربعات\n" -"[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]\n" -"```" +">>> squares\n" +"[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" #: ../../tutorial/datastructures.rst:212 #, fuzzy @@ -404,24 +382,27 @@ msgid "" "exists after the loop completes. We can calculate the list of squares " "without any side effects using::" msgstr "" -"لطفاً توجه کنید که این یک متغیر به نام ``x`` ایجاد می کند (یا بازنویسی می " -"کند) که پس از اتمام حلقه همچنان وجود دارد. ما می توانیم لیست مربعات را بدون " -"هیچ اثر جانبی با استفاده از موارد زیر محاسبه کنیم::" +"توجه داشته باشید که این کار یک متغیر به نام ``x`` ایجاد (یا بازنویسی) می کند" +" که پس از پایان حلقه همچنان وجود دارد. ما می توانیم لیست مربعات را بدون هیچ " +"اثر جانبی محاسبه کنیم با استفاده از::" #: ../../tutorial/datastructures.rst:216 #, fuzzy msgid "squares = list(map(lambda x: x**2, range(10)))" -msgstr "```squares``` = ```list(map(lambda x: x**2, range(10)))```" +msgstr "" +"\n" +"\n" +"مربعات = فهرست(map(lambda x: x**2, range(10)))" #: ../../tutorial/datastructures.rst:218 #, fuzzy msgid "or, equivalently::" -msgstr "یا به عبارت دیگر::" +msgstr "یا به طور معادل::" #: ../../tutorial/datastructures.rst:220 #, fuzzy msgid "squares = [x**2 for x in range(10)]" -msgstr "مربعات = [x**2 for x in range(10)]" +msgstr "squares = [x**2 for x in range(10)]" #: ../../tutorial/datastructures.rst:222 #, fuzzy @@ -438,12 +419,12 @@ msgid "" ":keyword:`!if` clauses which follow it. For example, this listcomp combines " "the elements of two lists if they are not equal::" msgstr "" -"یک فهرست تفسیرشده از براکت هایی شامل یک عبارت ایجاد شده است که به دنبال آن " -"یک بند `:keyword:`!for`` و سپس صفر یا بیشتر از بندهای `:keyword:`!for`` یا " -"`:keyword:`!if`` قرار می گیرد. نتیجه یک لیست جدید خواهد بود که از ارزیابی " -"عبارت در متن بندهای `:keyword:`!for`` و `:keyword:`!if`` که بعد از آن می " -"آیند، به دست می آید. به عنوان مثال، این فهرست ترکیبی از عناصر دو فهرست را " -"اگر برابر نباشند، انجام می دهد." +"یک ترکیب لیستی شامل کروشه هایی است که یک عبارت را در بر می گیرد و به دنبال " +"آن یک بند :keyword:`!for` قرار دارد، سپس صفر یا چند بند :keyword:`!for` یا " +":keyword:`!if` نیز ممکن است بیایند. نتیجه یک لیست جدید خواهد بود که با " +"ارزیابی عبارت در زمینه بندهای :keyword:`!for` و :keyword:`!if` که بعد از آن " +"می آیند به دست می آید. به عنوان مثال، این ترکیب لیستی عناصر دو لیست را ترکیب" +" می کند اگر آن ها برابر نباشند::" #: ../../tutorial/datastructures.rst:231 #, fuzzy @@ -451,15 +432,13 @@ msgid "" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" -"```python\n" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" -"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]\n" -"```" +"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" #: ../../tutorial/datastructures.rst:234 #, fuzzy msgid "and it's equivalent to::" -msgstr "و معادل آن به صورت زیر است::" +msgstr "و معادل آن به این صورت است::" #: ../../tutorial/datastructures.rst:236 #, fuzzy @@ -473,16 +452,14 @@ msgid "" ">>> combs\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" -"```python\n" -">>> combs = []\n" -">>> for x in [1,2,3]:\n" -"... for y in [3,1,4]:\n" -"... if x != y:\n" -"... combs.append((x, y))\n" +">>> ترکیبات = []\n" +">>> برای x در [1,2,3]:\n" +"... برای y در [3,1,4]:\n" +"... اگر x != y:\n" +"... ترکیبات.پیوست((x, y))\n" "...\n" -">>> combs\n" -"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]\n" -"```" +">>> ترکیبات\n" +"[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" #: ../../tutorial/datastructures.rst:245 #, fuzzy @@ -490,8 +467,8 @@ msgid "" "Note how the order of the :keyword:`for` and :keyword:`if` statements is the" " same in both these snippets." msgstr "" -"توجه داشته باشید که ترتیب دستورات :keyword:`for` و :keyword:`if` در هر دو " -"بخش کد مشابه است." +"توجه کنید که ترتیب دستورات :keyword:`for` و :keyword:`if` در هر دو این تکه " +"کدها مشابه است." #: ../../tutorial/datastructures.rst:248 #, fuzzy @@ -499,8 +476,8 @@ msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" -"اگر عبارت یک تاپل باشد (مثلاً ``(x, y)`` در مثال قبلی)، باید در داخل پرانتز " -"قرار گیرد. ::" +"اگر عبارت یک تاپل باشد (مثلاً ``(x, y)`` در مثال قبلی)، باید در پرانتز قرار " +"گیرد. ::" #: ../../tutorial/datastructures.rst:251 #, fuzzy @@ -533,7 +510,6 @@ msgid "" ">>> [num for elem in vec for num in elem]\n" "[1, 2, 3, 4, 5, 6, 7, 8, 9]" msgstr "" -"```\n" ">>> vec = [-4, -2, 0, 2, 4]\n" ">>> # یک لیست جدید با مقادیر دو برابر شده ایجاد کنید\n" ">>> [x*2 for x in vec]\n" @@ -556,18 +532,19 @@ msgstr "" " File \"\", line 1\n" " [x, x**2 for x in range(6)]\n" " ^^^^^^^\n" -"SyntaxError: آیا پرانتزها را دور هدف درک کردن فراموش کرده اید؟\n" -">>> # یک لیست را با استفاده از یک لیست فهمی با دو 'for' صاف کنید\n" +"SyntaxError: آیا در اطراف هدف درک، پرانتزها را فراموش کرده اید؟\n" +">>> # کاهش ابعاد یک لیست با استفاده از یک فهرست ساز با دو 'for'\n" ">>> vec = [[1,2,3], [4,5,6], [7,8,9]]\n" ">>> [num for elem in vec for num in elem]\n" -"[1, 2, 3, 4, 5, 6, 7, 8, 9]\n" -"```" +"[1, 2, 3, 4, 5, 6, 7, 8, 9]" #: ../../tutorial/datastructures.rst:279 #, fuzzy msgid "" "List comprehensions can contain complex expressions and nested functions::" -msgstr "فهرست سازی می تواند شامل عبارات پیچیده و توابع تو در تو باشد::" +msgstr "" +"\n" +"درک لیست ها می توانند شامل عبارات پیچیده و توابع تو در تو باشند::" #: ../../tutorial/datastructures.rst:281 #, fuzzy @@ -576,16 +553,14 @@ msgid "" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" msgstr "" -"```python\n" -">>> from math import pi\n" +">>> از math وارد کنید pi\n" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" -"['3.1', '3.14', '3.142', '3.1416', '3.14159']\n" -"```" +"['3.1', '3.14', '3.142', '3.1416', '3.14159']" #: ../../tutorial/datastructures.rst:286 #, fuzzy msgid "Nested List Comprehensions" -msgstr "فهرست های تو در توی درک شده" +msgstr "تودرتوی لیست درک ها (Nested List Comprehensions)" #: ../../tutorial/datastructures.rst:288 #, fuzzy @@ -593,8 +568,8 @@ msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." msgstr "" -"عبارت اولیه در یک \"list comprehension\" می تواند هر عبارت دلخواهی باشد، از " -"جمله یک \"list comprehension\" دیگر." +"عبارت اولیه در یک درک لیست می تواند هر عبارت دلخواهی باشد، از جمله یک درک " +"لیست دیگر." #: ../../tutorial/datastructures.rst:291 #, fuzzy @@ -602,8 +577,8 @@ msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" msgstr "" -"در نظر داشته باشید مثال زیر از یک ماتریس ۳x۴ که به صورت یک لیست از ۳ لیست با" -" طول ۴ پیاده سازی شده است:" +"مثال زیر یک ماتریس ۳x4 را نشان می دهد که به صورت لیستی از ۳ لیست با طول ۴ " +"پیاده سازی شده است::" #: ../../tutorial/datastructures.rst:294 #, fuzzy @@ -614,18 +589,16 @@ msgid "" "... [9, 10, 11, 12],\n" "... ]" msgstr "" -"```python\n" ">>> matrix = [\n" "... [1, 2, 3, 4],\n" "... [5, 6, 7, 8],\n" "... [9, 10, 11, 12],\n" -"... ]\n" -"```" +"... ]" #: ../../tutorial/datastructures.rst:300 #, fuzzy msgid "The following list comprehension will transpose rows and columns::" -msgstr "فهرست فهمی زیر سطر ها و ستون ها را جابه جا خواهد کرد::" +msgstr "فهمیدن فهرست هم قالب زیر ستون ها و سطرها را جابه جا می کند::" #: ../../tutorial/datastructures.rst:302 #, fuzzy @@ -643,9 +616,9 @@ msgid "" " in the context of the :keyword:`for` that follows it, so this example is " "equivalent to::" msgstr "" -"همان طور که در بخش قبلی دیدیم، تفسیر «list comprehension» داخلی در زمینه " -"«:keyword:`for`» که پس از آن قرار دارد انجام می شود، بنابراین این مثال معادل" -" است با:" +"همان طور که در بخش قبلی دیدیم، comprehension لیست داخلی در زمینه ی " +":keyword:`for` که بعد از آن می آید ارزیابی می شود، بنابراین این مثال معادل " +"است با::" #: ../../tutorial/datastructures.rst:309 #, fuzzy @@ -657,19 +630,17 @@ msgid "" ">>> transposed\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" -"```python\n" ">>> transposed = []\n" ">>> for i in range(4):\n" "... transposed.append([row[i] for row in matrix])\n" "...\n" ">>> transposed\n" -"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]\n" -"```" +"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" #: ../../tutorial/datastructures.rst:316 #, fuzzy msgid "which, in turn, is the same as::" -msgstr "که به نوبه خود، مشابه است با::" +msgstr "که به نوبه خود معادل زیر است::" #: ../../tutorial/datastructures.rst:318 #, fuzzy @@ -685,18 +656,16 @@ msgid "" ">>> transposed\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" -"```python\n" ">>> transposed = []\n" -">>> for i in range(4):\n" -"... # سه خط بعدی لیست تو در تو را پیاده سازی می کند\n" +">>> برای i در طیف(4):\n" +"... # سه خط زیر لیست تو در تو را پیاده سازی می کند\n" "... transposed_row = []\n" -"... for row in matrix:\n" -"... transposed_row.append(row[i])\n" +"... برای سطر در matrix:\n" +"... transposed_row.append(satr[i])\n" "... transposed.append(transposed_row)\n" "...\n" ">>> transposed\n" -"[[1, 5, 9], [2, 6، 10], [3, 7، 11], [4, 8، 12]]\n" -"```" +"[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" #: ../../tutorial/datastructures.rst:329 #, fuzzy @@ -705,8 +674,9 @@ msgid "" "statements. The :func:`zip` function would do a great job for this use " "case::" msgstr "" -"در دنیای واقعی، شما باید توابع داخلی را به عبارات جریان پیچیده ترجیح دهید. " -"تابع :func:`zip` برای این مورد استفاده عالی عمل خواهد کرد::" +"در دنیای واقعی، شما باید توابع داخلی را به جای جملات کنترلی پیچیده ترجیح " +"دهید. تابع :func:`zip` برای این مورد استفاده کار بسیار خوبی انجام خواهد " +"داد::" #: ../../tutorial/datastructures.rst:332 #, fuzzy @@ -714,23 +684,21 @@ msgid "" ">>> list(zip(*matrix))\n" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" msgstr "" -"```python\n" ">>> list(zip(*matrix))\n" -"[(۱, ۵, ۹), (۲, ۶, ۱۰), (۳, ۷, ۱۱), (۴, ۸, ۱۲)]\n" -"```" +"[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" #: ../../tutorial/datastructures.rst:335 #, fuzzy msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" -"برای جزئیات مربوط به ستاره در این خط، به :ref:`tut-unpacking-arguments` " +"برای جزئیات در مورد ستاره در این خط، به :ref:`tut-unpacking-arguments` " "مراجعه کنید." #: ../../tutorial/datastructures.rst:340 #, fuzzy msgid "The :keyword:`!del` statement" -msgstr "عبارت :keyword:`!del`" +msgstr "بیانیه :keyword:`!del`" #: ../../tutorial/datastructures.rst:342 #, fuzzy @@ -741,11 +709,11 @@ msgid "" "used to remove slices from a list or clear the entire list (which we did " "earlier by assignment of an empty list to the slice). For example::" msgstr "" -"برای حذف یک آیتم از لیست با داشتن اندیس آن به جای مقدارش، می توان از دستور " -":keyword:`del` استفاده کرد. این با متد :meth:`!pop` که مقداری را برمی " -"گرداند، متفاوت است. دستور :keyword:`!del` نیز می تواند برای حذف بخش هایی از " -"لیست یا خالی کردن کامل لیست استفاده شود (که پیش تر با تخصیص یک لیست خالی به " -"بخش انجام دادیم). به عنوان مثال::" +"راهی برای حذف یک آیتم از لیست با استفاده از ایندکس آن به جای مقدارش وجود " +"دارد: دستور :keyword:`del`. این روش با متد :meth:`!pop` که یک مقدار را برمی " +"گرداند، متفاوت است. دستور :keyword:`!del` نیز می تواند برای حذف برش ها از یک" +" لیست یا پاک سازی کل لیست استفاده شود (که قبلاً با تخصیص یک لیست خالی به برش" +" انجام دادیم). برای مثال::" #: ../../tutorial/datastructures.rst:348 #, fuzzy @@ -761,32 +729,27 @@ msgid "" ">>> a\n" "[]" msgstr "" -"```python\n" ">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n" ">>> del a[0]\n" ">>> a\n" -"[1, 66.25، 333، 333، 1234.5]\n" +"[1, 66.25, 333, 333, 1234.5]\n" ">>> del a[2:4]\n" ">>> a\n" -"[1, 66.25، 1234.5]\n" +"[1, 66.25, 1234.5]\n" ">>> del a[:]\n" ">>> a\n" -"[]\n" -"```" +"[]" #: ../../tutorial/datastructures.rst:359 #, fuzzy msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" -":keyword:`del` می تواند برای حذف کل متغیرها نیز مورد استفاده قرار گیرد::" +":keyword:`del` همچنین می تواند برای حذف کامل متغیرها نیز استفاده شود::" #: ../../tutorial/datastructures.rst:361 #, fuzzy msgid ">>> del a" -msgstr "" -">>> del a\n" -"\n" -"حذف متغیر `a` از فضای نام جاری." +msgstr ">>> del a" #: ../../tutorial/datastructures.rst:363 #, fuzzy @@ -794,14 +757,14 @@ msgid "" "Referencing the name ``a`` hereafter is an error (at least until another " "value is assigned to it). We'll find other uses for :keyword:`del` later." msgstr "" -"ارجاع به نام ``a`` بعد از این یک خطا است (حداقل تا زمانی که مقدار دیگری به " -"آن اختصاص داده شود). بعداً برای :keyword:`del` استفاده های دیگری پیدا خواهیم" -" کرد." +"استفاده از نام ``a`` از اینجا به بعد یک خطا است (حداقل تا زمانی که مقدار " +"دیگری به آن اختصاص داده شود). بعداً استفاده های دیگری برای :keyword:`del` " +"پیدا خواهیم کرد." #: ../../tutorial/datastructures.rst:370 #, fuzzy msgid "Tuples and Sequences" -msgstr "تاپل ها و توالی ها" +msgstr "تاپل ها و دنباله ها" #: ../../tutorial/datastructures.rst:372 #, fuzzy @@ -812,18 +775,19 @@ msgid "" "data types may be added. There is also another standard sequence data type:" " the *tuple*." msgstr "" -"ما دیدیم که لیست ها و رشته ها خواص مشترک زیادی دارند، مانند عملیات ایندکس " -"گذاری و برش. آنها دو نمونه از انواع داده *sequence* هستند (نگاه کنید به " -":ref:`typesseq`). از آنجایی که پایتون یک زبان در حال تکامل است، انواع داده " -"ترتیبی دیگر نیز ممکن است اضافه شوند. همچنین یک نوع داده ترتیبی استاندارد " -"دیگر نیز وجود دارد: *tuple*." +"ما دیدیم که لیست ها و رشته ها خصوصیات مشترک زیادی دارند، مانند عملیات اندیس " +"گذاری و برش. آنها دو مثال از انواع داده *sequence* هستند (نگاه کنید به " +":ref:`typesseq`). از آنجایی که پایتون یک زبان در حال تکامل است، ممکن است " +"انواع داده توالی دیگری اضافه شود. همچنین یک نوع داده توالی استاندارد دیگر " +"وجود دارد: *tuple*." #: ../../tutorial/datastructures.rst:378 #, fuzzy msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" -"یک \"tuple\" شامل چندین مقدار است که با کاما از هم جدا شده اند، برای مثال:" +"یک \"tuple\" شامل تعدادی مقدار است که با کاما از هم جدا شده اند، به عنوان " +"مثال::" #: ../../tutorial/datastructures.rst:380 #, fuzzy @@ -852,11 +816,11 @@ msgstr "" "12345\n" ">>> t\n" "(12345, 54321, 'hello!')\n" -">>> # تاپل ها می توانند تو در تو باشند:\n" +">>> # تاپل ها می توانند تودرتو باشند:\n" ">>> u = t, (1, 2, 3, 4, 5)\n" ">>> u\n" "((12345, 54321, 'hello!'), (1, 2, 3, 4, 5))\n" -">>> # تاپل ها تغییرناپذیر هستند:\n" +">>> # تاپل ها غیر قابل تغییر هستند:\n" ">>> t[0] = 88888\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" @@ -876,12 +840,11 @@ msgid "" " the individual items of a tuple, however it is possible to create tuples " "which contain mutable objects, such as lists." msgstr "" -"همان طور که مشاهده می کنید، در خروجی، تاپل ها همیشه در پرانتز قرار می گیرند " -"تا تاپل های تو در تو به درستی تفسیر شوند؛ آن ها می توانند بدون پرانتز محصور " -"کننده یا با آن وارد شوند، اگرچه اغلب پرانتزها در هر صورت لازم هستند (اگر " -"تاپل بخشی از یک عبارت بزرگتر باشد). امکان انتساب به آیتم های فردی یک تاپل " -"وجود ندارد، اما امکان ایجاد تاپل های حاوی اشیای قابل تغییر، مانند لیست ها " -"وجود دارد." +"همان طور که می بینید، خروجی ها همیشه در پرانتز قرار می گیرند تا تاپل های تو " +"در تو به درستی تفسیر شوند؛ آن ها می توانند با یا بدون پرانتز ورودی باشند، " +"اگرچه اغلب پرانتزها به هر حال لازم هستند (اگر تاپل بخشی از یک عبارت بزرگ تر " +"باشد). امکان انتساب به آیتم های تکی یک تاپل وجود ندارد، اما می توان تاپل " +"هایی ایجاد کرد که شامل اشیاء قابل تغییر، مانند لیست ها باشند." #: ../../tutorial/datastructures.rst:407 #, fuzzy @@ -894,13 +857,13 @@ msgid "" ":term:`mutable`, and their elements are usually homogeneous and are accessed" " by iterating over the list." msgstr "" -"اگرچه تاپل ها ممکن است شبیه به لیست ها به نظر برسند، اما معمولاً در شرایط و " -"اهداف متفاوتی مورد استفاده قرار می گیرند. تاپل ها \":term:`immutable`\" " -"هستند و معمولاً حاوی یک دنباله نامتجانس از عناصر می باشند که از طریق " -"\"unpacking\" (در ادامه این بخش ببینید) یا \"indexing\" (و یا حتی توسط صفت " -"در مورد \":func:`namedtuples `\") به آن ها دسترسی " -"پیدا می شود. لیست ها \":term:`mutable`\" هستند و عناصر آن ها معمولاً همگن " -"هستند و با تکرار در طول لیست به آن ها دسترسی پیدا می شود." +"اگرچه به نظر می رسد که تاپل ها شبیه به فهرست ها باشند، اما اغلب در شرایط و " +"اهداف متفاوتی مورد استفاده قرار می گیرند. تاپل ها :term:`immutable` هستند و " +"معمولاً حاوی یک دنباله ناهمگون از عناصر می باشند که از طریق باز کردن (نکته: " +"بخش بعدی را ببینید) یا ایندکس گذاری (و حتی از طریق صفت در مورد " +":func:`namedtuples `) قابل دسترسی هستند. فهرست ها " +":term:`mutable` هستند و عناصر آن ها معمولاً همگون بوده و با تکرار بر روی " +"فهرست به آن ها دسترسی پیدا می شود." #: ../../tutorial/datastructures.rst:415 #, fuzzy @@ -911,11 +874,11 @@ msgid "" "constructed by following a value with a comma (it is not sufficient to " "enclose a single value in parentheses). Ugly, but effective. For example::" msgstr "" -"یک مشکل ویژه، ساخت تاپل هایی با ۰ یا ۱ عضو است: نحو آن چند ویژگی اضافی دارد " -"تا این موارد را در خود بگنجاند. تاپل های خالی با یک جفت پرانتز خالی ساخته می" -" شوند؛ یک تاپل با یک عضو با قرار دادن یک کاما بعد از مقدار مورد نظر ساخته می" -" شود (قرار دادن یک مقدار تکی در پرانتز به تنهایی کافی نیست). زشت، ولی موثر. " -"به عنوان مثال::" +"یک مشکل ویژه در ساختن تاپل هایی است که 0 یا 1 آیتم دارند: نحو زبان نیازمند " +"تغییرات اضافی برای تطابق با این موارد است. تاپل های خالی با یک جفت پرانتز " +"خالی ساخته می شوند؛ یک تاپل با یک آیتم با قرار دادن یک کاما پس از مقدار " +"ساخته می شود (قرار دادن یک مقدار تنها درون پرانتز کافی نیست). این کار شاید " +"زیبا نباشد، اما مؤثر است. برای مثال::" #: ../../tutorial/datastructures.rst:421 #, fuzzy @@ -929,16 +892,14 @@ msgid "" ">>> singleton\n" "('hello',)" msgstr "" -"```\n" ">>> empty = ()\n" -">>> singleton = 'hello', # <-- توجه داشته باشید کاما در انتهای خط\n" +">>> singleton = 'hello', # <-- توجه داشته باشید که ویرگول در انتها آمده است\n" ">>> len(empty)\n" "0\n" ">>> len(singleton)\n" "1\n" ">>> singleton\n" -"('hello',)\n" -"```" +"('hello',)" #: ../../tutorial/datastructures.rst:430 #, fuzzy @@ -947,14 +908,14 @@ msgid "" "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " "together in a tuple. The reverse operation is also possible::" msgstr "" -"عبارت ``t = 12345, 54321, 'hello!'`` مثالی از *tuple packing* است: مقادیر " -"``12345``، ``54321`` و ``'hello!'`` در یک تاپل به هم بسته شده اند. عملیات " -"معکوس نیز ممکن است::" +"عبارت ``t = 12345, 54321, 'hello!'`` نمونه ای از *tuple packing* است: مقادیر" +" ``12345``، ``54321`` و ``'hello!'`` در یک تاپل با هم بسته بندی می شوند. " +"عملیات معکوس نیز امکان پذیر است::" #: ../../tutorial/datastructures.rst:434 #, fuzzy msgid ">>> x, y, z = t" -msgstr "```>>> x, y, z = t```" +msgstr ">>> x, y, z = t" #: ../../tutorial/datastructures.rst:436 #, fuzzy @@ -965,10 +926,10 @@ msgid "" "elements in the sequence. Note that multiple assignment is really just a " "combination of tuple packing and sequence unpacking." msgstr "" -"این به طور مناسب *sequence unpacking* نامیده می شود و برای هر دنباله ای در " -"سمت راست کار می کند. بازکردن دنباله نیازمند این است که به همان تعداد متغیر " -"در سمت چپ علامت مساوی باشد که عناصر در دنباله وجود دارند. توجه داشته باشید " -"که انتساب چندگانه در واقع تنها ترکیبی از بسته بندی تاپل و بازکردن دنباله " +"این به درستی *sequence unpacking* نامیده می شود و برای هر دنباله ای در سمت " +"راست کار می کند. بازگشایی دنباله نیاز دارد که به همان تعداد متغیر در سمت چپ " +"علامت مساوی وجود داشته باشد که عناصر در دنباله وجود دارند. توجه داشته باشید " +"که تخصیص چندگانه در واقع فقط یک ترکیب از بسته بندی تاپل و بازگشایی دنباله " "است." #: ../../tutorial/datastructures.rst:446 @@ -985,10 +946,10 @@ msgid "" "mathematical operations like union, intersection, difference, and symmetric " "difference." msgstr "" -"پایتون همچنین شامل یک نوع داده برای *sets* است. مجموعه یک کلکسیون نامرتب " -"بدون عناصر تکراری است. استفاده های اصلی شامل آزمایش عضویت و حذف ورودی های " -"تکراری می باشد. اشیاء مجموعه همچنین از عملیات های ریاضی مانند اجتماع، " -"اشتراک، تفاوت و تفاوت متقارن پشتیبانی می کنند." +"پایتون همچنین شامل یک نوع داده برای *sets* است. یک مجموعه (set) یک مجموعه ی " +"نامرتب بدون عناصر تکراری است. استفاده های پایه شامل آزمایش عضویت و حذف ورودی" +" های تکراری است. اشیاء مجموعه (set) همچنین از عملیات ریاضی مثل اجتماع، " +"اشتراک، تفاضل و تفاضل متقارن پشتیبانی می کنند." #: ../../tutorial/datastructures.rst:453 #, fuzzy @@ -998,15 +959,15 @@ msgid "" "creates an empty dictionary, a data structure that we discuss in the next " "section." msgstr "" -"آکولادها یا تابع :func:`set` می توانند برای ایجاد مجموعه ها استفاده شوند. " +"از آکولادها یا تابع :func:`set` می توان برای ایجاد مجموعه ها استفاده کرد. " "توجه: برای ایجاد یک مجموعه خالی باید از ``set()`` استفاده کنید، نه ``{}``؛ " -"مورد دوم یک دیکشنری خالی ایجاد می کند که یک ساختار داده است و در بخش بعد به " -"آن می پردازیم." +"دومی یک دیکشنری خالی ایجاد می کند که یک ساختار داده است و آن را در بخش بعدی " +"بررسی خواهیم کرد." #: ../../tutorial/datastructures.rst:457 #, fuzzy msgid "Here is a brief demonstration::" -msgstr "در اینجا یک نمایش کوتاه ارائه شده است::" +msgstr "در اینجا یک نمایش مختصر ارائه شده است::" #: ../../tutorial/datastructures.rst:459 #, fuzzy @@ -1034,30 +995,28 @@ msgid "" ">>> a ^ b # letters in a or b but not both\n" "{'r', 'd', 'b', 'm', 'z', 'l'}" msgstr "" -"```python\n" ">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n" -">>> print(basket) # نشان دادن اینکه موارد تکراری حذف شده اند\n" +">>> print(basket) # نشان می دهد که موارد تکراری حذف شده اند\n" "{'orange', 'banana', 'pear', 'apple'}\n" -">>> 'orange' in basket # آزمایش عضویت سریع\n" +">>> 'orange' in basket # تست سریع عضویت\n" "True\n" ">>> 'crabgrass' in basket\n" "False\n" "\n" -">>> # اعمال مجموعه را بر روی حروف منحصر به فرد از دو کلمه نمایش دهید\n" +">>> # نشان دادن عملیات مجموعه روی حروف یکتا از دو کلمه\n" ">>>\n" ">>> a = set('abracadabra')\n" ">>> b = set('alacazam')\n" -">>> a # حروف منحصر به فرد در a\n" +">>> a # حروف یکتا در a\n" "{'a', 'r', 'b', 'c', 'd'}\n" -">>> a - b # حروف موجود در a اما نه در b\n" +">>> a - b # حروفی که در a هستند اما در b نیستند\n" "{'r', 'd', 'b'}\n" -">>> a | b # حروف در a یا b یا هر دو\n" +">>> a | b # حروفی که در a یا b یا هر دو هستند\n" "{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}\n" -">>> a & b # حروف مشترک در a و b\n" +">>> a & b # حروفی که هم در a و هم در b هستند\n" "{'a', 'c'}\n" -">>> a ^ b # حروف موجود در a یا b اما نه هر دو\n" -"{'r', 'd', 'b', 'm', 'z', 'l'}\n" -"```" +">>> a ^ b # حروفی که در a یا b هستند اما نه هر دو\n" +"{'r', 'd', 'b', 'm', 'z', 'l'}" #: ../../tutorial/datastructures.rst:482 #, fuzzy @@ -1065,8 +1024,8 @@ msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" msgstr "" -"به طور مشابه با :ref:`list comprehensions `، مفهوم مجموعه " -"سازی یا «set comprehensions» نیز پشتیبانی می شود::" +"به طور مشابه با :ref:`list comprehensions `، comprehensions " +"مجموعه نیز پشتیبانی می شوند::" #: ../../tutorial/datastructures.rst:485 #, fuzzy @@ -1075,16 +1034,14 @@ msgid "" ">>> a\n" "{'r', 'd'}" msgstr "" -"```python\n" ">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n" ">>> a\n" -"{'r', 'd'}\n" -"```" +"{'r', 'd'}" #: ../../tutorial/datastructures.rst:493 #, fuzzy msgid "Dictionaries" -msgstr "دیكشنری ها" +msgstr "دایره المعارف ها" #: ../../tutorial/datastructures.rst:495 #, fuzzy @@ -1100,17 +1057,17 @@ msgid "" "modified in place using index assignments, slice assignments, or methods " "like :meth:`!append` and :meth:`!extend`." msgstr "" -"یکی دیگر از نوع داده های مفید ساخته شده در پایتون *dictionary* است (نگاه " -"کنید به :ref:`typesmapping`). دیکشنری ها گاهی در زبان های دیگر به عنوان " -"\"حافظه های انجمنی\" یا \"آرایه های انجمنی\" شناخته می شوند. برخلاف دنباله " -"ها که با یک بازه از اعداد ایندکس می شوند، دیکشنری ها با *keys* ایندکس می " -"شوند که می تواند هر نوع غیرقابل تغییر باشد؛ رشته ها و اعداد همیشه می توانند " -"کلید باشند. از تاپل ها می توان به عنوان کلید استفاده کرد اگر تنها شامل رشته " -"ها، اعداد، یا تاپل ها باشند؛ اگر یک تاپل به صورت مستقیم یا غیرمستقیم شامل هر" -" شیء قابل تغییری باشد، نمی توان از آن به عنوان کلید استفاده کرد. نمی توانید " -"از لیست ها به عنوان کلید استفاده کنید، زیرا لیست ها می توانند با استفاده از " -"تخصیص ایندکس، تخصیص برشی، یا روش هایی مانند :meth:`!append` و " -":meth:`!extend` به صورت محلی تغییر پیدا کنند." +"یکی دیگر از نوع های داده مفید موجود در پایتون، *dictionary* (به " +":ref:`typesmapping` مراجعه کنید) است. دیکشنری ها در بعضی زبان ها به عنوان " +"\"حافظه های انجمنی\" یا \"آرایه های انجمنی\" شناخته می شوند. برخلاف توالی ها" +" که با یک محدوده از اعداد شاخص گذاری می شوند، دیکشنری ها توسط *keys* شاخص " +"گذاری می شوند که می تواند هر نوع غیر قابل تغییر باشد؛ رشته ها و اعداد همیشه " +"می توانند کلید باشند. در صورتی که یک تاپل تنها حاوی رشته ها، اعداد یا تاپل " +"دیگری باشد، می تواند به عنوان کلید استفاده شود؛ اگر یک تاپل به صورت مستقیم " +"یا غیر مستقیم شامل هر شیء قابل تغییر باشد، نمی تواند به عنوان کلید استفاده " +"شود. شما نمی توانید از لیست ها به عنوان کلید استفاده کنید، زیرا لیست ها می " +"توانند با استفاده از انتساب شاخص، انتساب قطعه ای یا متدهایی مانند " +":meth:`!append` و :meth:`!extend` در محل تغییر کنند." #: ../../tutorial/datastructures.rst:506 #, fuzzy @@ -1121,12 +1078,12 @@ msgid "" "of key:value pairs within the braces adds initial key:value pairs to the " "dictionary; this is also the way dictionaries are written on output." msgstr "" -"بهترین راه برای تصور یک دیکشنری این است که آن را به صورت مجموعه ای از جفت " -"های *key: value* در نظر بگیرید، با این شرط که کلیدها باید یکتا باشند (در " -"داخل یک دیکشنری). یک جفت آکولاد، یک دیکشنری خالی ایجاد می کند: ``{}``. قرار " -"دادن لیستی از جفت های کلید:مقدار که با ویرگول از هم جدا شده اند درون " -"آکولادها، جفت های کلید:مقدار اولیه به دیکشنری اضافه می کند؛ این همچنین روشی " -"است که دیکشنری ها در خروجی نوشته می شوند." +"بهتر است یک دیکشنری را به عنوان یک مجموعه از جفت *key: value* در نظر " +"بگیریم، با این شرط که کلیدها در یک دیکشنری منحصر به فرد باشند. یک جفت آکولاد" +" یک دیکشنری خالی ایجاد می کند: ``{}``. قراردادن یک لیست از جفت های " +"کلید:مقدار که با کاما از هم جدا شده اند، در داخل آکولادها، جفت های " +"کلید:مقدار اولیه را به دیکشنری اضافه می کند؛ این همچنین روشی است که دیکشنری " +"ها در خروجی نوشته می شوند." #: ../../tutorial/datastructures.rst:512 #, fuzzy @@ -1137,11 +1094,11 @@ msgid "" "use, the old value associated with that key is forgotten. It is an error to" " extract a value using a non-existent key." msgstr "" -"عملیات اصلی روی دیکشنری شامل ذخیره یک مقدار با استفاده از یک کلید و استخراج " -"مقدار با دادن کلید مربوطه است. همچنین امکان حذف یک جفت کلید:مقدار با " -"\"``del``\" وجود دارد. اگر از یک کلید که قبلاً مورد استفاده قرار گرفته است " -"برای ذخیره سازی استفاده کنید، مقدار قدیمی مرتبط با آن کلید به فراموشی سپرده " -"می شود. استخراج مقدار با استفاده از یک کلید غیر موجود یک خطا محسوب می شود." +"عملیات اصلی روی یک دیکشنری ذخیره یک مقدار با یک کلید و استخراج مقدار با " +"استفاده از کلید است. همچنین امکان حذف یک جفت کلید:مقدار با استفاده از " +"``del`` وجود دارد. اگر از کلیدی که قبلاً استفاده شده است استفاده کنید، مقدار" +" قدیمی مرتبط با آن کلید فراموش می شود. استخراج یک مقدار با استفاده از یک " +"کلید ناموجود یک خطا است." #: ../../tutorial/datastructures.rst:518 #, fuzzy @@ -1151,15 +1108,15 @@ msgid "" "``sorted(d)`` instead). To check whether a single key is in the dictionary, " "use the :keyword:`in` keyword." msgstr "" -"انجام ``list(d)`` بر روی یک دیکشنری، لیستی از تمام کلیدهایی که در دیکشنری " -"استفاده شده اند را، به ترتیب ورود برمی گرداند (اگر می خواهید آن را مرتب " -"کنید، فقط از ``sorted(d)`` استفاده کنید). برای بررسی اینکه آیا یک کلید خاص " -"در دیکشنری وجود دارد یا خیر، از کلمه کلیدی :keyword:`in` استفاده کنید." +"انجام ``list(d)`` بر روی یک دیکشنری، لیستی از تمامی کلیدهای استفاده شده در " +"دیکشنری را در ترتیب درج شده بر می گرداند (اگر می خواهید مرتب باشد، به جای آن" +" از ``sorted(d)`` استفاده کنید). برای بررسی اینکه آیا یک کلید خاص در دیکشنری" +" وجود دارد، از کلمه کلیدی :keyword:`in` استفاده کنید." #: ../../tutorial/datastructures.rst:523 #, fuzzy msgid "Here is a small example using a dictionary::" -msgstr "اینجا یک مثال کوچک با استفاده از یک دیکشنری آورده شده است:" +msgstr "در اینجا یک مثال کوچک با استفاده از یک دیکشنری آمده است::" #: ../../tutorial/datastructures.rst:525 #, fuzzy @@ -1183,7 +1140,6 @@ msgid "" ">>> 'jack' not in tel\n" "False" msgstr "" -"```\n" ">>> tel = {'jack': 4098, 'sape': 4139}\n" ">>> tel['guido'] = 4127\n" ">>> tel\n" @@ -1201,8 +1157,7 @@ msgstr "" ">>> 'guido' in tel\n" "True\n" ">>> 'jack' not in tel\n" -"False\n" -"```" +"False" #: ../../tutorial/datastructures.rst:544 #, fuzzy @@ -1210,8 +1165,8 @@ msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" msgstr "" -"سازنده :func:`dict` دیکشنری ها را مستقیماً از توالی های جفت کلید-مقدار می " -"سازد::" +"سازنده :func:`dict` دیکشنری ها را به طور مستقیم از دنباله های جفت کلید-مقدار" +" می سازد::" #: ../../tutorial/datastructures.rst:547 #, fuzzy @@ -1219,10 +1174,8 @@ msgid "" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" msgstr "" -"```python\n" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" -"{'sape': 4139, 'guido': 4127, 'jack': 4098}\n" -"```" +"{'sape': 4139, 'guido': 4127, 'jack': 4098}" #: ../../tutorial/datastructures.rst:550 #, fuzzy @@ -1230,8 +1183,8 @@ msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" msgstr "" -"علاوه بر این، از «dict comprehensions» می توان برای ایجاد دیکشنری ها از " -"عبارات کلید و مقدار دلخواه استفاده کرد::" +"علاوه بر این، می توان از dict comprehensions برای ایجاد دیکشنری ها از عبارات" +" دلخواه کلید و مقدار استفاده کرد::" #: ../../tutorial/datastructures.rst:553 #, fuzzy @@ -1239,8 +1192,8 @@ msgid "" ">>> {x: x**2 for x in (2, 4, 6)}\n" "{2: 4, 4: 16, 6: 36}" msgstr "" -"```python\n" -"{2: 4, 4: 16, 6: 36} ```: x**2``` برای ساخت این دیکشنری، از «تعبیر دیکشنری» استفاده می کنیم که در آن هر کلید مربع مقدارش است و به این صورت تعریف می شود که برای هر x در (2، 4، 6) عبارت" +">>> {x: x**2 for x in (2, 4, 6)}\n" +"{2: 4, 4: 16, 6: 36}" #: ../../tutorial/datastructures.rst:556 #, fuzzy @@ -1248,8 +1201,8 @@ msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" msgstr "" -"وقتی کلیدها رشته های ساده هستند، گاهی اوقات مشخص کردن جفت ها با استفاده از " -"آرگومان های کلیدی آسان تر است::" +"هنگامی که کلیدها رشته های ساده باشند، گاهی اوقات آسان تر است که جفت ها را با" +" استفاده از آرگومان های کلیدواژه مشخص کنید::" #: ../../tutorial/datastructures.rst:559 #, fuzzy @@ -1257,15 +1210,13 @@ msgid "" ">>> dict(sape=4139, guido=4127, jack=4098)\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" msgstr "" -"```python\n" ">>> dict(sape=4139, guido=4127, jack=4098)\n" -"{'sape': 4139, 'guido': 4127, 'jack': 4098}\n" -"```" +"{'sape': 4139, 'guido': 4127, 'jack': 4098}" #: ../../tutorial/datastructures.rst:566 #, fuzzy msgid "Looping Techniques" -msgstr "تکنیک های تکرار" +msgstr "تکنیک های حلقه زدن" #: ../../tutorial/datastructures.rst:568 #, fuzzy @@ -1273,8 +1224,8 @@ msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`~dict.items` method. ::" msgstr "" -"هنگام پیمایش در دیکشنری ها، کلید و مقدار مربوطه می توانند همزمان با استفاده " -"از متد :meth:`~dict.items` بازیابی شوند." +"هنگام پیمایش در دیکشنری ها، کلید و مقدار مربوطه را می توان همزمان با استفاده" +" از روش :meth:`~dict.items` بازیابی کرد. ::" #: ../../tutorial/datastructures.rst:571 #, fuzzy @@ -1286,14 +1237,12 @@ msgid "" "gallahad the pure\n" "robin the brave" msgstr "" -"```python\n" ">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n" ">>> for k, v in knights.items():\n" "... print(k, v)\n" "...\n" "gallahad the pure\n" -"robin the brave\n" -"```" +"robin the brave" #: ../../tutorial/datastructures.rst:578 #, fuzzy @@ -1301,8 +1250,8 @@ msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" msgstr "" -"هنگام پیمایش یک دنباله، می توان به طور همزمان به شاخص موقعیت و مقدار مربوطه " -"با استفاده از تابع :func:`enumerate` دسترسی داشت." +"هنگام گردش در یک توالی، می توان به طور همزمان به شاخص موقعیت و مقدار مربوطه " +"با استفاده از تابع :func:`enumerate` دسترسی پیدا کرد. ::" #: ../../tutorial/datastructures.rst:581 #, fuzzy @@ -1314,14 +1263,12 @@ msgid "" "1 tac\n" "2 toe" msgstr "" -"```python\n" -">>> برای i و v در `enumerate(['tic', 'tac', 'toe']):`\n" -"... `print(i, v)`\n" +">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n" +"... print(i, v)\n" "...\n" "0 tic\n" "1 tac\n" -"2 toe\n" -"```" +"2 toe" #: ../../tutorial/datastructures.rst:588 #, fuzzy @@ -1329,8 +1276,8 @@ msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" msgstr "" -"برای پیمایش بر روی دو یا چند دنباله به طور همزمان، می توان ورودی ها را با " -"استفاده از تابع :func:`zip` جفت کرد. ::" +"برای پیمایش همزمان در دو یا چند توالی، می توان از تابع :func:`zip` برای جفت " +"کردن ورودی ها استفاده کرد. ::" #: ../../tutorial/datastructures.rst:591 #, fuzzy @@ -1344,16 +1291,14 @@ msgid "" "What is your quest? It is the holy grail.\n" "What is your favorite color? It is blue." msgstr "" -"```python\n" ">>> questions = ['name', 'quest', 'favorite color']\n" ">>> answers = ['lancelot', 'the holy grail', 'blue']\n" ">>> for q, a in zip(questions, answers):\n" "... print('What is your {0}? It is {1}.'.format(q, a))\n" "...\n" -"What is your name? It is lancelot.\n" -"What is your quest? It is the holy grail.\n" -"What is your favorite color? It is blue.\n" -"```" +"نام شما چیست؟ آن lancelot است.\n" +"ماموریت شما چیست؟ آن the holy grail است.\n" +"رنگ مورد علاقه ی شما چیست؟ آن blue است." #: ../../tutorial/datastructures.rst:600 #, fuzzy @@ -1361,8 +1306,8 @@ msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" msgstr "" -"برای پیمایش یک دنباله به صورت معکوس، ابتدا دنباله را در جهت رو به جلو مشخص " -"کرده و سپس تابع :func:`reversed` را فراخوانی کنید. ::" +"برای پیمایش بر روی یک دنباله به صورت معکوس، ابتدا دنباله را به صورت رو به " +"جلو مشخص کرده و سپس تابع :func:`reversed` را فراخوانی کنید. ::" #: ../../tutorial/datastructures.rst:603 #, fuzzy @@ -1376,16 +1321,14 @@ msgid "" "3\n" "1" msgstr "" -"```python\n" -">>> for i in reversed(range(1, 10, 2)):\n" +">>> برای i در reversed(range(1, 10, 2)):\n" "... print(i)\n" "...\n" "9\n" "7\n" "5\n" "3\n" -"1\n" -"```" +"1" #: ../../tutorial/datastructures.rst:612 #, fuzzy @@ -1393,9 +1336,9 @@ msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" msgstr "" -"برای پیمایش بر روی یک توالی به ترتیب مرتب شده، از تابع :func:`sorted` " -"استفاده کنید که یک لیست مرتب شده جدید بازمی گرداند در حالی که منبع را بدون " -"تغییر باقی می گذارد. ::" +"برای مرور بر روی یک دنباله به ترتیب مرتب، از تابع :func:`sorted` استفاده " +"کنید که یک لیست مرتب جدید را بازمی گرداند در حالی که منبع را به صورت تغییر " +"نیافته باقی می گذارد. ::" #: ../../tutorial/datastructures.rst:615 #, fuzzy @@ -1411,7 +1354,6 @@ msgid "" "orange\n" "pear" msgstr "" -"```python\n" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for i in sorted(basket):\n" "... print(i)\n" @@ -1421,8 +1363,7 @@ msgstr "" "banana\n" "orange\n" "orange\n" -"pear\n" -"```" +"pear" #: ../../tutorial/datastructures.rst:626 #, fuzzy @@ -1432,9 +1373,9 @@ msgid "" "idiomatic way to loop over unique elements of the sequence in sorted order. " "::" msgstr "" -"استفاده از :func:`set` بر روی یک دنباله، عناصر تکراری را حذف می کند. استفاده" -" از :func:`sorted` به همراه :func:`set` بر روی یک دنباله، روشی اصطلاحی برای " -"پیمایش عناصر یکتای دنباله به ترتیب مرتب شده است. ::" +"استفاده از :func:`set` بر روی دنباله، عناصر تکراری را حذف می کند. استفاده از" +" :func:`sorted` به همراه :func:`set` بر روی یک دنباله، روشی ایدئوماتیک برای " +"پیمایش بر روی عناصر منحصر به فرد دنباله به صورت مرتب شده است. ::" #: ../../tutorial/datastructures.rst:630 #, fuzzy @@ -1448,16 +1389,14 @@ msgid "" "orange\n" "pear" msgstr "" -"```python\n" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for f in sorted(set(basket)):\n" "... print(f)\n" "...\n" -"سیب\n" -"موز\n" -"پرتقال\n" -"گلابی\n" -"```" +"apple\n" +"banana\n" +"orange\n" +"pear" #: ../../tutorial/datastructures.rst:639 #, fuzzy @@ -1465,8 +1404,8 @@ msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" msgstr "" -"اغلب اوقات وسوسه انگیز است که در حالی که در حال پیمایش یک لیست هستید، آن را " -"تغییر دهید؛ اما اغلب ساده تر و امن تر است که یک لیست جدید ایجاد کنید." +"گاهی وسوسه انگیز است که هنگام پیمایش یک لیست، آن را تغییر دهید؛ اما اغلب " +"ساده تر و ایمن تر است که به جای آن یک لیست جدید ایجاد کنید. ::" #: ../../tutorial/datastructures.rst:642 #, fuzzy @@ -1481,7 +1420,6 @@ msgid "" ">>> filtered_data\n" "[56.2, 51.7, 55.3, 52.5, 47.8]" msgstr "" -"```python\n" ">>> import math\n" ">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]\n" ">>> filtered_data = []\n" @@ -1490,15 +1428,12 @@ msgstr "" "... filtered_data.append(value)\n" "...\n" ">>> filtered_data\n" -"[56.2, 51.7, 55.3, 52.5, 47.8]\n" -"``` \n" -"\n" -"ماژول `math` را وارد می کنیم و یک لیست نام `raw_data` را تعریف می کنیم که شامل مقادیر عددی و `NaN` است. سپس، یک لیست خالی به نام `filtered_data` ایجاد می کنیم. برای هر مقدار در `raw_data`، بررسی می کنیم که آیا `NaN` نیست. اگر مقدار `NaN` نبود، آن را به `filtered_data` اضافه می کنیم. در نهایت، `filtered_data` را مشاهده می کنیم که شامل مقادیر عددی بدون `NaN` است: `[56.2, 51.7, 55.3, 52.5, 47.8]`." +"[56.2, 51.7, 55.3, 52.5, 47.8]" #: ../../tutorial/datastructures.rst:656 #, fuzzy msgid "More on Conditions" -msgstr "بیشتر درباره ی شرایط" +msgstr "بیشتر درباره شرایط" #: ../../tutorial/datastructures.rst:658 #, fuzzy @@ -1506,8 +1441,8 @@ msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." msgstr "" -"شرایطی که در دستورات ``while`` و ``if`` استفاده می شوند می توانند شامل هر " -"نوع عملیاتی باشند، نه فقط مقایسه ها." +"شرایط استفاده شده در دستورات ``while`` و ``if`` می توانند شامل هر گونه " +"عملگرها باشند، نه فقط مقایسه ها." #: ../../tutorial/datastructures.rst:662 #, fuzzy @@ -1518,10 +1453,11 @@ msgid "" "object. All comparison operators have the same priority, which is lower " "than that of all numerical operators." msgstr "" -"عملگرهای مقایسه ای ``in`` و ``not in`` آزمون های عضویتی هستند که تعیین می " -"کنند آیا یک مقدار در یک ظرف وجود دارد (یا ندارد). عملگرهای ``is`` و ``is " -"not`` بررسی می کنند که آیا دو شیء واقعاً یک شیء هستند. تمامی عملگرهای مقایسه" -" ای دارای اولویت یکسانی هستند که پایین تر از تمامی عملگرهای عددی است." +"عملگرهای مقایسه ای ``in`` و ``not in`` تست های عضویت هستند که تعیین می کنند " +"آیا یک مقدار در یک محفظه وجود دارد یا خیر. عملگرهای ``is`` و ``is not`` " +"بررسی می کنند آیا دو شیء عملاً یک شیء واحد هستند یا خیر. تمام عملگرهای " +"مقایسه ای دارای اولویت یکسانی هستند که این اولویت کمتر از تمام عملگرهای عددی" +" است." #: ../../tutorial/datastructures.rst:668 #, fuzzy @@ -1529,8 +1465,9 @@ msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a``" " is less than ``b`` and moreover ``b`` equals ``c``." msgstr "" -"مقایسه ها می توانند به هم زنجیره شوند. برای مثال، ``a < b == c`` بررسی می " -"کند که آیا ``a`` کمتر از ``b`` است و علاوه بر آن، ``b`` برابر با ``c`` است." +"می توان مقایسه ها را به هم زنجیر کرد. به عنوان مثال، ``a < b == c`` بررسی می" +" کند که آیا ``a`` کمتر از ``b`` است و علاوه بر این ``b`` برابر با ``c`` می " +"باشد." #: ../../tutorial/datastructures.rst:671 #, fuzzy @@ -1542,12 +1479,12 @@ msgid "" "lowest, so that ``A and not B or C`` is equivalent to ``(A and (not B)) or " "C``. As always, parentheses can be used to express the desired composition." msgstr "" -"مقایسه ها ممکن است با استفاده از عملگرهای بولی ``and`` و ``or`` ترکیب شوند و" -" نتیجه یک مقایسه (یا هر عبارت بولی دیگر) ممکن است با ``not`` نفی شود. این ها" -" اولویت های پایین تری از عملگرهای مقایسه دارند؛ بین آن ها، ``not`` بالاترین " +"مقایسه ها می توانند با استفاده از عملگرهای بولی ``and`` و ``or`` ترکیب شوند " +"و نتیجه یک مقایسه (یا هر عبارت بولی دیگر) می تواند با ``not`` منفی شود. این " +"ها اولویت کمتری نسبت به عملگرهای مقایسه دارند؛ بین آن ها، ``not`` بالاترین " "اولویت و ``or`` پایین ترین اولویت را دارد، به طوری که ``A and not B or C`` " -"معادل ``(A and (not B)) or C`` است. همانطور که همیشه، می توان از پرانتزها " -"برای بیان ترکیب مورد نظر استفاده کرد." +"معادل ``(A and (not B)) or C`` است. همانطور که همیشه، پرانتزها می توانند " +"برای نشان دادن ترکیب مطلوب استفاده شوند." #: ../../tutorial/datastructures.rst:678 #, fuzzy @@ -1559,12 +1496,12 @@ msgid "" "expression ``C``. When used as a general value and not as a Boolean, the " "return value of a short-circuit operator is the last evaluated argument." msgstr "" -"عملگرهای بولینی ``and`` و ``or`` به عنوان عملگرهای *short-circuit* شناخته می" -" شوند: آرگومان های آنها از چپ به راست ارزیابی می شوند و ارزیابی به محض تعیین" +"عملگرهای بولی ``and`` و ``or`` به عنوان عملگرهای *short-circuit* شناخته می " +"شوند: آرگومان های آن ها از چپ به راست ارزیابی می شوند و ارزیابی به محض تعیین" " نتیجه متوقف می شود. به عنوان مثال، اگر ``A`` و ``C`` درست باشند اما ``B`` " -"نادرست باشد، ``A and B and C`` عبارت ``C`` را ارزیابی نمی کند. هنگامی که به " -"عنوان یک مقدار کلی و نه به عنوان یک بولین استفاده می شوند، مقدار بازگشتی یک " -"عملگر کوتاه-مدار، آخرین آرگومان ارزیابی شده است." +"غلط باشد، ``A and B and C`` عبارت ``C`` را ارزیابی نمی کند. زمانی که به " +"عنوان یک مقدار عمومی و نه به عنوان بولی استفاده شوند، مقدار بازگشتی یک عملگر" +" *short-circuit* برابر با آخرین آرگومانی است که ارزیابی شده است." #: ../../tutorial/datastructures.rst:685 #, fuzzy @@ -1572,8 +1509,8 @@ msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" msgstr "" -"امکان دارد نتیجه یک مقایسه یا یک عبارت بولی دیگر را به یک متغیر نسبت دهید. " -"برای مثال: ::" +"امکان انتساب نتیجه یک مقایسه یا دیگر عبارات بولی به یک متغیر وجود دارد. برای" +" مثال، ::" #: ../../tutorial/datastructures.rst:688 #, fuzzy @@ -1583,12 +1520,10 @@ msgid "" ">>> non_null\n" "'Trondheim'" msgstr "" -"```\n" ">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n" ">>> non_null = string1 or string2 or string3\n" ">>> non_null\n" -"'Trondheim'\n" -"```" +"'Trondheim'" #: ../../tutorial/datastructures.rst:693 #, fuzzy @@ -1598,16 +1533,16 @@ msgid "" "an-expression>` ``:=``. This avoids a common class of problems encountered " "in C programs: typing ``=`` in an expression when ``==`` was intended." msgstr "" -"در پایتون، برخلاف C، تخصیص در داخل عبارات باید به صورت صریح با استفاده از " -":ref:`walrus operator ` " -"``:=`` انجام شود. این کار از یک دسته مشکلات رایج که در برنامه های C مشاهده " -"می شود جلوگیری می کند: وقتی که در یک عبارت ``=`` تایپ می شود در حالی که " -"منظور ``==`` بوده است." +"توجه داشته باشید که در پایتون، برخلاف زبان C، تخصیص در عبارات باید به صورت " +"صریح با :ref:`walrus operator ` ``:=`` انجام شود. این کار یک دسته مشکلات رایج در برنامه های C " +"را که به علت تایپ ``=`` در یک عبارت در زمانی رخ می دهد که ``==`` مورد نظر " +"بوده است، اجتناب می کند." #: ../../tutorial/datastructures.rst:703 #, fuzzy msgid "Comparing Sequences and Other Types" -msgstr "مقایسه توالی ها و انواع دیگر" +msgstr "مقایسه ی دنباله ها و انواع دیگر" #: ../../tutorial/datastructures.rst:704 #, fuzzy @@ -1625,16 +1560,17 @@ msgid "" "order individual characters. Some examples of comparisons between sequences " "of the same type::" msgstr "" -"اشیای توالی معمولاً به اشیای دیگر از نوع توالی یکسان قابل مقایسه هستند. " -"مقایسه از ترتیب *lexicographical* استفاده می کند: ابتدا دو آیتم اول مقایسه " -"می شوند و اگر تفاوت داشته باشند، نتیجه مقایسه را تعیین می کند؛ اگر برابر " -"باشند، دو آیتم بعدی مقایسه می شوند و این روند ادامه می یابد تا زمانی که یک " -"توالی به پایان برسد. اگر دو آیتمی که باید مقایسه شوند خودشان توالی از همان " -"نوع باشند، مقایسه لغت نامه ای به صورت بازگشتی انجام می شود. اگر تمام آیتم " -"های دو توالی با هم برابر باشند، توالی ها برابر در نظر گرفته می شوند. اگر یک " -"توالی زیردنباله اولیه دیگری باشد، توالی کوتاه تر، کوچکتر در نظر گرفته می " -"شود. ترتیب لغت نامه ای رشته ها از شماره کد نقطه Unicode برای مرتب سازی " -"کاراکترها استفاده می کند. برخی مثال ها از مقایسه بین توالی های از همان نوع:" +"اشیاء دنباله ای معمولاً می توانند با دیگر اشیاء از همان نوع دنباله مقایسه " +"شوند. مقایسه از ترتیب *lexicographical* استفاده می کند: ابتدا دو آیتم اول " +"مقایسه می شوند و اگر متفاوت باشند، نتیجه مقایسه را تعیین می کند؛ اگر برابر " +"باشند، دو آیتم بعدی مقایسه می شوند و این روند ادامه می یابد تا زمانی که یکی " +"از دنباله ها تمام شود. اگر دو آیتمی که مقایسه می شوند خودشان دنباله هایی از " +"همان نوع باشند، مقایسه لغتنامه ای به صورت بازگشتی انجام می شود. اگر تمام " +"آیتم های دو دنباله برابر باشند، دنباله ها برابر در نظر گرفته می شوند. اگر یک" +" دنباله زیر-دنباله ابتدایی دیگری باشد، دنباله کوتاه تر کوچک تر در نظر گرفته " +"می شود. ترتیب لغتنامه ای برای رشته ها از شماره نقطه کد Unicode برای مرتب " +"سازی کاراکترهای فردی استفاده می کند. چند مثال از مقایسه بین دنباله های از " +"همان نوع::" #: ../../tutorial/datastructures.rst:716 #, fuzzy @@ -1647,13 +1583,13 @@ msgid "" "(1, 2, 3) == (1.0, 2.0, 3.0)\n" "(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)" msgstr "" -"(1، 2، 3) < (1، 2، 4)\n" -"[1، 2، 3] < [1، 2، 4]\n" +"(1, 2, 3) < (1, 2, 4)\n" +"[1, 2, 3] < [1, 2, 4]\n" "'ABC' < 'C' < 'Pascal' < 'Python'\n" -"(1، 2، 3، 4) < (1، 2، 4)\n" -"(1، 2) < (1، 2، -1)\n" -"(1، 2، 3) == (1.0، 2.0، 3.0)\n" -"(1، 2، ('aa'، 'ab')) < (1، 2، ('abc'، 'a')، 4)" +"(1, 2, 3, 4) < (1, 2, 4)\n" +"(1, 2) < (1, 2, -1)\n" +"(1, 2, 3) == (1.0, 2.0, 3.0)\n" +"(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4)" #: ../../tutorial/datastructures.rst:724 #, fuzzy @@ -1664,16 +1600,16 @@ msgid "" "equals 0.0, etc. Otherwise, rather than providing an arbitrary ordering, " "the interpreter will raise a :exc:`TypeError` exception." msgstr "" -"توجه داشته باشید که مقایسه اشیاء از انواع مختلف با \"``<``\" یا \"``>``\" " -"قانونی است، به شرطی که اشیاء دارای متدهای مقایسه مناسب باشند. برای مثال، " -"انواع عددی مختلط بر اساس مقدار عددی شان مقایسه می شوند، بنابراین ۰ برابر با " -"۰.۰ است، و غیره. در غیر این صورت، به جای ارائه یک ترتیب دلخواه، مفسر یک " -"استثنای \":exc:`TypeError`\" را فراخواهد خواند." +"توجه داشته باشید که مقایسه اشیاء از انواع مختلف با ``<`` یا ``>`` قانونی است" +" به شرطی که اشیاء روش های مقایسه مناسب داشته باشند. به عنوان مثال، انواع " +"عددی مختلط بر اساس مقدار عددی خود مقایسه می شوند، بنابراین 0 برابر 0.0 است و" +" غیره. در غیر این صورت، به جای ارائه یک ترتیب دلخواه، مفسر یک استثنا از نوع " +":exc:`TypeError` ایجاد خواهد کرد." #: ../../tutorial/datastructures.rst:732 #, fuzzy msgid "Footnotes" -msgstr "پانویس ها" +msgstr "پاورقی ها" #: ../../tutorial/datastructures.rst:733 #, fuzzy @@ -1681,6 +1617,6 @@ msgid "" "Other languages may return the mutated object, which allows method chaining," " such as ``d->insert(\"a\")->remove(\"b\")->sort();``." msgstr "" -"زبان های دیگر ممکن است شیء تغییر یافته را برگردانند، که این کار زنجیره سازی " -"متدها، مانند ``d->insert(\"a\")->remove(\"b\")->sort();`` را امکان پذیر می " -"سازد." +"زبان های دیگر ممکن است شیء تغییر یافته را برگردانند که این امکان را فراهم می" +" کند که متدها به صورت زنجیره ای فراخوانی شوند، مانند " +"``d->insert(\"a\")->remove(\"b\")->sort();``." diff --git a/tutorial/errors.po b/tutorial/errors.po index 9ef950d58..9fb68caf9 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -33,9 +33,9 @@ msgid "" "tried out the examples you have probably seen some. There are (at least) " "two distinguishable kinds of errors: *syntax errors* and *exceptions*." msgstr "" -"تا کنون پیام های خطا بیش از این ذکر نشده اند، اما اگر مثال ها را امتحان کرده" -" باشید احتمالاً برخی از آنها را مشاهده کرده اید. حداقل دو نوع خطای قابل " -"تشخیص وجود دارد: `*syntax errors*` و `*exceptions*`." +"تاکنون پیام های خطا بیش از آنچه که ذکر شد نبوده اند، اما اگر مثال ها را " +"امتحان کرده باشید احتمالاً برخی از آن ها را دیده اید. حداقل دو نوع اشتباه " +"قابل تمایز وجود دارد: *syntax errors* و *exceptions*." #: ../../tutorial/errors.rst:15 #, fuzzy @@ -48,8 +48,8 @@ msgid "" "Syntax errors, also known as parsing errors, are perhaps the most common " "kind of complaint you get while you are still learning Python::" msgstr "" -"خطاهای نحوی که به عنوان خطاهای تجزیه نیز شناخته می شوند، شاید رایج ترین نوع " -"شکایتی باشند که هنگام یادگیری Python دریافت می کنید::" +"خطاهای نحوی، که به عنوان خطاهای تجزیه نیز شناخته می شوند، شاید رایج ترین نوع" +" شکایتی هستند که هنگام یادگیری پایتون دریافت می کنید::" #: ../../tutorial/errors.rst:20 #, fuzzy @@ -60,13 +60,11 @@ msgid "" " ^^^^^\n" "SyntaxError: invalid syntax" msgstr "" -"```\n" ">>> while True print('Hello world')\n" " File \"\", line 1\n" " while True print('Hello world')\n" " ^^^^^\n" -"SyntaxError: invalid syntax\n" -"```" +"SyntaxError: syntax نامعتبر" #: ../../tutorial/errors.rst:26 #, fuzzy @@ -78,17 +76,17 @@ msgid "" "(``':'``) is missing before it. File name and line number are printed so " "you know where to look in case the input came from a script." msgstr "" -"تجزیه گر خطی که باعث خطا شده را تکرار می کند و فلش های کوچکی را نمایش می دهد" -" که به سمت توکنی در خط اشاره می کنند که خطا در آن شناسایی شده است. خطا ممکن " -"است به دلیل عدم وجود توکن *before* در توکن نشان داده شده ایجاد شده باشد. در " -"این مثال، خطا در تابع :func:`print` شناسایی شده است، زیرا یک دو نقطه " -"(``':'``) قبل از آن وجود ندارد. نام فایل و شماره خط چاپ می شود تا بدانید کجا" -" را بررسی کنید در صورتی که ورودی از یک اسکریپت آمده باشد." +"پارس کننده خط مورد نظر را دوباره تکرار کرده و فلش های کوچکی را نشان می دهد " +"که به نشانه ای در خط اشاره می کنند که خطا در آن تشخیص داده شده است. خطا ممکن" +" است به دلیل نبودن یک نشانه *before* در کنار نشانه مشخص شده ایجاد شده باشد. " +"در مثال، خطا در تابع :func:`print` تشخیص داده می شود، زیرا قبل از آن یک " +"دونقطه (``':'``) کم است. نام فایل و شماره خط نیز چاپ می شوند تا بدانید کجا " +"باید بررسی کنید، در صورتی که ورودی از یک اسکریپت آمده باشد." #: ../../tutorial/errors.rst:37 #, fuzzy msgid "Exceptions" -msgstr "استثناها" +msgstr "استثناء ها" #: ../../tutorial/errors.rst:39 #, fuzzy @@ -100,12 +98,12 @@ msgid "" "not handled by programs, however, and result in error messages as shown " "here::" msgstr "" -"حتی اگر یک عبارت یا دستور به لحاظ نحوی صحیح باشد، ممکن است هنگام اجرای آن " -"باعث بروز خطا شود. خطاهایی که در زمان اجرا شناسایی می شوند، *exceptions* " -"نامیده می شوند و به طور قطعی مرگبار نیستند: به زودی یاد خواهید گرفت که چگونه" -" آن ها را در برنامه های Python مدیریت کنید. با این حال، اکثر استثناها توسط " -"برنامه ها مدیریت نمی شوند و منجر به نمایش پیام های خطا می شوند، همان طور که " -"در اینجا نشان داده شده است::" +"حتی اگر یک دستور یا عبارت از نظر نحوی درست باشد، ممکن است هنگام تلاش برای " +"اجرای آن باعث خطا شود. خطاهایی که در حین اجرا شناسایی می شوند به نام " +"*exceptions* شناخته می شوند و کشنده بی شرط نیستند: به زودی یاد خواهید گرفت " +"که چگونه آنها را در برنامه های Python مدیریت کنید. با این حال، بیشتر " +"استثناها توسط برنامه ها مدیریت نمی شوند و منجر به پیام های خطا می شوند " +"همانطور که اینجا نمایش داده شده است::" #: ../../tutorial/errors.rst:45 #, fuzzy @@ -129,7 +127,6 @@ msgid "" " ~~~~^~~\n" "TypeError: can only concatenate str (not \"int\") to str" msgstr "" -"```\n" ">>> 10 * (1/0)\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" @@ -147,8 +144,7 @@ msgstr "" " File \"\", line 1, in \n" " '2' + 2\n" " ~~~~^~~\n" -"TypeError: can only concatenate str (not \"int\") to str\n" -"```" +"TypeError: can only concatenate str (not \"int\") to str" #: ../../tutorial/errors.rst:64 #, fuzzy @@ -162,21 +158,22 @@ msgid "" " a useful convention). Standard exception names are built-in identifiers " "(not reserved keywords)." msgstr "" -"خط آخر پیام خطا نشان می دهد که چه اتفاقی افتاده است. استثناها در انواع " -"مختلفی ظاهر می شوند و نوع آن ها به عنوان بخشی از پیام چاپ می شود: انواع " -"موجود در مثال عبارتند از :exc:`ZeroDivisionError`، :exc:`NameError` و " +"آخرین خط از پیام خطا نشان می دهد که چه اتفاقی افتاده است. استثناها دارای " +"انواع مختلفی هستند و نوع آنها به عنوان بخشی از پیام چاپ می شود: انواع موجود " +"در مثال عبارتند از :exc:`ZeroDivisionError`، :exc:`NameError` و " ":exc:`TypeError`. رشته ای که به عنوان نوع استثنا چاپ می شود، نام استثنای " -"داخلی اتفاق افتاده است. این امر برای تمام استثناهای داخلی صادق است، اما " -"لزوماً برای استثناهای تعریف شده توسط کاربر صدق نمی کند (هرچند که این یک " -"کنوانسیون مفید است). اسامی استثناهای استاندارد شناسه های داخلی هستند (نه " -"کلمات کلیدی رزرو شده)." +"داخلی است که رخ داده است. این موضوع برای تمام استثناهای داخلی صدق می کند، " +"اما برای استثناهای تعریف شده توسط کاربر لزوماً صحیح نیست (اگرچه این یک " +"قرارداد مفید است). نام های استثنای استاندارد شناسه های داخلی هستند (نه کلمات" +" کلیدی رزرو شده)." #: ../../tutorial/errors.rst:72 #, fuzzy msgid "" "The rest of the line provides detail based on the type of exception and what" " caused it." -msgstr "بقیه خط بر اساس نوع استثنا و علت آن جزئیات را ارائه می دهد." +msgstr "" +"بقیه خط بر اساس نوع استثنا و چیزی که باعث آن شده است، جزئیات ارائه می دهد." #: ../../tutorial/errors.rst:75 #, fuzzy @@ -186,17 +183,17 @@ msgid "" " a stack traceback listing source lines; however, it will not display lines " "read from standard input." msgstr "" -"قسم قبلی پیام خطا نشان دهنده ی محتوایی است که استثنا در آن رخ داده است، به " -"صورت یک گزارش از پشته ی فراخوانی (traceback). به طور کلی، این بخش شامل " -"گزارشی از پشته ی فراخوانی است که خطوط منبع را فهرست می کند؛ اما خطوطی که از " -"ورودی استاندارد خوانده می شوند را نمایش نمی دهد." +"قسمت قبلی پیام خطا، زمینه ای را که استثناء رخ داده است، به صورت یک traceback" +" پشته نشان می دهد. به طور کلی، این بخش شامل یک traceback پشته با خطوط منبع " +"است؛ با این حال، خطوطی که از ورودی استاندارد خوانده شده اند را نمایش نمی " +"دهد." #: ../../tutorial/errors.rst:80 #, fuzzy msgid "" ":ref:`bltin-exceptions` lists the built-in exceptions and their meanings." msgstr "" -":ref:`bltin-exceptions` فهرستی از استثناهای داخلی و معانی آن ها را ارائه می " +":ref:`bltin-exceptions` لیستی از استثناهای داخلی و معانی آن ها را ارائه می " "دهد." #: ../../tutorial/errors.rst:86 @@ -214,11 +211,11 @@ msgid "" "user-generated interruption is signalled by raising the " ":exc:`KeyboardInterrupt` exception. ::" msgstr "" -"امکان نوشتن برنامه هایی که استثناهای خاصی را مدیریت می کنند وجود دارد. به " -"مثال زیر توجه کنید، که از کاربر می خواهد تا زمانی که یک عدد صحیح معتبر وارد " -"نشده است، ورودی را وارد کند، اما به کاربر اجازه می دهد تا برنامه را قطع کند " -"(با استفاده از :kbd:`Control-C` یا هر چیزی که سیستم عامل پشتیبانی می کند)؛ " -"توجه کنید که یک قطع کاربر-ایجاد شده با برافراشته شدن استثنای " +"این امکان وجود دارد که برنامه هایی بنویسیم که استثناهای انتخاب شده را مدیریت" +" کنند. به مثال زیر نگاه کنید که از کاربر می خواهد تا زمانی که یک عدد صحیح " +"معتبر وارد نکرده است، ورودی بدهد، اما به کاربر اجازه می دهد تا برنامه را قطع" +" کند (با استفاده از :kbd:`Control-C` یا هرچی که سیستم عامل پشتیبانی می کند)؛" +" توجه کنید که یک وقفه ایجاد شده توسط کاربر با افزایش استثنای " ":exc:`KeyboardInterrupt` اعلام می شود. ::" #: ../../tutorial/errors.rst:94 @@ -232,20 +229,18 @@ msgid "" "... print(\"Oops! That was no valid number. Try again...\")\n" "..." msgstr "" -"```python\n" ">>> while True:\n" "... try:\n" "... x = int(input(\"لطفاً یک عدد وارد کنید: \"))\n" "... break\n" "... except ValueError:\n" -"... print(\"اوه! این یک عدد معتبر نبود. دوباره تلاش کنید...\")\n" -"...\n" -"```" +"... print(\"اوه! این یک عدد معتبر نبود. دوباره سعی کنید...\")\n" +"..." #: ../../tutorial/errors.rst:102 #, fuzzy msgid "The :keyword:`try` statement works as follows." -msgstr "دستور :keyword:`try` به صورت زیر عمل می کند." +msgstr "بیانیه :keyword:`try` به صورت زیر کار می کند." #: ../../tutorial/errors.rst:104 #, fuzzy @@ -253,8 +248,8 @@ msgid "" "First, the *try clause* (the statement(s) between the :keyword:`try` and " ":keyword:`except` keywords) is executed." msgstr "" -"ابتدا، *try clause* (دستورات بین کلمات کلیدی :keyword:`try` و " -":keyword:`except`) اجرا می شود." +"ابتدا، *try clause* (عبارتی که بین کلیدواژه های :keyword:`try` و " +":keyword:`except` قرار دارد) اجرا می شود." #: ../../tutorial/errors.rst:107 #, fuzzy @@ -273,10 +268,10 @@ msgid "" "named after the :keyword:`except` keyword, the *except clause* is executed, " "and then execution continues after the try/except block." msgstr "" -"اگر یک استثناء در طول اجرای بخش :keyword:`try` رخ دهد، بقیه ی بخش نادیده " -"گرفته می شود. سپس، اگر نوع آن با استثناء نام برده شده پس از کلمه کلیدی " -":keyword:`except` مطابقت داشته باشد، *except clause* اجرا شده و سپس اجرا بعد" -" از بلوک try/except ادامه می یابد." +"اگر استثنایی در حین اجرای عبارت :keyword:`try` رخ دهد، بقیه عبارت نادیده " +"گرفته می شود. سپس، اگر نوع آن با استثنای نام برده شده پس از کلمه کلیدی " +":keyword:`except` مطابقت داشته باشد، *except clause* اجرا می شود و سپس اجرای" +" برنامه بعد از بلوک try/except ادامه می یابد." #: ../../tutorial/errors.rst:115 #, fuzzy @@ -286,10 +281,10 @@ msgid "" "handler is found, it is an *unhandled exception* and execution stops with an" " error message." msgstr "" -"اگر استثنایی رخ دهد که با استثناء نام برده شده در \"*except clause*\" مطابقت" -" نداشته باشد، به \":keyword:`try`\" های بیرونی منتقل می شود؛ اگر هیچ مدیریت " -"کننده ای پیدا نشود، این یک \"*unhandled exception*\" بوده و اجرا با پیام خطا" -" متوقف می شود." +"اگر یک استثنا رخ دهد که با استثنای نام برده شده در *except clause* مطابقت " +"نداشته باشد، به دستورات :keyword:`try` بیرونی منتقل می شود؛ اگر هیچ مدیریت " +"کننده ای پیدا نشود، یک *unhandled exception* است و اجرا با یک پیام خطا متوقف" +" می شود." #: ../../tutorial/errors.rst:119 #, fuzzy @@ -301,12 +296,12 @@ msgid "" "An *except clause* may name multiple exceptions as a parenthesized tuple, " "for example::" msgstr "" -"یک دستور :keyword:`try` ممکن است بیش از یک *except clause* داشته باشد تا " -"گرداننده هایی برای استثناهای مختلف مشخص کند. حداکثر یک گرداننده اجرا خواهد " -"شد. گرداننده ها فقط استثناهایی را که در *try clause* مربوط به خودشان رخ می " -"دهد را مدیریت می کنند، نه در گرداننده های دیگر همان دستور :keyword:`!try`. " -"یک *except clause* ممکن است چندین استثنا را به صورت یک ویژگی پرانتزی نام " -"گذاری کند، برای مثال:" +"یک عبارت :keyword:`try` ممکن است بیش از یک *except clause* داشته باشد، تا " +"دستگیره هایی برای استثناهای مختلف مشخص کند. حداکثر یک دستگیره اجرا خواهد شد." +" دستگیره ها تنها استثناهایی را که در *try clause* مربوطه اتفاق می افتند را " +"مدیریت می کنند، نه در دیگر دستگیره های همان عبارت :keyword:`!try`. یک " +"*except clause* ممکن است چندین استثنا را به عنوان یک تپول در پرانتز نام " +"ببرد، برای مثال::" #: ../../tutorial/errors.rst:125 #, fuzzy @@ -315,7 +310,7 @@ msgid "" "... pass" msgstr "" "... به جز (RuntimeError، TypeError، NameError):\n" -"... pass" +"... عبور" #: ../../tutorial/errors.rst:128 #, fuzzy @@ -326,11 +321,11 @@ msgid "" "match instances of its base classes). For example, the following code will " "print B, C, D in that order::" msgstr "" -"کلاسی در یک قضیه :keyword:`except` با استثناهایی مطابقت دارد که نمونه هایی " -"از خود کلاس یا یکی از کلاس های مشتق شده از آن هستند (اما عکس این قضیه صادق " -"نیست --- یک فهرست *except clause* که یک کلاس مشتق شده را فهرست می کند، با " -"نمونه هایی از کلاس های پایه آن مطابقت ندارد). به عنوان مثال، کد زیر B، C، D " -"را به همان ترتیب چاپ خواهد کرد::" +"یک کلاس در یک بند :keyword:`except` با خطاهایی مطابقت دارد که نمونه هایی از " +"خود کلاس یا یکی از کلاس های مشتق شده از آن هستند (اما نه به صورت برعکس --- " +"یک *except clause* که یک کلاس مشتق شده را فهرست کرده است، با نمونه های کلاس " +"های پایه ی خود مطابقت ندارد). برای مثال، کد زیر به ترتیب B، C، D را چاپ " +"خواهد کرد::" #: ../../tutorial/errors.rst:133 #, fuzzy @@ -354,32 +349,24 @@ msgid "" " except B:\n" " print(\"B\")" msgstr "" -"```python\n" -"class B(Exception):\n" -" pass\n" +"کلاس `B` (استثنا): \n" +"عبور کنید\n" "\n" -"class C(B):\n" -" pass\n" +"کلاس `C` (مشتق از `B`): \n" +"عبور کنید\n" "\n" -"class D(C):\n" -" pass\n" +"کلاس `D` (مشتق از `C`): \n" +"عبور کنید\n" "\n" -"for cls in [B, C, D]:\n" -" try:\n" -" raise cls()\n" -" except D:\n" -" print(\"D\")\n" -" except C:\n" -" print(\"C\")\n" -" except B:\n" -" print(\"B\")\n" -"```\n" -"\n" -"این کد سه کلاس استثنا را تعریف می کند که کلاس های `C` و `D` به ترتیب زیرکلاس های کلاس `B` هستند. سپس در یک حلقه `for`، هر یک از این کلاس ها به ترتیب انجام شده و یک استثنا از هر کدام ایجاد و فراخوانی می شود. \n" -"\n" -"اگر استثنای `D` فراخوانی شود، بلوک `except D` اجرا شده و `D` چاپ می شود. اگر استثنای `C` فراخوانی شود، و چون `D` یک زیرکلاس از `C` است، بلوک `except C` اجرا شده و `C` چاپ می شود. در نهایت اگر استثنای `B` فراخوانی شود، که والد هر دو `C` و `D` است، بلوک `except B` اجرا شده و `B` چاپ می شود. \n" -"\n" -"بنابراین خروجی این کد به ترتیب `B`، `C` و `D` خواهد بود و این مراتب در هنگام اجرای استثنائات را نشان می دهد." +"برای `cls` در `[B, C, D]`: \n" +"سعی کنید: \n" +"کلاس را ایجاد کنید و آن را برانگیزید \n" +"اگر `D` بود: \n" +"چاپ کنید \"D\" \n" +"اگر `C` بود: \n" +"چاپ کنید \"C\" \n" +"اگر `B` بود: \n" +"چاپ کنید \"B\"" #: ../../tutorial/errors.rst:152 #, fuzzy @@ -388,9 +375,9 @@ msgid "" "it would have printed B, B, B --- the first matching *except clause* is " "triggered." msgstr "" -"توجه داشته باشید که اگر *except clauses* معکوس می شد (با ``except B`` در " -"ابتدا)، آن گاه B، B، B چاپ می شد --- اولین *except clause* مطابق، اعمال می " -"شود." +"توجه داشته باشید که اگر *except clauses* معکوس شود (با ``except B`` به عنوان" +" اول)، خروجی B، B، B خواهد بود --- اولین *except clause* مطابقت داده شده " +"فعال می شود." #: ../../tutorial/errors.rst:155 #, fuzzy @@ -399,9 +386,9 @@ msgid "" "exception's *arguments*. The presence and types of the arguments depend on " "the exception type." msgstr "" -"وقتی یک استثنا رخ می دهد، ممکن است مقادیر مرتبطی داشته باشد که به عنوان " -"*arguments* استثنا نیز شناخته می شود. حضور و انواع این آرگومان ها به نوع " -"استثنا بستگی دارد." +"زمانی که استثنایی رخ می دهد، ممکن است مقادیر مرتبطی داشته باشد که به عنوان " +"*arguments* استثناء شناخته می شوند. وجود و نوع آرگومان ها به نوع استثناء " +"بستگی دارد." #: ../../tutorial/errors.rst:159 #, fuzzy @@ -412,11 +399,10 @@ msgid "" "types define :meth:`~object.__str__` to print all the arguments without " "explicitly accessing ``.args``. ::" msgstr "" -"متغیر *except clause* ممکن است بعد از نام استثنا مشخص شود. این متغیر به " -"نمونه استثنا متصل می شود که معمولاً دارای یک ویژگی ``args`` است که آرگومان " -"ها را ذخیره می کند. برای سهولت، انواع استثناهای داخلی " -":meth:`~object.__str__` را تعریف می کنند تا بدون دسترسی صریح به ``.args``، " -"تمام آرگومان ها را چاپ کند. ::" +"ممکن است *except clause* یک متغیر بعد از نام استثنا مشخص کند. این متغیر به " +"نمونه استثنا باند می شود که معمولاً یک ویژگی ``args`` دارد که آرگومان ها را " +"ذخیره می کند. برای راحتی، نوع های استثنای داخلی :meth:`~object.__str__` را " +"تعریف می کنند تا همه آرگومان ها را بدون دسترسی صریح به ``.args`` چاپ کند.::" #: ../../tutorial/errors.rst:165 #, fuzzy @@ -438,15 +424,14 @@ msgid "" "x = spam\n" "y = eggs" msgstr "" -"```python\n" ">>> try:\n" "... raise Exception('spam', 'eggs')\n" "... except Exception as inst:\n" -"... print(type(inst)) # نوع استثنا\n" +"... print(type(inst)) # نوع استثناء\n" "... print(inst.args) # آرگومان ها ذخیره شده در .args\n" -"... print(inst) # __str__ اجازه می دهد که آرگومان ها به طور مستقیم چاپ شوند،\n" -"... # اما ممکن است در زیردسته های استثنا بازنویسی شود\n" -"... x, y = inst.args # بازکردن آرگومان ها\n" +"... print(inst) # __str__ اجازه می دهد args مستقیم چاپ شوند،\n" +"... # اما ممکن است در زیرکلاس های استثناء بازنویسی شود\n" +"... x, y = inst.args # بازکردن args\n" "... print('x =', x)\n" "... print('y =', y)\n" "...\n" @@ -454,8 +439,7 @@ msgstr "" "('spam', 'eggs')\n" "('spam', 'eggs')\n" "x = spam\n" -"y = eggs\n" -"```" +"y = eggs" #: ../../tutorial/errors.rst:182 #, fuzzy @@ -463,8 +447,8 @@ msgid "" "The exception's :meth:`~object.__str__` output is printed as the last part " "('detail') of the message for unhandled exceptions." msgstr "" -"خروجی ``:meth:`~object.__str__``` این استثنا به عنوان آخرین بخش ('جزئیات') " -"پیام برای استثناهای پردازش نشده چاپ می شود." +"خروجی استثنای :meth:`~object.__str__` به عنوان آخرین بخش ('جزئیات') پیام " +"برای استثناهای مدیریت نشده چاپ می شود." #: ../../tutorial/errors.rst:185 #, fuzzy @@ -477,13 +461,13 @@ msgid "" ":meth:`sys.exit` and :exc:`KeyboardInterrupt` which is raised when a user " "wishes to interrupt the program." msgstr "" -"کلاس پایه مشترک تمامی استثناها، `:exc:`BaseException`` است. یکی از زیرکلاس " -"های آن، `:exc:`Exception``، کلاس پایه تمامی استثناهای غیرکشنده است. " -"استثناهایی که زیرکلاس `:exc:`Exception`` نیستند، به طور معمول مدیریت نمی " -"شوند زیرا از آن ها برای نشان دادن این استفاده می شود که برنامه باید خاتمه " -"یابد. آن ها شامل `:exc:`SystemExit`` هستند که توسط `:meth:`sys.exit`` ایجاد " -"می شوند و همچنین شامل `:exc:`KeyboardInterrupt`` که هنگامی که یک کاربر می " -"خواهد برنامه را متوقف کند، ایجاد می شود." +"کلاس پایه مشترک تمام استثناها :exc:`BaseException` است. یکی از زیرکلاس های " +"آن، :exc:`Exception`، کلاس پایه تمام استثناهای غیرمهلک است. استثناهایی که " +"زیرکلاس :exc:`Exception` نیستند، معمولاً مدیریت نمی شوند، زیرا آنها برای " +"نشان دادن این موضوع استفاده می شوند که برنامه باید خاتمه یابد. آنها شامل " +":exc:`SystemExit` هستند که توسط :meth:`sys.exit` ایجاد می شوند و " +":exc:`KeyboardInterrupt` که زمانی ایجاد می شود که کاربر بخواهد برنامه را " +"متوقف کند." #: ../../tutorial/errors.rst:193 #, fuzzy @@ -493,10 +477,10 @@ msgid "" "of exceptions that we intend to handle, and to allow any unexpected " "exceptions to propagate on." msgstr "" -"`:exc:`Exception`` می تواند به عنوان یک کاراکتر جایگزین استفاده شود که " -"(تقریباً) همه چیز را می گیرد. با این حال، بهترین روش این است که تا حد امکان " -"به انواع خاصی از استثناها که قصد داریم مدیریت کنیم، محدود شویم و اجازه دهیم " -"هر استثنای غیرمنتظره ای به مسیر خود ادامه دهد." +"می توان از :exc:`Exception` به عنوان یک علامت جایگزین استفاده کرد که " +"(تقریباً) همه چیز را می گیرد. با این حال، بهتر است تا حد امکان در مورد نوع " +"استثناهایی که قصد داریم مدیریت کنیم خاص باشیم و اجازه دهیم تا هر استثنای " +"غیرمنتظره ای به جلو برود." #: ../../tutorial/errors.rst:198 #, fuzzy @@ -505,9 +489,9 @@ msgid "" " exception and then re-raise it (allowing a caller to handle the exception " "as well)::" msgstr "" -"الگوی رایج برای مدیریت :exc:`Exception` این است که استثنا را چاپ یا ثبت کرده" -" و سپس دوباره آن را بازنشانی کنید (به طوری که امکان مدیریت استثنا توسط " -"فراخوان نیز فراهم شود):" +"الگوی معمول برای رسیدگی به :exc:`Exception` این است که خطا را چاپ یا ثبت " +"کرده و سپس دوباره آن را منتشر کنید (با این کار به فراخواننده اجازه می دهید " +"که به خطا رسیدگی کند)::" #: ../../tutorial/errors.rst:202 #, fuzzy @@ -527,19 +511,19 @@ msgid "" " raise" msgstr "" "```python\n" -"وارد کردن sys\n" +"import sys\n" "\n" -"سعی کنید:\n" -" f را باز کنید('myfile.txt')\n" +"try:\n" +" f = open('myfile.txt')\n" " s = f.readline()\n" " i = int(s.strip())\n" -"به جز OSError به عنوان err:\n" -" چاپ کنید (\"خطای سیستم عامل:\", err)\n" -"به جز ValueError:\n" -" چاپ کنید (\"امکان تبدیل داده به یک عدد صحیح وجود ندارد.\")\n" -"به جز Exception به عنوان err:\n" -" چاپ کنید (f\"غیرمنتظره {err=}, {type(err)=}\")\n" -" افزایش دهید\n" +"except OSError as err:\n" +" print(\"خطای سیستم عامل:\", err)\n" +"except ValueError:\n" +" print(\"نمی توان داده ها را به عدد صحیح تبدیل کرد.\")\n" +"except Exception as err:\n" +" print(f\"پیش بینی نشده {err=}, {type(err)=}\")\n" +" raise\n" "```" #: ../../tutorial/errors.rst:216 @@ -550,9 +534,10 @@ msgid "" "useful for code that must be executed if the *try clause* does not raise an " "exception. For example::" msgstr "" -"بیانیه :keyword:`try` ... :keyword:`except` یک *else clause* اختیاری دارد که" -" در صورت وجود باید پس از تمام *except clauses* قرار گیرد. این برای کدی مفید " -"است که باید اجرا شود اگر *try clause* استثنایی ایجاد نکند. برای مثال:" +"بیانیه :keyword:`try` ... :keyword:`except` دارای یک *else clause* اختیاری " +"است که در صورت حضور، باید پس از همه *except clauses* بیاید. این امر برای کدی" +" که باید اجرا شود اگر *try clause* استثنایی را به وجود نیاورد مفید است. برای" +" مثال::" #: ../../tutorial/errors.rst:221 #, fuzzy @@ -566,16 +551,14 @@ msgid "" " print(arg, 'has', len(f.readlines()), 'lines')\n" " f.close()" msgstr "" -"```python\n" -"برای arg در sys.argv[1:]:\n" -" سعی کنید:\n" -" f = open(arg, 'r')\n" -" به جز OSError:\n" -" print('نمی توان باز کرد', arg)\n" +"برای هر `arg` در `sys.argv[1:]`:\n" +" تلاش کن:\n" +" `f` را به صورت `open(arg, 'r')` باز کن\n" +" به جز `OSError`:\n" +" `print('cannot open', arg)` را اجرا کن\n" " در غیر این صورت:\n" -" print(arg, 'دارای', len(f.readlines()), 'خطوط است')\n" -" f.close()\n" -"```" +" `print(arg, 'has', len(f.readlines()), 'lines')` را اجرا کن\n" +" `f.close()` را اجرا کن" #: ../../tutorial/errors.rst:230 #, fuzzy @@ -585,10 +568,10 @@ msgid "" "exception that wasn't raised by the code being protected by the " ":keyword:`!try` ... :keyword:`!except` statement." msgstr "" -"استفاده از بند :keyword:`!else` بهتر از افزودن کد اضافی به بند " -":keyword:`try` است، زیرا از گیر انداختن تصادفی یک استثنا که توسط کد محافظت " -"شده توسط عبارت :keyword:`!try` ... :keyword:`!except` مطرح نشده، جلوگیری می " -"کند." +"استفاده از بند :keyword:`!else` بهتر از اضافه کردن کد اضافی به بند " +":keyword:`try` است زیرا این کار از گیر افتادن تصادفی یک استثنا که توسط کدی " +"که توسط عبارت :keyword:`!try` ... :keyword:`!except` محافظت می شود، جلوگیری " +"می کند." #: ../../tutorial/errors.rst:235 #, fuzzy @@ -597,10 +580,9 @@ msgid "" "the *try clause*, but also those that occur inside functions that are called" " (even indirectly) in the *try clause*. For example::" msgstr "" -"مدیریت کننده های استثنا تنها استثناهایی که بلافاصله در *try clause* رخ می " -"دهند را مدیریت نمی کنند، بلکه استثناهایی که در داخل توابع فراخوانی شده (حتی " -"به طور غیرمستقیم) در *try clause* نیز رخ می دهند را پوشش می دهند. برای " -"مثال::" +"مدیریت کننده های استثنا تنها استثناهایی را که بلافاصله در *try clause* رخ می" +" دهند مدیریت نمی کنند، بلکه آن هایی که در داخل توابعی که (حتی به صورت " +"غیرمستقیم) در *try clause* فراخوانده می شوند نیز مدیریت می کنند. برای مثال::" #: ../../tutorial/errors.rst:239 #, fuzzy @@ -615,22 +597,20 @@ msgid "" "...\n" "Handling run-time error: division by zero" msgstr "" -"```python\n" ">>> def this_fails():\n" "... x = 1/0\n" "...\n" ">>> try:\n" "... this_fails()\n" "... except ZeroDivisionError as err:\n" -"... print('رفع خطای زمان اجرا:', err)\n" +"... print('Handling run-time error:', err)\n" "...\n" -"رفع خطای زمان اجرا: division by zero\n" -"```" +"Handling run-time error: division by zero" #: ../../tutorial/errors.rst:253 #, fuzzy msgid "Raising Exceptions" -msgstr "بالا بردن استثناها" +msgstr "برخواستن استثنائات" #: ../../tutorial/errors.rst:255 #, fuzzy @@ -638,8 +618,8 @@ msgid "" "The :keyword:`raise` statement allows the programmer to force a specified " "exception to occur. For example::" msgstr "" -"بیانیه :keyword:`raise` به برنامه نویس این امکان را می دهد که به طور عمد یک " -"استثناء تعیین شده را ایجاد کند. به عنوان مثال::" +"دستور :keyword:`raise` به برنامه نویس این امکان را می دهد که یک استثنا خاص " +"را وادار به وقوع کند. به عنوان مثال::" #: ../../tutorial/errors.rst:258 #, fuzzy @@ -650,11 +630,11 @@ msgid "" " raise NameError('HiThere')\n" "NameError: HiThere" msgstr "" -"```>>> raise NameError('HiThere')\n" -"بازگشت به دنبال کردن خطا (آخرین تماس اخیر):\n" -" فایل \"\"، خط ۱، در \n" +">>> raise NameError('HiThere')\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" " raise NameError('HiThere')\n" -"NameError: HiThere```" +"NameError: HiThere" #: ../../tutorial/errors.rst:264 #, fuzzy @@ -665,19 +645,16 @@ msgid "" " its subclasses). If an exception class is passed, it will be implicitly " "instantiated by calling its constructor with no arguments::" msgstr "" -"تنها آرگومان برای :keyword:`raise` نشان دهنده استثنایی است که باید ایجاد " -"شود. این باید یا یک نمونه استثناء باشد یا یک کلاس استثناء (کلاسی که از " -":class:`BaseException` ارث برده باشد، مانند :exc:`Exception` یا یکی از " -"زیرکلاس های آن). اگر یک کلاس استثناء ارسال شود، با فراخوانی سازنده آن بدون " -"هیچ آرگومانی به صورت ضمنی نمونه سازی خواهد شد." +"تنها آرگومان به :keyword:`raise` نشان دهنده استثنایی است که باید برانگیخته " +"شود. این باید یا یک نمونه استثناء یا یک کلاس استثناء باشد (کلاسی که از " +":class:`BaseException` مشتق شده است، مانند :exc:`Exception` یا یکی از " +"زیرکلاس های آن). اگر یک کلاس استثناء ارسال شود، به صورت ضمنی با فراخوانی " +"سازنده اش بدون آرگومان نمونه سازی می شود::" #: ../../tutorial/errors.rst:270 #, fuzzy msgid "raise ValueError # shorthand for 'raise ValueError()'" -msgstr "" -"```python\n" -"raise ValueError # «خطای مقدار» را فراخوانی می کند. این معادل مختصر 'raise ValueError()' است.\n" -"```" +msgstr "یک خطای ValueError ایجاد کن # شکل کوتاه 'raise ValueError()'" #: ../../tutorial/errors.rst:272 #, fuzzy @@ -686,9 +663,9 @@ msgid "" " handle it, a simpler form of the :keyword:`raise` statement allows you to " "re-raise the exception::" msgstr "" -"اگر نیاز دارید بررسی کنید که آیا یک استثنا رخ داده اما قصد ندارید آن را " -"مدیریت کنید، یک شکل ساده تر از عبارت :keyword:`raise` به شما این امکان را می" -" دهد که استثنا را مجدداً مطرح کنید::" +"اگر نیاز دارید مشخص کنید که آیا یک استثنا ایجاد شده است یا خیر، اما قصد " +"مدیریت آن را ندارید، یک فرم ساده تر از عبارت :keyword:`raise` به شما اجازه " +"می دهد استثنا را دوباره ایجاد کنید::" #: ../../tutorial/errors.rst:276 #, fuzzy @@ -705,24 +682,22 @@ msgid "" " raise NameError('HiThere')\n" "NameError: HiThere" msgstr "" -"```python\n" ">>> try:\n" "... raise NameError('HiThere')\n" "... except NameError:\n" -"... print('یک استثنا اتفاق افتاد!')\n" +"... print('یک استثنا پیش آمد!')\n" "... raise\n" "...\n" -"یک استثنا اتفاق افتاد!\n" +"یک استثنا پیش آمد!\n" "Traceback (most recent call last):\n" " File \"\", line 2, in \n" " raise NameError('HiThere')\n" -"NameError: HiThere\n" -"```" +"NameError: HiThere" #: ../../tutorial/errors.rst:292 #, fuzzy msgid "Exception Chaining" -msgstr "زنجیره استثناها" +msgstr "زنجیره سازی استثنا ها" #: ../../tutorial/errors.rst:294 #, fuzzy @@ -731,8 +706,8 @@ msgid "" "will have the exception being handled attached to it and included in the " "error message::" msgstr "" -"اگر یک استثنای رسیدگی نشده در بخش :keyword:`except` رخ دهد، استثنای موردنظر " -"به آن پیوست شده و در پیام خطا گنجانده خواهد شد::" +"اگر یک استثنای پردازش نشده در یک بخش :keyword:`except` رخ دهد، استثنای در " +"حال پردازش به آن متصل می شود و در پیام خطا درج می گردد::" #: ../../tutorial/errors.rst:298 #, fuzzy @@ -755,25 +730,23 @@ msgid "" " raise RuntimeError(\"unable to handle error\")\n" "RuntimeError: unable to handle error" msgstr "" -"```python\n" ">>> try:\n" "... open(\"database.sqlite\")\n" "... except OSError:\n" "... raise RuntimeError(\"unable to handle error\")\n" "...\n" -"```\n" -"دریافت خطا (آخرین تماس اخیر):\n" -" فایل \"\", خط 2، در \n" -" `open(\"database.sqlite\")`\n" +"Traceback (most recent call last):\n" +" File \"\", line 2, in \n" +" open(\"database.sqlite\")\n" " ~~~~^^^^^^^^^^^^^^^^^^^\n" -"`FileNotFoundError`: [Errno 2] عدم وجود چنین فایل یا دایرکتوری: 'database.sqlite'\n" +"FileNotFoundError: [Errno 2] No such file or directory: 'database.sqlite'\n" "\n" -"در هنگام پردازش استثناء فوق، استثناء دیگری رخ داد:\n" +"در حین رسیدگی به استثناء فوق، استثناء دیگری رخ داد:\n" "\n" -"دریافت خطا (آخرین تماس اخیر):\n" -" فایل \"\", خط 4، در \n" -" `raise RuntimeError(\"unable to handle error\")`\n" -"`RuntimeError`: unable to handle error" +"Traceback (most recent call last):\n" +" File \"\", line 4, in \n" +" raise RuntimeError(\"unable to handle error\")\n" +"RuntimeError: unable to handle error" #: ../../tutorial/errors.rst:316 #, fuzzy @@ -782,9 +755,9 @@ msgid "" ":keyword:`raise` statement allows an optional :keyword:`from` " "clause::" msgstr "" -"برای نشان دادن این که یک استثنا نتیجه مستقیم دیگری است، عبارت " -":keyword:`raise` اجازه می دهد که یک بند اختیاری :keyword:`from` " -"استفاده شود::" +"برای نشان دادن اینکه یک استثنا نتیجه مستقیم یک استثنای دیگر است، دستور " +":keyword:`raise` اجازه استفاده از بند اختیاری :keyword:`from` را می " +"دهد::" #: ../../tutorial/errors.rst:319 #, fuzzy @@ -792,14 +765,14 @@ msgid "" "# exc must be exception instance or None.\n" "raise RuntimeError from exc" msgstr "" -"# exc باید یک نمونه از استثناء یا None باشد.\n" +"# exc باید یک نمونه استثنا یا None باشد.\n" "raise RuntimeError from exc" #: ../../tutorial/errors.rst:322 #, fuzzy msgid "This can be useful when you are transforming exceptions. For example::" msgstr "" -"این می تواند زمانی که شما استثناها را تبدیل می کنید مفید باشد. برای مثال::" +"این می تواند زمانی که شما در حال تبدیل استثناها هستید مفید باشد. برای مثال::" #: ../../tutorial/errors.rst:324 #, fuzzy @@ -826,7 +799,7 @@ msgid "" " raise RuntimeError('Failed to open database') from exc\n" "RuntimeError: Failed to open database" msgstr "" -"```>>> def func():\n" +">>> def func():\n" "... raise ConnectionError\n" "...\n" ">>> try:\n" @@ -834,19 +807,19 @@ msgstr "" "... except ConnectionError as exc:\n" "... raise RuntimeError('Failed to open database') from exc\n" "...\n" -"Traceback (most recent call last):\n" +"ردیابی (آخرین فراخوانی در آخر):\n" " File \"\", line 2, in \n" " func()\n" " ~~~~^^\n" " File \"\", line 2, in func\n" "ConnectionError\n" "\n" -"این استثنای بالا علت مستقیم استثنای زیر بود:\n" +"استثنای بالا علت مستقیم استثنای زیر بود:\n" "\n" -"Traceback (most recent call last):\n" +"ردیابی (آخرین فراخوانی در آخر):\n" " File \"\", line 4, in \n" " raise RuntimeError('Failed to open database') from exc\n" -"RuntimeError: Failed to open database```" +"RuntimeError: Failed to open database" #: ../../tutorial/errors.rst:346 #, fuzzy @@ -854,8 +827,8 @@ msgid "" "It also allows disabling automatic exception chaining using the ``from " "None`` idiom::" msgstr "" -"همچنین به شما این امکان را می دهد که زنجیره خودکار استثنا ها را با استفاده " -"از اصطلاح ``from None`` غیرفعال کنید::" +"همچنین اجازه می دهد غیرفعال کردن زنجیره سازی خودکار استثناها با استفاده از " +"ایدیوم ``from None``::" #: ../../tutorial/errors.rst:349 #, fuzzy @@ -870,7 +843,6 @@ msgid "" " raise RuntimeError from None\n" "RuntimeError" msgstr "" -"```python\n" ">>> try:\n" "... open('database.sqlite')\n" "... except OSError:\n" @@ -879,15 +851,14 @@ msgstr "" "Traceback (most recent call last):\n" " File \"\", line 4, in \n" " raise RuntimeError from None\n" -"RuntimeError\n" -"```" +"RuntimeError" #: ../../tutorial/errors.rst:359 #, fuzzy msgid "" "For more information about chaining mechanics, see :ref:`bltin-exceptions`." msgstr "" -"برای کسب اطلاعات بیشتر درباره مکانیک زنجیره ای، به :ref:`bltin-exceptions` " +"برای اطلاعات بیشتر در مورد مکانیک های زنجیره ای، به :ref:`bltin-exceptions` " "مراجعه کنید." #: ../../tutorial/errors.rst:365 @@ -903,10 +874,10 @@ msgid "" "typically be derived from the :exc:`Exception` class, either directly or " "indirectly." msgstr "" -"برنامه ها می توانند استثناهای خود را با ایجاد یک کلاس استثنا جدید نام گذاری " -"کنند (برای اطلاعات بیشتر در مورد کلاس های پایتون به :ref:`tut-classes` " -"مراجعه کنید). استثناها معمولاً باید از کلاس :exc:`Exception`، به صورت مستقیم" -" یا غیرمستقیم مشتق شوند." +"برنامه ها می توانند با ایجاد یک کلاس استثنای جدید، استثناهای خود را نام " +"گذاری کنند (برای اطلاعات بیشتر درباره کلاس های پایتون به :ref:`tut-classes` " +"مراجعه کنید). به طور معمول استثناها باید به طور مستقیم یا غیرمستقیم از کلاس " +":exc:`Exception` مشتق شوند." #: ../../tutorial/errors.rst:371 #, fuzzy @@ -916,10 +887,10 @@ msgid "" " allow information about the error to be extracted by handlers for the " "exception." msgstr "" -"کلاس های استثنا می توانند تعریف شوند به طوری که هر کاری که هر کلاس دیگری می " -"تواند انجام دهد را انجام دهند، اما معمولاً ساده نگه داشته می شوند و اغلب " -"تنها چند ویژگی ارائه می دهند که امکان استخراج اطلاعات درباره ی خطا توسط " -"هندلرهای استثنا را فراهم می کند." +"کلاس های استثنا می توانند تعریف شوند و هر کاری که هر کلاس دیگری می تواند " +"انجام دهد را انجام دهند، اما معمولاً به صورت ساده نگه داشته می شوند و اغلب " +"فقط تعدادی ویژگی ارائه می دهند که به مدیران استثنا اجازه می دهد اطلاعاتی " +"درباره خطا استخراج کنند." #: ../../tutorial/errors.rst:375 #, fuzzy @@ -927,7 +898,7 @@ msgid "" "Most exceptions are defined with names that end in \"Error\", similar to the" " naming of the standard exceptions." msgstr "" -"بیشتر استثناها با نام هایی تعریف می شوند که به \"Error\" ختم می شوند، مشابه " +"بیشتر استثناها با نام هایی که به \"Error\" ختم می شوند تعریف شده اند، مشابه " "نام گذاری استثناهای استاندارد." #: ../../tutorial/errors.rst:378 @@ -936,13 +907,13 @@ msgid "" "Many standard modules define their own exceptions to report errors that may " "occur in functions they define." msgstr "" -"بسیاری از ماژول های استاندارد استثناهای خاص خود را تعریف می کنند تا خطاهایی " -"را که ممکن است در توابعی که تعریف می کنند رخ دهد، گزارش دهند." +"بسیاری از ماژول های استاندارد استثناهای خود را تعریف می کنند تا خطاهایی که " +"ممکن است در توابعی که تعریف می کنند رخ دهند را گزارش دهند." #: ../../tutorial/errors.rst:385 #, fuzzy msgid "Defining Clean-up Actions" -msgstr "تعریف اقدامات پاک سازی" +msgstr "تعریف اقدامات پاکسازی" #: ../../tutorial/errors.rst:387 #, fuzzy @@ -951,9 +922,8 @@ msgid "" "to define clean-up actions that must be executed under all circumstances. " "For example::" msgstr "" -"عبارت :keyword:`try` دارای یک بند اختیاری دیگر است که برای تعریف اقداماتی " -"جهت پاکسازی در نظر گرفته شده است که باید تحت هر شرایطی اجرا شوند. برای " -"مثال::" +"عبارت :keyword:`try` شامل یک بند اختیاری دیگر است که هدف آن تعریف اقداماتی " +"برای پاکسازی است که باید تحت هر شرایطی اجرا شوند. برای مثال::" #: ../../tutorial/errors.rst:391 #, fuzzy @@ -969,18 +939,16 @@ msgid "" " raise KeyboardInterrupt\n" "KeyboardInterrupt" msgstr "" -"```python\n" ">>> try:\n" "... raise KeyboardInterrupt\n" "... finally:\n" -"... print('خداحافظ، دنیا!')\n" +"... print('Goodbye, world!')\n" "...\n" -"خداحافظ، دنیا!\n" +"Goodbye, world!\n" "Traceback (most recent call last):\n" " File \"\", line 2, in \n" " raise KeyboardInterrupt\n" -"KeyboardInterrupt\n" -"```" +"KeyboardInterrupt" #: ../../tutorial/errors.rst:402 #, fuzzy @@ -991,11 +959,11 @@ msgid "" "statement produces an exception. The following points discuss more complex " "cases when an exception occurs:" msgstr "" -"اگر یک بند :keyword:`finally` وجود داشته باشد، بند :keyword:`!finally` به " -"عنوان آخرین وظیفه قبل از کامل شدن دستور :keyword:`try` اجرا خواهد شد. بند " -":keyword:`!finally` اجرا می شود، چه دستور :keyword:`!try` استثنایی تولید کند" -" یا نه. نکات زیر به بررسی موارد پیچیده تری می پردازند که وقتی استثنایی رخ می" -" دهد:" +"اگر یک بند :keyword:`finally` موجود باشد، بند :keyword:`!finally` به عنوان " +"آخرین وظیفه قبل از کامل شدن دستور :keyword:`try` اجرا خواهد شد. بند " +":keyword:`!finally` اجرا می شود چه دستور :keyword:`!try` استثناء تولید کند " +"یا نه. نکات زیر موارد پیچیده تری را زمانی که یک استثناء رخ می دهد مورد بحث " +"قرار می دهند:" #: ../../tutorial/errors.rst:408 #, fuzzy @@ -1005,10 +973,10 @@ msgid "" " not handled by an :keyword:`!except` clause, the exception is re-raised " "after the :keyword:`!finally` clause has been executed." msgstr "" -"اگر یک استثنا در حین اجرای بخش :keyword:`!try` رخ دهد، ممکن است این استثنا " -"توسط یک بخش :keyword:`except` مورد پردازش قرار گیرد. اگر استثنا توسط بخش " -":keyword:`!except` پردازش نشود، بعد از اجرای بخش :keyword:`!finally`، استثنا" -" دوباره مطرح می شود." +"اگر استثنایی در حین اجرای بند :keyword:`!try` رخ دهد، ممکن است استثناء توسط " +"بند :keyword:`except` مدیریت شود. اگر استثناء توسط بند :keyword:`!except` " +"مدیریت نشود، پس از اجرای بند :keyword:`!finally` استثناء دوباره مطرح خواهد " +"شد." #: ../../tutorial/errors.rst:414 #, fuzzy @@ -1017,9 +985,9 @@ msgid "" ":keyword:`!else` clause. Again, the exception is re-raised after the " ":keyword:`!finally` clause has been executed." msgstr "" -"ممکن است یک استثنا در زمان اجرای یک بند :keyword:`!except` یا " -":keyword:`!else` رخ دهد. مجدداً، استثنا پس از اجرای بند :keyword:`!finally` " -"دوباره پیش آمد می شود." +"ممکن است یک استثناء در حین اجرای بند :keyword:`!except` یا :keyword:`!else` " +"رخ دهد. دوباره، استثناء پس از اجرای بند :keyword:`!finally` مجدداً ایجاد می " +"شود." #: ../../tutorial/errors.rst:418 #, fuzzy @@ -1028,8 +996,8 @@ msgid "" ":keyword:`continue` or :keyword:`return` statement, exceptions are not re-" "raised." msgstr "" -"اگر بند :keyword:`!finally`، دستور :keyword:`break`، :keyword:`continue` یا " -":keyword:`return` را اجرا کند، استثناها دوباره برانگیخته نمی شوند." +"اگر شرط :keyword:`!finally` یک عبارت :keyword:`break`، :keyword:`continue` " +"یا :keyword:`return` را اجرا کند، استثناها دوباره ایجاد نمی شوند." #: ../../tutorial/errors.rst:422 #, fuzzy @@ -1040,8 +1008,9 @@ msgid "" ":keyword:`!continue` or :keyword:`!return` statement's execution." msgstr "" "اگر دستور :keyword:`!try` به یک دستور :keyword:`break`، :keyword:`continue` " -"یا :keyword:`return` برسد، بند :keyword:`!finally` درست قبل از اجرای دستور " -":keyword:`!break`، :keyword:`!continue` یا :keyword:`!return` اجرا می شود." +"یا :keyword:`return` برسد، عبارت :keyword:`!finally` دقیقاً قبل از اجرای " +"دستور :keyword:`!break`، :keyword:`!continue` یا :keyword:`!return` اجرا " +"خواهد شد." #: ../../tutorial/errors.rst:428 #, fuzzy @@ -1051,9 +1020,10 @@ msgid "" ":keyword:`!return` statement, not the value from the :keyword:`!try` " "clause's :keyword:`!return` statement." msgstr "" -"اگر یک بند :keyword:`!finally` شامل یک عبارت :keyword:`!return` باشد، مقدار " -"بازگشتی از عبارت :keyword:`!return` بند :keyword:`!finally` خواهد بود، نه " -"مقدار عبارت :keyword:`!return` بند :keyword:`!try`." +"اگر یک عبارت :keyword:`!finally` شامل یک دستور :keyword:`!return` باشد، " +"مقدار بازگشتی، مقداری از دستور :keyword:`!return` در عبارت " +":keyword:`!finally` خواهد بود، نه مقداری از دستور :keyword:`!return` در " +"عبارت :keyword:`!try`." #: ../../tutorial/errors.rst:434 #, fuzzy @@ -1072,7 +1042,6 @@ msgid "" ">>> bool_return()\n" "False" msgstr "" -"```python\n" ">>> def bool_return():\n" "... try:\n" "... return True\n" @@ -1080,13 +1049,12 @@ msgstr "" "... return False\n" "...\n" ">>> bool_return()\n" -"False\n" -"```" +"False" #: ../../tutorial/errors.rst:445 #, fuzzy msgid "A more complicated example::" -msgstr "یک مثال پیچیده تر:" +msgstr "یک مثال پیچیده تر::" #: ../../tutorial/errors.rst:447 #, fuzzy @@ -1118,25 +1086,24 @@ msgid "" " ~~^~~\n" "TypeError: unsupported operand type(s) for /: 'str' and 'str'" msgstr "" -"```python\n" ">>> def divide(x, y):\n" "... try:\n" "... result = x / y\n" "... except ZeroDivisionError:\n" "... print(\"تقسیم بر صفر!\")\n" "... else:\n" -"... print(\"نتیجه\", result, \"است\")\n" +"... print(\"نتیجه\", result)\n" "... finally:\n" -"... print(\"اجرای بلوک نهایی\")\n" +"... print(\"اجرای بخش نهایی\")\n" "...\n" ">>> divide(2, 1)\n" -"نتیجه 2.0 است\n" -"اجرای بلوک نهایی\n" +"نتیجه 2.0\n" +"اجرای بخش نهایی\n" ">>> divide(2, 0)\n" "تقسیم بر صفر!\n" -"اجرای بلوک نهایی\n" +"اجرای بخش نهایی\n" ">>> divide(\"2\", \"1\")\n" -"اجرای بلوک نهایی\n" +"اجرای بخش نهایی\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" " divide(\"2\", \"1\")\n" @@ -1144,8 +1111,7 @@ msgstr "" " File \"\", line 3, in divide\n" " result = x / y\n" " ~~^~~\n" -"TypeError: نوع های عملوند پشتیبانی نمی شوند برای /: 'str' و 'str'\n" -"```" +"TypeError: unsupported operand type(s) for /: 'str' and 'str'" #: ../../tutorial/errors.rst:474 #, fuzzy @@ -1155,9 +1121,10 @@ msgid "" ":keyword:`except` clause and therefore re-raised after the " ":keyword:`!finally` clause has been executed." msgstr "" -"همانطور که می بینید، بخش :keyword:`finally` در هر رویدادی اجرا می شود. خطایی" -" که با تقسیم دو رشته ایجاد شده است با بخش :keyword:`except` مدیریت نمی شود و" -" بنابراین پس از اجرای بخش :keyword:`!finally` مجدداً ایجاد می شود." +"همانطور که می بینید، بند :keyword:`finally` در هر حالتی اجرا می شود. خطای " +":exc:`TypeError` که از تقسیم دو رشته ایجاد شده است، توسط بند " +":keyword:`except` پردازش نمی شود و بنابراین پس از اجرای بند " +":keyword:`!finally` دوباره منتشر می شود." #: ../../tutorial/errors.rst:479 #, fuzzy @@ -1166,14 +1133,14 @@ msgid "" "releasing external resources (such as files or network connections), " "regardless of whether the use of the resource was successful." msgstr "" -"در برنامه های کاربردی دنیای واقعی، عبارت :keyword:`finally` برای آزاد کردن " -"منابع خارجی (مانند فایل ها یا اتصالات شبکه)، بدون توجه به موفقیت آمیز بودن " -"استفاده از منبع، مفید است." +"در برنامه های کاربردی دنیای واقعی، عبارت :keyword:`finally` برای آزادسازی " +"منابع خارجی (مانند فایل ها یا اتصالات شبکه) مفید است، بدون توجه به اینکه " +"استفاده از منبع موفقیت آمیز بوده است یا خیر." #: ../../tutorial/errors.rst:487 #, fuzzy msgid "Predefined Clean-up Actions" -msgstr "اقدامات پاکسازی از پیش تعریف شده" +msgstr "اقدامات پاک سازی از پیش تعریف شده" #: ../../tutorial/errors.rst:489 #, fuzzy @@ -1183,10 +1150,10 @@ msgid "" " the object succeeded or failed. Look at the following example, which tries " "to open a file and print its contents to the screen. ::" msgstr "" -"برخی از اشیاء عملیات پاکسازی استانداردی را تعریف می کنند که باید زمانی که به" -" شی دیگر نیازی نیست، انجام شود، صرف نظر از اینکه عملیات با استفاده از شی " -"موفق بوده یا شکست خورده است. به مثال زیر نگاه کنید که تلاش می کند یک فایل را" -" باز کرده و محتوای آن را روی صفحه نمایش چاپ کند. ::" +"برخی اشیاء اقدام های پاکسازی استانداردی را تعریف می کنند که هنگامی که دیگر " +"به آن ها نیازی نیست، مستقل از اینکه عملیات با استفاده از آن شیء موفقیت آمیز " +"بوده یا با شکست مواجه شده، انجام می شود. به مثال زیر نگاه کنید که تلاش می " +"کند یک فایل را باز کرده و محتوای آن را به صفحه نمایش چاپ کند. ::" #: ../../tutorial/errors.rst:494 #, fuzzy @@ -1194,8 +1161,8 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" msgstr "" -"برای خط در `open(\"myfile.txt\")`:\n" -" `print(line, end=\"\")`" +"برای خط در فایل \"myfile.txt\":\n" +" print(line, end=\"\")" #: ../../tutorial/errors.rst:497 #, fuzzy @@ -1207,11 +1174,11 @@ msgid "" " to be used in a way that ensures they are always cleaned up promptly and " "correctly. ::" msgstr "" -"مشکل این کد این است که فایل را برای مدت زمانی نامشخص پس از اتمام اجرای این " -"بخش از کد باز می گذارد. این موضوع در اسکریپت های ساده مشکلی ایجاد نمی کند، " -"اما می تواند برای برنامه های بزرگتر مسئله ساز شود. دستور ``:keyword:`with```" -" اجازه می دهد تا اشیایی مانند فایل ها به گونه ای استفاده شوند که اطمینان " -"حاصل شود همیشه به طور سریع و صحیح پاک سازی می شوند. ::" +"مشکل این کد این است که فایل را برای مدتی نامشخص پس از اجرای این بخش از کد " +"باز می گذارد. این مسئله در اسکریپت های ساده مشکلی ایجاد نمی کند، اما می " +"تواند برای برنامه های بزرگتر مشکلی باشد. دستور :keyword:`with` به اشیایی " +"مانند فایل ها اجازه می دهد به گونه ای استفاده شوند که اطمینان حاصل شود " +"همواره به موقع و به درستی پاکسازی می شوند. ::" #: ../../tutorial/errors.rst:503 #, fuzzy @@ -1220,12 +1187,10 @@ msgid "" " for line in f:\n" " print(line, end=\"\")" msgstr "" -"```python\n" -"with open(\"myfile.txt\") as f:\n" +"با استفاده از `with open(\"myfile.txt\") as f`:\n" +"\n" " for line in f:\n" -" print(line, end=\"\")\n" -"```\n" -"با استفاده از این کد، فایل \"myfile.txt\" باز می شود و سپس هر خط از این فایل به صورت جداگانه خوانده و چاپ می شود. پارامتر `end=\"\"` باعث می شود که بعد از هر خط، کاراکتر جدیدی به انتهای آن اضافه نشود." +" print(line, end=\"\")" #: ../../tutorial/errors.rst:507 #, fuzzy @@ -1235,14 +1200,14 @@ msgid "" "files, provide predefined clean-up actions will indicate this in their " "documentation." msgstr "" -"پس از اجرای دستورات، فایل *f* همیشه بسته می شود، حتی اگر در حین پردازش خطوط " -"مشکلی به وجود آمده باشد. اشیایی که مانند فایل ها، اقداماتی از پیش تعریف شده " -"برای پاک سازی را ارائه می دهند این موضوع را در مستندات خود نشان خواهند داد." +"پس از اجرای عبارت، فایل *f* همیشه بسته می شود، حتی اگر در حین پردازش خطوط " +"مشکلی رخ دهد. اشیایی که مانند فایل ها، اقدامات پاکسازی از پیش تعریف شده ای " +"را ارائه می دهند، این را در مستندات خود نشان خواهند داد." #: ../../tutorial/errors.rst:515 #, fuzzy msgid "Raising and Handling Multiple Unrelated Exceptions" -msgstr "برخورد و مدیریت چند خطای نامرتبط" +msgstr "بالا بردن و مدیریت چندین استثنای نامرتبط" #: ../../tutorial/errors.rst:517 #, fuzzy @@ -1253,11 +1218,11 @@ msgid "" "cases where it is desirable to continue execution and collect multiple " "errors rather than raise the first exception." msgstr "" -"در شرایطی ممکن است لازم باشد چندین استثنا که رخ داده اند گزارش شوند. این " -"اغلب در چارچوب های هم زمانی اتفاق می افتد، زمانی که ممکن است چندین وظیفه به " -"صورت موازی با مشکل مواجه شده باشند، اما همچنین موارد استفاده دیگری وجود دارد" -" که در آن ادامه اجرای برنامه و جمع آوری چندین خطا به جای بالا بردن اولین " -"استثنا مطلوب است." +"زمان هایی وجود دارد که نیاز است چندین استثنا که رخ داده اند گزارش شوند. این " +"موضوع اغلب در چارچوب های هم زمانی اتفاق می افتد، وقتی که ممکن است چندین کار " +"به صورت موازی شکست بخورند، اما موارد استفاده دیگری هم وجود دارد که در آن " +"ادامه اجرای برنامه و جمع آوری خطاهای متعدد به جای ایجاد اولین استثنا مطلوب " +"است." #: ../../tutorial/errors.rst:523 #, fuzzy @@ -1266,9 +1231,9 @@ msgid "" "that they can be raised together. It is an exception itself, so it can be " "caught like any other exception. ::" msgstr "" -"تابع داخلی :exc:`ExceptionGroup` یک لیست از نمونه های استثنا را می پوشاند تا" -" بتوان آن ها را به صورت همزمان مطرح کرد. این خود یک استثنا است، بنابراین می " -"توان آن را مانند هر استثنای دیگری گرفت. ::" +"تابع داخلی :exc:`ExceptionGroup` فهرستی از نمونه های استثنا را داخل خود " +"محصور می کند تا بتوان آن ها را با هم فراخوانی کرد. این خود یک استثنا است، " +"بنابراین می توان آن را مانند هر استثنای دیگری گرفت. ::" #: ../../tutorial/errors.rst:527 #, fuzzy @@ -1298,10 +1263,9 @@ msgid "" "caught : e\n" ">>>" msgstr "" -"```python\n" ">>> def f():\n" -"... excs = [OSError('خطا ۱'), SystemError('خطا ۲')]\n" -"... raise ExceptionGroup('مشکلاتی وجود داشت', excs)\n" +"... excs = [OSError('خطای 1'), SystemError('خطای 2')]\n" +"... raise ExceptionGroup('مشکلاتی وجود داشتند', excs)\n" "...\n" ">>> f()\n" " + Exception Group Traceback (most recent call last):\n" @@ -1309,12 +1273,12 @@ msgstr "" " | f()\n" " | ~^^\n" " | File \"\", line 3, in f\n" -" | raise ExceptionGroup('مشکلاتی وجود داشت', excs)\n" -" | ExceptionGroup: مشکلاتی وجود داشت (۲ زیر-استثنا)\n" -" +-+---------------- ۱ ----------------\n" -" | OSError: خطا ۱\n" -" +---------------- ۲ ----------------\n" -" | SystemError: خطا ۲\n" +" | raise ExceptionGroup('مشکلاتی وجود داشتند', excs)\n" +" | ExceptionGroup: مشکلاتی وجود داشتند (2 استثناهای فرعی)\n" +" +-+---------------- 1 ----------------\n" +" | OSError: خطای 1\n" +" +---------------- 2 ----------------\n" +" | SystemError: خطای 2\n" " +------------------------------------\n" ">>> try:\n" "... f()\n" @@ -1322,8 +1286,7 @@ msgstr "" "... print(f'caught {type(e)}: e')\n" "...\n" "caught : e\n" -">>>\n" -"```" +">>>" #: ../../tutorial/errors.rst:552 #, fuzzy @@ -1334,12 +1297,12 @@ msgid "" "extracts from the group exceptions of a certain type while letting all other" " exceptions propagate to other clauses and eventually to be reraised. ::" msgstr "" -"با استفاده از ``except*`` به جای ``except``، ما می توانیم به صورت انتخابی " -"فقط استثناهای داخل گروه را که با نوع خاصی مطابقت دارند، مدیریت کنیم. در مثال" -" زیر که یک گروه استثنای تو در تو را نشان می دهد، هر جمله ``except*`` " -"استثناهایی از یک نوع خاص را از گروه استخراج می کند، در حالی که به سایر " -"استثناها اجازه می دهد تا به سایر جملات انتقال یابند و در نهایت مجدداً ایجاد " -"شوند. ::" +"با استفاده از ``except*`` به جای ``except``، می توانیم تنها استثناهایی را که" +" در گروهی هستند و با نوع خاصی مطابقت دارند، به صورت انتخابی مدیریت کنیم. در " +"مثال زیر که یک گروه استثنای تودرتو را نشان می دهد، هر عبارت ``except*`` " +"استثناهای نوع خاصی را از گروه استخراج می کند، در حالی که به همه استثناهای " +"دیگر اجازه می دهد به بندهای دیگر منتقل شوند و در نهایت دوباره پراکنده شوند. " +"::" #: ../../tutorial/errors.rst:559 #, fuzzy @@ -1385,7 +1348,7 @@ msgid "" " +------------------------------------\n" ">>>" msgstr "" -"```>>> def f():\n" +">>> def f():\n" "... raise ExceptionGroup(\n" "... \"group1\",\n" "... [\n" @@ -1403,26 +1366,28 @@ msgstr "" "...\n" ">>> try:\n" "... f()\n" -"... except SystemError as e:\n" +"... except* OSError as e:\n" +"... print(\"There were OSErrors\")\n" +"... except* SystemError as e:\n" "... print(\"There were SystemErrors\")\n" "...\n" -"خطاهای OSError وجود داشتند\n" -"خطاهای SystemError وجود داشتند\n" -" + مسیر ردپای گروه استثنا (آخرین تماس اخیر):\n" -" | فایل \"\", خط 2، در \n" +"داشتن خطاهای سیستم\n" +"داشتن خطاهای سیستم عامل\n" +" + ردگیری گروه استثنا ( آخرین فراخوانی در ابتدا):\n" +" | فایل \"\"، خط 2، در \n" " | f()\n" " | ~^^\n" -" | فایل \"\", خط 2، در f\n" +" | فایل \"\"، خط 2، در f\n" " | raise ExceptionGroup(\n" -" | ...<12 lines>...\n" +" | ...<12 خطوط>...\n" " | )\n" -" | ExceptionGroup: گروه1 (۱ زیر-استثنا)\n" -" +-+---------------- ۱ ----------------\n" -" | ExceptionGroup: گروه2 (۱ زیر-استثنا)\n" -" +-+---------------- ۱ ----------------\n" +" | ExceptionGroup: گروه1 (1 زیر-استثنا)\n" +" +-+---------------- 1 ----------------\n" +" | ExceptionGroup: گروه2 (1 زیر-استثنا)\n" +" +-+---------------- 1 ----------------\n" " | RecursionError: 4\n" " +------------------------------------\n" -">>>```" +">>>" #: ../../tutorial/errors.rst:600 #, fuzzy @@ -1432,9 +1397,10 @@ msgid "" "that have already been raised and caught by the program, along the following" " pattern::" msgstr "" -"توجه داشته باشید که استثنائات تو در تو در یک گروه استثناء باید نمونه هایی " -"باشند، نه نوع ها. این به این دلیل است که در عمل، استثنائات معمولاً آن هایی " -"هستند که قبلاً توسط برنامه پرداخته و مدیریت شده اند، مطابق الگوی زیر:" +"توجه داشته باشید که استثناهایی که به صورت تو در تو در یک گروه استثنا قرار می" +" گیرند باید نمونه هایی از استثناها باشند، نه نوع آن ها. دلیل این امر این است" +" که در عمل، استثناها معمولاً مواردی هستند که پیش تر توسط برنامه ایجاد و " +"اعلام شده اند و روال کار معمولاً به صورت زیر است::" #: ../../tutorial/errors.rst:605 #, fuzzy @@ -1458,7 +1424,7 @@ msgstr "" "... excs.append(e)\n" "...\n" ">>> if excs:\n" -"... raise ExceptionGroup(\"اشکالات تست\", excs)\n" +"... raise ExceptionGroup(\"Test Failures\", excs)\n" "..." #: ../../tutorial/errors.rst:620 @@ -1477,12 +1443,12 @@ msgid "" "standard traceback rendering includes all notes, in the order they were " "added, after the exception. ::" msgstr "" -"هنگامی که یک استثنا برای ایجاد شدن آماده می شود، معمولاً با اطلاعاتی که خطای" -" رخ داده را توصیف می کند، مقداردهی اولیه می شود. در برخی مواقع، افزودن " -"اطلاعات پس از دریافت استثنا مفید است. برای این منظور، استثناها یک متدی به " -"نام ``add_note(note)`` دارند که یک رشته را قبول کرده و آن را به لیست یادداشت" -" های استثنا اضافه می کند. ارائه استاندارد خلاصه سازی خطا شامل تمامی یادداشت " -"ها به ترتیبی که اضافه شده اند، پس از استثنا است." +"هنگامی که یک استثناء ایجاد می شود تا پرتاب شود، معمولاً با اطلاعاتی که خطای " +"رخ داده را توصیف می کند، مقداردهی اولیه می شود. در برخی موارد، اضافه کردن " +"اطلاعات پس از آنکه استثناء گرفته شد، مفید است. برای این منظور، استثناء ها یک" +" متد به نام ``add_note(note)`` دارند که یک رشته را قبول می کند و آن را به " +"لیست یادداشت های استثناء اضافه می کند. نمایش استاندارد traceback شامل تمام " +"یادداشت ها، به ترتیبی که اضافه شده اند، بعد از استثناء می باشد. ::" #: ../../tutorial/errors.rst:629 #, fuzzy @@ -1502,20 +1468,20 @@ msgid "" "Add some more information\n" ">>>" msgstr "" -"```>>> try:\n" -"... raise TypeError('نوع نامناسب')\n" +">>> try:\n" +"... raise TypeError('bad type')\n" "... except Exception as e:\n" -"... e.add_note('افزودن برخی اطلاعات')\n" -"... e.add_note('افزودن اطلاعات بیشتر')\n" +"... e.add_note('Add some information')\n" +"... e.add_note('Add some more information')\n" "... raise\n" "...\n" "Traceback (most recent call last):\n" " File \"\", line 2, in \n" -" raise TypeError('نوع نامناسب')\n" -"TypeError: نوع نامناسب\n" -"افزودن برخی اطلاعات\n" -"افزودن اطلاعات بیشتر\n" -">>>```" +" raise TypeError('bad type')\n" +"TypeError: bad type\n" +"Add some information\n" +"Add some more information\n" +">>>" #: ../../tutorial/errors.rst:644 #, fuzzy @@ -1525,10 +1491,10 @@ msgid "" " exception in the group has a note indicating when this error has occurred. " "::" msgstr "" -"به عنوان مثال، زمانی که خطاها را در یک گروه استثناء جمع آوری می کنیم، ممکن " -"است بخواهیم اطلاعات زمینه ای را برای هر یک از خطاهای فردی اضافه کنیم. در " -"مثال زیر، هر خطا در گروه دارای یادداشتی است که نشان می دهد این خطا چه زمانی " -"رخ داده است. ::" +"برای مثال، زمانی که در حال جمع آوری استثناء ها به یک گروه استثناء هستیم، " +"ممکن است بخواهیم اطلاعات زمینه ای برای خطاهای منفرد اضافه کنیم. در زیر، هر " +"استثناء در گروه یک یادداشت دارد که نشان می دهد این خطا چه زمانی رخ داده است." +" ::" #: ../../tutorial/errors.rst:648 #, fuzzy @@ -1579,7 +1545,6 @@ msgid "" " +------------------------------------\n" ">>>" msgstr "" -"```python\n" ">>> def f():\n" "... raise OSError('operation failed')\n" "...\n" @@ -1588,14 +1553,14 @@ msgstr "" "... try:\n" "... f()\n" "... except Exception as e:\n" -"... e.add_note(f'در تکرار {i+1} اتفاق افتاد')\n" +"... e.add_note(f'Happened in Iteration {i+1}')\n" "... excs.append(e)\n" "...\n" -">>> raise ExceptionGroup('ما چند مشکل داریم', excs)\n" +">>> raise ExceptionGroup('We have some problems', excs)\n" " + Exception Group Traceback (most recent call last):\n" " | File \"\", line 1, in \n" -" | raise ExceptionGroup('ما چند مشکل داریم', excs)\n" -" | ExceptionGroup: ما چند مشکل داریم (3 زیر-استثناء)\n" +" | raise ExceptionGroup('We have some problems', excs)\n" +" | ExceptionGroup: We have some problems (3 sub-exceptions)\n" " +-+---------------- 1 ----------------\n" " | Traceback (most recent call last):\n" " | File \"\", line 3, in \n" @@ -1604,7 +1569,7 @@ msgstr "" " | File \"\", line 2, in f\n" " | raise OSError('operation failed')\n" " | OSError: operation failed\n" -" | در تکرار 1 اتفاق افتاد\n" +" | Happened in Iteration 1\n" " +---------------- 2 ----------------\n" " | Traceback (most recent call last):\n" " | File \"\", line 3, in \n" @@ -1613,7 +1578,7 @@ msgstr "" " | File \"\", line 2, in f\n" " | raise OSError('operation failed')\n" " | OSError: operation failed\n" -" | در تکرار 2 اتفاق افتاد\n" +" | Happened in Iteration 2\n" " +---------------- 3 ----------------\n" " | Traceback (most recent call last):\n" " | File \"\", line 3, in \n" @@ -1622,6 +1587,6 @@ msgstr "" " | File \"\", line 2, in f\n" " | raise OSError('operation failed')\n" " | OSError: operation failed\n" -" | در تکرار 3 اتفاق افتاد\n" +" | Happened in Iteration 3\n" " +------------------------------------\n" -"```" +">>>" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index ffc9b682b..63d3e444d 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/floatingpoint.rst:10 #, fuzzy msgid "Floating-Point Arithmetic: Issues and Limitations" -msgstr "محاسبات اعداد اعشاری: مسائل و محدودیت ها" +msgstr "ممیز شناور: مشکلات و محدودیت ها" #: ../../tutorial/floatingpoint.rst:16 #, fuzzy @@ -36,11 +36,11 @@ msgid "" "values, the only real difference being that the first is written in base 10 " "fractional notation, and the second in base 2." msgstr "" -"اعداد اعشاری در سخت افزار کامپیوتر به عنوان کسرهای مبنای ۲ (باینری) نمایش " -"داده می شوند. به عنوان مثال، کسر **decimal** دارای مقدار 6/10 + 2/100 + " -"5/1000 است و به همین روش، کسر **binary** دارای مقدار 1/2 + 0/4 + 1/8 است. " -"این دو کسر معادلی با مقادیر مشابه دارند و تنها تفاوت واقعی این است که اولی " -"به صورت کسر مبنای ۱۰ نوشته شده و دومی به صورت کسر مبنای ۲." +"اعداد اعشاری در سخت افزار کامپیوتر به صورت کسرهای پایه ۲ (دودویی) نمایش داده" +" می شوند. به عنوان مثال، کسر **decimal** مقدار ۶/۱۰ + ۲/۱۰۰ + ۵/۱۰۰۰ دارد و " +"به همان ترتیب کسر **binary** مقدار ۱/۲ + ۰/۴ + ۱/۸ دارد. این دو کسر مقادیر " +"یکسانی دارند، تنها تفاوت واقعی این است که اولی به صورت نشانه گذاری کسر پایه " +"۱۰ نوشته شده و دومی در پایه ۲." #: ../../tutorial/floatingpoint.rst:23 #, fuzzy @@ -50,10 +50,10 @@ msgid "" "point numbers you enter are only approximated by the binary floating-point " "numbers actually stored in the machine." msgstr "" -"متأسفانه، اکثر کسرهای اعشاری نمی توانند به طور دقیق به صورت کسرهای دودویی " -"نمایش داده شوند. نتیجه این است که، به طور کلی، اعداد اعشاری شناور که وارد می" -" کنید فقط به صورت تقریبی توسط اعداد شناور دودویی که واقعاً در ماشین ذخیره می" -" شوند، نمایش داده می شوند." +"متأسفانه، بیشتر کسرهای اعشاری نمی توانند به طور دقیق به صورت کسرهای دودویی " +"نمایش داده شوند. نتیجه این است که، به طور کلی، اعداد اعشاری شناوری که وارد " +"می کنید تنها تقریباً توسط اعداد اعشاری شناور دودویی که در واقع در ماشین " +"ذخیره می شوند، نمایش داده می شوند." #: ../../tutorial/floatingpoint.rst:28 #, fuzzy @@ -61,28 +61,28 @@ msgid "" "The problem is easier to understand at first in base 10. Consider the " "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" -"در ابتدا، مسئله در مبنای ۱۰ آسان تر قابل درک است. به کسر 1/3 توجه کنید. می " -"توانید آن را به صورت یک کسر در مبنای ۱۰ تقریب بزنید:" +"ابتدا مسئله در مبنای ۱۰ آسان تر قابل درک است. به کسر 1/3 توجه کنید. شما می " +"توانید آن را به صورت یک کسر در مبنای ۱۰ تقریب بزنید::" #: ../../tutorial/floatingpoint.rst:31 #, fuzzy msgid "0.3" -msgstr "۰٫۳" +msgstr "۰.۳" #: ../../tutorial/floatingpoint.rst:33 ../../tutorial/floatingpoint.rst:37 #, fuzzy msgid "or, better, ::" -msgstr "یا، بهتر، ::" +msgstr "یا، بهتر است:" #: ../../tutorial/floatingpoint.rst:35 #, fuzzy msgid "0.33" -msgstr "۰٫۳۳" +msgstr "۰.۳۳" #: ../../tutorial/floatingpoint.rst:39 #, fuzzy msgid "0.333" -msgstr "۰٫۳۳۳" +msgstr "۰.۳۳۳" #: ../../tutorial/floatingpoint.rst:41 #, fuzzy @@ -91,8 +91,8 @@ msgid "" "result will never be exactly 1/3, but will be an increasingly better " "approximation of 1/3." msgstr "" -"و به همین ترتیب. فرقی نمی کند که چقدر رقم بنویسید، نتیجه هرگز دقیقاً 1/3 " -"نخواهد بود، اما یک تقریب به طور فزاینده بهتر از 1/3 خواهد بود." +"و به همین ترتیب. مهم نیست چقدر رقم ها را بخواهید بنویسید، نتیجه هرگز دقیقا " +"1/3 نخواهد بود، بلکه به طور فزاینده ای تقریب بهتری از 1/3 خواهد بود." #: ../../tutorial/floatingpoint.rst:45 #, fuzzy @@ -101,16 +101,14 @@ msgid "" " decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " "base 2, 1/10 is the infinitely repeating fraction ::" msgstr "" -"به همین ترتیب، فرقی نمی کند چه تعداد رقم در مبنای ۲ بخواهید استفاده کنید، " -"مقدار اعشاری ۰.۱ نمی تواند به طور دقیق به عنوان یک کسر در مبنای ۲ نمایش داده" -" شود. در مبنای ۲، ۱/۱۰ یک کسر بی نهایت تکرارشونده است ::" +"به همان صورت، مهم نیست که چقدر رقم در مبنای ۲ می خواهید استفاده کنید، مقدار " +"اعشاری 0.1 نمی تواند به طور دقیق به صورت یک کسر در مبنای ۲ نمایش داده شود. " +"در مبنای ۲، 1/10 یک کسر بی نهایت تکرارشونده است::" #: ../../tutorial/floatingpoint.rst:49 #, fuzzy msgid "0.0001100110011001100110011001100110011001100110011..." -msgstr "" -"متن ارائه شده فقط شامل اعداد است و متنی برای ترجمه وجود ندارد. اگر توضیحات " -"بیشتری یا متن دیگری دارید که نیاز به ترجمه دارد، لطفاً آن را ارائه دهید." +msgstr "0.0001100110011001100110011001100110011001100110011..." #: ../../tutorial/floatingpoint.rst:51 #, fuzzy @@ -122,12 +120,11 @@ msgid "" "fraction is ``3602879701896397 / 2 ** 55`` which is close to but not exactly" " equal to the true value of 1/10." msgstr "" -"در هر تعداد محدودی از بیت ها متوقف شوید و یک تقریب به دست می آورید. در بیشتر" -" ماشین های امروزی، اعداد اعشاری به وسیله یک کسر دودویی تقریبی می شوند که " -"صورت آن با استفاده از ۵۳ بیت اول شروع از بیت با بیشترین اهمیت (بیت چپ ترین) " -"و مخرج آن به صورت توانی از دو است. در مورد 1/10، کسر دودویی " -"``3602879701896397 / 2 ** 55`` است که به مقدار واقعی 1/10 نزدیک است اما " -"دقیقاً برابر نیست." +"در هر تعداد محدودی از بیت ها متوقف شوید و یک تخمین به دست می آورید. در اکثر " +"ماشین های امروزی، اعشاری ها با استفاده از یک کسر دودویی تقریب زده می شوند که" +" شمارنده ی آن از ۵۳ بیت اول شروع شده از بیت با ارزش بالاتر استفاده می کند و " +"مخرج آن به صورت توان های دو است. در مورد 1/10، کسر دودویی ``3602879701896397" +" / 2 ** 55`` است که نزدیک به اما دقیقا برابر با مقدار واقعی 1/10 نمی باشد." #: ../../tutorial/floatingpoint.rst:58 #, fuzzy @@ -138,10 +135,10 @@ msgid "" "if Python were to print the true decimal value of the binary approximation " "stored for 0.1, it would have to display::" msgstr "" -"بسیاری از کاربران به دلیل نحوه نمایش مقادیر، از تقریب مقادیر آگاه نیستند. " -"پایتون تنها یک تقریب اعشاری از مقدار واقعی اعشاری تقریب باینری ذخیره شده " -"توسط ماشین را چاپ می کند. در اکثر ماشین ها، اگر پایتون قرار بود مقدار واقعی " -"اعشاری تقریب باینری ذخیره شده برای 0.1 را چاپ کند، باید نمایش می داد::" +"بسیاری از کاربران به خاطر طریقه نمایش مقادیر از تقریب ها آگاه نیستند. پایتون" +" تنها یک تقریب اعشاری از مقدار واقعی اعشاری تقریب دودویی ذخیره شده توسط " +"ماشین را چاپ می کند. در بیشتر ماشین ها، اگر پایتون بخواهد مقدار واقعی اعشاری" +" تقریب دودویی ذخیره شده برای 0.1 را چاپ کند، باید به صورت زیر نمایش دهد::" #: ../../tutorial/floatingpoint.rst:64 #, fuzzy @@ -149,10 +146,8 @@ msgid "" ">>> 0.1\n" "0.1000000000000000055511151231257827021181583404541015625" msgstr "" -"```\n" ">>> 0.1\n" -"0.1000000000000000055511151231257827021181583404541015625\n" -"```" +"0.1000000000000000055511151231257827021181583404541015625" #: ../../tutorial/floatingpoint.rst:67 #, fuzzy @@ -160,8 +155,8 @@ msgid "" "That is more digits than most people find useful, so Python keeps the number" " of digits manageable by displaying a rounded value instead:" msgstr "" -"این تعداد رقم بیشتر از چیزی است که اکثر افراد مفید می یابند، بنابراین پایتون" -" تعداد ارقام را با نمایش یک مقدار گرد شده مدیریت می کند:" +"این تعداد رقم بیشتری است نسبت به چیزی که اکثر افراد مفید می دانند، بنابراین " +"پایتون تعداد ارقام را با نمایش یک مقدار گرد شده کنترل می کند:" #: ../../tutorial/floatingpoint.rst:70 #, fuzzy @@ -169,10 +164,8 @@ msgid "" ">>> 1 / 10\n" "0.1" msgstr "" -"```python\n" ">>> 1 / 10\n" -"0.1\n" -"```" +"0.1" #: ../../tutorial/floatingpoint.rst:75 #, fuzzy @@ -180,8 +173,8 @@ msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." msgstr "" -"فقط به خاطر داشته باشید که حتی اگر نتیجه چاپ شده به نظر مانند مقدار دقیق " -"1/10 برسد، مقدار واقعی ذخیره شده نزدیک ترین کسر دودویی قابل نمایش است." +"فقط به خاطر داشته باشید که اگرچه نتیجه چاپ شده شبیه به مقدار دقیق 1/10 به " +"نظر می رسد، اما مقدار ذخیره شده واقعی نزدیک ترین کسر دودویی قابل نمایش است." #: ../../tutorial/floatingpoint.rst:78 #, fuzzy @@ -194,13 +187,12 @@ msgid "" "values share the same approximation, any one of them could be displayed " "while still preserving the invariant ``eval(repr(x)) == x``." msgstr "" -"جالب است که بسیاری از اعداد اعشاری مختلف وجود دارند که عدد کسری باینری " -"نزدیکی مشابهی با یکدیگر دارند. برای مثال، اعداد ``0.1`` و " -"``0.10000000000000001`` و " -"``0.1000000000000000055511151231257827021181583404541015625`` همگی با " -"``3602879701896397 / 2 ** 55`` تخمین زده می شوند. از آنجایی که همه این " -"مقادیر اعشاری همان تخمین را به اشتراک می گذارند، هر یک از آنها می تواند " -"نمایش داده شود در حالی که هنوز ویژگی ثابت ``eval(repr(x)) == x`` حفظ می شود." +"جالب است که بسیاری از اعداد اعشاری مختلف وجود دارند که نزدیک ترین تقریب " +"دودویی مشترکی دارند. به عنوان مثال، اعداد ``0.1`` و ``0.10000000000000001`` " +"و ``0.1000000000000000055511151231257827021181583404541015625`` همگی توسط " +"``3602879701896397 / 2 ** 55`` تقریب زده می شوند. از آنجا که تمام این مقادیر" +" اعشاری تقریب یکسانی دارند، هر یک از آنها می توانند نمایش داده شوند در حالی " +"که همچنان ثابت ``eval(repr(x)) == x`` حفظ می شود." #: ../../tutorial/floatingpoint.rst:86 #, fuzzy @@ -210,10 +202,10 @@ msgid "" "Starting with Python 3.1, Python (on most systems) is now able to choose the" " shortest of these and simply display ``0.1``." msgstr "" -"به طور تاریخی، اعلان Python و تابع داخلی :func:`repr` احتمالاً عددی را " -"انتخاب می کردند که دارای 17 رقم معنادار باشد، یعنی ``0.10000000000000001``. " -"از نسخه Python 3.1 به بعد، حالا Python (روی اکثر سیستم ها) می تواند کوتاه " -"ترین مقدار از بین این ها را انتخاب کند و به طور ساده ``0.1`` را نمایش دهد." +"به طور تاریخی، اعلان پایتون و تابع داخلی :func:`repr` تصمیم گیری می کردند که" +" یکی با 17 رقم معنادار، یعنی ``0.10000000000000001``، را انتخاب کنند. از " +"پایتون 3.1 به بعد، پایتون (در اکثر سیستم ها) قادر است کوتاه ترین آن ها را " +"انتخاب کرده و به سادگی ``0.1`` را نمایش دهد." #: ../../tutorial/floatingpoint.rst:91 #, fuzzy @@ -224,11 +216,11 @@ msgid "" "point arithmetic (although some languages may not *display* the difference " "by default, or in all output modes)." msgstr "" -"توجه داشته باشید که این مسئله از ذات اعداد اعشاری دودویی ناشی می شود: این یک" -" باگ در پایتون نیست و همچنین یک باگ در کد شما هم نیست. شما همین نوع مسائل را" -" در تمامی زبان هایی که از محاسبات اعشاری شناور سخت افزار شما پشتیبانی می " -"کنند مشاهده خواهید کرد (اگرچه برخی زبان ها ممکن است به طور پیش فرض یا در همه" -" حالت های خروجی تفاوت را نشان ندهند)." +"توجه داشته باشید که این از ویژگی های ذاتی اعداد اعشاری در مبنای دودویی است: " +"این یک باگ در پایتون نیست و همچنین یک باگ در کد شما هم نمی باشد. شما همین " +"نوع مسئله را در تمامی زبان هایی که از محاسبات اعشاری سخت افزارتان پشتیبانی " +"می کنند مشاهده خواهید کرد (اگرچه ممکن است برخی زبان ها به طور پیش فرض یا در " +"تمامی حالت های خروجی تفاوت را *display* نکنند)." #: ../../tutorial/floatingpoint.rst:97 #, fuzzy @@ -236,8 +228,8 @@ msgid "" "For more pleasant output, you may wish to use string formatting to produce a" " limited number of significant digits:" msgstr "" -"برای خروجی بهتر، ممکن است بخواهید از قالب بندی رشته ای استفاده کنید تا تعداد" -" محدودی از ارقام معنادار تولید کنید:" +"برای خروجی بهتر، ممکن است بخواهید از فرمت دهی رشته ای استفاده کنید تا تعداد " +"محدودی از ارقام مهم تولید کنید:" #: ../../tutorial/floatingpoint.rst:100 #, fuzzy @@ -251,16 +243,14 @@ msgid "" ">>> repr(math.pi)\n" "'3.141592653589793'" msgstr "" -"```python\n" -">>> format(math.pi, '.12g') # ارائه 12 رقم معنادار\n" +">>> format(math.pi, '.12g') # 12 عدد معنادار را بدهید\n" "'3.14159265359'\n" "\n" -">>> format(math.pi, '.2f') # ارائه 2 رقم بعد از نقطه\n" +">>> format(math.pi, '.2f') # 2 رقم بعد از نقطه را بدهید\n" "'3.14'\n" "\n" ">>> repr(math.pi)\n" -"'3.141592653589793'\n" -"```" +"'3.141592653589793'" #: ../../tutorial/floatingpoint.rst:111 #, fuzzy @@ -268,8 +258,8 @@ msgid "" "It's important to realize that this is, in a real sense, an illusion: you're" " simply rounding the *display* of the true machine value." msgstr "" -"مهم است که بدانید این در واقعیت یک توهم است: شما به سادگی در حال گرد کردن " -"*display* از مقدار واقعی ماشین هستید." +"این موضوع مهم است که متوجه شوید که این، به معنای واقعی، یک توهم است: شما " +"صرفاً مقدار `*display*` از مقدار واقعی ماشین را گرد می کنید." #: ../../tutorial/floatingpoint.rst:114 #, fuzzy @@ -277,8 +267,8 @@ msgid "" "One illusion may beget another. For example, since 0.1 is not exactly 1/10," " summing three values of 0.1 may not yield exactly 0.3, either:" msgstr "" -"یک توهم ممکن است توهم دیگری را به وجود آورد. برای مثال، از آنجا که 0.1 " -"دقیقاً برابر 1/10 نیست، جمع سه مقدار 0.1 ممکن است به طور دقیق برابر با 0.3 " +"یک توهم ممکن است توهم دیگری را ایجاد کند. به عنوان مثال، از آنجا که 0.1 " +"دقیقاً برابر با 1/10 نیست، جمع سه مقدار 0.1 نیز ممکن است دقیقاً برابر 0.3 " "نباشد:" #: ../../tutorial/floatingpoint.rst:117 @@ -287,8 +277,8 @@ msgid "" ">>> 0.1 + 0.1 + 0.1 == 0.3\n" "False" msgstr "" -"```>>> 0.1 + 0.1 + 0.1 == 0.3\n" -"False```" +">>> 0.1 + 0.1 + 0.1 == 0.3\n" +"False" #: ../../tutorial/floatingpoint.rst:122 #, fuzzy @@ -297,9 +287,9 @@ msgid "" " cannot get any closer to the exact value of 3/10, then pre-rounding with " ":func:`round` function cannot help:" msgstr "" -"از آنجا که عدد 0.1 نمی تواند به مقدار دقیق 1/10 نزدیک تر شود و عدد 0.3 نیز " -"نمی تواند به مقدار دقیق 3/10 نزدیک تر شود، تولید اعشاری توسط تابع " -"\"`:func:`round``\" نمی تواند کمکی کند:" +"همچنین، از آنجا که 0.1 نمی تواند به مقدار دقیق 1/10 و 0.3 نمی تواند به مقدار" +" دقیق 3/10 نزدیک تر شود، بنابراین پیش گرد کردن با تابع :func:`round` کمکی " +"نمی کند:" #: ../../tutorial/floatingpoint.rst:126 #, fuzzy @@ -307,10 +297,8 @@ msgid "" ">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" "False" msgstr "" -"```python\n" ">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" -"False\n" -"```" +"False" #: ../../tutorial/floatingpoint.rst:131 #, fuzzy @@ -318,8 +306,8 @@ msgid "" "Though the numbers cannot be made closer to their intended exact values, the" " :func:`math.isclose` function can be useful for comparing inexact values:" msgstr "" -"اگرچه نمی توان مقادیر عددی را به مقادیر دقیق مورد نظرشان نزدیک تر کرد، تابع " -":func:`math.isclose` می تواند برای مقایسه مقادیر غیر دقیق مفید باشد:" +"گرچه نمی توان اعداد را به مقادیر دقیق دلخواه شان نزدیک تر کرد، تابع " +":func:`math.isclose` می تواند برای مقایسه مقادیر نادقیق مفید باشد:\n" #: ../../tutorial/floatingpoint.rst:134 #, fuzzy @@ -327,8 +315,8 @@ msgid "" ">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" "True" msgstr "" -"```>>> math.isclose(0.1 + 0.1 + 0.1, 0.3)``` \n" -"درست" +">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" +"True" #: ../../tutorial/floatingpoint.rst:139 #, fuzzy @@ -345,10 +333,8 @@ msgid "" ">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" "True" msgstr "" -"```python\n" ">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" -"درست\n" -"```" +"True" #: ../../tutorial/floatingpoint.rst:147 #, fuzzy @@ -362,13 +348,13 @@ msgid "" " Point `_ for a more complete " "account of other common surprises." msgstr "" -"محاسبات ممیز شناور دودویی می تواند شگفتی های زیادی مانند این داشته باشد. " -"مشکل \"0.1\" به طور دقیق در بخش \"خطای نمایش\" توضیح داده شده است. برای " -"خلاصه ای دلپذیر از نحوه کارکرد ممیز شناور دودویی و مشکلاتی که به طور مکرر در" -" عمل با آنها مواجه می شویم، به `Examples of Floating Point Problems " +"حساب شناور دودویی بسیاری از شگفتی ها مانند این دارد. مشکل \"0.1\" به طور " +"دقیق در بخش \"خطای نمایش\" زیر توضیح داده شده است. برای خلاصه ای خوش آیند از" +" نحوه کار اعداد شناور دودویی و انواع مشکلاتی که اغلب در عمل با آنها مواجه می" +" شویم، به `Examples of Floating Point Problems " "`_ " -"مراجعه کنید. همچنین برای شرح کامل تری از دیگر شگفتی های رایج به `The Perils " -"of Floating Point `_ مراجعه " +"مراجعه کنید. همچنین برای توضیح کاملتری از دیگر شگفتی های رایج به `The Perils" +" of Floating Point `_ مراجعه " "کنید." #: ../../tutorial/floatingpoint.rst:156 @@ -382,12 +368,12 @@ msgid "" "decimal arithmetic and that every float operation can suffer a new rounding " "error." msgstr "" -"همان طور که در انتها گفته شد، \"جواب های ساده ای وجود ندارد.\" با این حال، " -"بیش از حد از نقطه شناور نگران نباشید! خطاها در عملیات نقطه شناور در پایتون " -"از سخت افزار نقطه شناور به ارث برده شده اند و در بیشتر ماشین ها در حدی هستند" -" که در هر عملیات بیش از 1 قسمت در 2\\*\\*53 نمی باشند. این برای اکثر وظایف " -"کافی است، اما باید به خاطر داشته باشید که این حساب دهدهی نیست و هر عملیات با" -" نقطه شناور می تواند دچار یک خطای گرد کردن جدید گردد." +"همانطور که در پایان گفته شده، \"پاسخ های آسانی وجود ندارد.\" اما از اعداد " +"اعشاری بی جهت نگران نباشید! خطاهای عملیات های اعشاری در پایتون از سخت افزار " +"اعشاری به ارث می رسند و در بیشتر ماشین ها در حدود کمتر از 1 قسمت در " +"2\\*\\*53 به ازای هر عملیات هستند. این دقت برای اکثر کارها بیش از حد کافی " +"است، اما باید به خاطر داشته باشید که این عملیات ها حساب اعشاری نیستند و هر " +"عملیات اعشاری می تواند دچار خطای گرد کردن جدیدی شود." #: ../../tutorial/floatingpoint.rst:163 #, fuzzy @@ -398,11 +384,11 @@ msgid "" "expect. :func:`str` usually suffices, and for finer control see the " ":meth:`str.format` method's format specifiers in :ref:`formatstrings`." msgstr "" -"هرچند موارد خاص وجود دارند، اما در بیشتر استفاده های معمول از حساب های ممیز " -"شناور، در نهایت نتیجه ای را که انتظار دارید مشاهده خواهید کرد اگر نمایش " -"نتایج نهایی خود را به تعداد ارقام اعشاری مورد نظر خود گرد کنید. " -"\":func:`str`\" معمولاً کافی است و برای کنترل دقیق تر، به مشخص کننده های " -"قالب متد \":meth:`str.format`\" در \":ref:`formatstrings`\" مراجعه کنید." +"در حالی که موارد غیرعادی وجود دارند، در بیشتر استفاده های معمولی از حساب " +"اعشاری، در نهایت نتیجه ای را که انتظار دارید مشاهده خواهید کرد، اگر به سادگی" +" نمایش نتایج نهایی خود را به تعداد ارقام اعشاری مورد انتظارتان گرد کنید. " +":func:`str` معمولاً کافی است و برای کنترل دقیق تر، به مشخصات قالب روش " +":meth:`str.format` در :ref:`formatstrings` مراجعه کنید." #: ../../tutorial/floatingpoint.rst:169 #, fuzzy @@ -411,9 +397,9 @@ msgid "" ":mod:`decimal` module which implements decimal arithmetic suitable for " "accounting applications and high-precision applications." msgstr "" -"برای موارد استفاده ای که به نمایش اعشاری دقیق نیاز دارند، سعی کنید از ماژول " -"`:mod:`decimal`` استفاده کنید که حساب اعشاری مناسب برای برنامه های حسابداری " -"و برنامه های با دقت بالا را پیاده سازی می کند." +"برای موارد استفاده ای که نیاز به نمایش دقیق اعشاری دارند، سعی کنید از ماژول " +":mod:`decimal` استفاده کنید که محاسبات اعشاری مناسب برای برنامه های حسابداری" +" و برنامه های با دقت بالا را پیاده سازی می کند." #: ../../tutorial/floatingpoint.rst:173 #, fuzzy @@ -422,9 +408,9 @@ msgid "" " which implements arithmetic based on rational numbers (so the numbers like " "1/3 can be represented exactly)." msgstr "" -"نوع دیگری از حساب دقیق توسط ماژول :mod:`fractions` پشتیبانی می شود که حسابی " -"مبتنی بر اعداد گویا را پیاده سازی می کند (به طوری که می توان اعدادی مانند " -"1/3 را به طور دقیق نمایش داد)." +"شکل دیگری از محاسبات دقیق توسط ماژول :mod:`fractions` پشتیبانی می شود که " +"محاسبات مبتنی بر اعداد گویا را پیاده سازی می کند (بنابراین اعدادی مانند 1/3 " +"می توانند به طور دقیق نمایش داده شوند)." #: ../../tutorial/floatingpoint.rst:177 #, fuzzy @@ -434,9 +420,9 @@ msgid "" "statistical operations supplied by the SciPy project. See " "." msgstr "" -"اگر زیاد از عملیات اعشاری استفاده می کنید، باید نگاهی به پکیج NumPy و بسیاری" -" دیگر از پکیج های موجود برای عملیات ریاضی و آماری که توسط پروژه SciPy ارائه " -"می شوند، بیندازید. به مراجعه کنید." +"اگر شما کاربر حرفه ای از عملیات ممیز شناور هستید، باید نگاهی به پکیج NumPy و" +" بسیاری از پکیج های دیگر برای عملیات ریاضی و آماری ارائه شده توسط پروژه " +"SciPy بیندازید. به مراجعه کنید." #: ../../tutorial/floatingpoint.rst:181 #, fuzzy @@ -446,10 +432,10 @@ msgid "" ":meth:`float.as_integer_ratio` method expresses the value of a float as a " "fraction:" msgstr "" -"پایتون ابزارهایی فراهم می کند که ممکن است در مواقع نادری که واقعاً می خواهید" -" مقدار دقیق یک \"float\" را بدانید، به شما کمک کنند. روش " -"\":meth:`float.as_integer_ratio`\" مقدار یک \"float\" را به عنوان یک کسر " -"بیان می کند:" +"پایتون ابزارهایی فراهم می کند که ممکن است در آن موارد نادری که واقعاً می " +"خواهید از مقدار دقیق یک عدد اعشاری (float) مطلع شوید، کمک کنند. متد " +":meth:`float.as_integer_ratio` مقدار یک عدد اعشاری را به صورت یک کسر بیان می" +" کند:" #: ../../tutorial/floatingpoint.rst:186 #, fuzzy @@ -458,9 +444,9 @@ msgid "" ">>> x.as_integer_ratio()\n" "(3537115888337719, 1125899906842624)" msgstr "" -"```>>> x = 3.14159\n" +">>> x = 3.14159\n" ">>> x.as_integer_ratio()\n" -"(3537115888337719, 1125899906842624)```" +"(3537115888337719, 1125899906842624)" #: ../../tutorial/floatingpoint.rst:192 #, fuzzy @@ -468,8 +454,8 @@ msgid "" "Since the ratio is exact, it can be used to losslessly recreate the original" " value:" msgstr "" -"از آنجایی که نسبت به طور دقیق است، می توان از آن برای بازسازی بدون از دست " -"دادن مقدار اصلی استفاده کرد:" +"از آنجا که نسبت دقیق است، می توان از آن برای بازسازی بدون افت ارزش اصلی " +"استفاده کرد:" #: ../../tutorial/floatingpoint.rst:195 #, fuzzy @@ -477,10 +463,8 @@ msgid "" ">>> x == 3537115888337719 / 1125899906842624\n" "True" msgstr "" -"``` python\n" ">>> x == 3537115888337719 / 1125899906842624\n" -"درست\n" -"```" +"True" #: ../../tutorial/floatingpoint.rst:200 #, fuzzy @@ -488,8 +472,8 @@ msgid "" "The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " "again giving the exact value stored by your computer:" msgstr "" -"روش :meth:`float.hex` یک عدد اعشاری را به صورت هگزادسیمال (پایه ۱۶) نمایش می" -" دهد و مقدار دقیقی که توسط رایانه شما ذخیره شده است را ارائه می کند:" +"روش :meth:`float.hex` یک عدد اعشاری را به شکل هگزادسیمال (مبنای 16) ارائه می" +" دهد و دقیقاً مقداری را که در رایانه شما ذخیره شده است نشان می دهد:" #: ../../tutorial/floatingpoint.rst:203 #, fuzzy @@ -497,8 +481,8 @@ msgid "" ">>> x.hex()\n" "'0x1.921f9f01b866ep+1'" msgstr "" -"```>>> x.hex()\n" -"'0x1.921f9f01b866ep+1'```" +">>> x.hex()\n" +"'0x1.921f9f01b866ep+1'" #: ../../tutorial/floatingpoint.rst:208 #, fuzzy @@ -506,7 +490,7 @@ msgid "" "This precise hexadecimal representation can be used to reconstruct the float" " value exactly:" msgstr "" -"این نمایش دقیق شانزده شانزدهی می تواند برای بازسازی دقیق مقدار «float» " +"این نمایش دقیق هگزادسیمال می تواند برای بازسازی مقدار float به طور دقیق " "استفاده شود:" #: ../../tutorial/floatingpoint.rst:211 @@ -516,7 +500,7 @@ msgid "" "True" msgstr "" ">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" -"درست" +"True" #: ../../tutorial/floatingpoint.rst:216 #, fuzzy @@ -526,9 +510,9 @@ msgid "" "data with other languages that support the same format (such as Java and " "C99)." msgstr "" -"از آنجایی که نمایش دقیق است، این امر برای انتقال مطمئن مقادیر بین نسخه های " -"مختلف پایتون (استقلال از پلتفرم) و تبادل داده با زبان های دیگر که از همان " -"قالب پشتیبانی می کنند (مانند Java و C99) مفید است." +"از آنجا که نمایش دقیق است، برای انتقال مطمئن مقادیر بین نسخه های مختلف " +"پایتون (استقلال پلتفرم) و تبادل داده با زبان های دیگر که از همان فرمت " +"پشتیبانی می کنند (مانند جاوا و C99) مفید است." #: ../../tutorial/floatingpoint.rst:220 #, fuzzy @@ -539,10 +523,10 @@ msgid "" "difference in overall accuracy so that the errors do not accumulate to the " "point where they affect the final total:" msgstr "" -"ابزار مفید دیگر، تابع :func:`sum` است که به کاهش خطای از دست رفتن دقت در طی " -"جمع کمک می کند. این تابع از دقت بالاتر برای مراحل میانگین گیری هنگام اضافه " -"شدن مقادیر به مجموع در حال اجرا استفاده می کند. این موضوع می تواند تفاوت " -"قابل توجهی در دقت کلی ایجاد کند تا خطاها به حدی نرسند که بر مجموع نهایی " +"ابزار مفید دیگر تابع :func:`sum` است که به کاهش از دست دادن دقت در هنگام جمع" +" زنی کمک می کند. این تابع از دقت بالا برای مراحل گرد کردن میانی زمانی که " +"مقادیر به مجموع در حال اجرا اضافه می شوند، استفاده می کند. این می تواند " +"تفاوتی در دقت کلی ایجاد کند تا خطاها به حدی تجمع نکنند که بر مجموع نهایی " "تأثیر بگذارند:" #: ../../tutorial/floatingpoint.rst:226 @@ -553,12 +537,10 @@ msgid "" ">>> sum([0.1] * 10) == 1.0\n" "True" msgstr "" -"```python \n" -">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0 \n" -"نادرست \n" -">>> sum([0.1] * 10) == 1.0 \n" -"درست \n" -"```" +">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" +"نادرست\n" +">>> sum([0.1] * 10) == 1.0\n" +"درست" #: ../../tutorial/floatingpoint.rst:233 #, fuzzy @@ -569,11 +551,11 @@ msgid "" "uncommon cases where large magnitude inputs mostly cancel each other out " "leaving a final sum near zero:" msgstr "" -"نسخه :func:`math.fsum` فراتر می رود و تمام \"ارقام از دست رفته\" را در حالی " -"که مقادیر به مجموع افزوده می شوند دنبال می کند تا نتیجه فقط یک بار گرد شود. " -"این روش نسبت به :func:`sum` کندتر است اما در موارد غیرمعمولی که ورودی های با" -" مقدار بزرگ عمدتاً یکدیگر را خنثی می کنند و یک جمع نهایی نزدیک به صفر باقی " -"می گذارند، دقیق تر خواهد بود." +":func:`math.fsum` جلوتر رفته و تمامی \"ارقام گم شده\" را وقتی که مقادیر به " +"مجموع در حال اجرا اضافه می شوند پیگیری می کند تا نتیجه فقط یک گرد کردن داشته" +" باشد. این کندتر از :func:`sum` است اما در موارد نادری که ورودی های بزرگ " +"مقدار عمدتاً یکدیگر را خنثی می کنند و یک جمع نهایی نزدیک به صفر باقی می " +"گذارند، دقیق تر خواهد بود:" #: ../../tutorial/floatingpoint.rst:239 #, fuzzy @@ -593,22 +575,20 @@ msgid "" ">>> total # Straight addition has no correct digits!\n" "-0.0051575902860057365" msgstr "" -"```python\n" ">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" "... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" -">>> float(sum(map(Fraction, arr))) # جمع دقیق با یک بار گرد کردن\n" +">>> float(sum(map(Fraction, arr))) # جمع دقیق با یکبار رُند کردن\n" "8.042173697819788e-13\n" -">>> math.fsum(arr) # یک بار گرد کردن\n" +">>> math.fsum(arr) # رُند کردن یکباره\n" "8.042173697819788e-13\n" -">>> sum(arr) # گرد کردن های متعدد با دقت گسترش یافته\n" +">>> sum(arr) # رُند کردن های متعدد با دقت گسترش یافته\n" "8.042178034628478e-13\n" ">>> total = 0.0\n" ">>> for x in arr:\n" -"... total += x # گرد کردن های متعدد با دقت استاندارد\n" +"... total += x # رُند کردن های متعدد با دقت استاندارد\n" "...\n" -">>> total # جمع معمولی هیچ رقم صحیحی ندارد!\n" -"-0.0051575902860057365\n" -"```" +">>> total # جمع مستقیم عدد صحیحی را ندارد!\n" +"-0.0051575902860057365" #: ../../tutorial/floatingpoint.rst:260 #, fuzzy @@ -622,9 +602,9 @@ msgid "" "perform an exact analysis of cases like this yourself. Basic familiarity " "with binary floating-point representation is assumed." msgstr "" -"این بخش مثال \"0.1\" را به طور دقیق توضیح می دهد و نشان می دهد که چگونه می " -"توانید تجزیه و تحلیل دقیقی از مواردی مانند این را خودتان انجام دهید. آشنایی " -"اولیه با نمایش اعداد اعشاری در مبنای دودویی فرض شده است." +"این بخش مثال \"0.1\" را به صورت دقیق توضیح می دهد و نشان می دهد چگونه می " +"توانید خودتان تحلیل دقیقی از موارد مشابه انجام دهید. آشنایی پایه با نمایش " +"اعداد شناور دودویی فرض شده است." #: ../../tutorial/floatingpoint.rst:266 #, fuzzy @@ -635,11 +615,10 @@ msgid "" "Fortran, and many others) often won't display the exact decimal number you " "expect." msgstr "" -":dfn:`خطای نمایش` به این واقعیت اشاره دارد که برخی (در واقع بیشتر) کسرهای " -"اعشاری نمی توانند به طور دقیق به صورت کسرهای دودویی (مبتنی بر ۲) نمایش داده " -"شوند. این مهم ترین دلیلی است که چرا پایتون (یا پرل، C، C++، جاوا، فورترن و " -"بسیاری زبان های دیگر) اغلب عدد اعشاری دقیقی که انتظار دارید را نمایش نمی " -"دهد." +"خطای نمایش به این واقعیت اشاره دارد که برخی (در واقع بیشتر) کسرهای اعشاری " +"نمی توانند به طور دقیق به صورت کسرهای دودویی (مبنای ۲) نمایش داده شوند. این " +"دلیل اصلی است که چرا پایتون (یا پرل، C، C++، جاوا، فورترن و بسیاری دیگر) " +"اغلب نمی توانند عدد اعشاری دقیقی را که انتظار دارید نمایش دهند." #: ../../tutorial/floatingpoint.rst:271 #, fuzzy @@ -652,28 +631,28 @@ msgid "" "fraction it can of the form *J*/2**\\ *N* where *J* is an integer containing" " exactly 53 bits. Rewriting ::" msgstr "" -"چرا اینطور است؟ 1/10 به طور دقیق به صورت یک کسر باینری قابل نمایش نیست. از " -"حداقل سال 2000، تقریباً تمام ماشین ها از حساب اعشاری شناوری باینری IEEE 754 " -"استفاده می کنند و تقریباً تمام پلتفرم ها اعداد اعشاری شناور پایتون را به " -"مقادیر \"دقت دوگانه\" باینری64 IEEE 754 نگاشت می کنند. مقادیر باینری64 IEEE " -"754 شامل 53 بیت دقت هستند، بنابراین در ورودی، کامپیوتر تلاش می کند 0.1 را به" -" نزدیک ترین کسری که می تواند تبدیل کند، تبدیل کند به فرم *J*/2**\\ *N* where" -" *J* که یک عدد صحیح است که دقیقاً 53 بیت دارد. بازنویسی ::" +"چرا اینطور است؟ 1/10 به صورت یک کسر دودویی دقیق نمایان نمی شود. از سال 2000 " +"به بعد، تقریباً تمام ماشین ها از محاسبات اعشاری دودویی IEEE 754 استفاده می " +"کنند و تقریباً تمام پلتفرم ها اعداد اعشاری پایتون را به مقادیر \"دقت " +"دوبرابر\" IEEE 754 binary64 نگاشت می کنند. مقادیر IEEE 754 binary64 شامل 53 " +"بیت دقت هستند، بنابراین در ورودی، کامپیوتر تلاش می کند 0.1 را به نزدیک ترین " +"کسری که می تواند از فرم تبدیل کند، که در آن *J*/2**\\ *N* where *J* یک عدد " +"صحیح است که دقیقا شامل 53 بیت می باشد. بازنویسی ::" #: ../../tutorial/floatingpoint.rst:280 #, fuzzy msgid "1 / 10 ~= J / (2**N)" -msgstr "۱ / ۱۰ تقریباً برابر است با J / (۲**N)" +msgstr "۱‏/‏۱۰ ~= J / (2**N)" #: ../../tutorial/floatingpoint.rst:282 #, fuzzy msgid "as ::" -msgstr "به عنوان ::" +msgstr "همانطور كه ::" #: ../../tutorial/floatingpoint.rst:284 #, fuzzy msgid "J ~= 2**N / 10" -msgstr "J تقریباً برابر است با 2**N تقسیم بر 10" +msgstr "J ~= 2**N / 10" #: ../../tutorial/floatingpoint.rst:286 #, fuzzy @@ -681,15 +660,17 @@ msgid "" "and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " "2**53``), the best value for *N* is 56:" msgstr "" -"و به یاد داشته باشید که *J* دقیقاً ۵۳ بیت دارد (همان ``>= 2**52`` اما ``< " -"2**53`` می باشد)، بهترین مقدار برای *N* برابر با ۵۶ است:" +"و با یادآوری اینکه *J* دقیقا ۵۳ بیت دارد (``>= 2**52`` است اما ``< 2**53`` " +"نیست)، بهترین مقدار برای *N* برابر ۵۶ است:" #: ../../tutorial/floatingpoint.rst:289 #, fuzzy msgid "" ">>> 2**52 <= 2**56 // 10 < 2**53\n" "True" -msgstr "راست می باشد" +msgstr "" +">>> 2**52 <= 2**56 // 10 < 2**53\n" +"درست" #: ../../tutorial/floatingpoint.rst:294 #, fuzzy @@ -697,8 +678,8 @@ msgid "" "That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits." " The best possible value for *J* is then that quotient rounded:" msgstr "" -"یعنی ۵۶ تنها مقداری است برای *N* که *J* را دقیقاً با ۵۳ بیت باقی می گذارد. " -"بهترین مقدار ممکن برای *J*، سپس آن خارج قسمت گرد شده است:" +"یعنی، 56 تنها مقداری است برای *N* که *J* را دقیقا با 53 بیت باقی می گذارد. " +"بهترین مقدار ممکن برای *J* سپس آن خارج قسمت گرد شده است:" #: ../../tutorial/floatingpoint.rst:297 #, fuzzy @@ -707,11 +688,9 @@ msgid "" ">>> r\n" "6" msgstr "" -"```python\n" ">>> q, r = divmod(2**56, 10)\n" ">>> r\n" -"6\n" -"```" +"6" #: ../../tutorial/floatingpoint.rst:303 #, fuzzy @@ -719,15 +698,17 @@ msgid "" "Since the remainder is more than half of 10, the best approximation is " "obtained by rounding up:" msgstr "" -"از آنجا که باقیمانده بیشتر از نصف 10 است، بهترین تقریب با گرد کردن به بالا " -"به دست می آید:" +"از آنجا که باقیمانده بیش از نصف 10 است، بهترین تقریب با گرد کردن به بالا به " +"دست می آید:" #: ../../tutorial/floatingpoint.rst:306 #, fuzzy msgid "" ">>> q+1\n" "7205759403792794" -msgstr "۷۲۰۵۷۵۹۴۰۳۷۹۲۷۹۴" +msgstr "" +">>> q+1\n" +"7205759403792794" #: ../../tutorial/floatingpoint.rst:313 #, fuzzy @@ -740,18 +721,22 @@ msgstr "" #: ../../tutorial/floatingpoint.rst:316 #, fuzzy msgid "7205759403792794 / 2 ** 56" -msgstr "۷۲۰۵۷۵۹۴۰۳۷۹۲۷۹۴ / ۲ ** ۵۶" +msgstr "" +"تقسیم یک عدد صحیح بزرگ بر توان ۲ در پایتون به سادگی قابل انجام است. این توانایی به لطف نوع داده ی \"int\" پایتون است که به صورت خودکار اعداد بزرگ را دسته بندی و مدیریت می کند. برای مثال، در زیر یک عدد صحیح بزرگ بر یک توان از ۲ تقسیم می شود و نتیجه بازگردانده می شود:\n" +"\n" +"7205759403792794 / 2 ** 56" #: ../../tutorial/floatingpoint.rst:318 #, fuzzy msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" -msgstr "با تقسیم کردن صورت و مخرج بر دو، کسر به شکل زیر ساده می شود::" +msgstr "" +"با تقسیم همزمان صورت و مخرج بر عدد دو، کسر به فرم ساده تری تبدیل می شود::" #: ../../tutorial/floatingpoint.rst:320 #, fuzzy msgid "3602879701896397 / 2 ** 55" -msgstr "۳۶۰۲۸۷۹۷۰۱۸۹۶۳۹۷ / ۲ ** ۵۵" +msgstr "3602879701896397 / 2 ** 55" #: ../../tutorial/floatingpoint.rst:322 #, fuzzy @@ -760,9 +745,9 @@ msgid "" "1/10; if we had not rounded up, the quotient would have been a little bit " "smaller than 1/10. But in no case can it be *exactly* 1/10!" msgstr "" -"توجه داشته باشید که چون رو به بالا گرد کردیم، این در واقع کمی بزرگ تر از " -"1/10 است؛ اگر رو به بالا گرد نمی کردیم، خارج قسمت کمی کوچک تر از 1/10 می شد." -" اما در هیچ حالتی نمی تواند *exactly* 1/10 باشد!" +"توجه داشته باشید که از آنجایی که ما به بالا گرد کردیم، این مقدار در واقع کمی" +" بیشتر از 1/10 است؛ اگر ما گرد نکرده بودیم، خارج قسمت کمی کمتر از 1/10 می " +"بود. اما در هیچ صورت نمی تواند *exactly* 1/10 باشد!" #: ../../tutorial/floatingpoint.rst:326 #, fuzzy @@ -770,8 +755,9 @@ msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best IEEE 754 double approximation it can get:" msgstr "" -"بنابراین کامپیوتر هرگز 1/10 را \"نمی بیند\": آنچه می بیند دقیقاً همان کسری " -"است که در بالا داده شده، بهترین تقریب مضاعف IEEE 754 که می تواند بدست آورد:" +"پس کامپیوتر هرگز 1/10 را \"نمی بیند\": چیزی که می بیند همان کسری دقیق ذکر " +"شده در بالا است، یعنی بهترین تقریب double در استاندارد IEEE 754 که می تواند " +"بدست آورد:" #: ../../tutorial/floatingpoint.rst:329 #, fuzzy @@ -779,7 +765,7 @@ msgid "" ">>> 0.1 * 2 ** 55\n" "3602879701896397.0" msgstr "" -">>> 0.1 * 55\n" +">>> 0.1 * 2 ** 55\n" "3602879701896397.0" #: ../../tutorial/floatingpoint.rst:334 @@ -788,7 +774,7 @@ msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits:" msgstr "" -"اگر آن کسر را در 10\\*\\*55 ضرب کنیم، می توانیم مقدار آن را تا ۵۵ رقم اعشار " +"اگر آن کسر را در 10\\*\\*55 ضرب کنیم، می توانیم مقدار را تا 55 رقم اعشار " "ببینیم:" #: ../../tutorial/floatingpoint.rst:337 @@ -808,10 +794,10 @@ msgid "" " displaying the full decimal value, many languages (including older versions" " of Python), round the result to 17 significant digits:" msgstr "" -"به این معنا که عدد دقیق ذخیره شده در کامپیوتر برابر با مقدار اعشاری " +"به این معنا که عدد دقیق ذخیره شده در کامپیوتر برابر با مقدار دهدهی " "0.1000000000000000055511151231257827021181583404541015625 است. به جای نمایش " -"مقدار کامل اعشاری، بسیاری از زبان ها (از جمله نسخه های قدیمی تر Python) " -"نتیجه را به 17 رقم معنی دار گرد می کنند:" +"مقدار کامل دهدهی، بسیاری از زبان ها (شامل نسخه های قدیمی تر پایتون)، نتیجه " +"را به 17 رقم معنادار گرد می کنند:" #: ../../tutorial/floatingpoint.rst:347 #, fuzzy @@ -819,10 +805,8 @@ msgid "" ">>> format(0.1, '.17f')\n" "'0.10000000000000001'" msgstr "" -"```python\n" ">>> format(0.1, '.17f')\n" -"'0.10000000000000001'\n" -"```" +"'0.10000000000000001'" #: ../../tutorial/floatingpoint.rst:352 #, fuzzy @@ -850,17 +834,17 @@ msgid "" ">>> format(Decimal.from_float(0.1), '.17')\n" "'0.10000000000000001'" msgstr "" -">>> from decimal import Decimal \n" -">>> from fractions import Fraction \n" +">>> from decimal import Decimal\n" +">>> from fractions import Fraction\n" "\n" -">>> Fraction.from_float(0.1) \n" -"Fraction(3602879701896397, 36028797018963968) \n" +">>> Fraction.from_float(0.1)\n" +"کسر (3602879701896397، 36028797018963968)\n" "\n" -">>> (0.1).as_integer_ratio() \n" -"(3602879701896397, 36028797018963968) \n" +">>> (0.1).as_integer_ratio()\n" +"(3602879701896397، 36028797018963968)\n" "\n" -">>> Decimal.from_float(0.1) \n" -"Decimal('0.1000000000000000055511151231257827021181583404541015625') \n" +">>> Decimal.from_float(0.1)\n" +"اعشاری ('0.1000000000000000055511151231257827021181583404541015625')\n" "\n" -">>> format(Decimal.from_float(0.1), '.17') \n" +">>> format(Decimal.from_float(0.1)، '.17')\n" "'0.10000000000000001'" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 75189948c..01ccd901a 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -33,14 +33,14 @@ msgid "" "printed in a human-readable form, or written to a file for future use. This " "chapter will discuss some of the possibilities." msgstr "" -"راه های مختلفی برای ارائه خروجی یک برنامه وجود دارد؛ داده ها می توانند به " -"شکلی قابل خواندن برای انسان چاپ شوند یا برای استفاده های آتی در یک فایل " -"نوشته شوند. این فصل برخی از این امکانات را بررسی خواهد کرد." +"راه های متعددی برای نمایش خروجی یک برنامه وجود دارد؛ اطلاعات می تواند به " +"صورت قابل خواندن برای انسان چاپ شود یا برای استفاده های آتی در فایل نوشته " +"شود. این فصل به برخی از این امکانات خواهد پرداخت." #: ../../tutorial/inputoutput.rst:15 #, fuzzy msgid "Fancier Output Formatting" -msgstr "قالب بندی پیشرفته تر خروجی" +msgstr "قالب بندی خروجی جذاب تر" #: ../../tutorial/inputoutput.rst:17 #, fuzzy @@ -51,10 +51,11 @@ msgid "" "file can be referenced as ``sys.stdout``. See the Library Reference for more" " information on this.)" msgstr "" -"تا کنون با دو روش برای نوشتن مقادیر روبرو شده ایم: *expression statements* و" -" تابع :func:`print`. (روش سوم استفاده از متد :meth:`~io.TextIOBase.write` " -"اشیاء فایل است؛ فایل خروجی استاندارد می تواند به صورت ``sys.stdout`` اشاره " -"شود. برای اطلاعات بیشتر به مرجع کتابخانه مراجعه کنید.)" +"تا کنون با دو روش برای نوشتن مقادیر آشنا شده ایم: *expression statements* و " +"تابع :func:`print`. (روش سوم استفاده از متد :meth:`~io.TextIOBase.write` " +"برای آبجکت های فایل است؛ فایل خروجی استاندارد می تواند به عنوان " +"``sys.stdout`` اشاره شود. برای اطلاعات بیشتر به مراجعه کنید به Library " +"Reference.)" #: ../../tutorial/inputoutput.rst:22 #, fuzzy @@ -63,9 +64,9 @@ msgid "" "simply printing space-separated values. There are several ways to format " "output." msgstr "" -"اغلباً شما نیاز دارید که کنترل بیشتری بر قالب بندی خروجی خود داشته باشید تا " -"اینکه صرفاً مقادیری که با فاصله جدا شده اند را چاپ کنید. روش های مختلفی برای" -" قالب بندی خروجی وجود دارد." +"اغلب اوقات شما می خواهید کنترل بیشتری بر روی فرمت بندی خروجی خود نسبت به " +"صرفاً چاپ مقادیر با فاصله های جداکننده داشته باشید. راه های مختلفی برای فرمت" +" کردن خروجی وجود دارد." #: ../../tutorial/inputoutput.rst:25 #, fuzzy @@ -76,9 +77,9 @@ msgid "" "``}`` characters that can refer to variables or literal values." msgstr "" "برای استفاده از :ref:`formatted string literals `، یک رشته را" -" با ``f`` یا ``F`` قبل از علامت نقل قول باز یا علامت نقل قول سه گانه شروع " -"کنید. در داخل این رشته، می توانید یک عبارت پایتون را بین نویسه های ``{`` و " -"``}`` بنویسید که می تواند به متغیرها یا مقادیر عددی ارجاع دهد." +" با ``f`` یا ``F`` قبل از علامت نقل قول یا نقل قول سه گانه آغاز کنید. درون " +"این رشته، می توانید یک عبارت پایتون را بین کاراکترهای ``{`` و ``}`` بنویسید " +"که می تواند به متغیرها یا مقادیر صریح اشاره کند." #: ../../tutorial/inputoutput.rst:32 #, fuzzy @@ -88,12 +89,10 @@ msgid "" ">>> f'Results of the {year} {event}'\n" "'Results of the 2016 Referendum'" msgstr "" -"```python\n" -">>> سال = ۲۰۱۶\n" -">>> رویداد = 'همه پرسی'\n" -">>> f'نتایج {سال} {رویداد}'\n" -"'نتایج ۲۰۱۶ همه پرسی'\n" -"```" +">>> year = 2016\n" +">>> event = 'Referendum'\n" +">>> f'Results of the {year} {event}'\n" +"'نتایج همه پرسی 2016'" #: ../../tutorial/inputoutput.rst:37 #, fuzzy @@ -105,10 +104,10 @@ msgid "" " there are two examples of how to format variables:" msgstr "" "روش :meth:`str.format` در رشته ها نیاز به تلاش دستی بیشتری دارد. شما همچنان " -"از ``{`` و ``}`` برای مشخص کردن جایی که یک متغیر قرار داده خواهد شد استفاده " -"کرده و می توانید دستورالعمل های قالب بندی دقیق ارائه دهید، اما همچنین نیاز " -"خواهید داشت اطلاعاتی که باید قالب بندی شود را ارائه دهید. در بلوک کد زیر دو " -"نمونه از چگونگی قالب بندی متغیرها آورده شده است:" +"از ``{`` و ``}`` استفاده خواهید کرد تا مشخص کنید که یک متغیر کجا جایگزین " +"خواهد شد و می توانید دستورات قالب بندی دقیقی ارائه دهید، اما همچنین لازم است" +" اطلاعاتی که باید قالب بندی شوند، را فراهم کنید. در بلوک کد زیر دو مثال از " +"چگونگی قالب بندی متغیرها وجود دارد:" #: ../../tutorial/inputoutput.rst:46 #, fuzzy @@ -119,13 +118,11 @@ msgid "" ">>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage)\n" "' 42572654 YES votes 49.67%'" msgstr "" -"```python\n" ">>> yes_votes = 42_572_654\n" ">>> total_votes = 85_705_149\n" ">>> percentage = yes_votes / total_votes\n" ">>> '{:-9} YES votes {:2.2%}'.format(yes_votes, percentage)\n" -"' 42572654 YES votes 49.67%'\n" -"```" +"' 42572654 YES votes 49.67%'" #: ../../tutorial/inputoutput.rst:52 #, fuzzy @@ -135,10 +132,10 @@ msgid "" "100, with 2 decimal places and followed by a percent sign (see " ":ref:`formatspec` for details)." msgstr "" -"توجه کنید که ``yes_votes`` با فاصله ها و علامت منفی تنها برای اعداد منفی پر " -"شده اند. در این مثال همچنین ``percentage`` ضربدر 100 چاپ می شود که دارای 2 " -"مکان اعشار است و با علامت درصد دنبال می شود (برای جزئیات به " -":ref:`formatspec` مراجعه کنید)." +"توجه کنید که ``yes_votes`` با فاصله ها و یک علامت منفی فقط برای اعداد منفی " +"پر می شوند. این مثال همچنین ``percentage`` را که در 100 ضرب شده است چاپ می " +"کند، با 2 رقم اعشار و به دنبال آن علامت درصد (جزئیات را در :ref:`formatspec`" +" ببینید)." #: ../../tutorial/inputoutput.rst:57 #, fuzzy @@ -148,10 +145,10 @@ msgid "" "string type has some methods that perform useful operations for padding " "strings to a given column width." msgstr "" -"در نهایت، می توانید تمام عملیات مربوط به رشته را با استفاده از برش رشته و " -"عملیات الحاق انجام دهید تا هر نوع چیدمانی که تصور می کنید را ایجاد کنید. نوع" -" داده ی رشته دارای برخی متدها است که عملیات مفیدی برای پر کردن رشته ها به " -"عرض ستون مشخصی انجام می دهند." +"در نهایت، شما می توانید با استفاده از عملیات برش زدن و الحاق رشته ، مدیریت " +"رشته ها را به طور کامل خودتان انجام دهید تا هر چیدمانی که تصور می کنید ایجاد" +" کنید. نوع داده ی رشته دارای روش هایی است که عملیات مفیدی برای پر کردن رشته " +"ها به عرض یک ستون مشخص انجام می دهند." #: ../../tutorial/inputoutput.rst:62 #, fuzzy @@ -160,9 +157,9 @@ msgid "" "variables for debugging purposes, you can convert any value to a string with" " the :func:`repr` or :func:`str` functions." msgstr "" -"وقتی به خروجی پر زرق و برق نیاز ندارید و فقط می خواهید برای اهداف اشکال " -"زدایی به سرعت چند متغیر را نمایش دهید، می توانید با استفاده از توابع " -"`:func:`repr`` یا `:func:`str`` هر مقداری را به یک رشته تبدیل کنید." +"وقتی که نیازی به خروجی پیچیده ندارید و فقط می خواهید نمایش سریعی از برخی " +"متغیرها برای اشکال زدایی داشته باشید، می توانید هر مقداری را با استفاده از " +"توابع `:func:`repr`` یا `:func:`str`` به یک رشته تبدیل کنید." #: ../../tutorial/inputoutput.rst:66 #, fuzzy @@ -176,19 +173,19 @@ msgid "" " structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" -"تابع :func:`str` به منظور ارائه نمایش ارزش هایی است که به سادگی قابل درک " -"برای انسان باشند، در حالی که :func:`repr` به منظور تولید نمایشی است که توسط" -" مفسر قابل خواندن باشد (یا در صورت نبود سینتکس معادل، یک :exc:`SyntaxError` " -"را ایجاد می کند). برای اشیایی که نمایش خاصی برای مصرف انسانی ندارند، " -":func:`str` همان مقداری را بازمی گرداند که :func:`repr` بازمی گرداند. بسیاری" -" از ارزش ها، مانند اعداد یا ساختارهایی مانند لیست ها و دیکشنری ها، با " -"استفاده از هر دو تابع دارای نمایش یکسانی هستند. رشته ها به ویژه دارای دو " -"نمایش متمایز هستند." +"تابع :func:`str` قرار است که نمایش هایی از مقادیر را برگرداند که برای انسان " +"قابل فهم باشند، در حالی که :func:`repr` هدف دارد نمایش هایی تولید کند که " +"توسط مفسر خوانده شوند (یا اگر هیچ سینتکس معادلی وجود نداشته باشد، یک " +":exc:`SyntaxError` را اجباری می کند). برای اشیایی که نمایش خاصی برای مصرف " +"انسانی ندارند، :func:`str` همان مقداری که :func:`repr` برمی گرداند را برمی " +"گرداند. بسیاری از مقادیر، مانند اعداد یا ساختارهایی مانند لیست ها و دیکشنری " +"ها، با استفاده از هر دو تابع نمایش یکسانی دارند. به ویژه، رشته ها دو نمایش " +"متمایز دارند." #: ../../tutorial/inputoutput.rst:75 #, fuzzy msgid "Some examples::" -msgstr "نمونه هایی:" +msgstr "چند مثال::" #: ../../tutorial/inputoutput.rst:77 #, fuzzy @@ -214,28 +211,26 @@ msgid "" ">>> repr((x, y, ('spam', 'eggs')))\n" "\"(32.5, 40000, ('spam', 'eggs'))\"" msgstr "" -"```python\n" -">>> s = 'Hello, world.'\n" +">>> s = 'سلام، دنیا.'\n" ">>> str(s)\n" -"'Hello, world.'\n" +"'سلام، دنیا.'\n" ">>> repr(s)\n" -"\"'Hello, world.'\"\n" +"\"'سلام، دنیا.'\"\n" ">>> str(1/7)\n" "'0.14285714285714285'\n" -">>> x = 10\n" -">>> y = 200\n" -">>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...'\n" +">>> x = 10 * 3.25\n" +">>> y = 200 * 200\n" +">>> s = 'مقدار x برابر است با ' + repr(x) + '، و y برابر است با ' + repr(y) + '...'\n" ">>> print(s)\n" -"مقدار x برابر با 10، و y برابر با 200...\n" -">>> # خروجی تابع repr() برای یک رشته، علامت نقل قول و بک اسلش ها را اضافه می کند:\n" -">>> hello = 'hello, world\\n'\n" +"مقدار x برابر است با 32.5، و y برابر است با 40000...\n" +">>> # تابع repr() در رشته ها، نقل قول ها و بک اسلش ها را اضافه می کند:\n" +">>> hello = 'سلام، دنیا\\n'\n" ">>> hellos = repr(hello)\n" ">>> print(hellos)\n" -"'hello, world\\n'\n" -">>> # آرگومان تابع repr() می تواند هر شیء پایتون باشد:\n" +"'سلام، دنیا\\n'\n" +">>> # آرگومان تابع repr() می تواند هر شیء پایتونی باشد:\n" ">>> repr((x, y, ('spam', 'eggs')))\n" -"\"(10, 200, ('spam', 'eggs'))\"\n" -"```" +"\"(32.5, 40000, ('spam', 'eggs'))\"" #: ../../tutorial/inputoutput.rst:98 #, fuzzy @@ -245,15 +240,15 @@ msgid "" " like ``$x`` and replacing them with values from a dictionary, but offers " "much less control of the formatting." msgstr "" -"ماژول :mod:`string` شامل کلاسی به نام :class:`~string.Template` است که روشی " -"دیگر برای جایگزینی مقادیر در رشته ها با استفاده از مکان نماهایی مانند ``$x``" -" و جایگزینی آن ها با مقادیر یک دیکشنری ارائه می دهد، اما کنترل کمتری بر قالب" -" بندی دارد." +"ماژول :mod:`string` شامل یک کلاس :class:`~string.Template` است که راه دیگری " +"برای جایگزین کردن مقادیر در رشته ها با استفاده از جای نگهدارهایی مانند " +"``$x`` ارائه می دهد و آن ها را با مقادیر یک دیکشنری جایگزین می کند، اما " +"کنترل بسیار کمتری بر قالب بندی ارائه می دهد." #: ../../tutorial/inputoutput.rst:114 #, fuzzy msgid "Formatted String Literals" -msgstr "رشته های قالب بندی شده" +msgstr "رشته های قالب بندی شده (Formatted String Literals)" #: ../../tutorial/inputoutput.rst:116 #, fuzzy @@ -263,10 +258,10 @@ msgid "" "prefixing the string with ``f`` or ``F`` and writing expressions as " "``{expression}``." msgstr "" -"رشته های :ref:`Formatted string literals ` (که به اختصار " -"f-strings نامیده می شوند) به شما اجازه می دهند تا مقادیر عبارات پایتون را " -"درون یک رشته شامل کنید، به این صورت که رشته را با ``f`` یا ``F`` شروع کرده و" -" عبارات را به صورت ``{expression}`` بنویسید." +"رشته های :ref:`Formatted string literals ` (که به اختصار به عنوان" +" f-strings شناخته می شوند) به شما این امکان را می دهند که مقدار عبارات " +"پایتون را درون یک رشته قرار دهید. این کار را با اضافه کردن پیشوند ``f`` یا " +"``F`` به رشته و نوشتن عبارات به صورت ``{expression}`` انجام می دهید." #: ../../tutorial/inputoutput.rst:121 #, fuzzy @@ -275,9 +270,9 @@ msgid "" "control over how the value is formatted. The following example rounds pi to " "three places after the decimal::" msgstr "" -"یک مشخص کننده قالب اختیاری می تواند به دنبال عبارت بیاید. این امکان کنترل " -"بیشتری بر نحوه قالب بندی مقدار را می دهد. مثال زیر عدد پی را تا سه رقم اعشار" -" گرد می کند:" +"یک مشخص کنندهٔ قالب اختیاری می تواند پس از عبارت بیاید. این کار کنترل بیشتری" +" بر روی نحوه ی قالب بندی مقدار فراهم می کند. مثال زیر عدد پی را به سه رقم " +"اعشار گرد می کند::" #: ../../tutorial/inputoutput.rst:125 #, fuzzy @@ -286,9 +281,9 @@ msgid "" ">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" "The value of pi is approximately 3.142." msgstr "" -"```>> import math\n" -">>> print(f'مقدار پی تقریباً {math.pi:.3f} است.')\n" -"مقدار پی تقریباً 3.142 است.```" +">>> import math\n" +">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" +"مقدار pi تقریباً 3.142 است." #: ../../tutorial/inputoutput.rst:129 #, fuzzy @@ -296,9 +291,8 @@ msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" -"قرار دادن یک عدد صحیح بعد از \"``':'``\" باعث می شود که آن بخش حداقل به " -"اندازه ی تعداد مشخصی از کاراکترها پهن باشد. این ویژگی برای هم تراز کردن ستون" -" ها مفید است." +"قراردادن یک عدد صحیح بعد از ``':'`` باعث می شود که آن فیلد حداقل تعداد مشخصی" +" کاراکتر داشته باشد. این قابلیت برای هم تراز کردن ستون ها مفید است. ::" #: ../../tutorial/inputoutput.rst:132 #, fuzzy @@ -311,15 +305,13 @@ msgid "" "Jack ==> 4098\n" "Dcab ==> 7678" msgstr "" -"```python\n" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}\n" ">>> for name, phone in table.items():\n" "... print(f'{name:10} ==> {phone:10d}')\n" "...\n" "Sjoerd ==> 4127\n" "Jack ==> 4098\n" -"Dcab ==> 7678\n" -"```" +"Dcab ==> 7678" #: ../../tutorial/inputoutput.rst:140 #, fuzzy @@ -328,9 +320,9 @@ msgid "" "``'!a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" -"سایر تغییر دهنده ها می توانند برای تبدیل مقدار قبل از قالب بندی استفاده " -"شوند. ``'!a'`` برای :func:`ascii` اعمال می شود، ``'!s'`` برای :func:`str` " -"اعمال می شود، و ``'!r'`` برای :func:`repr` اعمال می شود::" +"تغییر دهنده های دیگر می توانند برای تبدیل مقدار قبل از فرمت بندی استفاده " +"شوند. ``'!a'`` تابع :func:`ascii` را اعمال می کند، ``'!s'`` تابع :func:`str`" +" را اعمال می کند، و ``'!r'`` تابع :func:`repr` را اعمال می کند::" #: ../../tutorial/inputoutput.rst:144 #, fuzzy @@ -342,10 +334,10 @@ msgid "" "My hovercraft is full of 'eels'." msgstr "" ">>> animals = 'eels'\n" -">>> print(f'هورکرافت من پر از {animals} است.')\n" -"هورکرافت من پر از eels است.\n" -">>> print(f'هورکرافت من پر از {animals!r} است.')\n" -"هورکرافت من پر از 'eels' است." +">>> print(f'My hovercraft is full of {animals}.')\n" +"هاورکرافت من پر از eels است.\n" +">>> print(f'My hovercraft is full of {animals!r}.')\n" +"هاورکرافت من پر از 'eels' است." #: ../../tutorial/inputoutput.rst:150 #, fuzzy @@ -354,8 +346,8 @@ msgid "" "expression, an equal sign, then the representation of the evaluated " "expression:" msgstr "" -"می توان از مشخص کنندهٔ ``=`` برای گسترش یک عبارت به متن اصلی آن عبارت، یک " -"علامت تساوی، و سپس نمایش بازنمایی شدهٔ مقدار ارزیابی شدهٔ عبارت استفاده کرد:" +"مشخص کننده ``=`` می تواند برای بسط یک عبارت به متن عبارت، علامت مساوی و سپس " +"نمایش عبارت ارزیابی شده استفاده شود:" #: ../../tutorial/inputoutput.rst:159 #, fuzzy @@ -364,19 +356,19 @@ msgid "" "information on the ``=`` specifier. For a reference on these format " "specifications, see the reference guide for the :ref:`formatspec`." msgstr "" -"برای اطلاعات بیشتر درباره مشخص کننده ``=`` به :ref:`self-documenting " -"expressions ` مراجعه کنید. برای راهنمایی درباره این " -"مشخصات فرمت، به راهنمای مرجع برای :ref:`formatspec` مراجعه کنید." +"برای کسب اطلاعات بیشتر در مورد ``=`` به :ref:`self-documenting expressions " +"` مراجعه کنید. برای مرجعی در مورد این مشخصات فرمت، به " +"راهنمای مرجع :ref:`formatspec` مراجعه کنید." #: ../../tutorial/inputoutput.rst:166 #, fuzzy msgid "The String format() Method" -msgstr "متد `format()` رشته" +msgstr "متد String `format()`" #: ../../tutorial/inputoutput.rst:168 #, fuzzy msgid "Basic usage of the :meth:`str.format` method looks like this::" -msgstr "استفاده پایه از متد :meth:`str.format` به این شکل است::" +msgstr "استفاده ی پایه از روش :meth:`str.format` به این صورت است::" #: ../../tutorial/inputoutput.rst:170 #, fuzzy @@ -384,9 +376,8 @@ msgid "" ">>> print('We are the {} who say \"{}!\"'.format('knights', 'Ni'))\n" "We are the knights who say \"Ni!\"" msgstr "" -"```>>> print('ما {} هستیم که می گویند \"{}!\"'.format('شوالیه ها', 'نی'))\n" -"ما شوالیه ها هستیم که می گویند \"نی!\"\n" -"```" +">>> print('ما {} هستيم كه مي گويند \"{}!\"'.format('knights', 'Ni'))\n" +"We are the knights who say \"Ni!\"" #: ../../tutorial/inputoutput.rst:173 #, fuzzy @@ -396,10 +387,10 @@ msgid "" " brackets can be used to refer to the position of the object passed into the" " :meth:`str.format` method. ::" msgstr "" -"کاراکترها و کروشه های درون آن ها (که به عنوان فیلدهای قالب شناخته می شوند) " -"با اشیایی که به روش :meth:`str.format` ارسال می شوند، جایگزین می گردند. برای" -" اشاره به موقعیت شیء ارسال شده به روش :meth:`str.format` می توان از یک عدد " -"درون کروشه ها استفاده کرد." +"کروشه ها و کاراکترهای درون آن ها (که به آن ها فیلدهای قالب گذاری گفته می " +"شود) با اشیای پاس داده شده به متد :meth:`str.format` جایگزین می شوند. یک عدد" +" در کروشه ها می تواند برای اشاره به موقعیت شیء پاس داده شده به متد " +":meth:`str.format` استفاده شود. ::" #: ../../tutorial/inputoutput.rst:178 #, fuzzy @@ -409,12 +400,10 @@ msgid "" ">>> print('{1} and {0}'.format('spam', 'eggs'))\n" "eggs and spam" msgstr "" -"```python\n" ">>> print('{0} و {1}'.format('spam', 'eggs'))\n" "spam و eggs\n" ">>> print('{1} و {0}'.format('spam', 'eggs'))\n" -"eggs و spam\n" -"```" +"eggs و spam" #: ../../tutorial/inputoutput.rst:183 #, fuzzy @@ -422,7 +411,7 @@ msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values" " are referred to by using the name of the argument. ::" msgstr "" -"اگر در متد :meth:`str.format` از آرگومان های کلیدی استفاده شود، مقادیر آن ها" +"اگر از آرگومان های کلیدی در متد :meth:`str.format` استفاده شود، مقادیر آن ها" " با استفاده از نام آرگومان ارجاع داده می شوند. ::" #: ../../tutorial/inputoutput.rst:186 @@ -432,18 +421,14 @@ msgid "" "... food='spam', adjective='absolutely horrible'))\n" "This spam is absolutely horrible." msgstr "" -"```python\n" -">>> print('این {food} است {adjective}.'.format(\n" -"... food='spam', adjective='کاملاً وحشتناک'))\n" -"این spam است کاملاً وحشتناک.\n" -"```" +">>> print('این {food} کاملاً {adjective} است.'.format(\n" +"... food='spam', adjective='وحشتناک'))\n" +"This spam is absolutely horrible." #: ../../tutorial/inputoutput.rst:190 #, fuzzy msgid "Positional and keyword arguments can be arbitrarily combined::" -msgstr "" -"آرگومان های موقعیتی و کلیدواژه ای می توانند به صورت دلخواه با هم ترکیب " -"شوند::" +msgstr "آرگومان های مکانی و کلیدی می توانند به صورت دلخواه ترکیب شوند::" #: ../../tutorial/inputoutput.rst:192 #, fuzzy @@ -452,10 +437,9 @@ msgid "" "... other='Georg'))\n" "The story of Bill, Manfred, and Georg." msgstr "" -"```python\n" -">>> print('داستان {0}، {1} و {other}.'.format('بیل', 'مانفرد', other='گئورگ'))\n" -"داستان بیل، مانفرد و گئورگ.\n" -"```" +">>> print('داستان {0}, {1} و {other}.'.format('Bill', 'Manfred',\n" +"... other='Georg'))\n" +"داستان Bill, Manfred و Georg." #: ../../tutorial/inputoutput.rst:196 #, fuzzy @@ -465,10 +449,10 @@ msgid "" "instead of by position. This can be done by simply passing the dict and " "using square brackets ``'[]'`` to access the keys. ::" msgstr "" -"اگر رشته فرمت بسیار طولانی دارید که نمی خواهید آن را تقسیم کنید، خوب است اگر" -" بتوانید به متغیرهایی که باید قالب بندی شوند به جای موقعیت، با نام اشاره " -"کنید. این کار می تواند با عبور دادن دیکشنری و استفاده از کروشه برای دسترسی " -"به کلیدها انجام شود." +"اگر شما دارای یک رشته فرمت بسیار طولانی هستید که نمی خواهید آن را تقسیم " +"کنید، بهتر است که متغیرهایی که قرار است فرمت شوند را به جای موقعیت، با نام " +"فراخوانی کنید. این کار به سادگی با ارسال `dict` و استفاده از کروشه ها برای " +"دسترسی به کلیدها انجام می شود. ::" #: ../../tutorial/inputoutput.rst:201 #, fuzzy @@ -478,12 +462,10 @@ msgid "" "... 'Dcab: {0[Dcab]:d}'.format(table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" msgstr "" -"```plaintext\n" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '\n" "... 'Dcab: {0[Dcab]:d}'.format(table))\n" -"Jack: 4098; Sjoerd: 4127; Dcab: 8637678\n" -"```" +"Jack: 4098; Sjoerd: 4127; Dcab: 8637678" #: ../../tutorial/inputoutput.rst:206 #, fuzzy @@ -491,8 +473,8 @@ msgid "" "This could also be done by passing the ``table`` dictionary as keyword " "arguments with the ``**`` notation. ::" msgstr "" -"این کار همچنین می تواند با انتقال دیکشنری ``table`` به عنوان آرگومان های " -"کلیدواژه با نماد ``**`` انجام شود. ::" +"این کار همچنین می تواند با ارسال دیکشنری ``table`` به عنوان آرگومان های کلمه" +" کلیدی با نوتیشن ``**`` انجام شود. ::" #: ../../tutorial/inputoutput.rst:209 #, fuzzy @@ -501,11 +483,9 @@ msgid "" ">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))\n" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" msgstr "" -"```python\n" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))\n" -"Jack: 4098; Sjoerd: 4127; Dcab: 8637678\n" -"```" +"Jack: 4098; Sjoerd: 4127; Dcab: 8637678" #: ../../tutorial/inputoutput.rst:213 #, fuzzy @@ -513,8 +493,8 @@ msgid "" "This is particularly useful in combination with the built-in function " ":func:`vars`, which returns a dictionary containing all local variables::" msgstr "" -"این مخصوصاً در ترکیب با تابع داخلی `:func:`vars`` بسیار مفید است، که یک " -"دیکشنری شامل تمام متغیرهای محلی را برمی گرداند::" +"این به ویژه در ترکیب با تابع داخلی :func:`vars` مفید است که یک دیکشنری حاوی " +"تمام متغیرهای محلی را برمی گرداند::" #: ../../tutorial/inputoutput.rst:216 #, fuzzy @@ -524,12 +504,10 @@ msgid "" ">>> print(message.format(**table))\n" "__name__: __main__; __doc__: None; __package__: None; __loader__: ..." msgstr "" -"```python\n" ">>> table = {k: str(v) for k, v in vars().items()}\n" ">>> message = \" \".join([f'{k}: ' + '{' + k +'};' for k in table.keys()])\n" ">>> print(message.format(**table))\n" -"__name__: __main__; __doc__: None; __package__: None; __loader__: ...\n" -"```" +"__name__: __main__; __doc__: None; __package__: None; __loader__: ..." #: ../../tutorial/inputoutput.rst:221 #, fuzzy @@ -537,8 +515,8 @@ msgid "" "As an example, the following lines produce a tidily aligned set of columns " "giving integers and their squares and cubes::" msgstr "" -"به عنوان مثال، خطوط زیر مجموعه ای از ستون ها را تولید می کنند که به طور منظم" -" تراز شده و اعداد صحیح، مربع ها و مکعب های آن ها را نشان می دهند::" +"به عنوان یک مثال، خطوط زیر مجموعه ای به خوبی مرتب شده از ستون ها را تولید می" +" کنند که عددهای صحیح و توان دوم و سوم آن ها را نشان می دهد::" #: ../../tutorial/inputoutput.rst:224 #, fuzzy @@ -557,8 +535,9 @@ msgid "" " 9 81 729\n" "10 100 1000" msgstr "" -"```>>> for x in range(1, 11):\n" -"... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))\n" +"```python\n" +">>> for x in range(1, 11):\n" +"... print('{0:2d} {1:3d} {2:4d}'.format(x, x**2, x**3))\n" "...\n" " 1 1 1\n" " 2 4 8\n" @@ -578,20 +557,20 @@ msgid "" "For a complete overview of string formatting with :meth:`str.format`, see " ":ref:`formatstrings`." msgstr "" -"برای مشاهده ی کامل قالب بندی رشته با :meth:`str.format`، به " +"برای دید کلی از قالب بندی رشته با :meth:`str.format`، به " ":ref:`formatstrings` مراجعه کنید." #: ../../tutorial/inputoutput.rst:243 #, fuzzy msgid "Manual String Formatting" -msgstr "قالب بندی دستی رشته ها" +msgstr "فرمت بندی رشته به صورت دستی" #: ../../tutorial/inputoutput.rst:245 #, fuzzy msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" -"در اینجا همان جدول مربعات و مکعب ها را که به صورت دستی قالب بندی شده است، " -"مشاهده می کنید::" +"در اینجا همان جدول مربعات و مکعب ها قرار دارد که به صورت دستی قالب بندی شده " +"است::" #: ../../tutorial/inputoutput.rst:247 #, fuzzy @@ -612,9 +591,10 @@ msgid "" " 9 81 729\n" "10 100 1000" msgstr "" -"```python\n" -">>> for x in range(1, 11):\n" -"... print(repr(x).rjust(2), repr(x*x*x).rjust(4))\n" +">>> برای x در بازه ی range(1, 11):\n" +"... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')\n" +"... # Note use of 'end' on previous line\n" +"... print(repr(x*x*x).rjust(4))\n" "...\n" " 1 1 1\n" " 2 4 8\n" @@ -625,12 +605,7 @@ msgstr "" " 7 49 343\n" " 8 64 512\n" " 9 81 729\n" -"10 100 1000\n" -"```\n" -"\n" -"در این برنامه که در زبان پایتون نوشته شده، از یک حلقه ی `for` برای چاپ اعداد از ۱ تا ۱۰ و توان دوم و توان سوم آن ها استفاده می شود. به وسیله ی تابع `rjust`، اعداد (و همچنین توان های محاسبه شده ی مربوطه) به راست تراز می شوند تا ظاهری مرتب داشته باشند. این باعث می شود که هر عدد یا خروجی در جایگاه خود قرار گرفته و نمایش بهتری داشته باشند. \n" -"\n" -"در اینجا، هر خط، عدد، مربع آن عدد و مکعب آن عدد را چاپ می کند. برای مثال، در خط اول عدد ۱ و توان های دوم و سوم آن (۱ و ۱) نمایش داده می شود و در خط آخر عدد ۱۰ و توان های دوم و سوم آن (۱۰۰ و ۱۰۰۰) نمایش داده می شود." +"10 100 1000" #: ../../tutorial/inputoutput.rst:263 #, fuzzy @@ -638,8 +613,8 @@ msgid "" "(Note that the one space between each column was added by the way " ":func:`print` works: it always adds spaces between its arguments.)" msgstr "" -"توجه داشته باشید که یک فاصله بین هر ستون توسط روش :func:`print` اضافه شده " -"است: این روش همیشه بین آرگومان هایش فاصله اضافه می کند." +"(توجه داشته باشید که یک فاصله بین هر ستون توسط :func:`print` اضافه شده است: " +"این همیشه بین آرگومان هایش فاصله ایجاد می کند.)" #: ../../tutorial/inputoutput.rst:266 #, fuzzy @@ -653,15 +628,15 @@ msgid "" "would be lying about a value. (If you really want truncation you can always " "add a slice operation, as in ``x.ljust(n)[:n]``.)" msgstr "" -"متد :meth:`str.rjust` در اشیای رشته ای، یک رشته را در یک فیلد با عرض مشخص با" -" اضافه کردن فاصله ها در سمت چپ، راست چین می کند. متدهای مشابهی به نام های " -":meth:`str.ljust` و :meth:`str.center` نیز وجود دارند. این متدها چیزی نمی " -"نویسند، بلکه فقط یک رشته جدید برمی گردانند. اگر رشته ورودی بیش از حد طولانی " -"باشد، آن را کوتاه نمی کنند، بلکه همانطور به صورت تغییر نیافته برمی گردانند؛ " -"این ممکن است که ساختار ستون شما را به هم بریزد اما معمولاً بهتر از جایگزین " -"آن است که دروغ درباره یک مقدار بگوید. (اگر واقعاً می خواهید رشته را کوتاه " -"کنید، می توانید همیشه یک عمل بریدن اضافه کنید، همانطور که در " -"``x.ljust(n)[:n]`` می بینید.)" +"متد :meth:`str.rjust` در اشیاء رشته ای، یک رشته را در یک فیلد با عرض مشخص با" +" افزودن فاصله در سمت چپ، به راست جا به جا می کند. متدهای مشابه " +":meth:`str.ljust` و :meth:`str.center` نیز وجود دارند. این متدها چیزی " +"نخواهند نوشت و فقط یک رشته جدید برمی گردانند. اگر رشته ورودی بیش از حد " +"طولانی باشد، آن را کوتاه نمی کنند و به صورت تغییر نیافته برمی گردانند؛ این " +"ممکن است چینش ستون های شما را به هم بریزد، اما این اغلب بهتر از جایگزینی غلط" +" است که می تواند باعث اشتباه در یک مقدار شود. (اگر به راستی به کوتاه کردن " +"نیاز دارید، می توانید همیشه یک عملیات برش اضافه کنید، مانند " +"``x.ljust(n)[:n]``.)" #: ../../tutorial/inputoutput.rst:275 #, fuzzy @@ -669,8 +644,8 @@ msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" msgstr "" -"روش دیگری به نام :meth:`str.zfill` وجود دارد که یک رشته عددی را در سمت چپ با" -" صفر پر می کند. این روش علائم مثبت و منفی را نیز درک می کند::" +"روش دیگری وجود دارد به نام :meth:`str.zfill` که یک رشته عددی را از سمت چپ با" +" صفرها پر می کند. این روش علامت های مثبت و منفی را می فهمد::" #: ../../tutorial/inputoutput.rst:278 #, fuzzy @@ -682,19 +657,17 @@ msgid "" ">>> '3.14159265359'.zfill(5)\n" "'3.14159265359'" msgstr "" -"```python\n" ">>> '12'.zfill(5)\n" "'00012'\n" ">>> '-3.14'.zfill(7)\n" "'-003.14'\n" ">>> '3.14159265359'.zfill(5)\n" -"'3.14159265359'\n" -"```" +"'3.14159265359'" #: ../../tutorial/inputoutput.rst:287 #, fuzzy msgid "Old string formatting" -msgstr "فرمت بندی رشته های قدیمی" +msgstr "قالب بندی رشته ای قدیمی" #: ../../tutorial/inputoutput.rst:289 #, fuzzy @@ -705,10 +678,10 @@ msgid "" "*values*. This operation is commonly known as string interpolation. For " "example::" msgstr "" -"عملگر % (مانده) می تواند برای قالب بندی رشته ای نیز استفاده شود. با توجه به " -"``format % values`` (که در آن *format* یک رشته است)، مشخصات تبدیل در " -"*format* با صفر یا بیشتر عناصر از *values* جایگزین می شوند. این عملیات " -"معمولاً به عنوان درج مقدار در رشته شناخته می شود. به عنوان مثال::" +"عملگر % (باقی مانده) می تواند برای قالب بندی رشته ها نیز استفاده شود. با فرض" +" یک رشته ``format % values``، مشخصات تبدیل ``%`` در *format* با یک یا چند " +"عنصر از *values* جایگزین می شوند. این عمل به طور معمول به عنوان درج رشته " +"شناخته می شود. به عنوان مثال::" #: ../../tutorial/inputoutput.rst:296 #, fuzzy @@ -717,17 +690,16 @@ msgid "" ">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" "The value of pi is approximately 3.142." msgstr "" -"```python\n" ">>> import math\n" -">>> print('مقدار pi تقریباً %5.3f است.' % math.pi)\n" -"مقدار pi تقریباً 3.142 است.\n" -"```" +">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" +"مقدار pi تقریباً برابر با 3.142 است." #: ../../tutorial/inputoutput.rst:300 #, fuzzy msgid "" "More information can be found in the :ref:`old-string-formatting` section." -msgstr "اطلاعات بیشتر را می توان در بخش :ref:`old-string-formatting` یافت." +msgstr "" +"اطلاعات بیشتر را می توانید در بخش :ref:`old-string-formatting` پیدا کنید." #: ../../tutorial/inputoutput.rst:306 #, fuzzy @@ -741,19 +713,14 @@ msgid "" "two positional arguments and one keyword argument: ``open(filename, mode, " "encoding=None)``" msgstr "" -":func:`open` یک :term:`file object` بازمی گرداند و بیشتر به طور معمول با دو " -"آرگومان موقعیتی و یک آرگومان کلیدواژه ای استفاده می شود: ``open(filename, " -"mode, encoding=None)``" +":func:`open` یک :term:`file object` برمی گرداند و معمولاً با دو آرگومان " +"مکانی و یک آرگومان کلیدی استفاده می شود: ``open(filename, mode, " +"encoding=None)``" #: ../../tutorial/inputoutput.rst:318 #, fuzzy msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" -msgstr "" -"```python\n" -">>> f = open('workfile', 'w', encoding=\"utf-8\")\n" -"```\n" -"\n" -"فایلی به نام `workfile` را با مجوز نوشتن (حالت `'w'`) و با استفاده از کدینگ `utf-8` باز می کند." +msgstr "```f = open('workfile', 'w', encoding=\"utf-8\")```" #: ../../tutorial/inputoutput.rst:325 #, fuzzy @@ -767,13 +734,13 @@ msgid "" "reading and writing. The *mode* argument is optional; ``'r'`` will be " "assumed if it's omitted." msgstr "" -"اولین آرگومان رشته ای است که حاوی نام فایل می باشد. آرگومان دوم یک رشته دیگر" -" است که شامل چند کاراکتر توصیف کننده نحوه استفاده از فایل می باشد. *mode* می" -" تواند ``'r'`` باشد زمانی که فایل فقط برای خواندن باز می شود، ``'w'`` برای " -"نوشتن (فایلی با همان نام اگر موجود باشد پاک می شود) و ``'a'`` فایل را برای " -"افزودن باز می کند؛ هر داده ای که به فایل نوشته شود خودکار به انتها اضافه می " -"شود. ``'r+'`` فایل را برای هر دو عمل خواندن و نوشتن باز می کند. آرگومان " -"*mode* اختیاری است؛ ``'r'`` اگر حذف شود فرض می شود." +"اولین آرگومان یک رشته است که نام فایل را در بر دارد. آرگومان دوم رشته دیگری " +"است که شامل چند کاراکتر است که نحوه استفاده از فایل را توصیف می کند. *mode* " +"زمانی می تواند ``'r'`` باشد که فایل فقط خوانده شود، ``'w'`` برای نوشتن تنها " +"(فایل موجود با همان نام پاک خواهد شد) و ``'a'`` فایل را برای اضافه کردن باز " +"می کند؛ هر داده ای که به فایل نوشته شود به صورت خودکار به انتهای آن اضافه می" +" شود. ``'r+'`` فایل را برای خواندن و نوشتن همزمان باز می کند. آرگومان *mode*" +" اختیاری است؛ اگر حذف شود، ``'r'`` در نظر گرفته خواهد شد." #: ../../tutorial/inputoutput.rst:334 #, fuzzy @@ -787,15 +754,15 @@ msgid "" ":dfn:`binary mode`. Binary mode data is read and written as :class:`bytes` " "objects. You can not specify *encoding* when opening file in binary mode." msgstr "" -"به طور معمول، فایل ها در :dfn:`حالت متنی` باز می شوند، به این معنی که شما " +"به طور معمول، فایل ها در :dfn:`حالت متنی` باز می شوند، به این معنا که شما " "رشته ها را از فایل می خوانید و به فایل می نویسید، که با یک *encoding* خاص " -"کدگذاری شده اند. اگر *encoding* مشخص نشده باشد، مقدار پیش فرض به پلتفرم " -"وابسته است (نگاه کنید به :func:`open`). از آنجایی که UTF-8 استاندارد مدرن " -"دوفاکتو است، ``encoding=\"utf-8\"`` توصیه می شود مگر اینکه بدانید که به " -"استفاده از یک کدگذاری متفاوت نیاز دارید. اضافه کردن یک ``'b'`` به حالت، فایل" -" را در :dfn:`حالت باینری` باز می کند. داده های حالت باینری به صورت اشیاء " -":class:`bytes` خوانده و نوشته می شوند. شما نمی توانید *encoding* را هنگام " -"باز کردن فایل در حالت باینری مشخص کنید." +"کدگذاری می شوند. اگر *encoding* مشخص نشده باشد، مقدار پیش فرض وابسته به " +"پلتفرم است (به :func:`open` مراجعه کنید). از آنجایی که UTF-8 استاندارد مدرن " +"و رایج است، ``encoding=\"utf-8\"`` توصیه می شود مگر اینکه بدانید که به یک " +"کدگذاری متفاوت نیاز دارید. افزودن یک ``'b'`` به حالت، فایل را در :dfn:`حالت " +"باینری` باز می کند. داده های حالت باینری به صورت اشیاء :class:`bytes` خوانده" +" و نوشته می شوند. نمی توانید *encoding* را هنگام باز کردن فایل در حالت " +"باینری مشخص کنید." #: ../../tutorial/inputoutput.rst:344 #, fuzzy @@ -808,13 +775,13 @@ msgid "" ":file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " "reading and writing such files." msgstr "" -"در حالت متنی، به صورت پیش فرض هنگام خواندن، انتهاهای خطوط مخصوص پلتفرم " -"(``\\n`` در یونیکس، ``\\r\\n`` در ویندوز) به سادگی به ``\\n`` تبدیل می شوند." -" هنگام نوشتن در حالت متنی، به صورت پیش فرض وقوع های ``\\n`` به انتهاهای خطوط" -" مخصوص پلتفرم برگردانده می شوند. این تغییرات پشت صحنه در داده های فایل برای " -"فایل های متنی مناسب است، اما داده های باینری مانند آن ها در فایل های " -":file:`JPEG` یا :file:`EXE` را خراب می کند. هنگام خواندن و نوشتن چنین فایل " -"هایی بسیار دقت کنید تا از حالت باینری استفاده کنید." +"در حالت متنی، به صورت پیش فرض هنگام خواندن، انتهای خطوط مختص به پلتفرم " +"(``\\n`` در یونیکس، ``\\r\\n`` در ویندوز) به سادگی به ``\\n`` تبدیل می شود. " +"هنگام نوشتن در حالت متنی، پیش فرض این است که وقوعات ``\\n`` به انتهای خطوط " +"مختص به پلتفرم تبدیل شوند. این تغییرات پشت صحنه در داده های فایل برای فایل " +"های متنی مناسب است، اما داده های باینری مانند آنچه در فایل های :file:`JPEG` " +"یا :file:`EXE` است را خراب می کند. دقت کنید که هنگام خواندن و نوشتن چنین " +"فایل هایی از حالت باینری استفاده کنید." #: ../../tutorial/inputoutput.rst:352 #, fuzzy @@ -825,10 +792,11 @@ msgid "" ":keyword:`!with` is also much shorter than writing equivalent " ":keyword:`try`\\ -\\ :keyword:`finally` blocks::" msgstr "" -"هنگام کار با اشیاء فایل، استفاده از کلمه کلیدی :keyword:`with` عمل خوبی است." -" مزیت آن این است که فایل پس از پایان دنباله اش به درستی بسته می شود، حتی اگر" -" در نقطه ای یک استثنا رخ دهد. استفاده از :keyword:`!with` نیز بسیار کوتاه تر" -" از نوشتن بلوک های معادل :keyword:`try`-:keyword:`finally` است::" +"استفاده از کلیدواژه :keyword:`with` زمانی که با اشیاء فایل کار می کنید، یک " +"روش خوب است. مزیت این کار این است که فایل بعد از تمام شدن دنباله عملیات به " +"درستی بسته می شود، حتی اگر در جایی یک استثنا رخ دهد. استفاده از " +":keyword:`!with` نیز بسیار کوتاه تر از نوشتن :keyword:`try` - " +":keyword:`finally` بلوک های معادل است::" #: ../../tutorial/inputoutput.rst:358 #, fuzzy @@ -840,15 +808,12 @@ msgid "" ">>> f.closed\n" "True" msgstr "" -"```\n" -">>> با استفاده از دستورات زیر، فایل 'workfile' را با رمزگذاری \"utf-8\" باز می کنیم:\n" -">>> با open('workfile', encoding=\"utf-8\") به عنوان f:\n" +">>> with open('workfile', encoding=\"utf-8\") as f:\n" "... read_data = f.read()\n" "\n" -">>> # می توانیم بررسی کنیم که آیا فایل به صورت خودکار بسته شده است.\n" +">>> # ما می توانیم بررسی کنیم که فایل به طور خودکار بسته شده است.\n" ">>> f.closed\n" -"True\n" -"```" +"True" #: ../../tutorial/inputoutput.rst:365 #, fuzzy @@ -857,9 +822,9 @@ msgid "" "``f.close()`` to close the file and immediately free up any system resources" " used by it." msgstr "" -"اگر از کلمه کلیدی \":keyword:`with`\" استفاده نمی کنید، باید " -"\"``f.close()``\" را فراخوانی کنید تا فایل را ببندید و فوراً هر منبع سیستمی " -"که توسط آن استفاده می شود را آزاد کنید." +"اگر شما از کلیدواژه :keyword:`with` استفاده نمی کنید، در این صورت باید " +"``f.close()`` را برای بستن فایل و آزادسازی فوری هرگونه منابع سیستم مورد " +"استفاده آن فراخوانی کنید." #: ../../tutorial/inputoutput.rst:370 #, fuzzy @@ -868,10 +833,9 @@ msgid "" "``f.close()`` **might** result in the arguments of ``f.write()`` not being " "completely written to the disk, even if the program exits successfully." msgstr "" -"زمانی که ``f.write()`` را بدون استفاده از کلمه کلیدی :keyword:`!with` صدا " -"بزنید یا ``f.close()`` را **might** فراخوانی کنید، باعث می شود که آرگومان " -"های ``f.write()`` به طور کامل روی دیسک نوشته نشوند، حتی اگر برنامه با موفقیت" -" خاتمه یابد." +"فراخوانی ``f.write()`` بدون استفاده از کلیدواژه :keyword:`!with` یا فراخوانی" +" ``f.close()`` **might** منجر به این می شود که آرگومان های ``f.write()`` به " +"طور کامل روی دیسک نوشته نشوند، حتی اگر برنامه با موفقیت خارج شود." #: ../../tutorial/inputoutput.rst:378 #, fuzzy @@ -880,9 +844,8 @@ msgid "" "calling ``f.close()``, attempts to use the file object will automatically " "fail. ::" msgstr "" -"پس از این که یک شیء فایل با یک دستور :keyword:`with` یا با فراخوانی " -"``f.close()`` بسته شد، تلاش ها برای استفاده از آن شیء فایل به طور خودکار با " -"شکست مواجه خواهند شد. ::" +"پس از بسته شدن یک شیء فایل، چه با یک دستور :keyword:`with` و چه با فراخوانی " +"``f.close()``، تلاش برای استفاده از شیء فایل به طور خودکار شکست می خورد. ::" #: ../../tutorial/inputoutput.rst:382 #, fuzzy @@ -893,18 +856,16 @@ msgid "" " File \"\", line 1, in \n" "ValueError: I/O operation on closed file." msgstr "" -"```\n" -">>> f.close()\n" -">>> f.read()\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" -"ValueError: I/O operation on closed file.\n" -"```" +"```f.close()``` \n" +"```f.read()```\n" +"آخرین خطاها (Traceback):\n" +" فایل \"\", خط 1، در \n" +"ValueError: عملیات ورودی/خروجی بر روی فایل بسته انجام شد." #: ../../tutorial/inputoutput.rst:392 #, fuzzy msgid "Methods of File Objects" -msgstr "روش های اشیای فایل" +msgstr "روش های اشیاء فایل" #: ../../tutorial/inputoutput.rst:394 #, fuzzy @@ -912,7 +873,7 @@ msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." msgstr "" -"بقیه مثال های این بخش فرض می کنند که یک شیء فایل به نام ``f`` قبلاً ایجاد " +"بقیه مثال های این بخش فرض می کنند که یک شی فایل با نام ``f`` از قبل ایجاد " "شده است." #: ../../tutorial/inputoutput.rst:397 @@ -927,14 +888,14 @@ msgid "" "binary mode) are read and returned. If the end of the file has been reached," " ``f.read()`` will return an empty string (``''``). ::" msgstr "" -"برای خواندن محتوای یک فایل، ```f.read(size)``` را صدا بزنید که مقدار مشخصی " -"از داده را می خواند و آن را به صورت یک رشته (در حالت متنی) یا شئ از نوع بایت" -" (در حالت باینری) برمی گرداند. `*size*` یک آرگومان عددی اختیاری است. وقتی " -"`*size*` حذف شود یا منفی باشد، کل محتوای فایل خوانده شده و برگردانده می شود؛" -" اگر فایل دو برابر حافظه ماشین شما بزرگتر باشد، این مشکل شماست. در غیر این " -"صورت، حداکثر `*size*` کاراکتر (در حالت متنی) یا `*size*` بایت (در حالت " -"باینری) خوانده و برگردانده می شود. اگر به انتهای فایل رسیده اید، " -"```f.read()``` یک رشته خالی ( ```''``` ) را برمی گرداند. ::" +"برای خواندن محتوای یک فایل، ``f.read(size)`` را فراخوانی کنید، که میزانی از " +"داده را خوانده و آن را به صورت یک رشته (در حالت متنی) یا شئ بایت (در حالت " +"باینری) برمی گرداند. *size* یک آرگومان عددی اختیاری است. هنگامی که *size* " +"حذف شود یا منفی باشد، تمام محتوای فایل خوانده و برگردانده می شود؛ اگر فایل " +"دو برابر حافظه ماشین شما بزرگتر باشد، این مشکل شماست. در غیر این صورت، " +"حداکثر *size* کاراکتر (در حالت متنی) یا *size* بایت (در حالت باینری) خوانده " +"و برگردانده می شوند. اگر انتهای فایل رسیده باشد، ``f.read()`` یک رشته خالی " +"(``''``) برمی گرداند. ::" #: ../../tutorial/inputoutput.rst:406 #, fuzzy @@ -944,12 +905,10 @@ msgid "" ">>> f.read()\n" "''" msgstr "" -"```python\n" ">>> f.read()\n" -"'این کل فایل است.\\n'\n" +"'این تمام فایل است.\\n'\n" ">>> f.read()\n" -"''\n" -"```" +"''" #: ../../tutorial/inputoutput.rst:411 #, fuzzy @@ -961,12 +920,12 @@ msgid "" "end of the file has been reached, while a blank line is represented by " "``'\\n'``, a string containing only a single newline. ::" msgstr "" -"``f.readline()`` یک خط را از فایل می خواند؛ یک کاراکتر خط جدید (``\\n``) در " -"انتهای رشته باقی می ماند، و تنها در صورتی در خط آخر فایل حذف می شود که فایل " -"به خط جدید ختم نشود. این امر باعث می شود مقدار بازگشتی مبهم نباشد؛ اگر " -"``f.readline()`` یک رشته خالی برگرداند، به انتهای فایل رسیده ایم، در حالی که" -" یک خط خالی با ``'\\n'``، یک رشته که تنها شامل یک خط جدید است، نمایش داده می" -" شود. ::" +"``f.readline()`` یک خط از فایل می خواند؛ یک کاراکتر خط جدید (``\\n``) در " +"انتهای رشته باقی می ماند و فقط در آخرین خط فایل نادیده گرفته می شود اگر فایل" +" با یک خط جدید خاتمه نیافته باشد. این رفتار باعث می شود که مقدار بازگشتی " +"مبهم نباشد؛ اگر ``f.readline()`` یک رشته خالی برگرداند، به انتهای فایل رسیده" +" ایم، در حالی که یک خط خالی با ``'\\n'`` نمایش داده می شود، رشته ای که فقط " +"یک خط جدید دارد. ::" #: ../../tutorial/inputoutput.rst:418 #, fuzzy @@ -978,12 +937,12 @@ msgid "" ">>> f.readline()\n" "''" msgstr "" -"```>>> f.readline()\n" +">>> f.readline()\n" "'این اولین خط فایل است.\\n'\n" ">>> f.readline()\n" "'خط دوم فایل\\n'\n" ">>> f.readline()\n" -"''```\n" +"''" #: ../../tutorial/inputoutput.rst:425 #, fuzzy @@ -991,8 +950,8 @@ msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" msgstr "" -"برای خواندن خطوط از یک فایل، می توانید بر روی شیء فایل حلقه بزنید. این روش " -"از نظر حافظه کارآمد، سریع و به کد ساده منجر می شود::" +"برای خواندن خطوط از یک فایل، می توانید روی شیء فایل حلقه بزنید. این روش از " +"نظر حافظه بهینه، سریع و منجر به کد ساده می شود::" #: ../../tutorial/inputoutput.rst:428 #, fuzzy @@ -1003,13 +962,11 @@ msgid "" "This is the first line of the file.\n" "Second line of the file" msgstr "" -"```python\n" ">>> for line in f:\n" "... print(line, end='')\n" "...\n" "این اولین خط فایل است.\n" -"دومین خط فایل\n" -"```" +"خط دوم فایل" #: ../../tutorial/inputoutput.rst:434 #, fuzzy @@ -1017,7 +974,7 @@ msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." msgstr "" -"اگر می خواهید تمام خطوط یک فایل را در یک فهرست بخوانید، می توانید از " +"اگر می خواهید تمام خطوط یک فایل را به صورت یک لیست بخوانید، می توانید از " "``list(f)`` یا ``f.readlines()`` استفاده کنید." #: ../../tutorial/inputoutput.rst:437 @@ -1036,7 +993,7 @@ msgid "" "15" msgstr "" "```python\n" -">>> f.write('این یک تست است\\n')\n" +">>> f.write('This is a test\\n')\n" "15\n" "```" @@ -1046,8 +1003,8 @@ msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" -"انواع دیگر اشیاء باید قبل از نوشتن، به یک رشته (در حالت متنی) یا یک شیء بایت" -" (در حالت باینری) تبدیل شوند." +"انواع دیگر اشیاء باید قبل از نوشتن -- به یک رشته متنی (در حالت متنی) یا یک " +"شیء بایت (در حالت باینری) -- تبدیل شوند::" #: ../../tutorial/inputoutput.rst:446 #, fuzzy @@ -1057,8 +1014,8 @@ msgid "" ">>> f.write(s)\n" "18" msgstr "" -">>> مقدار = ('پاسخ', 42)\n" -">>> s = str(مقدار) # تبدیل تاپل به رشته\n" +">>> value = ('پاسخ', 42)\n" +">>> s = str(value) # تبدیل تیپل به رشته\n" ">>> f.write(s)\n" "18" @@ -1070,8 +1027,8 @@ msgid "" " in binary mode and an opaque number when in text mode." msgstr "" "``f.tell()`` یک عدد صحیح را برمی گرداند که موقعیت فعلی شیء فایل را در فایل " -"به صورت تعداد بایت ها از ابتدای فایل در حالت باینری نشان می دهد و یک عدد " -"ناشفاف در حالت متنی ارائه می دهد." +"نشان می دهد که به صورت تعداد بایت ها از ابتدای فایل در حالت دودویی و یک عدد " +"نامشخص در حالت متنی ارائه می شود." #: ../../tutorial/inputoutput.rst:455 #, fuzzy @@ -1085,11 +1042,11 @@ msgid "" "point. ::" msgstr "" "برای تغییر موقعیت شیء فایل از ``f.seek(offset, whence)`` استفاده کنید. " -"موقعیت با اضافه کردن *offset* به یک نقطه مرجع محاسبه می شود؛ نقطه مرجع با " -"آرگومان *whence* انتخاب می شود. مقدار *whence* به اندازه 0 از ابتدای فایل، 1" -" از موقعیت فعلی فایل و 2 از انتهای فایل به عنوان نقطه مرجع اندازه گیری می " -"کند. *whence* می تواند حذف شود و به طور پیش فرض برابر با 0 است و از ابتدای " -"فایل به عنوان نقطه مرجع استفاده می کند. ::" +"موقعیت از طریق اضافه کردن *offset* به یک نقطه مرجع محاسبه می شود؛ نقطه مرجع " +"با آرگومان *whence* انتخاب می شود. مقدار *whence* برابر 0 از ابتدای فایل، 1 " +"استفاده از موقعیت کنونی فایل، و 2 استفاده از انتهای فایل به عنوان نقطه مرجع " +"اندازه گیری می کند. *whence* می تواند حذف شود و به طور پیش فرض 0 است که از " +"ابتدای فایل به عنوان نقطه مرجع استفاده می کند. ::" #: ../../tutorial/inputoutput.rst:462 #, fuzzy @@ -1106,19 +1063,17 @@ msgid "" ">>> f.read(1)\n" "b'd'" msgstr "" -"```python\n" ">>> f = open('workfile', 'rb+')\n" ">>> f.write(b'0123456789abcdef')\n" "16\n" -">>> f.seek(5) # رفتن به بایت ششم در فایل\n" +">>> f.seek(5) # به بایت ششم در فایل بروید\n" "5\n" ">>> f.read(1)\n" "b'5'\n" -">>> f.seek(-3, 2) # رفتن به بایت سوم قبل از انتها\n" +">>> f.seek(-3, 2) # به 3 بایت قبل از انتها بروید\n" "13\n" ">>> f.read(1)\n" "b'd'\n" -"```" #: ../../tutorial/inputoutput.rst:474 #, fuzzy @@ -1129,11 +1084,11 @@ msgid "" "*offset* values are those returned from the ``f.tell()``, or zero. Any other" " *offset* value produces undefined behaviour." msgstr "" -"در فایل های متنی (فایل هایی که بدون ``b`` در رشته mode باز شده اند)، تنها " -"مکان یابی نسبت به ابتدای فایل مجاز است (به استثنای مکان یابی به انتهای فایل " -"با ``seek(0, 2)``) و تنها مقادیر معتبر *offset*، مقادیری هستند که از " -"``f.tell()`` بازگردانده می شوند یا صفر. هر *offset* دیگری رفتار نامشخصی " -"ایجاد می کند." +"در فایل های متنی (آنهایی که بدون ``b`` در رشته حالت باز می شوند)، فقط جابه " +"جایی های نسبی نسبت به ابتدای فایل مجاز هستند (استثنا جابه جایی به انتهای " +"فایل با ``seek(0, 2)`` است) و تنها مقادیر معتبر *offset* آنهایی هستند که از " +"``f.tell()`` برگشت داده می شوند، یا صفر. هر مقدار *offset* دیگر رفتار " +"نامشخصی تولید می کند." #: ../../tutorial/inputoutput.rst:480 #, fuzzy @@ -1142,14 +1097,14 @@ msgid "" " and :meth:`~io.IOBase.truncate` which are less frequently used; consult the" " Library Reference for a complete guide to file objects." msgstr "" -"اشیای فایل تعدادی متد اضافی دارند، مانند :meth:`~io.IOBase.isatty` و " -":meth:`~io.IOBase.truncate` که کمتر استفاده می شوند؛ برای راهنمای کامل اشیای" -" فایل به مرجع کتابخانه مراجعه کنید." +"کائنات فایل برخی متدهای اضافی دارند، مانند :meth:`~io.IOBase.isatty` و " +":meth:`~io.IOBase.truncate` که کمتر مورد استفاده قرار می گیرند؛ برای گرفتن " +"راهنمای کامل در مورد کائنات فایل به مرجع کتابخانه مراجعه کنید." #: ../../tutorial/inputoutput.rst:488 #, fuzzy msgid "Saving structured data with :mod:`json`" -msgstr "ذخیره سازی داده های ساختاریافته با :mod:`json`" +msgstr "ذخیره داده های ساختاریافته با :mod:`json`" #: ../../tutorial/inputoutput.rst:492 #, fuzzy @@ -1161,12 +1116,12 @@ msgid "" "want to save more complex data types like nested lists and dictionaries, " "parsing and serializing by hand becomes complicated." msgstr "" -"رشته ها به راحتی قابل نوشتن و خواندن از فایل هستند. اعداد کمی بیشتر تلاش می " -"برند، زیرا روش :meth:`~io.TextIOBase.read` تنها رشته ها را برمی گرداند، که " -"باید به یک تابع مانند :func:`int` داده شوند، که یک رشته مثل ``'123'`` را می " -"گیرد و مقدار عددی ۱۲۳ آن را برمی گرداند. هنگامی که می خواهید انواع داده " -"پیچیده تری مانند لیست ها و دیکشنری های تو در تو را ذخیره کنید، تجزیه و سریال" -" سازی به صورت دستی پیچیده می شود." +"رشته ها به راحتی می توانند به فایل نوشته و از آن خوانده شوند. اعداد نیاز به " +"تلاش بیشتری دارند، زیرا روش :meth:`~io.TextIOBase.read` تنها رشته ها را برمی" +" گرداند، که باید به یک تابع مانند :func:`int` که یک رشته مانند ``'123'`` را " +"می گیرد و مقدار عددی 123 را برمی گرداند، منتقل شوند. زمانی که می خواهید " +"انواع داده ای پیچیده تر مانند فهرست های تو در تو و دیکشنری ها را ذخیره کنید،" +" تجزیه و تحلیل و سریال سازی به صورت دستی پیچیده می شود." #: ../../tutorial/inputoutput.rst:499 #, fuzzy @@ -1182,16 +1137,15 @@ msgid "" "in a file or data, or sent over a network connection to some distant " "machine." msgstr "" -"به جای اینکه کاربران دائماً برای ذخیره سازی انواع داده های پیچیده در فایل ها" -" کدنویسی کنند و آن ها را اشکال زدایی کنند، پایتون به شما اجازه می دهد از " -"فرمت محبوب تبادل داده به نام `JSON (JavaScript Object Notation) " -"`_ استفاده کنید. ماژول استاندارد با نام :mod:`json` می " -"تواند سلسله مراتب داده های پایتون را بگیرد و آن ها را به نمایش های رشته ای " -"تبدیل کند؛ این فرآیند به عنوان :dfn:`سریالی سازی` شناخته می شود. بازسازی " -"داده ها از نمایش رشته ای به عنوان :dfn:`دی سریالی سازی` شناخته می شود. بین " -"سریالی سازی و دی سریالی سازی، رشته ای که شیء را نمایندگی می کند ممکن است در " -"یک فایل یا داده ذخیره شده باشد، یا از طریق یک اتصال شبکه به یک ماشین دور " -"ارسال شده باشد." +"به جای آنکه کاربران به طور مداوم کد نویسی و رفع اشکال کنند تا انواع داده های" +" پیچیده را در فایل ها ذخیره کنند، پایتون به شما اجازه می دهد تا از قالب " +"تبادل داده های محبوبی به نام `JSON (JavaScript Object Notation) " +"`_ استفاده کنید. ماژول استانداردی به نام :mod:`json` می " +"تواند سلسله مراتب داده های پایتون را گرفته و آنها را به نمایش های رشته ای " +"تبدیل کند؛ این فرآیند :dfn:`سریال سازی` نامیده می شود. بازسازی داده ها از " +"نمایش رشته ای :dfn:`دی سریال سازی` نامیده می شود. در بین سریال سازی و دی " +"سریال سازی، ممکن است رشته نمایانگر شیء در یک فایل یا داده ذخیره شده باشد، یا" +" از طریق اتصال شبکه به دستگاهی دور ارسال شده باشد." #: ../../tutorial/inputoutput.rst:510 #, fuzzy @@ -1200,9 +1154,9 @@ msgid "" "exchange. Many programmers are already familiar with it, which makes it a " "good choice for interoperability." msgstr "" -"قالب JSON به طور معمول توسط برنامه های مدرن برای تبادل داده مورد استفاده " -"قرار می گیرد. بسیاری از برنامه نویسان با آن آشنا هستند که این امر آن را به " -"گزینه ای مناسب برای هم کاری بین سیستم ها تبدیل می کند." +"فرمت JSON به طور گسترده توسط برنامه های مدرن برای تبادل داده استفاده می شود." +" بسیاری از برنامه نویسان با آن آشنا هستند، که آن را به یک انتخاب مناسب برای " +"همکاری بین سیستم ها تبدیل می کند." #: ../../tutorial/inputoutput.rst:514 #, fuzzy @@ -1210,8 +1164,8 @@ msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" msgstr "" -"اگر شما شیء ``x`` دارید، می توانید نمایش رشته ای آن به صورت JSON را با یک خط" -" کد مشاهده کنید::" +"اگر شیء ``x`` را داشته باشید، می توانید نمایش رشته ای JSON آن را با یک خط کد" +" ساده مشاهده کنید::" #: ../../tutorial/inputoutput.rst:517 #, fuzzy @@ -1221,12 +1175,10 @@ msgid "" ">>> json.dumps(x)\n" "'[1, \"simple\", \"list\"]'" msgstr "" -"```\n" ">>> import json\n" ">>> x = [1, 'simple', 'list']\n" ">>> json.dumps(x)\n" -"'[1, \"simple\", \"list\"]'\n" -"```" +"'[1, \"simple\", \"list\"]'" #: ../../tutorial/inputoutput.rst:522 #, fuzzy @@ -1235,17 +1187,18 @@ msgid "" ":func:`~json.dump`, simply serializes the object to a :term:`text file`. So" " if ``f`` is a :term:`text file` object opened for writing, we can do this::" msgstr "" -"یکی دیگر از انواع تابع :func:`~json.dumps` به نام :func:`~json.dump`، شی را " -"به یک :term:`text file` سریال سازی می کند. بنابراین اگر ``f`` یک شی " -":term:`text file` باشد که برای نوشتن باز شده است، می توانیم به این شکل عمل " -"کنیم::" +"یکی دیگر از انواع تابع :func:`~json.dumps`، به نام :func:`~json.dump`، به " +"سادگی شیء را به یک :term:`text file` سریالیزه می کند. بنابراین اگر ``f`` یک " +"شیء :term:`text file` باشد که برای نوشتن باز شده است، می توانیم این کار را " +"انجام دهیم::" #: ../../tutorial/inputoutput.rst:526 #, fuzzy msgid "json.dump(x, f)" msgstr "" -"تابع `json.dump(x, f)` در زبان پایتون برای ذخیره سازی یک شیء `x` به صورت یک " -"رشته ی JSON در فایل `f` مورد استفاده قرار می گیرد." +"```python\n" +"json.dump(x, f)\n" +"```" #: ../../tutorial/inputoutput.rst:528 #, fuzzy @@ -1253,13 +1206,13 @@ msgid "" "To decode the object again, if ``f`` is a :term:`binary file` or :term:`text" " file` object which has been opened for reading::" msgstr "" -"برای رمزگشایی مجدد شیء، اگر ``f`` یک شیء :term:`binary file` یا :term:`text " -"file` باشد که برای خواندن باز شده است:" +"برای رمزگشایی مجدد شیء، اگر ``f`` یک شیء از نوع :term:`binary file` یا " +":term:`text file` است که برای خواندن باز شده است::" #: ../../tutorial/inputoutput.rst:531 #, fuzzy msgid "x = json.load(f)" -msgstr "x = json.load(f)\n" +msgstr "x = json.load(f)" #: ../../tutorial/inputoutput.rst:534 #, fuzzy @@ -1267,9 +1220,9 @@ msgid "" "JSON files must be encoded in UTF-8. Use ``encoding=\"utf-8\"`` when opening" " JSON file as a :term:`text file` for both of reading and writing." msgstr "" -"فایل های JSON باید با کدگذاری UTF-8 باشند. از ``encoding=\"utf-8\"`` برای " -"باز کردن فایل JSON به عنوان :term:`text file` هم برای خواندن و هم برای نوشتن" -" استفاده کنید." +"فایل های JSON باید به صورت UTF-8 کدگذاری شوند. از ``encoding=\"utf-8\"`` " +"هنگام باز کردن فایل JSON به عنوان :term:`text file` برای هر دو عملیات خواندن" +" و نوشتن استفاده کنید." #: ../../tutorial/inputoutput.rst:537 #, fuzzy @@ -1279,14 +1232,14 @@ msgid "" "effort. The reference for the :mod:`json` module contains an explanation of " "this." msgstr "" -"این تکنیک ساده سریال سازی می تواند لیست ها و دیکشنری ها را مدیریت کند، اما " -"سریال سازی نمونه های کلاسی دلخواه در JSON به کمی تلاش اضافی نیاز دارد. مرجع " -"ماژول :mod:`json` شامل توضیحی در این مورد است." +"این تکنیک سریال سازی ساده می تواند لیست ها و دیکشنری ها را مدیریت کند، اما " +"سریال سازی نمونه های دلخواه کلاس در JSON نیاز به کمی تلاش اضافی دارد. مرجع " +"ماژول :mod:`json` شامل توضیحی در مورد این موضوع است." #: ../../tutorial/inputoutput.rst:543 #, fuzzy msgid ":mod:`pickle` - the pickle module" -msgstr "ماژول \"pickle\"" +msgstr ":mod:`pickle` - ماژول pickle" #: ../../tutorial/inputoutput.rst:545 #, fuzzy @@ -1298,22 +1251,22 @@ msgid "" "pickle data coming from an untrusted source can execute arbitrary code, if " "the data was crafted by a skilled attacker." msgstr "" -"برخلاف :ref:`JSON `، *pickle* یک پروتکل است که اجازه می دهد آبجکت " -"های پیچیده پایتون به صورت دلخواه سریال سازی شوند. به همین دلیل، این پروتکل " -"مختص پایتون است و نمی تواند برای ارتباط با برنامه هایی که به زبان های دیگر " -"نوشته شده اند، استفاده شود. همچنین به طور پیش فرض ناامن است: دی سریال سازی " -"داده های \"pickle\" که از یک منبع غیرقابل اعتماد می آید، می تواند کدهای " -"دلخواه را اجرا کند، اگر داده ها توسط یک حمله کننده ماهر ساخته شده باشند." +"برخلاف :ref:`JSON `، *pickle* یک پروتکل است که امکان سریال سازی " +"اشیای پیچیده ی پایتون را فراهم می کند. بنابراین، این پروتکل مخصوص پایتون است" +" و نمی توان از آن برای ارتباط با برنامه هایی که به زبان های دیگر نوشته شده " +"اند استفاده کرد. همچنین به صورت پیش فرض ناامن است: غیر سریال سازی داده های " +"``pickle`` که از یک منبع غیرقابل اعتماد می آیند می تواند کد دلخواه را اجرا " +"کند، اگر داده ها توسط یک مهاجم ماهر ساخته شده باشند." #: ../../tutorial/inputoutput.rst:103 #, fuzzy msgid "formatted string literal" -msgstr "رشته قالب بندی شده (formatted string literal)" +msgstr "رشته قالب بندی شده" #: ../../tutorial/inputoutput.rst:103 #, fuzzy msgid "interpolated string literal" -msgstr "رشته ای با مقدارگذاری داخلی" +msgstr "رشته متنی درونیابی شده" #: ../../tutorial/inputoutput.rst:103 #, fuzzy @@ -1328,22 +1281,39 @@ msgstr "رشته قالب بندی شده" #: ../../tutorial/inputoutput.rst:103 #, fuzzy msgid "interpolated literal" -msgstr "رشته ی مداخله ای" +msgstr "رشته های متفاوت pítonیزه (interpolated literal)" #: ../../tutorial/inputoutput.rst:103 #, fuzzy msgid "f-string" -msgstr "رشته های قالب بندی شده (f-string)" +msgstr "" +"رشته های f یا `f-string` در نسخه ی 3.6 پایتون معرفی شدند و روشی ساده و خوانا" +" برای قالب بندی رشته ها ارائه می دهند. وقتی به استفاده ی مکرر از اتصال رشته " +"ها نیاز دارید یا وقتی داده ها را در یک قالب خاص نمایش می دهید، رشته های f " +"اغلب بهترین انتخاب هستند. برای استفاده از رشته های f، تنها کافیست حرف `f` یا" +" `F` را قبل از رشته اضافه کنید و از جفت آکولاد «{}» برای قرار دادن کدهای " +"پایتون درون آن استفاده کنید. این کار منجر به تولید یک `str` جدید می شود که " +"حاوی نمایش محاسبه شده ی عبارت هاست." #: ../../tutorial/inputoutput.rst:103 #, fuzzy msgid "fstring" -msgstr "اف استرینگ" +msgstr "" +"رشته های قالب بندی شده (fstring) در پایتون به شما این امکان را می دهند که تعابیر را به آسانی درون رشته ها قرار دهید. این امر با پیشوند قرار دادن حرف `f` یا `F` قبل از رشته و استفاده از آکولاد های `{}` برای قرار دادن تعابیر امکان پذیر است. تعابیر داخل آکولاد ها ارزیابی شده، تبدیل به رشته می شوند، و در جای خود قرار می گیرند. \n" +"\n" +"مثال::\n" +"\n" +" name = \"Ali\"\n" +" age = 25\n" +" greeting = f\"Hello, my name is {name} and I am {age} years old.\"\n" +" print(greeting)\n" +"\n" +"در این کد، مقدار `name` و `age` به صورت مستقیم در رشته ای که به متغیر `greeting` اختصاص داده شده است، تزریق می شوند." #: ../../tutorial/inputoutput.rst:308 #, fuzzy msgid "built-in function" -msgstr "تابع توکار" +msgstr "تابع داخلی" #: ../../tutorial/inputoutput.rst:308 #, fuzzy @@ -1353,9 +1323,7 @@ msgstr "باز کردن" #: ../../tutorial/inputoutput.rst:308 #, fuzzy msgid "object" -msgstr "" -"\n" -"شیء" +msgstr "شیء" #: ../../tutorial/inputoutput.rst:308 #, fuzzy @@ -1370,4 +1338,23 @@ msgstr "ماژول" #: ../../tutorial/inputoutput.rst:490 #, fuzzy msgid "json" -msgstr "جیسون" +msgstr "" +"جیسون یا «جاوا اسکریپت آبجکت نوتیشن» یک فرمت انتقال داده است که به سادگی خوانده و نوشته می شود. اصولا برای ارسال داده ها در وب استفاده می شود. جیسون ساختاری شبیه به یک دیکشنری در پایتون دارد و می تواند توسط اکثر زبان های برنامه نویسی قابل درک باشد.\n" +"\n" +"برای تحلیل و استفاده از داده های جیسون در پایتون از کتابخانه ی داخلی `json` استفاده می شود. این کتابخانه به شما امکان می دهد داده های جیسون را بارگذاری (`load`) و ذخیره (`dump`) کنید.\n" +"\n" +"مثالی ساده از نحوه استفاده از کتابخانه `json` در پایتون::\n" +"\n" +" import json\n" +"\n" +" # نمونه ای از داده های جیسون\n" +" data = '{\"name\": \"Ali\", \"age\": 30, \"city\": \"Tehran\"}'\n" +"\n" +" # تبدیل جیسون به دیکشنری پایتون\n" +" parsed_data = json.loads(data)\n" +"\n" +" print(parsed_data['name'])\n" +" print(parsed_data['age'])\n" +" print(parsed_data['city'])\n" +"\n" +"در این مثال، ما ابتدا داده های جیسون را به صورت یک رشته ذخیره کردیم و سپس آن را به یک دیکشنری پایتون تبدیل کردیم تا بتوانیم به راحتی به مقادیر مختلف دسترسی داشته باشیم." diff --git a/tutorial/interactive.po b/tutorial/interactive.po index 9b5f38eb8..cd66509f5 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -35,11 +35,11 @@ msgid "" " library, which supports various styles of editing. This library has its " "own documentation which we won't duplicate here." msgstr "" -"برخی نسخه های مفسر پایتون از ویرایش خط ورودی فعلی و جایگزینی تاریخچه، مشابه " -"امکانات موجود در پوسته Korn و پوسته GNU Bash پشتیبانی می کنند. این با " -"استفاده از کتابخانه `GNU Readline`_ پیاده سازی شده است که از سبک های مختلف " -"ویرایش پشتیبانی می کند. این کتابخانه دارای مستندات مخصوص به خود است که در " -"اینجا تکرار نمی کنیم." +"برخی نسخه های مفسر پایتون از ویرایش خط ورودی فعلی و جایگزینی تاریخچه " +"پشتیبانی می کنند، مشابه قابلیت هایی که در پوسته Korn و پوسته GNU Bash یافت " +"می شود. این قابلیت با استفاده از کتابخانه `GNU Readline`_ پیاده سازی شده " +"است، که از سبک های مختلف ویرایش پشتیبانی می کند. این کتابخانه دارای مستندات " +"مخصوص به خود است که در اینجا تکرار نمی کنیم." #: ../../tutorial/interactive.rst:17 #, fuzzy @@ -61,21 +61,22 @@ msgid "" ":file:`.python_history` in your user directory. The history will be " "available again during the next interactive interpreter session." msgstr "" -"تکمیل نام های متغیر و ماژول در شروع به کار مفسر به صورت :ref:`automatically " -"enabled ` است تا کلید :kbd:`Tab` تابع تکمیل را فراخوانی " -"کند؛ برنامه به عبارات Python، متغیرهای محلی کنونی و نام های ماژول های موجود " -"نگاه می کند. برای عبارات نقطه دار مانند ``string.a``، عبارت را تا آخرین " -"``'.'`` ارزیابی کرده و سپس تکمیل هایی از ویژگی های شیء حاصل پیشنهاد می دهد. " -"توجه داشته باشید که این ممکن است کدی که توسط کاربر تعریف شده است را اجرا " -"کند، اگر شیءی که دارای متد :meth:`~object.__getattr__` باشد بخشی از عبارت " -"باشد. پیکربندی پیش فرض همچنین تاریخچه شما را در فایلی به نام " -":file:`.python_history` در دایرکتوری کاربری شما ذخیره می کند. این تاریخچه در" -" جلسه تعاملی بعدی مفسر باز هم قابل دسترسی خواهد بود." +"تکمیل نام های متغیر و ماژول در هنگام راه اندازی مفسر به صورت " +":ref:`automatically enabled ` است به گونه ای که کلید " +":kbd:`Tab` تابع تکمیل را فراخوانی می کند؛ این تابع نام های دستورات پایتون، " +"متغیرهای محلی فعلی و نام های ماژول های در دسترس را بررسی می کند. برای عبارات" +" نقطه دار مانند ``string.a``، این عبارت را تا آخرین ``'.'`` ارزیابی کرده و " +"سپس تکمیل هایی از ویژگی های موجود در شیء حاصل را پیشنهاد می دهد. توجه داشته " +"باشید که اگر شیء با یک متد :meth:`~object.__getattr__` بخشی از عبارت باشد، " +"ممکن است این کار به اجرای کد تعریف شده توسط برنامه منجر شود. پیکربندی پیش " +"فرض همچنین سابقه شما را در فایلی با نام :file:`.python_history` در دایرکتوری" +" کاربری تان ذخیره می کند. این سابقه در هنگام جلسه تعاملی بعدی مفسر دوباره در" +" دسترس خواهد بود." #: ../../tutorial/interactive.rst:36 #, fuzzy msgid "Alternatives to the Interactive Interpreter" -msgstr "جایگزین هایی برای مفسر تعاملی" +msgstr "گزینه هایی به جای مفسر تعاملی" #: ../../tutorial/interactive.rst:38 #, fuzzy @@ -87,11 +88,12 @@ msgid "" "interpreter's symbol table. A command to check (or even suggest) matching " "parentheses, quotes, etc., would also be useful." msgstr "" -"این قابلیت نسبت به نسخه های قبلی مترجم یک گام بزرگ به جلو است؛ با این حال، " -"برخی آرزوها باقی مانده است: خوب خواهد بود اگر تورفتگی مناسب در خطوط ادامه " -"پیشنهاد شود (مفسر می داند که آیا یک نشانه تورفتگی مورد نیاز است یا خیر). " -"مکانیزم تکمیل ممکن است از جدول نمادهای مترجم استفاده کند. یک دستور برای " -"بررسی (یا حتی پیشنهاد) پرانتزها، کوتیشن ها و غیره نیز مفید خواهد بود." +"این ویژگی نسبت به نسخه های قبلی مفسر یک پیشرفت بزرگ است؛ با این حال، برخی " +"خواسته ها برآورده نشده اند: اگر در خطوط ادامه، تورفتگی مناسب پیشنهاد داده می" +" شد، خوب می شد (تجزیه گر می داند که آیا یک علامت تورفتگی بعدی لازم است یا " +"خیر). مکانیزم تکمیل ممکن است از جدول نماد مفسر استفاده کند. همچنین، یک فرمان" +" برای بررسی (یا حتی پیشنهاد دادن) پرانتزها، کوتیشن ها و غیره که با هم مطابق " +"باشند نیز مفید خواهد بود." #: ../../tutorial/interactive.rst:45 #, fuzzy @@ -102,8 +104,7 @@ msgid "" "customized and embedded into other applications. Another similar enhanced " "interactive environment is bpython_." msgstr "" -"یکی از مفسرهای تعاملی پیشرفته ای که مدت زیادی است وجود دارد، IPython_ است که" -" دارای ویژگی های تکمیل سازی خودکار با استفاده از کلید تب، کاوش اشیاء و " -"مدیریت تاریخچه پیشرفته می باشد. این مفسر همچنین به طور کامل قابل سفارشی سازی" -" بوده و می تواند در برنامه های دیگر نیز تعبیه شود. محیط تعاملی پیشرفته مشابه" -" دیگری نیز bpython_ است." +"یک مفسر تعاملی پیشرفته جایگزین که از مدت ها قبل وجود دارد IPython_ است که " +"امکاناتی مانند تکمیل با تب، کاوش شیء و مدیریت پیشرفته تاریخچه را ارائه می " +"دهد. این مفسر همچنین می تواند به طور کامل سفارشی سازی شده و در برنامه های " +"دیگر جای گذاری شود. یک محیط تعاملی پیشرفته مشابه دیگر bpython_ است." diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index a09b8576d..e4f164b3a 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -29,7 +29,7 @@ msgstr "استفاده از مفسر پایتون" #: ../../tutorial/interpreter.rst:11 #, fuzzy msgid "Invoking the Interpreter" -msgstr "فراخوانی مفسر" +msgstr "اجرای مفسر" #: ../../tutorial/interpreter.rst:13 #, fuzzy @@ -39,15 +39,15 @@ msgid "" "available; putting :file:`/usr/local/bin` in your Unix shell's search path " "makes it possible to start it by typing the command:" msgstr "" -"مفسر Python معمولاً به صورت |usr_local_bin_python_x_dot_y_literal| بر روی آن" -" دسته از ماشین هایی نصب می شود که در دسترس هستند؛ با قرار دادن " -":file:`/usr/local/bin` در مسیر جستجوی شل یونیکس تان، می توانید آن را با تایپ" -" کردن دستور زیر اجرا کنید:" +"معمولاً مفسر پایتون به صورت |usr_local_bin_python_x_dot_y_literal| بر روی آن" +" ماشین هایی که پایتون در دسترس است نصب می شود؛ قرار دادن " +":file:`/usr/local/bin` در مسیر جستجوی شل یونیکس تان امکان شروع آن را با تایپ" +" فرمان زیر فراهم می کند:" #: ../../tutorial/interpreter.rst:17 #, fuzzy msgid "python3.13" -msgstr "پایتون۳.۱۳" +msgstr "پایتون نسخه ۳.۱۳" #: ../../tutorial/interpreter.rst:21 #, fuzzy @@ -57,10 +57,10 @@ msgid "" "local Python guru or system administrator. (E.g., :file:`/usr/local/python`" " is a popular alternative location.)" msgstr "" -"به پوسته. [#]_ از آنجا که انتخاب مسیر دایرکتوری که مفسر در آن قرار دارد یک " -"گزینه نصب است، مکان های دیگری نیز ممکن است وجود داشته باشد؛ با متخصص پایتون " -"محل کارتان یا مدیر سیستم مشورت کنید. (برای مثال، `:file:`/usr/local/python``" -" یک مکان جایگزین محبوب است.)" +"به شل. [#]_ از آنجایی که انتخاب دایرکتوری که مفسر در آن قرار دارد یک گزینه " +"نصب است، مکان های دیگری نیز ممکن است وجود داشته باشد؛ با کارشناس محلی پایتون" +" یا مدیر سیستم خود مشورت کنید. (برای مثال، :file:`/usr/local/python` یک مکان" +" جایگزین محبوب است.)" #: ../../tutorial/interpreter.rst:26 #, fuzzy @@ -71,11 +71,11 @@ msgid "" "can use the :file:`py` command. See :ref:`setting-envvars` for other ways to" " launch Python." msgstr "" -"در ماشین های ویندوز که در آن ها پایتون را از :ref:`Microsoft Store ` نصب کرده اید، دستور |python_x_dot_y_literal| در دسترس خواهد بود. اگر" -" :ref:`py.exe launcher ` را نصب کرده باشید، می توانید از دستور " -":file:`py` استفاده کنید. برای روش های دیگر راه اندازی پایتون، :ref:`setting-" -"envvars` را ببینید." +"در ماشین های ویندوزی که در آن ها پایتون را از :ref:`Microsoft Store " +"` نصب کرده اید، فرمان |python_x_dot_y_literal| در دسترس خواهد" +" بود. اگر :ref:`py.exe launcher ` را نصب کرده اید، می توانید از " +"فرمان :file:`py` استفاده کنید. برای روش های دیگر اجرای پایتون، به " +":ref:`setting-envvars` مراجعه کنید." #: ../../tutorial/interpreter.rst:31 #, fuzzy @@ -85,9 +85,10 @@ msgid "" " exit status. If that doesn't work, you can exit the interpreter by typing " "the following command: ``quit()``." msgstr "" -"با وارد کردن نویسه پایان فایل (:kbd:`Control-D` در یونیکس، :kbd:`Control-Z` " -"در ویندوز) در اعلان اصلی، مفسر با وضعیت خروج صفر خارج می شود. اگر این کار " -"نکرد، می توانید با وارد کردن دستور زیر از مفسر خارج شوید: ``quit()``." +"وارد کردن نویسه ی پایان فایل (:kbd:`Control-D` روی یونیکس، :kbd:`Control-Z` " +"روی ویندوز) در اعلان اولیه باعث می شود که مفسر با وضعیت خروجی صفر خارج شود. " +"اگر این کار نتیجه نداد، می توانید با وارد کردن فرمان زیر از مفسر خارج شوید: " +"``quit()``." #: ../../tutorial/interpreter.rst:36 #, fuzzy @@ -103,14 +104,14 @@ msgid "" "backspace to remove characters from the current line." msgstr "" "ویژگی های ویرایش خط مفسر شامل ویرایش تعاملی، جایگزینی تاریخچه و تکمیل کد در " -"سیستم هایی است که از کتابخانه ``GNU Readline " -"`_` پشتیبانی می کنند. " -"شاید سریع ترین راه برای بررسی اینکه آیا ویرایش خط فرمان پشتیبانی می شود یا " -"خیر این است که `:kbd:`Control-P`` را در اولین پیغام پایتون که دریافت می کنید" -" تایپ کنید. اگر صدای بیپ شنیده شود، ویرایش خط فرمان دارید؛ برای معرفی کلیدها" -" به پیوست `:ref:`tut-interacting`` مراجعه کنید. اگر هیچ اتفاقی نیفتاد یا " -"```^P``` بازتاب شد، ویرایش خط فرمان در دسترس نیست؛ شما فقط می توانید از کلید" -" backspace برای حذف کاراکترها از خط فعلی استفاده کنید." +"سیستم هایی است که از کتابخانه `GNU Readline " +"`_ پشتیبانی می کنند. " +"شاید سریع ترین راه برای بررسی این که آیا ویرایش خط فرمان پشتیبانی می شود " +"تایپ کردن :kbd:`Control-P` در اولین پیامی است که از پایتون دریافت می کنید. " +"اگر صدای بیپی شنیدید، ویرایش خط فرمان دارید؛ برای آشنایی با کلیدها به پیوست " +":ref:`tut-interacting` مراجعه کنید. اگر هیچ اتفاقی نیفتد یا ``^P`` تکرار " +"شود، ویرایش خط فرمان در دسترس نیست؛ شما فقط می توانید از backspace برای حذف " +"کاراکترها از خط فعلی استفاده کنید." #: ../../tutorial/interpreter.rst:46 #, fuzzy @@ -120,10 +121,11 @@ msgid "" "interactively; when called with a file name argument or with a file as " "standard input, it reads and executes a *script* from that file." msgstr "" -"مفسر تا حدی شبیه به پوسته ی یونیکس عمل می کند: زمانی که با ورودی استاندارد " -"متصل به یک دستگاه tty فراخوانی می شود، به صورت تعاملی دستورات را می خواند و " -"اجرا می کند؛ وقتی با یک آرگومان نام فایل یا به عنوان یک فایل به عنوان ورودی " -"استاندارد فراخوانی می شود، از آن فایل *script* را می خواند و اجرا می کند." +"مفسر تا حدودی شبیه به شِل یونیکس عمل می کند: هنگامی که با ورودی استاندارد که" +" به یک دستگاه tty متصل است فراخوانی می شود، به صورت تعاملی دستورات را می " +"خواند و اجرا می کند؛ وقتی با یک آرگومان نام فایل یا با یک فایل به عنوان " +"ورودی استاندارد فراخوانی می شود، آن را از فایل می خواند و یک *script* را " +"اجرا می کند." #: ../../tutorial/interpreter.rst:51 #, fuzzy @@ -134,10 +136,11 @@ msgid "" "characters that are special to the shell, it is usually advised to quote " "*command* in its entirety." msgstr "" -"روش دوم برای شروع مفسر، ``python -c command [arg] ...`` است که دستور(ها) را " -"در *command* اجرا می کند، مشابه با گزینه :option:`-c` در شل. از آنجایی که " -"دستورات پایتون اغلب شامل فاصله ها یا سایر کاراکترهایی هستند که برای شل خاص " -"هستند، معمولاً توصیه می شود که *command* به طور کامل نقل شود." +"راه دوم برای آغاز مفسر ``python -c command [arg] ...`` است که دستور یا " +"دستورات موجود در *command* را اجرا می کند، مشابه گزینه :option:`-c` در شل. " +"از آنجا که دستورات پایتون اغلب شامل فاصله ها یا کاراکترهای دیگری هستند که " +"برای شل خاص هستند، معمولاً توصیه می شود که *command* را به طور کامل در گیومه" +" قرار دهید." #: ../../tutorial/interpreter.rst:57 #, fuzzy @@ -146,10 +149,10 @@ msgid "" "``python -m module [arg] ...``, which executes the source file for *module* " "as if you had spelled out its full name on the command line." msgstr "" -"برخی از ماژول های پایتون به عنوان اسکریپت نیز مفید هستند. این ها می توانند " -"با استفاده از ``python -m module [arg] ...`` فراخوانی شوند، که فایل منبع " -"برای *module* را اجرا می کند، همان طوری که انگار نام کامل آن را در خط فرمان " -"نوشته اید." +"برخی از ماژول های پایتون به عنوان اسکریپت هم مفید هستند. این ماژول ها می " +"توانند با استفاده از ``python -m module [arg] ...`` فراخوانی شوند که فایل " +"منبع *module* را به گونه ای اجرا می کند که انگار نام کامل آن را در خط فرمان " +"وارد کرده اید." #: ../../tutorial/interpreter.rst:61 #, fuzzy @@ -158,14 +161,15 @@ msgid "" "script and enter interactive mode afterwards. This can be done by passing " ":option:`-i` before the script." msgstr "" -"وقتی از یک فایل اسکریپت استفاده می شود، گاهی اوقات مفید است که بتوان اسکریپت" -" را اجرا کرده و پس از آن به حالت تعاملی وارد شد. این کار با عبور دادن " -"`:option:`-i`` قبل از اسکریپت انجام پذیر است." +"زمانی که یک فایل اسکریپت استفاده می شود، گاهی اوقات مفید است که بتوان " +"اسکریپت را اجرا کرد و سپس وارد حالت تعاملی شد. این کار با عبور " +"`:option:`-i`` قبل از اسکریپت قابل انجام است." #: ../../tutorial/interpreter.rst:65 #, fuzzy msgid "All command line options are described in :ref:`using-on-general`." -msgstr "همه گزینه های خط فرمان در :ref:`using-on-general` توصیف شده اند." +msgstr "" +"تمام گزینه های خط فرمان در :ref:`using-on-general` توضیح داده شده اند." #: ../../tutorial/interpreter.rst:71 #, fuzzy @@ -188,18 +192,18 @@ msgid "" "interpreter's option processing but left in ``sys.argv`` for the command or" " module to handle." msgstr "" -"هنگامی که برای مفسر شناخته شده باشد، نام اسکریپت و آرگومان های اضافی بعد از " -"آن به یک لیست از رشته ها تبدیل شده و به متغیر ``argv`` در ماژول ``sys`` " -"اختصاص داده می شود. شما می توانید با اجرای ``import sys`` به این لیست دسترسی" -" پیدا کنید. طول این لیست حداقل یک است؛ زمانی که هیچ اسکریپت و هیچ آرگومانی " -"داده نشده باشد، ``sys.argv[0]`` یک رشته خالی است. وقتی نام اسکریپت به صورت " -"``'-'`` (به معنای ورودی استاندارد) داده شود، ``sys.argv[0]`` به ``'-'`` " -"تنظیم می شود. وقتی :option:`-c` *command* استفاده شود، ``sys.argv[0]`` به " -"``'-c'`` تنظیم می شود. وقتی :option:`-m` *module* استفاده شود، " -"``sys.argv[0]`` به نام کامل ماژول واقع در آن تنظیم می شود. گزینه هایی که بعد" -" از :option:`-c` *command* یا :option:`-m` *module* پیدا می شوند توسط پردازش" -" گزینه های مفسر پایتون مصرف نمی شوند، بلکه در ``sys.argv`` باقی می مانند تا " -"توسط فرمان یا ماژول مدیریت شوند." +"وقتی که برای مفسر شناخته شده باشد، نام اسکریپت و آرگومان های اضافی که پس از " +"آن می آیند به یک لیست از رشته ها تبدیل می شوند و به متغیر ``argv`` در ماژول " +"``sys`` اختصاص داده می شوند. شما می توانید با اجرای ``import sys`` به این " +"لیست دسترسی پیدا کنید. طول این لیست حداقل یک است؛ زمانی که هیچ اسکریپت و هیچ" +" آرگومانی داده نشده باشد، ``sys.argv[0]`` یک رشته خالی است. وقتی نام اسکریپت" +" به صورت ``'-'`` داده شود (به معنای ورودی استاندارد)، ``sys.argv[0]`` به " +"``'-'`` تنظیم می شود. وقتی :option:`-c` *command* استفاده می شود، " +"``sys.argv[0]`` به ``'-c'`` تنظیم می شود. وقتی :option:`-m` *module* استفاده" +" می شود، ``sys.argv[0]`` به نام کامل ماژول مکان یابی شدۀ تنظیم می شود. گزینه" +" هایی که بعد از :option:`-c` *command* یا :option:`-m` *module* پیدا می شوند" +" توسط پردازش گزینه های مفسر پایتون مصرف نمی شوند بلکه در ``sys.argv`` باقی " +"می مانند تا فرمان یا ماژول با آنها برخورد کند." #: ../../tutorial/interpreter.rst:89 #, fuzzy @@ -216,12 +220,12 @@ msgid "" "dots (``...``). The interpreter prints a welcome message stating its version" " number and a copyright notice before printing the first prompt:" msgstr "" -"هنگامی که دستورات از یک tty خوانده می شوند، گفته می شود که مفسر در حالت " -"*interactive mode* قرار دارد. در این حالت، برای دستوری بعدی با *primary " -"prompt* اعلان می کند، که معمولاً به صورت سه علامت بزرگتر (``>>>``) است؛ برای" -" خطوط ادامه، با *secondary prompt* اعلان می کند، که به طور پیش فرض به صورت " -"سه نقطه (``...``) است. مفسر پیش از چاپ اولین اعلان، پیامی خوش آمدگویی که " -"نسخه و شماره کپی رایت آن را بیان می کند، چاپ می کند:" +"وقتی که دستورات از یک tty خوانده می شوند، گفته می شود که مفسر در حالت " +"*interactive mode* قرار دارد. در این حالت، برای دریافت فرمان بعدی با " +"*primary prompt* درخواست می کند، که معمولاً سه علامت بزرگ تر (``>>>``) " +"هستند؛ برای خطوط ادامه، با *secondary prompt* درخواست می کند، که به طور پیش " +"فرض سه نقطه (``...``) هستند. مفسر قبل از نمایش اولین درخواست، پیامی خوش آمد " +"می فرستد که شماره نسخه و اعلامیه حقوقی را بیان می کند." #: ../../tutorial/interpreter.rst:98 #, fuzzy @@ -233,8 +237,8 @@ msgid "" ">>>" msgstr "" "$ python3.13\n" -"پایتون 3.13 (پیش فرض، 4 آوریل 2023، 09:25:04)\n" -"[GCC 10.2.0] روی لینوکس\n" +"Python 3.13 (default, April 4 2023, 09:25:04)\n" +"[GCC 10.2.0] on linux\n" "برای اطلاعات بیشتر \"help\"، \"copyright\"، \"credits\" یا \"license\" را تایپ کنید.\n" ">>>" @@ -244,8 +248,8 @@ msgid "" "Continuation lines are needed when entering a multi-line construct. As an " "example, take a look at this :keyword:`if` statement::" msgstr "" -"ادامه خطوط زمانی که یک ساختار چند خطی وارد می شود، لازم است. به عنوان مثال، " -"به این دستور :keyword:`if` نگاه کنید::" +"هنگام وارد کردن یک ساختار چند خطی، خطوط تداوم مورد نیاز هستند. به عنوان " +"مثال، به این دستور `:keyword:`if`` توجه کنید:" #: ../../tutorial/interpreter.rst:111 #, fuzzy @@ -256,27 +260,27 @@ msgid "" "...\n" "Be careful not to fall off!" msgstr "" -"```>>> the_world_is_flat = True\n" +">>> the_world_is_flat = True\n" ">>> if the_world_is_flat:\n" -"... print(\"مواظب باش که نیفتی!\")\n" +"... print(\"Be careful not to fall off!\")\n" "...\n" -"مواظب باش که نیفتی!```" +"Be careful not to fall off!" #: ../../tutorial/interpreter.rst:118 #, fuzzy msgid "For more on interactive mode, see :ref:`tut-interac`." msgstr "" -"برای اطلاعات بیشتر درباره حالت تعاملی، به :ref:`tut-interac` مراجعه کنید." +"برای اطلاعات بیشتر در مورد حالت تعاملی، به :ref:`tut-interac` مراجعه کنید." #: ../../tutorial/interpreter.rst:124 #, fuzzy msgid "The Interpreter and Its Environment" -msgstr "مترجم و محیط آن" +msgstr "مفسر و محیط آن" #: ../../tutorial/interpreter.rst:130 #, fuzzy msgid "Source Code Encoding" -msgstr "کدگذاری منبع" +msgstr "کد منبع کدگذاری" #: ../../tutorial/interpreter.rst:132 #, fuzzy @@ -289,13 +293,13 @@ msgid "" "properly, your editor must recognize that the file is UTF-8, and it must use" " a font that supports all the characters in the file." msgstr "" -"به طور پیش فرض، فایل های منبع پایتون به عنوان کدگذاری شده با UTF-8 در نظر " -"گرفته می شوند. در این کدگذاری، حروف اکثر زبان های جهان می توانند به طور " -"همزمان در \"string literals\"، شناسه ها و توضیحات استفاده شوند --- اگرچه " -"کتابخانه استاندارد تنها از کاراکترهای ASCII برای شناسه ها استفاده می کند، که" -" هر کدی که قابل حمل باشد باید این قاعده را رعایت کند. برای نمایش صحیح همه " -"این کاراکترها، ویرایشگر شما باید تشخیص دهد که فایل UTF-8 است و باید از فونتی" -" که از همه کاراکترهای موجود در فایل پشتیبانی می کند، استفاده نماید." +"به صورت پیش فرض، فایل های منبع پایتون به عنوان کد شده در UTF-8 در نظر گرفته " +"می شوند. در این کدگذاری، کاراکترهای بیشتر زبان های دنیا می توانند به طور " +"همزمان در رشته ها، شناسه ها و نظرات استفاده شوند --- اگرچه کتابخانه " +"استاندارد فقط از کاراکترهای ASCII برای شناسه ها استفاده می کند، که یک عرف " +"است که هر کدی که باید قابل حمل باشد باید آن را رعایت کند. برای نمایش صحیح " +"تمامی این کاراکترها، ویرایشگر شما باید تشخیص دهد که فایل به صورت UTF-8 است و" +" باید از فونتی استفاده کند که از تمام کاراکترهای موجود در فایل پشتیبانی کند." #: ../../tutorial/interpreter.rst:140 #, fuzzy @@ -303,23 +307,20 @@ msgid "" "To declare an encoding other than the default one, a special comment line " "should be added as the *first* line of the file. The syntax is as follows::" msgstr "" -"برای اعلام یک کدگذاری (encoding) غیر از پیش فرض، یک خط نظر خاص باید به عنوان" -" خط *first* فایل اضافه شود. نحو به صورت زیر است:" +"برای اعلام یک کدگذاری غیر از کدگذاری پیش فرض، باید یک خط نظر خاص به عنوان خط" +" *first* فایل اضافه شود. نحو آن به صورت زیر است::" #: ../../tutorial/interpreter.rst:143 #, fuzzy msgid "# -*- coding: encoding -*-" -msgstr "" -"متن داده شده برای ترجمه حاوی محتوای مستندات رسمی پایتون نیست. لطفاً یک بخش " -"مشخص و واقعی از مستندات پایتون را ارائه دهید تا بتوانم آن را به فارسی ترجمه " -"کنم." +msgstr "# -*- coding: encoding -*-" #: ../../tutorial/interpreter.rst:145 #, fuzzy msgid "" "where *encoding* is one of the valid :mod:`codecs` supported by Python." msgstr "" -"که *encoding* یکی از :mod:`codecs` معتبر پشتیبانی شده توسط Python است." +"که *encoding* یکی از :mod:`codecs` معتبر پشتیبانی شده توسط پایتون باشد." #: ../../tutorial/interpreter.rst:147 #, fuzzy @@ -327,15 +328,16 @@ msgid "" "For example, to declare that Windows-1252 encoding is to be used, the first " "line of your source code file should be::" msgstr "" -"به عنوان مثال، برای اعلام اینکه از کدگذاری Windows-1252 استفاده می شود، " -"اولین خط فایل کد منبع شما باید به صورت زیر باشد::" +"به عنوان مثال، برای اعلام اینکه باید از رمزگذاری Windows-1252 استفاده شود، " +"اولین خط فایل کد منبع شما باید به این صورت باشد::" #: ../../tutorial/interpreter.rst:150 #, fuzzy msgid "# -*- coding: cp1252 -*-" msgstr "" -"متن خاصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه " -"ارائه دهید." +"متن درخواستی برای ترجمه: \n" +"\n" +"# -*- coding: cp1252 -*-" #: ../../tutorial/interpreter.rst:152 #, fuzzy @@ -344,9 +346,9 @@ msgid "" " :ref:`UNIX \"shebang\" line `. In this case, the encoding " "declaration should be added as the second line of the file. For example::" msgstr "" -"یک استثناء برای قاعده *first line* زمانی است که کد منبع با یک :ref:`UNIX " -"\"shebang\" line ` شروع می شود. در این حالت، اعلامیه کدگذاری " -"باید به عنوان خط دوم فایل اضافه شود. برای مثال::" +"یک استثنا از قاعده *first line* زمانی است که کد منبع با یک :ref:`UNIX " +"\"shebang\" line ` شروع شود. در این حالت، اعلامیه کدگذاری باید " +"به عنوان خط دوم فایل اضافه شود. برای مثال::" #: ../../tutorial/interpreter.rst:156 #, fuzzy @@ -369,6 +371,6 @@ msgid "" "executable named ``python``, so that it does not conflict with a " "simultaneously installed Python 2.x executable." msgstr "" -"در سیستم عامل یونیکس، مفسر Python 3.x به طور پیش فرض با فایل اجرایی با نام " -"``python`` نصب نمی شود، بنابراین با فایل اجرایی Python 2.x که همزمان نصب شده" -" است، تداخلی نداشته باشد." +"در یونیکس، مفسر Python 3.x به صورت پیش فرض با فایل اجرایی به نام ``python`` " +"نصب نمی شود تا با فایل اجرایی Python 2.x که هم زمان نصب شده است، تداخلی " +"ایجاد نکند." diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 87cd20d07..b00239922 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/introduction.rst:5 #, fuzzy msgid "An Informal Introduction to Python" -msgstr "معرفی غیررسمی پایتون" +msgstr "آشنایی غیررسمی با پایتون" #: ../../tutorial/introduction.rst:7 #, fuzzy @@ -36,12 +36,12 @@ msgid "" " that a secondary prompt on a line by itself in an example means you must " "type a blank line; this is used to end a multi-line command." msgstr "" -"در مثال های زیر، ورودی و خروجی با حضور یا عدم حضور اعلان ها (:term:`>>>` و " -":term:`...`) متمایز می شوند: برای تکرار مثال، باید همه چیز را پس از اعلان " -"زمانی که اعلان ظاهر می شود تایپ کنید؛ خطوطی که با اعلان آغاز نمی شوند، خروجی" -" از مفسر هستند. توجه داشته باشید که وجود اعلان ثانویه به تنهایی در خطی در یک" -" مثال به معنای این است که باید خط خالی تایپ کنید؛ این روش برای پایان دادن به" -" یک دستور چندخطی استفاده می شود." +"در مثال های زیر، ورودی و خروجی با وجود یا عدم وجود پرامپت ها (:term:`>>>` و " +":term:`...`) از هم متمایز می شوند: برای تکرار مثال، باید همه چیزهایی که پس " +"از پرامپت می آید را هنگامی که پرامپت ظاهر می شود تایپ کنید؛ خطوطی که با " +"پرامپت شروع نمی شوند خروجی از مفسر هستند. توجه داشته باشید که یک پرامپت " +"ثانویه روی یک خط به تنهایی در یک مثال به این معناست که شما باید یک خط خالی " +"تایپ کنید؛ این برای پایان دادن به یک دستور چندخطی استفاده می شود." #: ../../tutorial/introduction.rst:16 #, fuzzy @@ -51,9 +51,9 @@ msgid "" "output for an example, then you can easily copy and paste the input lines " "into your interpreter." msgstr "" -"شما می توانید نمایش اعلان ها و خروجی ها را با کلیک بر روی ``>>>`` در گوشه ی " -"بالا-راست یک جعبه ی مثال تغییر دهید. اگر اعلان ها و خروجی ها را برای یک مثال" -" پنهان کنید، می توانید به راحتی خطوط ورودی را در مفسر خود کپی و جایگذاری " +"شما می توانید نمایش دستورات و خروجی ها را با کلیک بر روی ``>>>`` در گوشه " +"بالا-راست یک جعبه مثال تعویض کنید. اگر دستورات و خروجی ها را برای یک مثال " +"مخفی کنید، آنگاه می توانید به راحتی خطوط ورودی را به مفسر خود کپی و الصاق " "کنید." #: ../../tutorial/introduction.rst:23 @@ -67,13 +67,13 @@ msgid "" "character. Since comments are to clarify code and are not interpreted by " "Python, they may be omitted when typing in examples." msgstr "" -"بسیاری از مثال ها در این راهنما، حتی آن هایی که در مفسر تعاملی وارد شده اند،" -" شامل توضیحات هستند. در پایتون، توضیحات با کاراکتر هَش، ``#``، آغاز می شوند " -"و تا انتهای خط فیزیکی ادامه پیدا می کنند. یک توضیح می تواند در ابتدای یک خط " -"یا بعد از فاصله گذاری یا کد ظاهر شود، اما نه داخل یک رشته متنی. یک کاراکتر " -"هَش داخل یک رشته متنی تنها یک کاراکتر هَش محسوب می شود. از آنجا که توضیحات " -"برای شفاف سازی کد نوشته شده اند و توسط پایتون تفسیر نمی شوند، می توان آن ها " -"را هنگام تایپ مثال ها حذف کرد." +"بسیاری از مثال های این راهنما، حتی آن هایی که در پراپمت تعاملی وارد شده اند،" +" شامل نظرات می باشند. نظرات در پایتون با کاراکتر هَش، #، شروع شده و تا " +"انتهای خط فیزیکی ادامه می یابند. یک نظر ممکن است در ابتدای یک خط یا پس از " +"فاصله یا کد ظاهر شود، اما نمی تواند درون یک رشته حرفی باشد. کاراکتر هَش درون" +" یک رشته حرفی تنها یک کاراکتر هَش است. از آنجایی که نظرات برای روشن سازی کد " +"است و توسط پایتون تفسیر نمی شوند، هنگام وارد کردن مثال ها می توان آن ها را " +"حذف کرد." #: ../../tutorial/introduction.rst:31 #, fuzzy @@ -88,10 +88,10 @@ msgid "" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" -"# این اولین کامنت است\n" -"spam = 1 # و این کامنت دوم است\n" -" # ... و اکنون کامنت سوم!\n" -"text = \"# این یک کامنت نیست، زیرا داخل کوتیشن است.\"" +"# این اولین توضیح است\n" +"spam = 1 # و این دومین توضیح است\n" +" # ... و حالا سومی!\n" +"text = \"# این یک توضیح نیست زیرا داخل کوتیشن­ها قرار دارد.\"" #: ../../tutorial/introduction.rst:42 #, fuzzy @@ -104,8 +104,8 @@ msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" msgstr "" -"بیایید چند دستور ساده Python را امتحان کنیم. مترجم را اجرا کرده و منتظر " -"درخواست اولیه، ``>>>`` بمانید. (این کار نباید مدت زیادی طول بکشد.)" +"بیایید چند دستور ساده پایتون را امتحان کنیم. مفسر را اجرا کرده و منتظر اعلان" +" اصلی، ``>>>``، بمانید. (نباید مدت زیادی طول بکشد.)" #: ../../tutorial/introduction.rst:51 #, fuzzy @@ -120,11 +120,10 @@ msgid "" "operators ``+``, ``-``, ``*`` and ``/`` can be used to perform arithmetic; " "parentheses (``()``) can be used for grouping. For example::" msgstr "" -"مفسر به عنوان یک ماشین حساب ساده عمل می کند: شما می توانید یک عبارت را وارد " -"کنید و آن مقدار را به شما نشان می دهد. نحو عبارات به سادگی است: عملگرهای " -"```+```، ```-```، ```*``` و ```/``` می توانند برای انجام محاسبات ریاضی " -"استفاده شوند؛ پرانتزها ```()``` می توانند برای گروه بندی استفاده شوند. به " -"عنوان مثال:" +"مفسر به عنوان یک ماشین حساب ساده عمل می کند: شما می توانید یک عبارت را به آن" +" وارد کنید و مقدار آن را دریافت کنید. نگارش عبارات ساده است: از عملگرهای " +"``+``، ``-``، ``*`` و ``/`` می توانید برای انجام محاسبات ریاضی استفاده کنید؛" +" پرانتزها (``()``) را می توان برای گروه بندی به کار برد. برای مثال::" #: ../../tutorial/introduction.rst:59 #, fuzzy @@ -154,9 +153,9 @@ msgid "" "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type " ":class:`float`. We will see more about numeric types later in the tutorial." msgstr "" -"اعداد صحیح (به عنوان مثال، ``2``، ``4``، ``20``) از نوع :class:`int` هستند، " -"و آنهایی که دارای بخش اعشاری هستند (به عنوان مثال، ``5.0``، ``1.6``) از نوع " -":class:`float` می باشند. در ادامه آموزش، بیشتر با انواع عددی آشنا خواهیم شد." +"اعداد صحیح (مثلاً ``2``، ``4``، ``20``) از نوع :class:`int` هستند، آنهایی که" +" دارای قسمت کسری هستند (مثلاً ``5.0``، ``1.6``) از نوع :class:`float` می " +"باشند. در ادامه آموزش، درباره انواع عددی بیشتر خواهیم دید." #: ../../tutorial/introduction.rst:72 #, fuzzy @@ -165,8 +164,8 @@ msgid "" "get an integer result you can use the ``//`` operator; to calculate the " "remainder you can use ``%``::" msgstr "" -"تقسیم (``/``) همیشه یک عدد اعشاری بازمی گرداند. برای انجام :term:`floor " -"division` و دریافت یک نتیجه صحیح می توانید از عملگر ``//`` استفاده کنید؛ " +"تقسیم (``/``) همیشه یک عدد اعشاری برمی گرداند. برای انجام :term:`floor " +"division` و دریافت نتیجه عدد صحیح می توانید از عملگر ``//`` استفاده کنید؛ " "برای محاسبه باقیمانده می توانید از ``%`` استفاده کنید::" #: ../../tutorial/introduction.rst:76 @@ -182,17 +181,15 @@ msgid "" ">>> 5 * 3 + 2 # floored quotient * divisor + remainder\n" "17" msgstr "" -"```python\n" -">>> 17 / 3 # تقسیم کلاسیک نتیجه ای از نوع float برمی گرداند\n" +">>> 17 / 3 # تقسیم کلاسیک یک عدد اعشاری برمی گرداند\n" "5.666666666666667\n" ">>>\n" -">>> 17 // 3 # تقسیم به روش \"floor\" قسمت کسری را حذف می کند\n" +">>> 17 // 3 # تقسیم جزء صحیح قسمت کسری را حذف می کند\n" "5\n" -">>> 17 % 3 # عملگر % باقی مانده تقسیم را برمی گرداند\n" +">>> 17 % 3 # عملگر % باقیمانده تقسیم را برمی گرداند\n" "2\n" -">>> 5 * (divisor) + remainder\n" -"17\n" -"```" +">>> 5 * 3 + 2 # floored quotient * divisor + remainder\n" +"17" #: ../../tutorial/introduction.rst:86 #, fuzzy @@ -200,8 +197,7 @@ msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" -"با استفاده از Python، می توان از عملگر ``**`` برای محاسبه توان ها استفاده " -"کرد [#]_:" +"با پایتون، می توان از عملگر ``**`` برای محاسبه توان ها استفاده کرد [#]_:" #: ../../tutorial/introduction.rst:88 #, fuzzy @@ -211,7 +207,9 @@ msgid "" ">>> 2 ** 7 # 2 to the power of 7\n" "128" msgstr "" -">>> 2 ** 7 # توان ۷ از ۲ \n" +">>> 5 ** 2 # 5 squared\n" +"25\n" +">>> 2 ** 7 # 2 به توان 7\n" "128" #: ../../tutorial/introduction.rst:93 @@ -220,8 +218,8 @@ msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" msgstr "" -"علامت مساوی (``=``) برای اختصاص دادن یک مقدار به یک متغیر استفاده می شود. پس" -" از آن، هیچ نتیجه ای پیش از درخواست تعاملی بعدی نمایش داده نمی شود::" +"علامت مساوی (``=``) برای تخصیص یک مقدار به یک متغیر استفاده می شود. پس از " +"آن، هیچ نتیجه ای قبل از فراخوانی تعاملی بعدی نمایش داده نمی شود::" #: ../../tutorial/introduction.rst:96 #, fuzzy @@ -231,9 +229,9 @@ msgid "" ">>> width * height\n" "900" msgstr "" -">>> عرض = 20\n" -">>> ارتفاع = 5 * 9\n" -">>> width * ارتفاع\n" +">>> width = 20\n" +">>> height = 5 * 9\n" +">>> width * height\n" "900" #: ../../tutorial/introduction.rst:101 @@ -242,8 +240,8 @@ msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" msgstr "" -"اگر یک متغیر \"تعریف\" نشده باشد (مقداری به آن اختصاص داده نشده باشد)، تلاش " -"برای استفاده از آن به شما خطا می دهد::" +"اگر یک متغیر \"تعریف نشده\" باشد (یعنی مقداری به آن اختصاص داده نشده باشد)، " +"تلاش برای استفاده از آن باعث بروز خطا می شود::" #: ../../tutorial/introduction.rst:104 #, fuzzy @@ -254,9 +252,9 @@ msgid "" "NameError: name 'n' is not defined" msgstr "" ">>> n # تلاش برای دسترسی به یک متغیر تعریف نشده\n" -"آخرین بازگشت (آخرین فراخوانی) به شرح زیر است:\n" -" پرونده \"\", خط 1، در \n" -"NameError: نام 'n' تعریف نشده است" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"NameError: name 'n' is not defined" #: ../../tutorial/introduction.rst:109 #, fuzzy @@ -264,8 +262,8 @@ msgid "" "There is full support for floating point; operators with mixed type operands" " convert the integer operand to floating point::" msgstr "" -"پشتیبانی کامل از اعداد شناور وجود دارد؛ عملگرها با عملوندهای ترکیبی نوع، " -"عملوند عدد صحیح را به نقطه شناور تبدیل می کنند::" +"پشتیبانی کامل از اعداد اعشاری وجود دارد؛ عملگرهایی با عملوندهای نوع ترکیبی، " +"عملوند صحیح را به عدد اعشاری تبدیل می کنند::" #: ../../tutorial/introduction.rst:112 #, fuzzy @@ -273,8 +271,8 @@ msgid "" ">>> 4 * 3.75 - 1\n" "14.0" msgstr "" -"```>>> 4 * 3.75 - 1```\n" -"```14.0```" +">>> 4 * 3.75 - 1 \n" +"14.0" #: ../../tutorial/introduction.rst:115 #, fuzzy @@ -283,9 +281,9 @@ msgid "" " ``_``. This means that when you are using Python as a desk calculator, it " "is somewhat easier to continue calculations, for example::" msgstr "" -"در حالت تعاملی، آخرین عبارتی که چاپ شده به متغیر ```_``` اختصاص داده می شود." -" این به این معناست که زمانی که از پایتون به عنوان یک ماشین حساب رومیزی " -"استفاده می کنید، ادامه محاسبات تا حدودی ساده تر می شود، برای مثال::" +"در حالت تعاملی، آخرین عبارت چاپ شده به متغیر ``_`` اختصاص داده می شود. این " +"بدان معنی است که وقتی از پایتون به عنوان یک ماشین حساب رومیزی استفاده می " +"کنید، ادامه محاسبات به نوعی ساده تر است، به عنوان مثال::" #: ../../tutorial/introduction.rst:119 #, fuzzy @@ -299,7 +297,6 @@ msgid "" ">>> round(_, 2)\n" "113.06" msgstr "" -"```python\n" ">>> tax = 12.5 / 100\n" ">>> price = 100.50\n" ">>> price * tax\n" @@ -308,7 +305,8 @@ msgstr "" "113.0625\n" ">>> round(_, 2)\n" "113.06\n" -"```" +"\n" +"در مثال بالا، مقدار مالیات به درصد تعریف شده است. قیمت اولیه کالا 100.50 است. با ضرب قیمت در نرخ مالیات، مقدار مالیات محاسبه می شود. سپس قیمت کالا با مقدار مالیات جمع می شود و نتیجه در مرحله ی آخر با دقت دو رقم اعشار گرد می شود." #: ../../tutorial/introduction.rst:128 #, fuzzy @@ -318,8 +316,8 @@ msgid "" " the same name masking the built-in variable with its magic behavior." msgstr "" "این متغیر باید توسط کاربر به صورت فقط خواندنی در نظر گرفته شود. به طور صریح " -"به آن مقداری تخصیص ندهید --- در غیر این صورت، یک متغیر محلی مستقل با همان " -"نام ایجاد می کنید که متغیر داخلی با رفتار جادویی اش را پنهان می کند." +"به آن مقدار اختصاص ندهید --- چون در این صورت یک متغیر محلی مستقل با همین نام" +" ایجاد می کنید که متغیر داخلی با رفتار جادویی اش را مخفی می کند." #: ../../tutorial/introduction.rst:132 #, fuzzy @@ -330,11 +328,11 @@ msgid "" ":ref:`complex numbers `, and uses the ``j`` or ``J`` suffix to" " indicate the imaginary part (e.g. ``3+5j``)." msgstr "" -"علاوه بر :class:`int` و :class:`float`، پایتون انواع دیگری از اعداد را نیز " -"پشتیبانی می کند، مانند :class:`~decimal.Decimal` و " -":class:`~fractions.Fraction`. پایتون همچنین پشتیبانی داخلی برای " -":ref:`complex numbers ` دارد و از پسوند ``j`` یا ``J`` برای " -"نشان دادن بخش موهومی استفاده می کند (مثلاً ``3+5j``)." +"علاوه بر :class:`int` و :class:`float`، پایتون از انواع دیگر اعداد مانند " +":class:`~decimal.Decimal` و :class:`~fractions.Fraction` نیز پشتیبانی می " +"کند. پایتون همچنین پشتیبانی داخلی از :ref:`complex numbers ` " +"دارد و از پسوند ``j`` یا ``J`` برای نشان دادن قسمت موهومی استفاده می کند (به" +" عنوان مثال ``3+5j``)." #: ../../tutorial/introduction.rst:142 #, fuzzy @@ -350,11 +348,12 @@ msgid "" "\"``Yay! :)``\". They can be enclosed in single quotes (``'...'``) or double" " quotes (``\"...\"``) with the same result [#]_." msgstr "" -"پایتون می تواند متن (که با نوع :class:`str`، به اصطلاح \"رشته ها\" نشان داده" -" می شود) و همچنین اعداد را مدیریت کند. این شامل کاراکترها \"``!``\"، کلمات " -"\"``rabbit``\"، نام ها \"``Paris``\"، جملات \"``Got your back.``\"، و غیره " -"\"``Yay! :)``\" می شود. آن ها می توانند درون نقل قول های تکی (``'...'``) یا " -"نقل قول های دوتایی (``\"...\"``) قرار گیرند و نتیجه یکسانی حاصل می شود [#]_." +"پایتون می تواند متن ها (که با نوع :class:`str` نمایش داده می شوند و به " +"\"رشته ها\" معروف هستند) و همچنین اعداد را پردازش کند. این شامل حروف " +"\"``!``\"، کلمات \"``rabbit``\"، نام ها \"``Paris``\"، جملات \"``Got your " +"back.``\"، و غیره \"``Yay! :)``\" می شود. می توان آن ها را درون گیومه های " +"تکی (``'...'``) یا دو گیومه (``\"...\"``) قرار داد و نتیجه یکسان خواهد بود " +"[#]_." #: ../../tutorial/introduction.rst:157 #, fuzzy @@ -362,8 +361,9 @@ msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" msgstr "" -"برای نقل قول از یک نقل قول، باید آن را با پیشوند ``\\`` \"فرار\" دهیم. به " -"طور متناوب، می توانیم از نوع دیگری از علامت های نقل قول استفاده کنیم::" +"برای نقل قول از یک نقل قول، باید آن را \"فرار\" دهیم، با اینکه آن را با " +"``\\`` پیش از آن قرار دهیم. به طور جایگزین، می توانیم از نوع دیگری از علامت " +"نقل قول استفاده کنیم::" #: ../../tutorial/introduction.rst:160 #, fuzzy @@ -379,9 +379,9 @@ msgid "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" msgstr "" -">>> 'doesn\\'t' # برای فرار از نقل قول تک از \\' استفاده کنید...\n" +">>> 'doesn\\'t' # از \\' برای جلوگیری از برخورد با آپاستروف استفاده کنید...\n" "\"doesn't\"\n" -">>> \"doesn't\" # ...یا به جای آن از نقل قول دوتایی استفاده کنید\n" +">>> \"doesn't\" # ...یا به جای آن از کوتیشن دوتایی استفاده کنید\n" "\"doesn't\"\n" ">>> '\"Yes,\" they said.'\n" "'\"Yes,\" they said.'\n" @@ -398,9 +398,9 @@ msgid "" "omitting the enclosing quotes and by printing escaped and special " "characters::" msgstr "" -"در پوسته پایتون، تعریف رشته و خروجی رشته می تواند متفاوت به نظر برسد. تابع " -":func:`print` خروجی خواناتری تولید می کند، با حذف نقل قول های محصور کننده و " -"چاپ نکردن کاراکترهای اکسکیپ شده و خاص:" +"در محیط شل پایتون، تعریف رشته و خروجی رشته می تواند متفاوت به نظر برسد. تابع" +" :func:`print` خروجی خواناتر تولید می کند، با حذف نقل قول های احاطه کننده و " +"چاپ کردن کاراکترهای خاص و اسکیپ شده:" #: ../../tutorial/introduction.rst:175 #, fuzzy @@ -412,12 +412,12 @@ msgid "" "First line.\n" "Second line." msgstr "" -">>> s = 'خط اول.\\nخط دوم.' # \\n به معنای خط جدید است\n" -">>> s # بدون print()، کاراکترهای ویژه داخل رشته باقی می مانند\n" -"'خط اول.\\nخط دوم.'\n" -">>> print(s) # با print()، کاراکترهای ویژه تفسیر می شوند، بنابراین \\n خط جدید تولید می کند\n" -"خط اول.\n" -"خط دوم." +">>> s = 'First line.\\nSecond line.' # \\n به معنای خط جدید است\n" +">>> s # بدون print()، کاراکترهای خاص در رشته قرار می گیرند\n" +"'First line.\\nSecond line.'\n" +">>> print(s) # با print()، کاراکترهای خاص تفسیر می شوند، بنابراین \\n خط جدید ایجاد می کند\n" +"First line.\n" +"Second line." #: ../../tutorial/introduction.rst:182 #, fuzzy @@ -426,9 +426,9 @@ msgid "" " characters, you can use *raw strings* by adding an ``r`` before the first " "quote::" msgstr "" -"اگر نمی خواهید کاراکترهایی که با ``\\`` آغاز می شوند به عنوان کاراکترهای " -"ویژه تفسیر شوند، می توانید از *raw strings* استفاده کنید با اضافه کردن ``r``" -" قبل از اولین علامت نقل قول::" +"اگر نمی خواهید کاراکترهایی که با ``\\`` پیشوند شده اند به عنوان کاراکترهای " +"ویژه تفسیر شوند، می توانید از *raw strings* استفاده کنید و یک ``r`` را قبل " +"از اولین کوتیشن اضافه کنید::" #: ../../tutorial/introduction.rst:186 #, fuzzy @@ -439,13 +439,11 @@ msgid "" ">>> print(r'C:\\some\\name') # note the r before the quote\n" "C:\\some\\name" msgstr "" -"```python\n" -">>> print('C:\\some\\name') # در اینجا \\n به معنای شروع خط جدید است!\n" +">>> print('C:\\some\\name') # در اینجا \\n به معنای خط جدید است!\n" "C:\\some\n" "ame\n" -">>> print(r'C:\\some\\name') # به \"r\" قبل از نقل قول توجه کنید\n" -"C:\\some\\name\n" -"```" +">>> print(r'C:\\some\\name') # توجه کنید به r قبل از نقل قول\n" +"C:\\some\\name" #: ../../tutorial/introduction.rst:192 #, fuzzy @@ -454,9 +452,9 @@ msgid "" "odd number of ``\\`` characters; see :ref:`the FAQ entry ` for more information and workarounds." msgstr "" -"نکته ای ظریف درباره ی رشته های خام وجود دارد: یک رشته ی خام نمی تواند با " -"تعداد فردی از کاراکترهای ``\\`` خاتمه یابد؛ برای اطلاعات بیشتر و راه حل ها " -"به :ref:`the FAQ entry ` مراجعه کنید." +"یک جنبه ناچیز در مورد رشته های خام وجود دارد: یک رشته خام نمی تواند به " +"تعدادی فرد ``\\`` کاراکتر ختم شود؛ برای اطلاعات بیشتر و راه کارها به " +":ref:`the FAQ entry ` مراجعه کنید." #: ../../tutorial/introduction.rst:197 #, fuzzy @@ -467,10 +465,11 @@ msgid "" "adding a ``\\`` at the end of the line. In the following example, the " "initial newline is not included::" msgstr "" -"رشته های متنی می توانند در چندین خط قرار بگیرند. یکی از راه ها استفاده از سه" -" علامت نقل قول: ``\"\"\"...\"\"\"`` یا ``'''...'''`` است. کاراکترهای انتهای " -"خط به طور خودکار در رشته گنجانده می شوند، اما با افزودن ``\\`` در انتهای خط " -"می توان از این کار جلوگیری کرد. در مثال زیر، خط جدید اولیه شامل نمی شود::" +"رشته های متنی می توانند در چندین خط امتداد داشته باشند. یکی از راه ها " +"استفاده از سه علامت نقل قول است: ``\"\"\"...\"\"\"`` یا ``'''...'''``. " +"کاراکترهای پایان خط به طور خودکار در رشته شامل می شوند، اما می توان با اضافه" +" کردن ``\\`` در انتهای خط جلوی این کار را گرفت. در مثال زیر، خط جدید اولیه " +"شامل نمی شود::" #: ../../tutorial/introduction.rst:203 #, fuzzy @@ -486,16 +485,16 @@ msgid "" "\n" ">>>" msgstr "" -"```\n" ">>> print(\"\"\"\\\n" -"... Usage: thingy [OPTIONS]\n" -"... -h Display this usage message\n" -"... -H hostname Hostname to connect to\n" +"... نحوه استفاده: thingy [OPTIONS]\n" +"... -h نمایش این پیام راهنما\n" +"... -H hostname نام میزبان برای اتصال\n" "... \"\"\")\n" "نحوه استفاده: thingy [OPTIONS]\n" " -h نمایش این پیام راهنما\n" -" -H hostname نام میزبان برای اتصال به\n" -"```" +" -H hostname نام میزبان برای اتصال\n" +"\n" +">>>" #: ../../tutorial/introduction.rst:214 #, fuzzy @@ -503,7 +502,7 @@ msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" msgstr "" -"رشته ها می توانند با عملگر ``+`` به هم چسبانده شوند و با ``*`` تکرار شوند::" +"رشته ها می توانند با عملگر ``+`` به هم وصل شوند و با ``*`` تکرار شوند::" #: ../../tutorial/introduction.rst:217 #, fuzzy @@ -512,11 +511,9 @@ msgid "" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" -"```python\n" -">>> # 3 بار 'un'، به دنبال آن 'ium'\n" +">>> # سه بار 'un'، به دنبال آن 'ium'\n" ">>> 3 * 'un' + 'ium'\n" -"'unununium'\n" -"```" +"'unununium'" #: ../../tutorial/introduction.rst:221 #, fuzzy @@ -524,8 +521,8 @@ msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" -"دو یا چند *string literals* (یعنی آن هایی که داخل کوتیشن ها قرار گرفته اند) " -"در کنار یکدیگر به طور خودکار به هم متصل می شوند. ::" +"دو یا چند *string literals* (یعنی آن هایی که داخل نقل قول قرار دارند) که در " +"کنار یکدیگر باشند، به طور خودکار به یکدیگر متصل می شوند. ::" #: ../../tutorial/introduction.rst:224 #, fuzzy @@ -541,7 +538,7 @@ msgstr "" msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" -"این ویژگی به خصوص زمانی مفید است که بخواهید رشته های طولانی را بشکنید::" +"این ویژگی به ویژه زمانی مفید است که می خواهید رشته های طولانی را بشکنید::" #: ../../tutorial/introduction.rst:229 #, fuzzy @@ -551,19 +548,17 @@ msgid "" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" msgstr "" -"```python\n" -">>> text = ('چندین رشته را درون پرانتز قرار دهید '\n" -"... 'تا به هم پیوسته شوند.')\n" +">>> text = ('چندین رشته را داخل پرانتز قرار دهید '\n" +"... 'تا به هم متصل شوند.')\n" ">>> text\n" -"'چندین رشته را درون پرانتز قرار دهید تا به هم پیوسته شوند.'\n" -"```" +"'چندین رشته را داخل پرانتز قرار دهید تا به هم متصل شوند.'" #: ../../tutorial/introduction.rst:234 #, fuzzy msgid "" "This only works with two literals though, not with variables or " "expressions::" -msgstr "این تنها با دو ثابت کار می کند، نه با متغیرها یا عبارت ها::" +msgstr "این تنها با دو ثابت عمل می کند و نه با متغیرها یا عبارات::" #: ../../tutorial/introduction.rst:236 #, fuzzy @@ -581,16 +576,16 @@ msgid "" "SyntaxError: invalid syntax" msgstr "" ">>> prefix = 'Py'\n" -">>> prefix 'thon' # نمی توان یک متغیر و یک رشته ی ثابت را به هم متصل کرد\n" +">>> prefix 'thon' # نمی توان یک متغیر و یک رشته متنی را به هم وصل کرد\n" " File \"\", line 1\n" " prefix 'thon'\n" " ^^^^^^\n" -"SyntaxError: خطای نحوی نامعتبر\n" +"SyntaxError: invalid syntax\n" ">>> ('un' * 3) 'ium'\n" " File \"\", line 1\n" " ('un' * 3) 'ium'\n" " ^^^^^\n" -"SyntaxError: خطای نحوی نامعتبر" +"SyntaxError: invalid syntax" #: ../../tutorial/introduction.rst:248 #, fuzzy @@ -608,7 +603,7 @@ msgid "" "'Python'" msgstr "" ">>> prefix + 'thon'\n" -"'پایتون'" +"'Python'" #: ../../tutorial/introduction.rst:253 #, fuzzy @@ -617,9 +612,9 @@ msgid "" "index 0. There is no separate character type; a character is simply a string" " of size one::" msgstr "" -"رشته ها می توانند به صورت *indexed* (دارای اندیس) باشند، به طوری که اولین " -"کاراکتر دارای اندیس 0 است. نوع کاراکتر جداگانه ای وجود ندارد؛ یک کاراکتر به " -"سادگی رشته ای با اندازه یک است." +"رشته ها می توانند *indexed* (زیرنویس دار) باشند، به طوری که اولین کاراکتر " +"دارای اندیس 0 است. نوع کاراکتر جداگانه ای وجود ندارد؛ یک کاراکتر به سادگی یک" +" رشته به اندازه یک است::" #: ../../tutorial/introduction.rst:257 #, fuzzy @@ -630,20 +625,18 @@ msgid "" ">>> word[5] # character in position 5\n" "'n'" msgstr "" -"```\n" ">>> word = 'Python'\n" ">>> word[0] # کاراکتر در موقعیت 0\n" "'P'\n" ">>> word[5] # کاراکتر در موقعیت 5\n" -"'n'\n" -"```" +"'n'" #: ../../tutorial/introduction.rst:263 #, fuzzy msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" -"ایندکس ها ممکن است اعداد منفی نیز باشند و شمارش را از سمت راست شروع کنند::" +"اندیس ها همچنین می توانند اعداد منفی باشند تا شمارش از سمت راست شروع شود::" #: ../../tutorial/introduction.rst:265 #, fuzzy @@ -655,20 +648,18 @@ msgid "" ">>> word[-6]\n" "'P'" msgstr "" -"```\n" ">>> word[-1] # آخرین کاراکتر\n" "'n'\n" -">>> word[-2] # دومین کاراکتر از آخر\n" +">>> word[-2] # دومین کاراکتر از انتها\n" "'o'\n" ">>> word[-6]\n" -"'P'\n" -"```" +"'P'" #: ../../tutorial/introduction.rst:272 #, fuzzy msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" -"توجه داشته باشید که چون -0 با 0 برابر است، اندیس های منفی از -1 شروع می " +"توجه داشته باشید که از آنجا که -0 معادل 0 است، اندیس های منفی از -1 شروع می " "شوند." #: ../../tutorial/introduction.rst:274 @@ -678,9 +669,9 @@ msgid "" "used to obtain individual characters, *slicing* allows you to obtain a " "substring::" msgstr "" -"علاوه بر ایندکس گذاری، ``*slicing*`` نیز پشتیبانی می شود. در حالی که ایندکس " -"گذاری برای به دست آوردن کاراکترهای تکی استفاده می شود، ``*slicing*`` به شما " -"امکان می دهد یک زیررشته به دست آورید::" +"علاوه بر ایندکس بندی، *slicing* نیز پشتیبانی می شود. در حالی که ایندکس بندی " +"برای دستیابی به کاراکترهای منفرد استفاده می شود، *slicing* به شما اجازه می " +"دهد تا یک زیررشته به دست آورید::" #: ../../tutorial/introduction.rst:277 #, fuzzy @@ -690,12 +681,10 @@ msgid "" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" msgstr "" -"```python\n" -">>> word[0:2] # کاراکترها از موقعیت 0 (شامل) تا 2 (غیرشامل)\n" +">>> word[0:2] # حروف از موقعیت 0 (شامل) تا 2 (غیرشامل)\n" "'Py'\n" -">>> word[2:5] # کاراکترها از موقعیت 2 (شامل) تا 5 (غیرشامل)\n" -"'tho'\n" -"```" +">>> word[2:5] # حروف از موقعیت 2 (شامل) تا 5 (غیرشامل)\n" +"'tho'" #: ../../tutorial/introduction.rst:282 #, fuzzy @@ -703,9 +692,9 @@ msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero," " an omitted second index defaults to the size of the string being sliced. ::" msgstr "" -"ایندکس های برش دارای مقادیر پیش فرض مفیدی هستند؛ اگر ایندکس اول حذف شود، " -"مقدار پیش فرض آن صفر است و اگر ایندکس دوم حذف شود، مقدار پیش فرض آن اندازه " -"رشته ای است که در حال برش است." +"اندیس های برش دارای مقادیر پیش فرض مفیدی هستند؛ اگر اولین اندیس حذف شود، به " +"طور پیش فرض صفر در نظر گرفته می شود و اگر اندیس دوم حذف شود، به اندازه رشته " +"ای که برش داده می شود، در نظر گرفته می شود. ::" #: ../../tutorial/introduction.rst:285 #, fuzzy @@ -717,14 +706,12 @@ msgid "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" msgstr "" -"```python\n" -">>> word[:2] # کاراکتر از ابتدای رشته تا مکان 2 (بدون در نظر گرفتن مکان 2)\n" +">>> word[:2] # کاراکترها از ابتدا تا موقعیت ۲ (غیرمشمول)\n" "'Py'\n" -">>> word[4:] # کاراکترها از مکان 4 (با در نظر گرفتن مکان 4) تا انتها\n" +">>> word[4:] # کاراکترها از موقعیت ۴ (مشمول) تا انتها\n" "'on'\n" -">>> word[-2:] # کاراکترها از دومین مکان آخر (با در نظر گرفتن مکان) تا انتها\n" -"'on'\n" -"```" +">>> word[-2:] # کاراکترها از دومین از آخر (مشمول) تا انتها\n" +"'on'" #: ../../tutorial/introduction.rst:292 #, fuzzy @@ -732,8 +719,8 @@ msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" -"توجه کنید چگونه همیشه نقطه شروع شامل می شود و نقطه پایان همیشه مستثنی است. " -"این اطمینان را می دهد که ``s[:i] + s[i:]`` همیشه برابر با ``s`` است::" +"توجه داشته باشید که شروع همیشه شامل می شود و پایان همیشه مستثنی است. این امر" +" تضمین می کند که ``s[:i] + s[i:]`` همیشه برابر با ``s`` است::" #: ../../tutorial/introduction.rst:295 #, fuzzy @@ -743,12 +730,10 @@ msgid "" ">>> word[:4] + word[4:]\n" "'Python'" msgstr "" -"```python\n" ">>> word[:2] + word[2:]\n" -"'پایتون'\n" +"'Python'\n" ">>> word[:4] + word[4:]\n" -"'پایتون'\n" -"```" +"'Python'" #: ../../tutorial/introduction.rst:300 #, fuzzy @@ -758,10 +743,10 @@ msgid "" "Then the right edge of the last character of a string of *n* characters has " "index *n*, for example::" msgstr "" -"یکی از راه های به خاطر سپردن نحوه عملکرد قطعه ها این است که شاخص ها را به " -"عنوان اشاره گر به کاراکترها در نظر بگیرید، به طوری که لبه چپ اولین کاراکتر " -"شماره ۰ باشد. سپس لبه راست آخرین کاراکتر یک رشته با *n* کاراکتر، دارای شاخص " -"*n* خواهد بود، برای مثال:" +"یکی از راه های به خاطر سپردن نحوه کارکرد برش ها (slices) این است که شاخص ها " +"را به عنوان اشاره گر به کاراکترها تصور کنید، به طوری که لبه چپ اولین کاراکتر" +" شماره 0 می گیرد. سپس لبه راست آخرین کاراکتر یک رشته به طول *n* دارای شاخص " +"*n* خواهد بود. به عنوان مثال::" #: ../../tutorial/introduction.rst:305 #, fuzzy @@ -773,9 +758,9 @@ msgid "" "-6 -5 -4 -3 -2 -1" msgstr "" "```\n" -"+---+---+---+---+---+---+\n" -"| P | y | t | h | o | n |\n" -"+---+---+---+---+---+---+\n" +" +---+---+---+---+---+---+\n" +" | P | y | t | h | o | n |\n" +" +---+---+---+---+---+---+\n" " 0 1 2 3 4 5 6\n" "-6 -5 -4 -3 -2 -1\n" "```" @@ -788,9 +773,9 @@ msgid "" "from *i* to *j* consists of all characters between the edges labeled *i* and" " *j*, respectively." msgstr "" -"ردیف اول اعداد، موقعیت اندیس های 0...6 را در رشته نشان می دهد؛ ردیف دوم " -"اندیس های منفی متناظر را نشان می دهد. برش از *i* تا *j* شامل همه کاراکترهای " -"بین لبه های با برچسب *i* و *j* است." +"ردیف اول اعداد موقعیت اندیس های 0...6 را در رشته نشان می دهد؛ ردیف دوم اندیس" +" های منفی مربوطه را فراهم می کند. برش از *i* تا *j* شامل تمام کاراکترهای بین" +" لبه هایی است که به ترتیب با *i* و *j* برچسب گذاری شده اند." #: ../../tutorial/introduction.rst:316 #, fuzzy @@ -799,13 +784,13 @@ msgid "" "indices, if both are within bounds. For example, the length of " "``word[1:3]`` is 2." msgstr "" -"برای شاخص های غیرمنفی، طول یک برش برابر با تفاضل شاخص ها است، اگر هر دو در " -"محدوده باشند. برای مثال، طول ``word[1:3]`` برابر با ۲ است." +"برای شاخص های غیرمنفی، طول یک برش برابر است با اختلاف شاخص ها، اگر هر دو در " +"محدوده باشند. به عنوان مثال، طول ``word[1:3]`` برابر 2 است." #: ../../tutorial/introduction.rst:320 #, fuzzy msgid "Attempting to use an index that is too large will result in an error::" -msgstr "استفاده از ایندکسی که بیش از حد بزرگ است، منجر به بروز خطا خواهد شد::" +msgstr "استفاده از یک اندیس که بیش از حد بزرگ است منجر به خطا خواهد شد::" #: ../../tutorial/introduction.rst:322 #, fuzzy @@ -815,10 +800,10 @@ msgid "" " File \"\", line 1, in \n" "IndexError: string index out of range" msgstr "" -">>> word[42] # رشته تنها ۶ کاراکتر دارد\n" -"تراسبک (آخرین تماس اخیر):\n" -" فایل \"\"، خط ۱، در \n" -"IndexError: اندیس رشته خارج از محدوده است" +">>> word[42] # این واژه فقط 6 نویسه دارد\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"IndexError: string index out of range" #: ../../tutorial/introduction.rst:327 #, fuzzy @@ -826,8 +811,8 @@ msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" msgstr "" -"با این حال، ایندکس های برش که خارج از محدوده هستند، به خوبی هنگامی که برای " -"برش استفاده می شوند، مدیریت می شوند::" +"اگرچه شاخص های برش خارج از محدوده وقتی برای برش استفاده می شوند به خوبی " +"مدیریت می شوند::" #: ../../tutorial/introduction.rst:330 #, fuzzy @@ -837,12 +822,10 @@ msgid "" ">>> word[42:]\n" "''" msgstr "" -"```\n" ">>> word[4:42]\n" "'on'\n" ">>> word[42:]\n" -"''\n" -"```" +"''" #: ../../tutorial/introduction.rst:335 #, fuzzy @@ -850,8 +833,8 @@ msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" msgstr "" -"رشته های پایتون نمی توانند تغییر کنند --- آنها :term:`immutable` هستند. " -"بنابراین، اختصاص دادن به یک موقعیت ایندکس شده در رشته منجر به خطا می شود::" +"رشته های پایتون قابل تغییر نیستند --- آن ها :term:`immutable` هستند. " +"بنابراین، اختصاص دادن به یک موقعیت دارای اندیس در رشته منجر به خطا می شود::" #: ../../tutorial/introduction.rst:338 #, fuzzy @@ -865,20 +848,19 @@ msgid "" " File \"\", line 1, in \n" "TypeError: 'str' object does not support item assignment" msgstr "" -"```>>> word[0] = 'J'\n" +">>> word[0] = 'J'\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" "TypeError: 'str' object does not support item assignment\n" ">>> word[2:] = 'py'\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -"TypeError: 'str' object does not support item assignment\n" -"```" +"TypeError: 'str' object does not support item assignment" #: ../../tutorial/introduction.rst:347 #, fuzzy msgid "If you need a different string, you should create a new one::" -msgstr "اگر به رشته ای متفاوت نیاز دارید، باید یک رشته جدید ایجاد کنید::" +msgstr "اگر به رشته ی متفاوتی نیاز دارید، باید یک رشته ی جدید ایجاد کنید::" #: ../../tutorial/introduction.rst:349 #, fuzzy @@ -888,12 +870,10 @@ msgid "" ">>> word[:2] + 'py'\n" "'Pypy'" msgstr "" -"```plaintext\n" ">>> 'J' + word[1:]\n" "'Jython'\n" ">>> word[:2] + 'py'\n" -"'Pypy'\n" -"```" +"'Pypy'" #: ../../tutorial/introduction.rst:354 #, fuzzy @@ -907,18 +887,16 @@ msgid "" ">>> len(s)\n" "34" msgstr "" -"```python\n" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" -"34\n" -"```" +"34" #: ../../tutorial/introduction.rst:363 #, fuzzy msgid ":ref:`textseq`" msgstr "" -"متنی که برای ترجمه فرستاده اید قابل شناسایی نیست و به نظر نمی رسد بخشی از " -"مستندات رسمی پایتون باشد. لطفاً متن معتبر و خوانایی ارسال کنید." +"متن برای ترجمه ارائه نشده است. لطفاً متن انگلیسی که نیاز به ترجمه دارد را " +"ارسال کنید." #: ../../tutorial/introduction.rst:364 #, fuzzy @@ -926,15 +904,15 @@ msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -"رشته ها مثال هایی از *sequence types* هستند و از عملیات های عمومی که توسط " -"این نوع ها پشتیبانی می شوند، حمایت می کنند." +"رشته ها مثال هایی از *sequence types* هستند و از عملیات های معمول پشتیبانی " +"شده توسط این نوع ها پشتیبانی می کنند." #: ../../tutorial/introduction.rst:367 #, fuzzy msgid ":ref:`string-methods`" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را ارائه " -"دهید." +"من نمی توانم متنی که ارائه نشده است را ترجمه کنم. لطفاً متنی را که قصد ترجمه" +" دارید ارائه دهید، و من خوشحال می شوم که به شما در ترجمه آن کمک کنم!" #: ../../tutorial/introduction.rst:368 #, fuzzy @@ -942,39 +920,34 @@ msgid "" "Strings support a large number of methods for basic transformations and " "searching." msgstr "" -"رشته ها از تعداد زیادی متد برای تغییرات پایه ای و جستجو پشتیبانی می کنند." +"رشته ها از تعداد زیادی متد برای تبدیلات پایه ای و جستجو پشتیبانی می کنند." #: ../../tutorial/introduction.rst:371 #, fuzzy msgid ":ref:`f-strings`" msgstr "" -"متن ارائه شده به نظر عبارتی تصادفی یا کد نامعتبر است که به نظر نمی رسد معنی " -"خاصی داشته باشد. اگر نیاز به ترجمه متنی دارید، لطفاً متن معتبر و خوانا ارسال" -" کنید." +"متن ارائه شده حاوی مثال های کد یا اسامی فنی برای ترجمه نمی باشد. لطفا متن " +"دیگری را ارائه دهید که نیاز به ترجمه داشته باشد." #: ../../tutorial/introduction.rst:372 #, fuzzy msgid "String literals that have embedded expressions." -msgstr "رشته های متنی که شامل عبارت های درونی هستند." +msgstr "رشته های متنی که دارای عبارات تعبیه شده هستند." #: ../../tutorial/introduction.rst:374 #, fuzzy msgid ":ref:`formatstrings`" -msgstr "" -"متن ارائه شده معتبر و قابل ترجمه نمی باشد. لطفاً متن قابل فهم و معتبر دیگری " -"را برای ترجمه ارسال کنید." +msgstr "متن شما: :ref:`formatstrings`" #: ../../tutorial/introduction.rst:375 #, fuzzy msgid "Information about string formatting with :meth:`str.format`." -msgstr "اطلاعاتی درباره فرمت دهی رشته با :meth:`str.format`." +msgstr "اطلاعاتی درباره فرمت بندی رشته با :meth:`str.format`." #: ../../tutorial/introduction.rst:377 #, fuzzy msgid ":ref:`old-string-formatting`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " -"فارسی ارسال کنید." +msgstr ":ref:`old-string-formatting`" #: ../../tutorial/introduction.rst:378 #, fuzzy @@ -982,8 +955,8 @@ msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." msgstr "" -"عملیات قالب بندی قدیمی که وقتی رشته ها به عنوان عملوند چپ از عملگر ```%``` " -"استفاده می شوند، فراخوانی می شوند، در اینجا با جزئیات بیشتری توصیف شده اند." +"عملیات قالب بندی قدیمی که زمانی که رشته ها عملوند چپ عملگر ``%`` هستند، " +"فراخوانی می شوند، با جزئیات بیشتری اینجا توضیح داده شده اند." #: ../../tutorial/introduction.rst:385 #, fuzzy @@ -999,10 +972,11 @@ msgid "" "contain items of different types, but usually the items all have the same " "type. ::" msgstr "" -"پایتون تعدادی نوع داده *compound* را می شناسد که برای گروه بندی سایر مقادیر " -"به کار می روند. پرکاربردترین آن ها *list* است که می تواند به صورت یک لیست از" -" مقادیر جدا شده با کاما (آیتم ها) بین کروشه نوشته شود. لیست ها ممکن است شامل" -" آیتم هایی با انواع مختلف باشند، اما معمولاً تمام آیتم ها از یک نوع هستند." +"پایتون تعدادی از انواع داده *compound* را می شناسد که برای گروه بندی مقادیر " +"دیگر استفاده می شود. انعطاف پذیرترین آنها *list* است که می تواند به صورت " +"لیستی از مقادیر جداشده با کاما (آیتم ها) بین کروشه ها نوشته شود. لیست ها " +"ممکن است شامل آیتم هایی از انواع مختلف باشند، اما معمولاً همه آیتم ها از یک " +"نوع هستند. ::" #: ../../tutorial/introduction.rst:392 #, fuzzy @@ -1011,11 +985,9 @@ msgid "" ">>> squares\n" "[1, 4, 9, 16, 25]" msgstr "" -"```python\n" -">>> مربعات = [۱، ۴، ۹، ۱۶، ۲۵]\n" -">>> مربعات\n" -"[۱، ۴، ۹، ۱۶، ۲۵]\n" -"```" +">>> squares = [1, 4, 9, 16, 25]\n" +">>> squares\n" +"[1, 4, 9, 16, 25]" #: ../../tutorial/introduction.rst:396 #, fuzzy @@ -1023,8 +995,8 @@ msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" -"مانند رشته ها (و تمام انواع داخلی دیگر :term:`sequence`)، لیست ها نیز می " -"توانند ایندکس گذاری و قطعه بندی شوند::" +"مانند رشته ها (و تمام انواع داخلی :term:`sequence` دیگر)، لیست ها نیز می " +"توانند شاخص گذاری و برش داده شوند::" #: ../../tutorial/introduction.rst:399 #, fuzzy @@ -1036,17 +1008,17 @@ msgid "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" msgstr "" -">>> squares[0] # ایندکس کردن آیتم را برمی گرداند\n" +">>> squares[0] # ایندکس دهی، آیتم را بازمی گرداند\n" "1\n" ">>> squares[-1]\n" "25\n" -">>> squares[-3:] # برش یک لیست جدید را برمی گرداند\n" +">>> squares[-3:] # برش، یک لیست جدید را بازمی گرداند\n" "[9, 16, 25]" #: ../../tutorial/introduction.rst:406 #, fuzzy msgid "Lists also support operations like concatenation::" -msgstr "لیست ها از عملیات هایی مانند الحاق نیز پشتیبانی می کنند:" +msgstr "لیست ها همچنین از عملگرهایی مانند الحاق پشتیبانی می کنند::" #: ../../tutorial/introduction.rst:408 #, fuzzy @@ -1054,8 +1026,8 @@ msgid "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" msgstr "" -"```>>> squares + [36, 49, 64, 81, 100]\n" -"[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]```" +">>> squares + [36, 49, 64, 81, 100]\n" +"[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" #: ../../tutorial/introduction.rst:411 #, fuzzy @@ -1063,8 +1035,8 @@ msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" -"برخلاف رشته ها (strings) که :term:`immutable` هستند، لیست ها یک نوع " -":term:`mutable` می باشند، یعنی می توان محتوای آنها را تغییر داد:" +"برخلاف رشته ها که :term:`immutable` هستند، لیست ها یک نوع :term:`mutable` " +"هستند، یعنی می توان محتوای آن ها را تغییر داد::" #: ../../tutorial/introduction.rst:414 #, fuzzy @@ -1076,14 +1048,12 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125]" msgstr "" -"```python\n" -"کعب ها = [1، 8، 27، 65، 125] # چیزی اینجا اشتباه است\n" -"4 ** 3 # مکعب ۴ برابر است با 64، نه 65!\n" +">>> cubes = [1, 8, 27, 65, 125] # اینجا چیزی اشتباه است\n" +">>> 4 ** 3 # مکعب 4 برابر 64 است، نه 65!\n" "64\n" -"کعب ها[3] = 64 # جایگزینی مقدار اشتباه\n" -"کعب ها\n" -"[1، 8، 27، 64، 125]\n" -"```" +">>> cubes[3] = 64 # جایگزینی مقدار اشتباه\n" +">>> cubes\n" +"[1, 8, 27, 64, 125]" #: ../../tutorial/introduction.rst:421 #, fuzzy @@ -1091,8 +1061,8 @@ msgid "" "You can also add new items at the end of the list, by using the " ":meth:`!list.append` *method* (we will see more about methods later)::" msgstr "" -"شما می توانید با استفاده از :meth:`!list.append` *method* آیتم های جدیدی را " -"به انتهای لیست اضافه کنید (در ادامه با روش ها بیشتر آشنا خواهیم شد):" +"همچنین می توانید با استفاده از :meth:`!list.append` *method* (در ادامه بیشتر" +" دربارهٔ متدها خواهیم دید) موارد جدیدی را به انتهای لیست اضافه کنید::" #: ../../tutorial/introduction.rst:424 #, fuzzy @@ -1102,8 +1072,8 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" -">>> cubes.append(216) # مکعب 6 را اضافه کنید\n" -">>> cubes.append(7 ** 3) # و مکعب 7 را اضافه کنید\n" +">>> cubes.append(216) # مکعب ۶ را اضافه کنید\n" +">>> cubes.append(7 ** 3) # و مکعب ۷ را اضافه کنید\n" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" @@ -1115,10 +1085,10 @@ msgid "" "to the list through one variable will be seen through all other variables " "that refer to it.::" msgstr "" -"در پایتون، تخصیص ساده هرگز داده ها را کپی نمی کند. وقتی یک لیست را به یک " -"متغیر اختصاص می دهید، متغیر به *existing list* اشاره می کند. هر تغییری که در" -" لیست از طریق یک متغیر ایجاد کنید، در تمام متغیرهای دیگر که به آن اشاره می " -"کنند قابل مشاهده خواهد بود." +"در پایتون، تخصیص ساده هرگز داده ها را کپی نمی کند. هنگامی که یک لیست را به " +"یک متغیر انتساب می دهید، متغیر به *existing list* اشاره می کند. هر تغییری که" +" از طریق یک متغیر در لیست ایجاد کنید، از طریق تمام متغیرهای دیگر که به آن " +"اشاره می کنند، قابل مشاهده خواهد بود.::" #: ../../tutorial/introduction.rst:434 #, fuzzy @@ -1131,15 +1101,13 @@ msgid "" ">>> rgb\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" -"```python\n" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" -">>> id(rgb) == id(rgba) # آنها به یک شیء اشاره می کنند\n" +">>> id(rgb) == id(rgba) # آنها به همان شیء اشاره می کنند\n" "True\n" ">>> rgba.append(\"Alph\")\n" ">>> rgb\n" -"[\"Red\", \"Green\", \"Blue\", \"Alph\"]\n" -"```" +"[\"Red\", \"Green\", \"Blue\", \"Alph\"]" #: ../../tutorial/introduction.rst:442 #, fuzzy @@ -1148,9 +1116,9 @@ msgid "" "This means that the following slice returns a :ref:`shallow copy " "` of the list::" msgstr "" -"تمام عملیات برش یک لیست جدید که شامل عناصر درخواست شده است را برمی گردانند. " -"این به این معناست که برش زیر یک :ref:`shallow copy ` " -"از لیست را برمی گرداند::" +"همه عملیات برشی یک لیست جدید حاوی عناصر درخواست شده را برمی گردانند. این " +"بدان معناست که برش زیر یک :ref:`shallow copy ` از لیست" +" را برمی گرداند::" #: ../../tutorial/introduction.rst:446 #, fuzzy @@ -1162,14 +1130,12 @@ msgid "" ">>> rgba\n" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" msgstr "" -"```python\n" ">>> correct_rgba = rgba[:]\n" ">>> correct_rgba[-1] = \"Alpha\"\n" ">>> correct_rgba\n" "[\"Red\", \"Green\", \"Blue\", \"Alpha\"]\n" ">>> rgba\n" -"[\"Red\", \"Green\", \"Blue\", \"Alph\"]\n" -"```" +"[\"Red\", \"Green\", \"Blue\", \"Alph\"]" #: ../../tutorial/introduction.rst:453 #, fuzzy @@ -1177,8 +1143,8 @@ msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" msgstr "" -"اختصاص به برش ها نیز ممکن است و این می تواند حتی اندازه ی لیست را تغییر دهد " -"یا آن را به طور کامل پاک کند::" +"امکان اختصاص به برش ها نیز وجود دارد و این می تواند حتی اندازه لیست را تغییر" +" دهد یا آن را به طور کامل پاک کند::" #: ../../tutorial/introduction.rst:456 #, fuzzy @@ -1199,20 +1165,20 @@ msgid "" ">>> letters\n" "[]" msgstr "" -">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" -">>> letters\n" +">>> حروف = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" +">>> حروف\n" "['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" -">>> # چند مقدار را جایگزین کنید\n" -">>> letters[2:5] = ['C', 'D', 'E']\n" -">>> letters\n" +">>> # جایگزینی چند مقدار\n" +">>> حروف[2:5] = ['C', 'D', 'E']\n" +">>> حروف\n" "['a', 'b', 'C', 'D', 'E', 'f', 'g']\n" -">>> # حالا آن ها را حذف کنید\n" -">>> letters[2:5] = []\n" -">>> letters\n" +">>> # حالا حذفشان کن\n" +">>> حروف[2:5] = []\n" +">>> حروف\n" "['a', 'b', 'f', 'g']\n" -">>> # لیست را با جایگزینی تمام عناصر با یک لیست خالی پاک کنید\n" -">>> letters[:] = []\n" -">>> letters\n" +">>> # لیست را با جایگزینی تمام عناصر با یک لیست خالی پاک کن\n" +">>> حروف[:] = []\n" +">>> حروف\n" "[]" #: ../../tutorial/introduction.rst:472 @@ -1227,11 +1193,9 @@ msgid "" ">>> len(letters)\n" "4" msgstr "" -"```python\n" -">>> letters = ['a', 'b', 'c', 'd']\n" -">>> len(letters)\n" -"4\n" -"```" +">>> حروف = ['a', 'b', 'c', 'd']\n" +">>> len(حروف)\n" +"4" #: ../../tutorial/introduction.rst:478 #, fuzzy @@ -1239,8 +1203,8 @@ msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" msgstr "" -"امکان قرار دادن لیست ها به صورت تو در تو (ایجاد لیست هایی که شامل لیست های " -"دیگر باشند) وجود دارد، به عنوان مثال:" +"امکان قرار دادن لیست ها درون یکدیگر (ساخت لیست هایی که شامل لیست های دیگر " +"هستند) وجود دارد، برای مثال::" #: ../../tutorial/introduction.rst:481 #, fuzzy @@ -1268,7 +1232,7 @@ msgstr "" #: ../../tutorial/introduction.rst:494 #, fuzzy msgid "First Steps Towards Programming" -msgstr "اولین گام ها به سوی برنامه نویسی" +msgstr "اولین قدم ها به سوی برنامه نویسی" #: ../../tutorial/introduction.rst:496 #, fuzzy @@ -1278,9 +1242,9 @@ msgid "" "`Fibonacci series `_ as " "follows::" msgstr "" -"البته، می توانیم از پایتون برای انجام وظایف پیچیده تر از جمع کردن دو و دو " -"استفاده کنیم. به عنوان مثال، می توانیم یک زیر دنباله اولیه از \"`Fibonacci " -"series `_\" به صورت زیر " +"البته، ما می توانیم از پایتون برای وظایف پیچیده تری نسبت به جمع دو و دو " +"استفاده کنیم. به عنوان مثال، می توانیم یک زیر دنباله اولیه از `Fibonacci " +"series `_ به صورت زیر " "بنویسیم::" #: ../../tutorial/introduction.rst:501 @@ -1301,8 +1265,8 @@ msgid "" "5\n" "8" msgstr "" -">>> # دنباله فیبوناچی:\n" -">>> # مجموع دو عنصر، عنصر بعدی را تعریف می کند\n" +">>> # سری فیبوناچی:\n" +">>> # جمع دو عنصر مقدار بعدی را تعریف می کند\n" ">>> a, b = 0, 1\n" ">>> while a < 10:\n" "... print(a)\n" @@ -1319,7 +1283,7 @@ msgstr "" #: ../../tutorial/introduction.rst:516 #, fuzzy msgid "This example introduces several new features." -msgstr "این مثال چندین ویژگی جدید را معرفی می کند." +msgstr "این مثال چند ویژگی جدید را معرفی می کند." #: ../../tutorial/introduction.rst:518 #, fuzzy @@ -1331,9 +1295,10 @@ msgid "" "hand side expressions are evaluated from the left to the right." msgstr "" "خط اول شامل یک *multiple assignment* است: متغیرهای ``a`` و ``b`` به طور " -"همزمان مقادیر جدید ۰ و ۱ را دریافت می کنند. در خط آخر نیز از این استفاده می " -"شود که نشان می دهد ابتدا تمامی عبارات در سمت راست ارزیابی می شوند قبل از " -"اینکه هیچ تخصیصی انجام شود. عبارات سمت راست از چپ به راست ارزیابی می شوند." +"همزمان مقادیر جدید 0 و 1 را دریافت می کنند. در خط آخر، این دوباره استفاده " +"شده است و نشان می دهد که عبارت های موجود در سمت راست قبل از انجام هر گونه " +"تخصیص، ابتدا به طور کامل ارزیابی می شوند. عبارت های سمت راست از چپ به راست " +"ارزیابی می شوند." #: ../../tutorial/introduction.rst:524 #, fuzzy @@ -1347,14 +1312,14 @@ msgid "" "than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" -"حلقه :keyword:`while` تا زمانی اجرا می شود که شرط (اینجا: ``a < 10``) برقرار" -" باشد. در پایتون، همانند زبان C، هر مقداری غیر از صفر به عنوان صحیح و صفر به" -" عنوان نادرست در نظر گرفته می شود. شرط می تواند یک رشته یا لیست نیز باشد، در" -" واقع هر دنباله ای که طول آن غیر از صفر باشد صحیح و دنباله های خالی نادرست " -"هستند. آزمایشی که در مثال استفاده شده، یک مقایسه ی ساده است. عملگرهای مقایسه" -" استاندارد همانند زبان C نوشته می شوند: ``<`` (کوچکتر از)، ``>`` (بزرگتر " -"از)، ``==`` (برابر با)، ``<=`` (کوچکتر یا برابر با)، ``>=`` (بزرگتر یا برابر" -" با) و ``!=`` (نامساوی)." +"حلقه :keyword:`while` تا زمانی که شرط (اینجا: ``a < 10``) درست باشد اجرا می " +"شود. در پایتون، مانند زبان C، هر مقدار صحیح غیر صفر درست است؛ صفر نادرست " +"است. شرط ممکن است یک رشته یا لیست باشد، در واقع هر دنباله ای؛ هر چیزی با طول" +" غیر صفر درست است، دنباله های خالی نادرست هستند. آزمایشی که در مثال استفاده " +"شده، یک مقایسه ساده است. عملگرهای مقایسه استاندارد به همان صورت که در C " +"نوشته می شوند: ``<`` (کوچکتر از)، ``>`` (بزرگتر از)، ``==`` (برابر با)، " +"``<=`` (کوچکتر یا برابر با)، ``>=`` (بزرگتر یا برابر با) و ``!=`` (نابرابر " +"با)." #: ../../tutorial/introduction.rst:533 #, fuzzy @@ -1368,14 +1333,14 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" -"حلقه ی *body* به شکل *indented* است: تورفتگی در پایتون روشی برای گروه بندی " -"دستورات است. در محیط تعاملی، باید برای هر خط تورفتگی دار از تب یا فاصله " -"استفاده کنید. در عمل، ورودی های پیچیده تر برای پایتون را با یک ویرایشگر متن " -"آماده خواهید کرد؛ همه ی ویرایشگرهای متن مناسب دارای قابلیت تورفتگی خودکار " -"هستند. زمانی که یک عبارت مرکب به صورت تعاملی وارد می شود، باید با یک خط خالی" -" دنبال شود تا تکمیل شدن آن را نشان دهد (زیرا تجزیه گر نمی تواند حدس بزند که " -"خط آخر را وارد کرده اید). توجه داشته باشید که هر خط درون یک بلوک اساسی باید " -"به همان میزان تورفتگی داشته باشد." +"حلقه *body* دارای *indented* است: تورفتگی روش پایتون برای گروه بندی دستورات " +"است. در محیط تعاملی، باید برای هر خط تورفتگی، یک تب یا فاصله وارد کنید. در " +"عمل، ورودی های پیچیده تر برای پایتون را با یک ویرایشگر متنی آماده خواهید " +"کرد؛ ویرایشگرهای متن خوب دارای قابلیت تورفتگی خودکار هستند. وقتی یک دستور " +"ترکیبی به صورت تعاملی وارد می شود، باید با یک خط خالی دنبال شود تا اتمام آن " +"را نشان دهد (زیرا تجزیه گر نمی تواند حدس بزند که شما چه زمانی خط آخر را وارد" +" کرده اید). توجه داشته باشید که هر خط درون یک بلوک پایه باید به همان میزان " +"تورفتگی داشته باشد." #: ../../tutorial/introduction.rst:542 #, fuzzy @@ -1387,11 +1352,12 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" -"تابع :func:`print` مقدار یا مقادیر آرگومان هایی را که به آن داده شده می " -"نویسد. این تابع در نحوه پردازش آرگومان های متعدد، مقادیر اعشاری و رشته ها از" -" نوشتن ساده یک عبارت متمایز است (همانند مثالی که پیش تر در محاسبه گر " -"داشتیم). رشته ها بدون نقل قول چاپ می شوند و بین آیتم ها فاصله درج می شود، " -"بنابراین می توانید چیزها را به خوبی فرمت کنید، به این شکل:" +"تابع :func:`print` مقدار یا مقادیر آرگومان هایی که به آن داده شده را می " +"نویسد. این تابع با نوشتن مستقیم عبارتی که می خواهید بنویسید (همانطور که در " +"مثال های ماشین حساب قبلی دیدیم) تفاوت دارد، مخصوصاً در روش برخورد با آرگومان" +" های متعدد، مقادیر اعشاری و رشته ها. رشته ها بدون نقل قول چاپ می شوند و بین " +"آیتم ها یک فاصله قرار می گیرد، بنابراین می توانید به زیبایی مطالب را قالب " +"بندی کنید، مانند این::" #: ../../tutorial/introduction.rst:549 #, fuzzy @@ -1400,11 +1366,9 @@ msgid "" ">>> print('The value of i is', i)\n" "The value of i is 65536" msgstr "" -"```python\n" ">>> i = 256*256\n" -">>> print('مقدار i برابر است با', i)\n" -"مقدار i برابر است با 65536\n" -"```" +">>> print('The value of i is', i)\n" +"The value of i is 65536" #: ../../tutorial/introduction.rst:553 #, fuzzy @@ -1412,8 +1376,8 @@ msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" msgstr "" -"آرگومان کلیدی *end* می تواند برای جلوگیری از افزودن یک خط جدید بعد از خروجی،" -" یا پایان دادن به خروجی با یک رشته متفاوت استفاده شود::" +"از آرگومان کلیدواژه ی *end* می توان استفاده کرد تا از اضافه شدن خط جدید بعد " +"از خروجی جلوگیری کند یا خروجی را با یک رشته ی متفاوت به پایان برساند::" #: ../../tutorial/introduction.rst:556 #, fuzzy @@ -1425,17 +1389,17 @@ msgid "" "...\n" "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," msgstr "" -"```>>> a, b = 0, 1\n" +">>> a, b = 0, 1\n" ">>> while a < 1000:\n" "... print(a, end=',')\n" "... a, b = b, a+b\n" "...\n" -"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,```" +"0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," #: ../../tutorial/introduction.rst:565 #, fuzzy msgid "Footnotes" -msgstr "پینوشت ها" +msgstr "پاورقی ها" #: ../../tutorial/introduction.rst:566 #, fuzzy @@ -1444,9 +1408,9 @@ msgid "" " as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you" " can use ``(-3)**2``." msgstr "" -"از آنجایی که ``**`` اولویت بالاتری نسبت به ``-`` دارد، ``-3**2`` به صورت " +"از آنجا که ``**`` اولویت بالاتری نسبت به ``-`` دارد، ``-3**2`` به صورت " "``-(3**2)`` تفسیر خواهد شد و در نتیجه به ``-9`` منجر می شود. برای جلوگیری از" -" این و بدست آوردن ``9``، می توانید از ``(-3)**2`` استفاده کنید." +" این مسئله و دستیابی به ``9``، می توانید از ``(-3)**2`` استفاده کنید." #: ../../tutorial/introduction.rst:570 #, fuzzy @@ -1456,17 +1420,24 @@ msgid "" "only difference between the two is that within single quotes you don't need " "to escape ``\"`` (but you have to escape ``\\'``) and vice versa." msgstr "" -"برخلاف زبان های دیگر، کاراکترهای ویژه ای مانند ``\\n`` با هر دو علامت نقل " -"قول تکی (``'...'``) و دوتایی (``\"...\"``) همان معنی را دارند. تنها تفاوت " -"بین این دو این است که درون نقل قول های تکی نیازی به فرار دادن ``\"`` ندارید " -"(اما باید ``\\'`` را فرار دهید) و بالعکس." +"برخلاف زبان های دیگر، کاراکترهای ویژه مانند ``\\n`` با هر دو علامت نقل قول " +"تکی (``'...'``) و دوتایی (``\"...\"``) معنی یکسانی دارند. تنها تفاوت بین این" +" دو این است که در نقل قول تکی نیازی به فرار دادن ``\"`` ندارید (اما باید " +"``\\'`` را فرار دهید) و برعکس." #: ../../tutorial/introduction.rst:21 #, fuzzy msgid "# (hash)" -msgstr "# (هش)" +msgstr "" +"# (هش)\n" +"ماژول ``datetime`` کلاس ها را برای دستکاری تاریخ و زمان به شیوه ای ساده و پیچیده عرضه می کند. \n" +"در حالی که استفاده از ماژول به هیچ تمهیداتی خاصی نیاز ندارد، با این حال، کمی دانش در مورد کلاس های ارائه شده می تواند برای کار با تاریخ و زمان بسیار مفید باشد::\n" +"\n" +" from datetime import datetime, timedelta\n" +"\n" +"توجه داشته باشید که توابع در ماژول ``datetime`` به شما اجازه می دهند که عملیات های ساده ای را روی زمان و تاریخ انجام دهید:" #: ../../tutorial/introduction.rst:21 #, fuzzy msgid "comment" -msgstr "توضیح" +msgstr "کامنت" diff --git a/tutorial/modules.po b/tutorial/modules.po index bd590f189..fc3c09786 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -39,13 +39,13 @@ msgid "" "programs without copying its definition into each program." msgstr "" "اگر از مفسر پایتون خارج شوید و دوباره وارد آن شوید، تعاریفی که انجام داده " -"اید (توابع و متغیرها) از دست می روند. بنابراین، اگر می خواهید برنامه ای " -"نسبتاً طولانی بنویسید، بهتر است از یک ویرایشگر متن برای آماده سازی ورودی " -"برای مفسر استفاده کنید و آن را با استفاده از آن فایل به عنوان ورودی اجرا " -"کنید. این به عنوان ایجاد یک *script* شناخته می شود. همان طور که برنامه شما " -"طولانی تر می شود، ممکن است بخواهید آن را به چندین فایل برای نگهداری آسان تر " -"تقسیم کنید. همچنین ممکن است بخواهید یک تابع مفید که در چندین برنامه نوشته " -"اید را بدون کپی کردن تعریف آن به هر برنامه، استفاده کنید." +"اید (توابع و متغیرها) از دست می روند. بنابراین، اگر می خواهید یک برنامه " +"نسبتاً طولانی بنویسید، بهتر است از یک ویرایشگر متنی برای تهیه ورودی برای " +"مفسر استفاده کنید و آن را با استفاده از آن فایل به عنوان ورودی اجرا کنید. " +"این به عنوان ایجاد یک *script* شناخته می شود. همان طور که برنامه شما طولانی " +"تر می شود، ممکن است بخواهید آن را به چندین فایل برای نگهداری آسان تر تقسیم " +"کنید. همچنین ممکن است بخواهید از یک تابع کاربردی که در چندین برنامه نوشته " +"اید استفاده کنید بدون اینکه تعریف آن را در هر برنامه کپی کنید." #: ../../tutorial/modules.rst:16 #, fuzzy @@ -56,12 +56,12 @@ msgid "" "modules or into the *main* module (the collection of variables that you have" " access to in a script executed at the top level and in calculator mode)." msgstr "" -"برای پشتیبانی از این ویژگی، پایتون امکانی فراهم کرده است تا تعاریف را در یک " -"فایل قرار داده و از آن در یک اسکریپت یا در یک نمونه تعاملی از مفسر استفاده " -"کنید. چنین فایلی به عنوان یک *module* شناخته می شود؛ تعاریف از یک ماژول می " -"توانند به ماژول های دیگر یا به ماژول *main* (مجموعه ای از متغیرها که شما در " -"سطح بالای اجرای اسکریپت و در حالت ماشین حساب به آن ها دسترسی دارید) " -"*imported* شوند." +"برای پشتیبانی از این موضوع، پایتون روشی برای قرار دادن تعاریف در یک فایل و " +"استفاده از آن ها در یک اسکریپت یا در یک نمونه تعاملی از مفسر دارد. چنین " +"فایلی به نام یک *module* شناخته می شود؛ تعاریف از یک ماژول می توانند در سایر" +" ماژول ها یا در ماژول *main* بارگذاری شوند (مجموعه ای از متغیرهایی که در یک " +"اسکریپت که در سطح بالا اجرا می شود و در حالت ماشین حساب به آن ها دسترسی " +"دارید)." #: ../../tutorial/modules.rst:22 #, fuzzy @@ -73,11 +73,11 @@ msgid "" "to create a file called :file:`fibo.py` in the current directory with the " "following contents::" msgstr "" -"ماژول یک فایل حاوی تعاریف و دستورات پایتون است. نام فایل نام ماژول است که با" -" پسوند :file:`.py` ضمیمه می شود. درون یک ماژول، نام ماژول (به صورت یک رشته) " -"به عنوان مقدار متغیر سراسری ``__name__`` در دسترس است. برای مثال، از " -"ویرایشگر متن مورد علاقه خود استفاده کنید تا فایلی به نام :file:`fibo.py` در " -"شاخه جاری با محتوای زیر ایجاد کنید::" +"ماژول یک فایل حاوی تعریف ها و دستورات پایتون است. نام فایل همان نام ماژول با" +" پسوند :file:`.py` اضافه شده در انتهای آن است. درون ماژول، نام ماژول (به " +"صورت رشته) به عنوان مقدار متغیر سراسری ``__name__`` در دسترس است. برای مثال،" +" از ویرایشگر متن دلخواه خود استفاده کنید تا فایلی به نام :file:`fibo.py` در " +"دایرکتوری جاری با محتوای زیر ایجاد کنید::" #: ../../tutorial/modules.rst:28 #, fuzzy @@ -101,14 +101,14 @@ msgid "" msgstr "" "# ماژول اعداد فیبوناچی\n" "\n" -"def fib(n): # سری فیبوناچی را تا عدد n نمایش بده\n" +"def fib(n): # نوشتن سری فیبوناچی تا n\n" " a, b = 0, 1\n" " while a < n:\n" " print(a, end=' ')\n" " a, b = b, a+b\n" " print()\n" "\n" -"def fib2(n): # سری فیبوناچی را تا عدد n برگردان\n" +"def fib2(n): # بازگشت سری فیبوناچی تا n\n" " result = []\n" " a, b = 0, 1\n" " while a < n:\n" @@ -121,12 +121,12 @@ msgstr "" msgid "" "Now enter the Python interpreter and import this module with the following " "command::" -msgstr "اکنون وارد مفسر پایتون شوید و این ماژول را با فرمان زیر وارد کنید::" +msgstr "حال وارد مفسر پایتون شوید و این ماژول را با فرمان زیر وارد کنید::" #: ../../tutorial/modules.rst:48 #, fuzzy msgid ">>> import fibo" -msgstr ">>> ایمپورت fibo" +msgstr ">>> import fibo" #: ../../tutorial/modules.rst:50 #, fuzzy @@ -136,10 +136,10 @@ msgid "" "it only adds the module name ``fibo`` there. Using the module name you can " "access the functions::" msgstr "" -"این عمل، نام های توابع تعریف شده در ``fibo`` را مستقیماً به " -":term:`namespace` فعلی اضافه نمی کند (برای جزئیات بیشتر به :ref:`tut-scopes`" -" مراجعه کنید)؛ فقط نام ماژول ``fibo`` را به آنجا اضافه می کند. با استفاده از" -" نام ماژول می توانید به توابع دسترسی داشته باشید::" +"این به طور مستقیم نام توابع تعریف شده در ``fibo`` را به :term:`namespace` " +"فعلی اضافه نمی کند (برای جزئیات بیشتر به :ref:`tut-scopes` مراجعه کنید)؛ فقط" +" نام ماژول ``fibo`` را در آنجا اضافه می کند. با استفاده از نام ماژول می " +"توانید به توابع دسترسی پیدا کنید::" #: ../../tutorial/modules.rst:55 #, fuzzy @@ -151,14 +151,12 @@ msgid "" ">>> fibo.__name__\n" "'fibo'" msgstr "" -"```python\n" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" ">>> fibo.fib2(100)\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]\n" ">>> fibo.__name__\n" -"'fibo'\n" -"```" +"'fibo'" #: ../../tutorial/modules.rst:62 #, fuzzy @@ -175,16 +173,14 @@ msgid "" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -"```python\n" ">>> fib = fibo.fib\n" ">>> fib(500)\n" -"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377\n" -"```" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:72 #, fuzzy msgid "More on Modules" -msgstr "بیشتر دربارهٔ ماژول ها" +msgstr "بیشتر در مورد ماژول ها" #: ../../tutorial/modules.rst:74 #, fuzzy @@ -194,10 +190,10 @@ msgid "" "only the *first* time the module name is encountered in an import statement." " [#]_ (They are also run if the file is executed as a script.)" msgstr "" -"یک ماژول می تواند شامل دستورات قابل اجرا و نیز تعریف توابع باشد. این دستورات" -" برای مقداردهی اولیه ماژول در نظر گرفته شده اند. آن ها فقط اولین باری که نام" -" ماژول در یک عبارت ``import`` مشاهده می شود اجرا می شوند. (این دستورات " -"همچنین در صورتی که فایل به صورت اسکریپت اجرا شود نیز اجرا می شوند.)" +"یک ماژول می تواند شامل بیانیه های اجرایی و همچنین تعریف توابع باشد. این " +"بیانیه ها به منظور مقداردهی اولیه ماژول هستند. آن ها تنها در اولین باری که " +"نام ماژول در یک دستور `import` قرار می گیرد، اجرا می شوند. [#]_ (آن ها " +"همچنین اگر فایل به صورت یک اسکریپت اجرا شود، نیز اجرا خواهند شد.)" #: ../../tutorial/modules.rst:79 #, fuzzy @@ -209,12 +205,12 @@ msgid "" " know what you are doing you can touch a module's global variables with the " "same notation used to refer to its functions, ``modname.itemname``." msgstr "" -"هر ماژول فضای نام اختصاصی خود را دارد که به عنوان فضای نام سراسری توسط تمام " -"توابع تعریف شده در ماژول استفاده می شود. به این ترتیب، نویسنده یک ماژول می " -"تواند از متغیرهای سراسری در ماژول استفاده کند بدون اینکه نگران تداخل تصادفی " -"با متغیرهای سراسری کاربر باشد. از سوی دیگر، اگر بدانید چه کار می کنید، می " -"توانید با همان نشانه گذاری که برای اشاره به توابع آن استفاده می شود، به " -"متغیرهای سراسری یک ماژول دسترسی داشته باشید." +"هر ماژول دارای فضای نام خصوصی خود است که به عنوان فضای نام سراسری توسط تمام " +"توابع تعریف شده در ماژول استفاده می شود. بنابراین، نویسنده یک ماژول می تواند" +" از متغیرهای سراسری در ماژول استفاده کند بدون نگرانی از تداخل تصادفی با " +"متغیرهای سراسری کاربر. از سوی دیگر، اگر بدانید که چه کار می کنید، می توانید " +"با استفاده از همان نشانه گذاری که برای اشاره به توابع آن استفاده می شود، به " +"متغیرهای سراسری یک ماژول دسترسی پیدا کنید." #: ../../tutorial/modules.rst:86 #, fuzzy @@ -225,11 +221,11 @@ msgid "" "a module (outside any functions or classes), are added to the module's " "global namespace." msgstr "" -"ماژول ها می توانند ماژول های دیگر را وارد کنند. به صورت متداول، گرچه الزامی " -"نیست، که تمام دستورات «:keyword:`import`» را در ابتدای یک ماژول (یا اسکریپت،" -" برای این موضوع) قرار می دهند. نام های ماژول وارد شده، در صورتی که در سطح " -"بالای یک ماژول (خارج از هر تابع یا کلاسی) قرار بگیرند، به فضای نام سراسری " -"ماژول افزوده می شوند." +"ماژول ها می توانند ماژول های دیگر را وارد کنند. به طور معمول (ولی الزامی " +"نیست)، تمام عبارات :keyword:`import` در ابتدای یک ماژول (یا اسکریپت، در این " +"صورت) قرار می گیرند. نام های ماژول وارد شده، در صورتی که در سطح بالای ماژول " +"(خارج از توابع یا کلاس ها) قرار گیرند، به فضای نام عمومی ماژول اضافه می " +"شوند." #: ../../tutorial/modules.rst:91 #, fuzzy @@ -238,7 +234,7 @@ msgid "" "from a module directly into the importing module's namespace. For example::" msgstr "" "نوعی از دستور :keyword:`import` وجود دارد که نام ها را مستقیماً از یک ماژول " -"به فضای نام ماژول واردکننده وارد می کند. برای مثال:" +"به فضای نام ماژول واردکننده وارد می کند. برای مثال::" #: ../../tutorial/modules.rst:94 #, fuzzy @@ -247,7 +243,7 @@ msgid "" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -">>> از fibo وارد کنید fib و fib2\n" +">>> from fibo import fib, fib2\n" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" @@ -257,14 +253,14 @@ msgid "" "This does not introduce the module name from which the imports are taken in " "the local namespace (so in the example, ``fibo`` is not defined)." msgstr "" -"این کار نام ماژولی که \"import\"ها از آن گرفته شده اند را در فضای نام محلی " -"معرفی نمی کند (بنابراین در این مثال، \"``fibo``\" تعریف نشده است)." +"این کار نام ماژولی که واردات از آن انجام شده را به فضای نام محلی معرفی نمی " +"کند (بنابراین در مثال، ``fibo`` تعریف نشده است)." #: ../../tutorial/modules.rst:101 #, fuzzy msgid "There is even a variant to import all names that a module defines::" msgstr "" -"حتی یک نوع خاص برای وارد کردن تمام نام هایی که یک ماژول تعریف می کند وجود " +"حتی یک نوع خاص برای وارد کردن تمامی اسامی که یک ماژول تعریف می کند وجود " "دارد::" #: ../../tutorial/modules.rst:103 @@ -274,12 +270,9 @@ msgid "" ">>> fib(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -" \n" -"```\n" ">>> from fibo import *\n" ">>> fib(500)\n" -"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377\n" -"```" +"0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:107 #, fuzzy @@ -289,10 +282,10 @@ msgid "" "an unknown set of names into the interpreter, possibly hiding some things " "you have already defined." msgstr "" -"این کار تمام نام ها را به جز آن هایی که با یک آندرلاین (مانند ``_``) شروع می" -" شوند وارد می کند. در بیشتر مواقع، برنامه نویسان پایتون از این قابلیت " -"استفاده نمی کنند چون ممکن است مجموعه ای ناشناخته از نام ها را به مفسر وارد " -"کند و شاید برخی چیزهایی که شما قبلاً تعریف کرده اید را پنهان کند." +"این تمام نام ها را به جز آن هایی که با یک آندرلاین (_) شروع می شوند، وارد می" +" کند. در بیشتر موارد، برنامه نویسان پایتون از این قابلیت استفاده نمی کنند " +"زیرا مجموعه ای ناشناخته از نام ها را وارد مفسر می کند که ممکن است باعث پنهان" +" شدن بعضی از چیزهایی شود که شما قبلاً تعریف کرده اید." #: ../../tutorial/modules.rst:112 #, fuzzy @@ -301,10 +294,10 @@ msgid "" "package is frowned upon, since it often causes poorly readable code. " "However, it is okay to use it to save typing in interactive sessions." msgstr "" -"توجه داشته باشید که به طور کلی عمل وارد کردن ``*`` از یک ماژول یا پکیج " -"ناپسند شمرده می شود، زیرا اغلب منجر به کدهایی می شود که خوانایی کمتری دارند." -" با این حال، استفاده از آن برای صرفه جویی در تایپ کردن در جلسات تعاملی " -"اشکالی ندارد." +"توجه داشته باشید که به طور کلی، انجام عمل وارد کردن ``*`` از یک ماژول یا " +"بسته، مورد انتقاد قرار می گیرد، زیرا معمولاً منجر به کدی می شود که خوانایی " +"ضعیفی دارد. با این حال، استفاده از آن برای کاهش تایپ در جلسات تعاملی اشکالی " +"ندارد." #: ../../tutorial/modules.rst:116 #, fuzzy @@ -312,8 +305,8 @@ msgid "" "If the module name is followed by :keyword:`!as`, then the name following " ":keyword:`!as` is bound directly to the imported module." msgstr "" -"اگر نام ماژول توسط :keyword:`!as` دنبال شود، سپس نامی که پس از " -":keyword:`!as` می آید مستقیماً به ماژول وارد شده متصل می شود." +"اگر نام ماژول با :keyword:`!as` دنبال شود، سپس نامی که با :keyword:`!as` " +"دنبال می شود به طور مستقیم به ماژول وارد شده متصل می شود." #: ../../tutorial/modules.rst:121 #, fuzzy @@ -332,16 +325,16 @@ msgid "" "This is effectively importing the module in the same way that ``import " "fibo`` will do, with the only difference of it being available as ``fib``." msgstr "" -"این به طور مؤثر ماژول را به همان روشی وارد می کند که ``import fibo`` انجام " -"می دهد، با این تفاوت که به عنوان ``fib`` در دسترس است." +"این به طور مؤثر ماژول را به همان روشی که ``import fibo`` انجام می دهد، وارد " +"می کند، با تنها تفاوت آن که به عنوان ``fib`` در دسترس است." #: ../../tutorial/modules.rst:128 #, fuzzy msgid "" "It can also be used when utilising :keyword:`from` with similar effects::" msgstr "" -"همچنین می توان زمانی که از :keyword:`from` با اثرات مشابه استفاده می کنید، " -"به کار گرفت::" +"همچنین می تواند هنگام استفاده از :keyword:`from` با تأثیرات مشابه مورد " +"استفاده قرار گیرد::" #: ../../tutorial/modules.rst:130 #, fuzzy @@ -350,7 +343,7 @@ msgid "" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" msgstr "" -">>> از fibo وارد کنید fib به عنوان fibonacci\n" +">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" @@ -363,26 +356,26 @@ msgid "" "use :func:`importlib.reload`, e.g. ``import importlib; " "importlib.reload(modulename)``." msgstr "" -"به دلایل کارایی، هر ماژول تنها یک بار در هر جلسه ی مفسر وارد می شود. " -"بنابراین، اگر ماژول های خود را تغییر دهید، باید مفسر را مجدداً راه اندازی " -"کنید -- یا اگر فقط یک ماژول است که می خواهید به صورت تعاملی آزمایش کنید، از " +"به دلایل کارایی، هر ماژول تنها یک بار در هر جلسه مفسر وارد می شود. بنابراین،" +" اگر ماژول های خود را تغییر دهید، باید مفسر را دوباره راه اندازی کنید -- یا " +"اگر فقط یک ماژول است که می خواهید به صورت تعاملی آزمایش کنید، از " ":func:`importlib.reload` استفاده کنید، مثلاً ``import importlib; " "importlib.reload(modulename)``." #: ../../tutorial/modules.rst:147 #, fuzzy msgid "Executing modules as scripts" -msgstr "اجرای ماژول ها به عنوان اسکریپت" +msgstr "اجرای ماژول ها به صورت اسکریپت" #: ../../tutorial/modules.rst:149 #, fuzzy msgid "When you run a Python module with ::" -msgstr "هنگامی که یک ماژول پایتون را با :: اجرا می کنید" +msgstr "وقتی یک ماژول پایتون را اجرا می کنید با ::" #: ../../tutorial/modules.rst:151 #, fuzzy msgid "python fibo.py " -msgstr "پایتون fibo.py <آرگومان ها>" +msgstr "`python fibo.py `" #: ../../tutorial/modules.rst:153 #, fuzzy @@ -391,9 +384,9 @@ msgid "" "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " "this code at the end of your module::" msgstr "" -"کد موجود در ماژول اجرا خواهد شد، درست مثل زمانی که شما آن را import می کنید،" -" اما با قرار دادن ``__name__`` به عنوان ``\"__main__\"``. این بدان معناست که" -" با افزودن این کد در انتهای ماژول خود::" +"کد در ماژول اجرا خواهد شد، همان طور که اگر آن را وارد کرده بودید، اما با " +"تنظیم ``__name__`` به ``\"__main__\"``. این بدان معناست که با افزودن این کد " +"در انتهای ماژول خود::" #: ../../tutorial/modules.rst:157 #, fuzzy @@ -402,11 +395,9 @@ msgid "" " import sys\n" " fib(int(sys.argv[1]))" msgstr "" -"```python\n" "اگر __name__ == \"__main__\":\n" " import sys\n" -" fib(int(sys.argv[1]))\n" -"```" +" fib(int(sys.argv[1]))" #: ../../tutorial/modules.rst:161 #, fuzzy @@ -415,9 +406,10 @@ msgid "" "because the code that parses the command line only runs if the module is " "executed as the \"main\" file:" msgstr "" -"شما می توانید فایل را هم به عنوان یک اسکریپت و هم به عنوان یک ماژول قابل " -"وارد کردن قابل استفاده کنید، زیرا کدی که خط فرمان را تجزیه می کند فقط در " -"صورتی اجرا می شود که ماژول به عنوان فایل \"main\" اجرا شود:" +"شما می توانید فایل را به گونه ای ایجاد کنید که هم به عنوان یک اسکریپت قابل " +"استفاده باشد و هم به عنوان یک ماژول واردشدنی، زیرا کدی که دستورات خط فرمان " +"را تحلیل می کند، تنها زمانی اجرا می شود که ماژول به عنوان فایل \"main\" اجرا" +" شود:" #: ../../tutorial/modules.rst:165 #, fuzzy @@ -431,7 +423,7 @@ msgstr "" #: ../../tutorial/modules.rst:170 #, fuzzy msgid "If the module is imported, the code is not run::" -msgstr "اگر ماژول وارد شود، کد اجرا نمی شود::" +msgstr "اگر ماژول ایمپورت شده باشد، کد اجرا نمی شود::" #: ../../tutorial/modules.rst:172 #, fuzzy @@ -439,10 +431,8 @@ msgid "" ">>> import fibo\n" ">>>" msgstr "" -"```python\n" ">>> import fibo\n" -">>>\n" -"```" +">>>" #: ../../tutorial/modules.rst:175 #, fuzzy @@ -451,9 +441,9 @@ msgid "" "module, or for testing purposes (running the module as a script executes a " "test suite)." msgstr "" -"اغلباً این روش برای ارائه یک رابط کاربری مناسب به یک ماژول استفاده می شود، " -"یا برای اهداف تستی (اجرای ماژول به عنوان یک اسکریپت، مجموعه تست را اجرا می " -"کند)." +"این اغلب برای ارائه یک رابط کاربری راحت به یک ماژول یا برای اهداف آزمایش " +"(اجرای ماژول به عنوان یک اسکریپت یک مجموعه تست را اجرا می کند) استفاده می " +"شود." #: ../../tutorial/modules.rst:182 #, fuzzy @@ -469,12 +459,12 @@ msgid "" "named :file:`spam.py` in a list of directories given by the variable " ":data:`sys.path`. :data:`sys.path` is initialized from these locations:" msgstr "" -"وقتی که یک ماژول به نام :mod:`!spam` وارد می شود، مفسر ابتدا به دنبال یک " -"ماژول داخلی با آن نام می گردد. این نام های ماژول در " -":data:`sys.builtin_module_names` فهرست شده اند. اگر پیدا نشود، سپس به دنبال " -"فایلی با نام :file:`spam.py` در یک لیست از دایرکتوری ها که توسط متغیر " -":data:`sys.path` داده شده اند، جستجو می کند. :data:`sys.path` از این مکان ها" -" مقداردهی اولیه می شود:" +"وقتی یک ماژول به نام :mod:`!spam` وارد می شود، مفسر ابتدا به دنبال یک ماژول " +"داخلی با آن نام می گردد. نام های این ماژول ها در " +":data:`sys.builtin_module_names` فهرست شده اند. اگر یافت نشود، سپس به دنبال " +"فایلی با نام :file:`spam.py` در لیستی از دایرکتوری ها که توسط متغیر " +":data:`sys.path` ارائه شده است، می گردد. :data:`sys.path` از این مکان ها " +"مقداردهی اولیه می شود:" #: ../../tutorial/modules.rst:192 #, fuzzy @@ -482,8 +472,8 @@ msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." msgstr "" -"دایرکتوری حاوی اسکریپت ورودی (یا دایرکتوری جاری زمانی که هیچ فایلی مشخص نشده" -" است)." +"دایرکتوری که شامل اسکریپت ورودی است (یا دایرکتوری فعلی هنگامی که هیچ فایلی " +"مشخص نشده است)." #: ../../tutorial/modules.rst:194 #, fuzzy @@ -491,8 +481,8 @@ msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the" " shell variable :envvar:`PATH`)." msgstr "" -":envvar:`PYTHONPATH` (یک فهرست از نام های دایرکتوری، با همان نحو متغیر شل " -":envvar:`PATH`)." +":envvar:`PYTHONPATH` (یک لیست از نام دایرکتوری ها، با همان نحوه نگارش متغیر " +"شِل :envvar:`PATH`)." #: ../../tutorial/modules.rst:196 #, fuzzy @@ -500,13 +490,13 @@ msgid "" "The installation-dependent default (by convention including a ``site-" "packages`` directory, handled by the :mod:`site` module)." msgstr "" -"پیش فرض وابسته به نصب (به صورت قراردادی شامل یک پوشه ی ``site-packages``، که" -" توسط ماژول :mod:`site` مدیریت می شود)." +"پیش فرض وابسته به نصب (به طور مرسوم شامل یک دایرکتوری ``site-packages`` که " +"توسط ماژول :mod:`site` مدیریت می شود)." #: ../../tutorial/modules.rst:199 #, fuzzy msgid "More details are at :ref:`sys-path-init`." -msgstr "جزئیات بیشتر در :ref:`sys-path-init` موجود است." +msgstr "جزئیات بیشتر در :ref:`sys-path-init` قرار دارد." #: ../../tutorial/modules.rst:202 #, fuzzy @@ -515,9 +505,9 @@ msgid "" "script is calculated after the symlink is followed. In other words the " "directory containing the symlink is **not** added to the module search path." msgstr "" -"در سیستم فایل هایی که از symlinkها پشتیبانی می کنند، دایرکتوری که شامل " -"اسکریپت ورودی است پس از دنبال کردن symlink محاسبه می شود. به عبارت دیگر، " -"دایرکتوری که شامل symlink است به مسیر جستجوی ماژول اضافه می شود." +"در سیستم فایل هایی که از سیملینک ها پشتیبانی می کنند، دایرکتوری حاوی اسکریپت" +" ورودی پس از دنبال کردن سیملینک محاسبه می شود. به عبارت دیگر، دایرکتوری حاوی" +" سیملینک به مسیر جستجوی ماژول اضافه می شود." #: ../../tutorial/modules.rst:206 #, fuzzy @@ -530,16 +520,16 @@ msgid "" " section :ref:`tut-standardmodules` for more information." msgstr "" "پس از مقداردهی اولیه، برنامه های پایتون می توانند :data:`sys.path` را تغییر " -"دهند. دایرکتوری حاوی اسکریپتی که در حال اجراست، در ابتدای مسیر جستجو، قبل از" -" مسیر کتابخانه استاندارد قرار می گیرد. این بدان معناست که اسکریپت های موجود " -"در آن دایرکتوری به جای ماژول های هم نام در دایرکتوری کتابخانه بارگذاری " -"خواهند شد. این کار اشتباه است مگر اینکه جایگزینی مورد نظر باشد. برای اطلاعات" -" بیشتر به بخش :ref:`tut-standardmodules` مراجعه کنید." +"دهند. دایرکتوری حاوی اسکریپتی که اجرا می شود، در ابتدای مسیر جستجو قرار می " +"گیرد، پیش از مسیر کتابخانه استاندارد. این بدین معناست که اسکریپت های موجود " +"در آن دایرکتوری به جای ماژول های هم نام در دایرکتوری کتابخانه بارگذاری می " +"شوند. این یک خطا است مگر اینکه جایگزینی مورد نظر باشد. برای اطلاعات بیشتر به" +" بخش :ref:`tut-standardmodules` مراجعه کنید." #: ../../tutorial/modules.rst:219 #, fuzzy msgid "\"Compiled\" Python files" -msgstr "فایل های پایتون «کامپایل شده»" +msgstr "فایل های پایتون \"کامپایل شده\"" #: ../../tutorial/modules.rst:221 #, fuzzy @@ -553,14 +543,13 @@ msgid "" "allows compiled modules from different releases and different versions of " "Python to coexist." msgstr "" -"برای تسریع در بارگذاری ماژول ها، پایتون نسخه کامپایل شده هر ماژول را در " -"دایرکتوری ````__pycache__```` و تحت نام ``:file:`module.{version}.pyc``` " -"ذخیره می کند. در این نامگذاری، نسخه مشخص می کند که فرمت فایل کامپایل شده چه " -"باشد؛ که معمولاً حاوی شماره نسخه پایتون است. برای مثال، در نسخه «سی پایتون " -"۳.۳» نسخه کامپایل شده فایل ``spam.py`` به صورت " -"````__pycache__/spam.cpython-33.pyc```` ذخیره می شود. این روش نامگذاری امکان" -" هم زیستی ماژول های کامپایل شده از نسخه ها و انتشارهای مختلف پایتون را فراهم" -" می کند." +"برای سرعت بخشیدن به بارگذاری ماژول ها، پایتون نسخه کامپایل شده هر ماژول را " +"در دایرکتوری ``__pycache__``، با نام :file:`module.{version}.pyc` ذخیره می " +"کند که نسخه آن فرمت فایل کامپایل شده را رمزگذاری می کند؛ به طور کلی شامل " +"شماره نسخه پایتون است. به عنوان مثال، در نسخه 3.3 CPython، نسخه کامپایل شده " +"spam.py به صورت ``__pycache__/spam.cpython-33.pyc`` ذخیره می شود. این " +"نامگذاری به ماژول های کامپایل شده از نسخه ها و شماره های مختلف پایتون اجازه " +"می دهد که در کنار هم وجود داشته باشند." #: ../../tutorial/modules.rst:229 #, fuzzy @@ -571,11 +560,11 @@ msgid "" "independent, so the same library can be shared among systems with different " "architectures." msgstr "" -"پایتون تاریخ تغییرات فایل منبع را با نسخه کامپایل شده مقایسه می کند تا ببیند" -" آیا به روزرسانی نشده و نیاز به کامپایل مجدد دارد یا خیر. این فرآیند به طور " -"کامل خودکار است. همچنین، ماژول های کامپایل شده نسبت به پلتفرم مستقل هستند، " -"بنابراین یک کتابخانه می تواند میان سیستم هایی با معماری های متفاوت به اشتراک" -" گذاشته شود." +"پایتون تاریخ تغییر منبع را در مقابل نسخه کامپایل شده بررسی می کند تا ببیند " +"آیا قدیمی است و نیاز به بازکامپایل شدن دارد یا خیر. این یک فرآیند کاملاً " +"خودکار است. همچنین، ماژول های کامپایل شده مستقل از پلتفرم هستند، بنابراین " +"همان کتابخانه می تواند بین سیستم هایی با معماری های متفاوت به اشتراک گذاشته " +"شود." #: ../../tutorial/modules.rst:234 #, fuzzy @@ -587,11 +576,11 @@ msgid "" "distribution, the compiled module must be in the source directory, and there" " must not be a source module." msgstr "" -"پایتون در دو حالت حافظه پنهان را بررسی نمی کند. اول، همیشه مجدداً کامپایل می" -" کند و نتیجه را برای ماژولی که مستقیماً از خط فرمان بارگذاری می شود ذخیره " -"نمی کند. دوم، اگر ماژول منبعی وجود نداشته باشد، حافظه پنهان را بررسی نمی " -"کند. برای پشتیبانی از یک توزیع بدون منبع (فقط کامپایل شده)، ماژول کامپایل " -"شده باید در دایرکتوری منبع باشد و یک ماژول منبع نیز نباید وجود داشته باشد." +"پایتون در دو حالت حافظه پنهان را بررسی نمی کند. اول، همیشه دوباره کامپایل " +"کرده و نتیجه را برای ماژولی که به طور مستقیم از خط فرمان بارگذاری می شود، " +"ذخیره نمی کند. دوم، اگر ماژول منبعی وجود نداشته باشد، حافظه پنهان را بررسی " +"نمی کند. برای پشتیبانی از توزیع بدون منبع (فقط کامپایل شده)، ماژول کامپایل " +"شده باید در دایرکتوری منبع باشد و نباید ماژول منبعی وجود داشته باشد." #: ../../tutorial/modules.rst:241 #, fuzzy @@ -609,14 +598,14 @@ msgid "" "have an ``opt-`` tag and are usually smaller. Future releases may change " "the effects of optimization." msgstr "" -"شما می توانید از سوئیچ های :option:`-O` یا :option:`-OO` در فرمان Python " -"استفاده کنید تا اندازه ی یک ماژول کامپایل شده را کاهش دهید. سوئیچ ``-O`` " -"دستورات assert را حذف می کند و سوئیچ ``-OO`` هم دستورات assert و هم رشته های" -" __doc__ را حذف می کند. از آنجایی که برخی برنامه ها ممکن است نیاز به دسترسی " -"به این موارد داشته باشند، تنها وقتی باید از این گزینه استفاده کنید که می " -"دانید چه کاری انجام می دهید. ماژول های \"بهینه سازی شده\" دارای یک برچسب " -"``opt-`` هستند و معمولاً کوچکتر هستند. نسخه های آینده ممکن است اثرات بهینه " -"سازی را تغییر دهند." +"شما می توانید از سوئیچ های :option:`-O` یا :option:`-OO` در دستور Python " +"استفاده کنید تا حجم یک ماژول کامپایل شده را کاهش دهید. سوئیچ ``-O`` عبارات " +"assert را حذف می کند، سوئیچ ``-OO`` هم عبارات assert و هم رشته های __doc__ " +"را حذف می کند. از آنجایی که برخی برنامه ها ممکن است بر دسترسی به این ها تکیه" +" داشته باشند، باید تنها در صورتی که دقیقاً می دانید چه کاری انجام می دهید از" +" این گزینه استفاده کنید. ماژول های \"بهینه سازی شده\" دارای یک برچسب " +"``opt-`` هستند و معمولاً حجم کمتری دارند. نسخه های آینده ممکن است اثرات " +"بهینه سازی را تغییر دهند." #: ../../tutorial/modules.rst:251 #, fuzzy @@ -625,9 +614,9 @@ msgid "" "when it is read from a ``.py`` file; the only thing that's faster about " "``.pyc`` files is the speed with which they are loaded." msgstr "" -"برنامه زمانی که از یک فایل ``.pyc`` خوانده می شود، سریع تر از زمانی که از یک" -" فایل ``.py`` خوانده می شود اجرا نمی شود؛ تنها چیزی که فایل های ``.pyc`` را " -"سریع تر می کند، سرعت بارگذاری آنها است." +"اجرای یک برنامه زمانی که از فایل ``.pyc`` خوانده می شود، سریع تر از زمانی که" +" از فایل ``.py`` خوانده می شود نیست؛ تنها نکته ای که در مورد فایل های " +"``.pyc`` سریع تر است، سرعت بارگذاری آنهاست." #: ../../tutorial/modules.rst:255 #, fuzzy @@ -635,7 +624,7 @@ msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." msgstr "" -"ماژول :mod:`compileall` می تواند فایل های .pyc را برای تمام ماژول های یک " +"ماژول :mod:`compileall` می تواند فایل های .pyc را برای همه ماژول ها در یک " "دایرکتوری ایجاد کند." #: ../../tutorial/modules.rst:258 @@ -644,7 +633,7 @@ msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in :pep:`3147`." msgstr "" -"جزئیات بیشتری درباره این فرآیند، شامل نمودار جریانی از تصمیمات، در " +"جزئیات بیشتری در مورد این فرآیند، از جمله یک نمودار جریان از تصمیمات، در " ":pep:`3147` وجود دارد." #: ../../tutorial/modules.rst:265 @@ -668,15 +657,15 @@ msgid "" "define the strings used as primary and secondary prompts::" msgstr "" "پایتون با یک کتابخانه از ماژول های استاندارد ارائه می شود که در یک سند " -"جداگانه با عنوان \"مرجع کتابخانه پایتون\" توصیف شده اند. برخی از ماژول ها به" -" طور داخلی در مفسر تعبیه شده اند؛ این ماژول ها به عملیات هایی دسترسی می دهند" -" که جزء هسته زبان نیستند اما به هر حال به دلیل کارایی یا فراهم کردن دسترسی " -"به ابتدائات سیستم عامل مانند درخواست های سیستمی درونی سازی شده اند. مجموعه " -"این ماژول ها یک گزینه تنظیماتی است که همچنین به پلتفرم زیرین بستگی دارد. به " -"عنوان مثال، ماژول :mod:`winreg` تنها بر روی سیستم های ویندوز ارائه می شود. " -"یک ماژول خاص که توجه ویژه ای را می طلبد، :mod:`sys` است که در هر مفسر پایتون" -" تعبیه شده است. متغیرهای ``sys.ps1`` و ``sys.ps2`` رشته هایی را تعریف می " -"کنند که به عنوان درخواست های اولیه و ثانویه استفاده می شوند." +"جداگانه به نام مرجع کتابخانه پایتون (\"مرجع کتابخانه\" از این پس) توصیف شده " +"است. برخی از ماژول ها در مفسر ساخته شده اند؛ این ماژول ها امکان دسترسی به " +"عملیاتی را فراهم می کنند که بخشی از هسته زبان نیستند، اما به هر حال به دلایل" +" کارایی یا جهت دسترسی به ابزارهای اولیه سیستم عامل مانند فراخوانی های سیستمی" +" ساخته شده اند. مجموعه این ماژول ها یک گزینه پیکربندی است که همچنین به پلت " +"فرم زیربنایی بستگی دارد. برای مثال، ماژول :mod:`winreg` تنها در سیستم های " +"ویندوز ارائه می شود. یک ماژول خاص نیاز به توجه دارد: :mod:`sys`، که در هر " +"مفسر پایتون ساخته شده است. متغیرهای ``sys.ps1`` و ``sys.ps2`` رشته هایی که " +"به عنوان پرامپت اولیه و ثانویه مورد استفاده قرار می گیرند را تعریف می کنند::" #: ../../tutorial/modules.rst:281 #, fuzzy @@ -691,7 +680,6 @@ msgid "" "Yuck!\n" "C>" msgstr "" -"```\n" ">>> import sys\n" ">>> sys.ps1\n" "'>>> '\n" @@ -700,16 +688,14 @@ msgstr "" ">>> sys.ps1 = 'C> '\n" "C> print('Yuck!')\n" "Yuck!\n" -"C>\n" -"```" +"C>" #: ../../tutorial/modules.rst:292 #, fuzzy msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." -msgstr "" -"این دو متغیر تنها در شرایطی تعریف می شوند که مفسر در حالت تعاملی باشد." +msgstr "این دو متغیر تنها زمانی تعریف می شوند که مفسر در حالت تعاملی باشد." #: ../../tutorial/modules.rst:294 #, fuzzy @@ -720,11 +706,11 @@ msgid "" " default if :envvar:`PYTHONPATH` is not set. You can modify it using " "standard list operations::" msgstr "" -"متغیر ``sys.path`` یک لیست از رشته ها است که مسیر جستجوی مفسر برای ماژول ها " -"را تعیین می کند. این متغیر به یک مسیر پیش فرض که از متغیر محیطی " -":envvar:`PYTHONPATH` گرفته شده است، مقداردهی اولیه می شود، یا اگر " -":envvar:`PYTHONPATH` تنظیم نشده باشد، از یک مقدار پیش فرض داخلی استفاده می " -"شود. شما می توانید با استفاده از عملیات لیست استاندارد آن را تغییر دهید::" +"متغیر ``sys.path`` یک لیستی از رشته ها است که مسیر جستجوی مفسر برای ماژول ها" +" را تعیین می کند. این متغیر به یک مسیر پیش فرض که از متغیر محیطی " +":envvar:`PYTHONPATH` گرفته شده است، یا اگر :envvar:`PYTHONPATH` تنظیم نشده " +"باشد، از یک مقدار پیش فرض داخلی، مقداردهی اولیه می شود. شما می توانید با " +"استفاده از عملیات استاندارد لیست آن را تغییر دهید::" #: ../../tutorial/modules.rst:300 #, fuzzy @@ -732,7 +718,7 @@ msgid "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" msgstr "" -">>> import sys \n" +">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" #: ../../tutorial/modules.rst:307 @@ -746,8 +732,8 @@ msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" msgstr "" -"تابع داخلی :func:`dir` برای پیدا کردن نام هایی که یک ماژول تعریف می کند، " -"استفاده می شود. این تابع یک لیست مرتب از رشته ها را برمی گرداند::" +"تابع داخلی :func:`dir` برای پیدا کردن نام هایی که یک ماژول تعریف می کند " +"استفاده می شود. این تابع یک لیست مرتب شده از رشته ها را برمی گرداند::" #: ../../tutorial/modules.rst:312 #, fuzzy @@ -778,26 +764,39 @@ msgid "" " 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info',\n" " 'warnoptions']" msgstr "" -"```\n" ">>> import fibo, sys\n" ">>> dir(fibo)\n" "['__name__', 'fib', 'fib2']\n" -"```\n" -"خروجی `dir(fibo)` لیستی از اسامی موجود در فضای نام ماژول `fibo` را نمایش می دهد. در اینجا توابع و متغیرهای تعریف شده در ماژول را مشاهده می کنیم.\n" -"\n" -"```\n" ">>> dir(sys)\n" -"['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework', '_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix', 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth', 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pycache_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 'warnoptions']\n" -"```\n" -"خروجی `dir(sys)` لیستی از اسامی موجود در فضای نام ماژول `sys` را نمایش می دهد که شامل توابع و متغیرهای زیادی است که برای مدیریت سیستم و فضای اجرایی در کار با پایتون استفاده می شود." +"['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__',\n" +" '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__',\n" +" '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__',\n" +" '_clear_type_cache', '_current_frames', '_debugmallocstats', '_framework',\n" +" '_getframe', '_git', '_home', '_xoptions', 'abiflags', 'addaudithook',\n" +" 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix',\n" +" 'breakpointhook', 'builtin_module_names', 'byteorder', 'call_tracing',\n" +" 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_info',\n" +" 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info',\n" +" 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_origin_tracking_depth',\n" +" 'getallocatedblocks', 'getdefaultencoding', 'getdlopenflags',\n" +" 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile',\n" +" 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval',\n" +" 'gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info',\n" +" 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value',\n" +" 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks',\n" +" 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'pycache_prefix',\n" +" 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setdlopenflags',\n" +" 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr',\n" +" 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info',\n" +" 'warnoptions']" #: ../../tutorial/modules.rst:338 #, fuzzy msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "" -"بدون آرگومان ها، :func:`dir` نام هایی که شما در حال حاضر تعریف کرده اید را " -"نمایش می دهد::" +"بدون آرگومان، :func:`dir` نام هایی را که در حال حاضر تعریف کرده اید لیست می " +"کند::" #: ../../tutorial/modules.rst:340 #, fuzzy @@ -819,8 +818,8 @@ msgstr "" msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" -"توجه داشته باشید که تمام انواع نام ها را فهرست می کند: متغیرها، ماژول ها، " -"توابع و غیره." +"توجه داشته باشید که شامل همه انواع نام ها می شود: متغیرها، ماژول ها، توابع، " +"و غیره." #: ../../tutorial/modules.rst:350 #, fuzzy @@ -829,8 +828,8 @@ msgid "" " you want a list of those, they are defined in the standard module " ":mod:`builtins`::" msgstr "" -"`:func:`dir`` نام توابع و متغیرهای داخلی را لیست نمی کند. اگر لیستی از آنها " -"می خواهید، آنها در ماژول استاندارد `:mod:`builtins`` تعریف شده اند::" +":func:`dir` نام توابع و متغیرهای داخلی را فهرست نمی کند. اگر به دنبال فهرستی" +" از آن ها هستید، آن ها در ماژول استاندارد :mod:`builtins` تعریف شده اند::" #: ../../tutorial/modules.rst:354 #, fuzzy @@ -902,7 +901,7 @@ msgstr "" #: ../../tutorial/modules.rst:389 #, fuzzy msgid "Packages" -msgstr "پکیج ها" +msgstr "بسته ها" #: ../../tutorial/modules.rst:391 #, fuzzy @@ -915,13 +914,13 @@ msgid "" "saves the authors of multi-module packages like NumPy or Pillow from having " "to worry about each other's module names." msgstr "" -"پکیج ها روشی برای ساختاردهی فضای نام ماژول های پایتون با استفاده از \"نام " -"های ماژول نقطه دار\" هستند. برای مثال، نام ماژول :mod:`!A.B` زیرماژولی به " -"نام ``B`` را در یک پکیج به نام ``A`` معرفی می کند. همان طور که استفاده از " -"ماژول ها نویسندگان ماژول های مختلف را از نگران بودن درباره نام متغیرهای " -"سراسری یکدیگر نجات می دهد، استفاده از نام های ماژول نقطه دار هم نویسندگان " -"پکیج های چندماژولی مانند NumPy یا Pillow را از نگران بودن درباره نام های " -"ماژول یکدیگر نجات می دهد." +"پکیج ها روشی برای ساختاربندی فضای نام ماژول های پایتون با استفاده از \"نام " +"های ماژول نقطه گذاری شده\" هستند. به عنوان مثال، نام ماژول :mod:`!A.B` یک " +"زیرماژول به نام ``B`` را در یک پکیج به نام ``A`` تعیین می کند. درست مانند " +"استفاده از ماژول ها که نویسندگان ماژول های مختلف را از نگرانی درباره نام های" +" متغیر جهانی یکدیگر بی نیاز می کند، استفاده از نام های ماژول نقطه گذاری شده " +"نویسندگان پکیج های چند ماژولی مثل NumPy یا Pillow را از نگرانی درباره نام " +"های ماژول یکدیگر بی نیاز می کند." #: ../../tutorial/modules.rst:399 #, fuzzy @@ -938,16 +937,17 @@ msgid "" "operations. Here's a possible structure for your package (expressed in " "terms of a hierarchical filesystem):" msgstr "" -"فرض کنید می خواهید مجموعه ای از ماژول ها (یک \"بسته\") جهت مدیریت یکنواخت " -"فایل های صوتی و داده های صوتی طراحی کنید. فرمت های مختلفی از فایل های صوتی " -"وجود دارد (که معمولاً با پسوند آنها شناخته می شوند، برای مثال: :file:`.wav`،" -" :file:`.aiff`، :file:`.au`) بنابراین ممکن است نیاز باشد به مجموعه ای در حال" -" رشد از ماژول ها برای تبدیل بین فرمت های مختلف فایل ایجاد و نگهداری کنید. " -"همچنین عملیات مختلف زیادی وجود دارد که ممکن است بخواهید روی داده های صوتی " -"انجام دهید (مانند میکس کردن، افزودن اکو، اعمال یک تابع اکولایزر، ایجاد یک " -"اثر استریوی مصنوعی) بنابراین علاوه بر آن شما یک جریان بی پایان از ماژول ها " -"برای انجام این عملیات خواهید نوشت. در اینجا یک ساختار ممکن برای بسته شما " -"آورده شده است (به صورت یک سیستم فایل سلسله مراتبی بیان شده است):" +"فرض کنید می خواهید مجموعه ای از ماژول ها (یک \"پکیج\") برای مدیریت یکپارچه " +"فایل های صوتی و داده های صوتی طراحی کنید. انواع مختلفی از فرمت های فایل صوتی" +" وجود دارد (که معمولاً با پسوندشان شناخته می شوند، برای مثال: :file:`.wav`، " +":file:`.aiff`، :file:`.au`)، بنابراین ممکن است نیاز داشته باشید مجموعه ای رو" +" به رشد از ماژول ها برای تبدیل بین فرمت های مختلف فایل ها ایجاد و نگهداری " +"کنید. همچنین عملیات متنوعی وجود دارد که ممکن است بخواهید بر روی داده های " +"صوتی انجام دهید (مانند میکس، افزوده های اکو، اعمال یک تابع اکولایزر، ایجاد " +"یک افکت استریو مصنوعی)، بنابراین علاوه بر این، شما در حال نوشتن جریان پایان " +"ناپذیری از ماژول ها برای انجام این عملیات خواهید بود. اینجا ساختاری ممکن " +"برای پکیج شما آورده شده است (که بر اساس یک سیستم فایل سلسله مراتبی بیان شده " +"است):" #: ../../tutorial/modules.rst:410 #, fuzzy @@ -976,9 +976,9 @@ msgid "" " karaoke.py\n" " ..." msgstr "" -"صدا/ بسته سطح بالا\n" -" __init__.py مقداردهی اولیه بسته صدا\n" -" قالب ها/ زیرمجموعه ای برای تبدیل فرمت فایل ها \n" +"sound/ بسته سطح بالا\n" +" __init__.py مقداردهی اولیه بسته sound\n" +" formats/ زیر بسته برای تبدیل فرمت فایل ها\n" " __init__.py\n" " wavread.py\n" " wavwrite.py\n" @@ -987,13 +987,13 @@ msgstr "" " auread.py\n" " auwrite.py\n" " ...\n" -" افکت ها/ زیرمجموعه ای برای افکت های صوتی\n" +" effects/ زیر بسته برای افکت های صوتی\n" " __init__.py\n" " echo.py\n" " surround.py\n" " reverse.py\n" " ...\n" -" فیلترها/ زیرمجموعه ای برای فیلترها\n" +" filters/ زیر بسته برای فیلترها\n" " __init__.py\n" " equalizer.py\n" " vocoder.py\n" @@ -1006,8 +1006,8 @@ msgid "" "When importing the package, Python searches through the directories on " "``sys.path`` looking for the package subdirectory." msgstr "" -"هنگام وارد کردن بسته، پایتون در دایرکتوری های موجود در ``sys.path`` جستجو می" -" کند تا زیرشاخه بسته را پیدا کند." +"زمانی که بسته وارد می شود، پایتون در دایرکتوری های موجود در ``sys.path`` " +"جستجو می کند تا زیردایرکتوری بسته را پیدا کند." #: ../../tutorial/modules.rst:439 #, fuzzy @@ -1020,14 +1020,14 @@ msgid "" "can just be an empty file, but it can also execute initialization code for " "the package or set the ``__all__`` variable, described later." msgstr "" -"فایل های :file:`__init__.py` برای این لازم هستند که پایتون دایرکتوری هایی که" -" حاوی این فایل هستند را به عنوان بسته ها شناسایی کند (مگر اینکه از " -":term:`namespace package` استفاده کنید، که یک ویژگی نسبتاً پیشرفته است). این" -" کار از این جلوگیری می کند که دایرکتوری هایی با نام های مشابه، مانند " -"``string``، به طور ناخواسته ماژول های معتبری که در مسیر جستجوی ماژول بعداً " -"یافت می شوند را پنهان کنند. در ساده ترین حالت، :file:`__init__.py` می تواند " -"فقط یک فایل خالی باشد، اما همچنین می تواند کدهای اولیه سازی برای بسته را " -"اجرا کند یا متغیر ``__all__`` را تنظیم کند که بعداً توضیح داده می شود." +"پرونده های :file:`__init__.py` برای این لازم است که پایتون دایرکتوری هایی که" +" این فایل را دارند به عنوان بسته شناخته کند (مگر آنکه از یک :term:`namespace" +" package` استفاده شود، که ویژگی نسبتاً پیشرفته ای است). این کار از مخفی شدن " +"ناخواستهٔ ماژول های معتبر توسط دایرکتوری های دارای نام های رایج، مانند " +"``string``، در مسیر جستجوی ماژول جلوگیری می کند. در ساده ترین حالت، " +":file:`__init__.py` می تواند فقط یک فایل خالی باشد، اما همچنین می تواند کد " +"اولیه سازی برای بسته را اجرا کرده یا متغیر ``__all__`` را که بعداً توضیح " +"داده خواهد شد ست کند." #: ../../tutorial/modules.rst:447 #, fuzzy @@ -1035,18 +1035,13 @@ msgid "" "Users of the package can import individual modules from the package, for " "example::" msgstr "" -"کاربران بسته می توانند ماژول های جداگانه را از بسته وارد (import) کنند، به " -"عنوان مثال:" +"کاربران بسته می توانند به صورت جداگانه ماژول های مختلف را از بسته وارد کنند،" +" به عنوان مثال::" #: ../../tutorial/modules.rst:450 #, fuzzy msgid "import sound.effects.echo" -msgstr "" -"```python\n" -"import sound.effects.echo\n" -"``` \n" -"\n" -"این دستور برای وارد کردن ماژول ``echo`` از بسته ``sound.effects`` استفاده می شود." +msgstr "ماژول موجود در پایتون `sound.effects.echo` را وارد می کند." #: ../../tutorial/modules.rst:452 #, fuzzy @@ -1054,28 +1049,23 @@ msgid "" "This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" msgstr "" -"این زیربخش :mod:`!sound.effects.echo` را بارگذاری می کند. باید با نام کامل " -"آن ارجاع داده شود. ::" +"این زیرماژول :mod:`!sound.effects.echo` را بارگذاری می کند. باید با نام کامل" +" به آن ارجاع داده شود. ::" #: ../../tutorial/modules.rst:455 #, fuzzy msgid "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" -msgstr "" -"تابع `sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)` یک " -"فیلتر اکوی ساده را بین فایل ورودی و فایل خروجی اعمال می کند. این تابع " -"دارای پارامترهایی است که شامل `input` (فایل ورودی)، `output` (فایل خروجی)، " -"`delay` (تاخیر، به صورت پیش فرض ۰.۷ ثانیه) و `atten` (تضعیف، به صورت پیش فرض" -" ۴) می باشد." +msgstr "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" #: ../../tutorial/modules.rst:457 #, fuzzy msgid "An alternative way of importing the submodule is::" -msgstr "راه دیگر برای وارد کردن زیرماژول این است::" +msgstr "راه دیگری برای وارد کردن زیرماژول وجود دارد::" #: ../../tutorial/modules.rst:459 #, fuzzy msgid "from sound.effects import echo" -msgstr "از ماژول `sound.effects` زیرماژول `echo` را وارد کنید." +msgstr "از sound.effects ایمپورت echo" #: ../../tutorial/modules.rst:461 #, fuzzy @@ -1083,27 +1073,32 @@ msgid "" "This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" msgstr "" -"این همچنین زیرماژول :mod:`!echo` را بارگذاری می کند و آن را بدون پیشوند پکیج" -" در دسترس قرار می دهد، به طوری که می توان به شکل زیر از آن استفاده کرد::" +"این همچنین زیر ماژول :mod:`!echo` را بارگذاری می کند و بدون پیشوند بسته، آن " +"را در دسترس قرار می دهد، بنابراین می توان به صورت زیر از آن استفاده کرد::" #: ../../tutorial/modules.rst:464 #, fuzzy msgid "echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "" -"فیلتر ``echo`` بر روی ورودی ``input`` و خروجی ``output`` اعمال می شود، با " -"تأخیر ``delay`` برابر 0.7 و کاهش قدرت ``atten`` برابر 4." +"تابع `echo.echofilter` یک فیلتر اکو بر روی فایل صوتی ورودی اعمال می کند و فایل خروجی جدیدی تولید می کند. پارامترها به شرح زیر هستند:\n" +"\n" +"- `input`: فایل صوتی ورودی که باید پردازش شود.\n" +"- `output`: محل ذخیره صدای خروجی پردازش شده.\n" +"- `delay`: مدت زمان تاخیر پژواک در ثانیه ها (مقدار پیش فرض 0.7 است).\n" +"- `atten`: میزان کاهش شدت پژواک به صورت عددی (مقدار پیش فرض 4 است)." #: ../../tutorial/modules.rst:466 #, fuzzy msgid "" "Yet another variation is to import the desired function or variable " "directly::" -msgstr "یکی دیگر از روش ها وارد کردن مستقیم تابع یا متغیر مورد نظر است::" +msgstr "" +"یک تغییر دیگر این است که تابع یا متغیر مورد نظر را به طور مستقیم وارد کنید::" #: ../../tutorial/modules.rst:468 #, fuzzy msgid "from sound.effects.echo import echofilter" -msgstr "از `echofilter` در `sound.effects.echo` وارد کنید." +msgstr "از ماژول `sound.effects.echo`، تابع `echofilter` را وارد کنید." #: ../../tutorial/modules.rst:470 #, fuzzy @@ -1111,13 +1106,13 @@ msgid "" "Again, this loads the submodule :mod:`!echo`, but this makes its function " ":func:`!echofilter` directly available::" msgstr "" -"باز هم، این زیرماژول :mod:`!echo` را بارگذاری می کند، اما این باعث می شود که" -" تابع :func:`!echofilter` به صورت مستقیم قابل دسترسی باشد::" +"باز هم این زیرماژول :mod:`!echo` را بارگذاری می کند، اما با این کار تابع آن " +":func:`!echofilter` به طور مستقیم در دسترس قرار می گیرد::" #: ../../tutorial/modules.rst:473 #, fuzzy msgid "echofilter(input, output, delay=0.7, atten=4)" -msgstr "`echofilter(input, output, delay=0.7, atten=4)`" +msgstr "اکوفیلتر(ورودی، خروجی، تأخیر=0.7، تضعیف=4)" #: ../../tutorial/modules.rst:475 #, fuzzy @@ -1129,11 +1124,11 @@ msgid "" "it is a module and attempts to load it. If it fails to find it, an " ":exc:`ImportError` exception is raised." msgstr "" -"توجه داشته باشید که هنگام استفاده از ``from package import item``، مورد می " -"تواند یا یک زیرماژول (یا زیرپکیج) از پکیج باشد یا نام دیگری که در پکیج تعریف" -" شده است، مانند تابع، کلاس یا متغیر. دستور ``import`` ابتدا بررسی می کند که " -"آیا مورد در پکیج تعریف شده است یا خیر؛ اگر نه، فرض می شود که یک ماژول است و " -"تلاش می کند تا آن را بارگذاری کند. اگر نتواند آن را پیدا کند، یک استثنای " +"توجه داشته باشید که هنگام استفاده از ``from package import item``، آیتم می " +"تواند یا یک زیرماژول (یا زیرپکیج) از پکیج باشد یا یک نام دیگر تعریف شده در " +"پکیج، مانند یک تابع، کلاس یا متغیر. دستور ``import`` ابتدا بررسی می کند که " +"آیا آیتم در پکیج تعریف شده است یا خیر؛ اگر نه، فرض می کند که یک ماژول است و " +"تلاش می کند آن را بارگیری کند. اگر موفق به پیدا کردن آن نشود، یک استثنای " ":exc:`ImportError` ایجاد می شود." #: ../../tutorial/modules.rst:482 @@ -1144,15 +1139,15 @@ msgid "" " a package but can't be a class or function or variable defined in the " "previous item." msgstr "" -"در مقابل، هنگامی که از سینتکسی مانند ``import item.subitem.subsubitem`` " -"استفاده می کنید، هر آیتم به جز آیتم آخر باید یک پکیج باشد؛ آیتم آخر می تواند" -" یک ماژول یا پکیج باشد اما نمی تواند یک کلاس، تابع یا متغیری که در آیتم قبلی" -" تعریف شده، باشد." +"برعکس، زمانی که از سینتاکسی مانند ``import item.subitem.subsubitem`` استفاده" +" می کنید، هر آیتم به جز آخری باید یک پکیج باشد؛ آیتم آخر می تواند ماژول یا " +"پکیج باشد اما نمی تواند یک کلاس یا تابع یا متغیر تعریف شده در آیتم قبلی " +"باشد." #: ../../tutorial/modules.rst:491 #, fuzzy msgid "Importing \\* From a Package" -msgstr "وارد کردن \\* از یک بسته نرم افزاری" +msgstr "وارد کردن \\* از یک بسته" #: ../../tutorial/modules.rst:495 #, fuzzy @@ -1163,12 +1158,12 @@ msgid "" "could take a long time and importing sub-modules might have unwanted side-" "effects that should only happen when the sub-module is explicitly imported." msgstr "" -"حال چه اتفاقی می افتد وقتی که کاربر \"``from sound.effects import *``\" را " -"می نویسد؟ در حالت ایده آل، امیدواریم که به نوعی این درخواست به فایل سیستم " -"منتقل شود، بررسی کند که کدام زیرماژول ها در بسته وجود دارند و همه آن ها را " -"وارد کند. این ممکن است زمان زیادی ببرد و وارد کردن زیرماژول ها ممکن است " -"عوارض جانبی ناخواسته ای داشته باشد که باید فقط زمانی رخ دهند که زیرماژول به " -"طور صریح وارد شود." +"حال وقتی کاربر ``from sound.effects import *`` را می نویسد، چه اتفاقی می " +"افتد؟ به طور ایده آل، انتظار می رود که این دستور به نوعی به سیستم فایل برود،" +" زیرماژول های موجود در بسته را پیدا کند و همه آن ها را وارد کند. این فرآیند " +"ممکن است مدت زیادی طول بکشد و وارد کردن زیرماژول ها می تواند اثرات جانبی " +"ناخواسته ای داشته باشد که تنها باید زمانی که زیرماژول به طور مشخص وارد شده " +"است، رخ دهند." #: ../../tutorial/modules.rst:501 #, fuzzy @@ -1183,22 +1178,20 @@ msgid "" "for importing \\* from their package. For example, the file " ":file:`sound/effects/__init__.py` could contain the following code::" msgstr "" -"تنها راه حل این است که نویسنده بسته فهرست صریحی از بسته ارائه دهد. عبارت " -":keyword:`import` از قرارداد زیر استفاده می کند: اگر کد :file:`__init__.py` " -"یک بسته لیستی به نام ``__all__`` تعریف کند، آن لیست به عنوان لیستی از نام " -"ماژول هایی که باید هنگام ورود ``from package import *`` وارد شوند، در نظر " -"گرفته می شود. به نویسنده بسته بستگی دارد که این لیست را هنگام انتشار نسخه " -"جدیدی از بسته به روز نگه دارد. نویسندگان بسته ممکن است تصمیم بگیرند که از آن" -" پشتیبانی نکنند، اگر نیازی به وارد کردن \\* از بسته خود نمی بینند. به عنوان " -"مثال، فایل :file:`sound/effects/__init__.py` می تواند حاوی کد زیر باشد::" +"تنها راه حل این است که نویسنده بسته، یک فهرست صریح از بسته ارائه دهد. دستور " +":keyword:`import` از این قرارداد استفاده می کند: اگر کد :file:`__init__.py` " +"یک بسته، لیستی به نام ``__all__`` تعریف کند، فرض بر این است که این لیست شامل" +" نام ماژول هایی است که باید هنگام مواجه شدن با ``from package import *`` " +"وارد شوند. بر عهده نویسنده بسته است که این لیست را به روز نگه دارد وقتی یک " +"نسخه جدید از بسته منتشر می شود. نویسندگان بسته ممکن است تصمیم بگیرند که از " +"این قابلیت پشتیبانی نکنند، اگر نیازی به وارد کردن \\* از بسته خودشان نبینند." +" به عنوان مثال، فایل :file:`sound/effects/__init__.py` می تواند کد زیر را " +"شامل شود::" #: ../../tutorial/modules.rst:511 #, fuzzy msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]" -msgstr "" -"```python\n" -"__all__ = [\"echo\", \"surround\", \"reverse\"]\n" -"```" +msgstr "__all__ = [\"echo\", \"surround\", \"reverse\"]" #: ../../tutorial/modules.rst:513 #, fuzzy @@ -1206,8 +1199,8 @@ msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`!sound.effects` package." msgstr "" -"این به این معنی است که ``from sound.effects import *`` سه زیرماژول نام برده " -"از بسته :mod:`!sound.effects` را وارد می کند." +"این به این معنا خواهد بود که ``from sound.effects import *`` سه زیرماژول نام" +" گذاری شده از بسته :mod:`!sound.effects` را وارد می کند." #: ../../tutorial/modules.rst:516 #, fuzzy @@ -1219,12 +1212,12 @@ msgid "" "the ``reverse`` submodule, because it is shadowed by the locally defined " "``reverse`` function::" msgstr "" -"توجه داشته باشید که زیرماژول ها ممکن است توسط نام های تعریف شده ی محلی تحت " -"الشعاع قرار گیرند. برای مثال، اگر یک تابع ``reverse`` به فایل " -":file:`sound/effects/__init__.py` اضافه کنید، ``from sound.effects import " -"*`` تنها دو زیرماژول ``echo`` و ``surround`` را وارد می کند، اما *not* " -"زیرماژول ``reverse`` را وارد نمی کند، چون تابع محلی تعریف شده ی ``reverse`` " -"آن را تحت الشعاع قرار داده است." +"توجه داشته باشید که ممکن است زیرمدول ها توسط نام هایی که به صورت محلی تعریف " +"شده اند، تحت الشعاع قرار بگیرند. به عنوان مثال، اگر شما یک تابع ``reverse`` " +"به فایل :file:`sound/effects/__init__.py` اضافه کنید، ``from sound.effects " +"import *`` تنها دو زیرمدول ``echo`` و ``surround`` را وارد می کند، اما *not*" +" زیرمدول ``reverse`` را نمی آورد، زیرا با تابع ``reverse`` که به صورت محلی " +"تعریف شده، تحت الشعاع قرار گرفته است::" #: ../../tutorial/modules.rst:523 #, fuzzy @@ -1238,16 +1231,14 @@ msgid "" "def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n" " return msg[::-1] # in the case of a 'from sound.effects import *'" msgstr "" -"```python\n" "__all__ = [\n" " \"echo\", # به فایل 'echo.py' اشاره دارد\n" " \"surround\", # به فایل 'surround.py' اشاره دارد\n" " \"reverse\", # !!! اکنون به تابع 'reverse' اشاره دارد !!!\n" "]\n" "\n" -"def reverse(msg: str): # <-- این نام زیر ماژول 'reverse.py' را سایه می اندازد\n" -" return msg[::-1] # در صورت استفاده از 'from sound.effects import *'\n" -"```" +"def reverse(msg: str): # <-- این نام زیرماژول 'reverse.py' را تحت الشعاع قرار می دهد\n" +" return msg[::-1] # در صورت استفاده از 'from sound.effects import *'" #: ../../tutorial/modules.rst:532 #, fuzzy @@ -1262,15 +1253,15 @@ msgid "" "package that were explicitly loaded by previous :keyword:`import` " "statements. Consider this code::" msgstr "" -"اگر ``__all__`` تعریف نشده باشد، عبارت ``from sound.effects import *`` " -"عملیات *not* وارد کردن تمام زیرماژول ها از بسته ی :mod:`!sound.effects` به " -"فضای نام فعلی را انجام نمی دهد؛ بلکه فقط اطمینان حاصل می کند که بسته ی " -":mod:`!sound.effects` وارد شده است (احتمالاً با اجرای هر کد اولیه ای در " -":file:`__init__.py`) و سپس هر نامی که در بسته تعریف شده باشد را وارد می کند." -" این شامل هر نامی که توسط :file:`__init__.py` تعریف شده (و زیرماژول هایی که " -"به طور صریح بارگذاری شده اند) می شود. این همچنین شامل هر زیرماژول از بسته که" -" به طور صریح توسط عبارات :keyword:`import` قبلی بارگذاری شده اند، می باشد. " -"این کد را در نظر بگیرید::" +"اگر ``__all__`` تعریف نشده باشد، عبارت ``from sound.effects import *`` به " +"*not* تمام زیرماژول ها را از پکیج :mod:`!sound.effects` به فضای نام فعلی " +"وارد نمی کند؛ بلکه فقط اطمینان حاصل می کند که پکیج :mod:`!sound.effects` " +"وارد شده است (ممکن است هر کد ابتدایی را در :file:`__init__.py` اجرا کند) و " +"سپس هر نامی که در پکیج تعریف شده است را وارد می کند. این شامل هر نامی که " +"توسط :file:`__init__.py` تعریف شده (و زیرماژول هایی که به طور خاص بارگذاری " +"شده اند) است. همچنین شامل هر زیرماژولی از پکیج که به طور خاص توسط عبارات " +"قبلی :keyword:`import` بارگذاری شده است، نیز می شود. این کد را در نظر " +"بگیرید::" #: ../../tutorial/modules.rst:541 #, fuzzy @@ -1279,11 +1270,9 @@ msgid "" "import sound.effects.surround\n" "from sound.effects import *" msgstr "" -"```python\n" "import sound.effects.echo\n" "import sound.effects.surround\n" -"from sound.effects import *\n" -"```" +"from sound.effects import *" #: ../../tutorial/modules.rst:545 #, fuzzy @@ -1294,9 +1283,9 @@ msgid "" "executed. (This also works when ``__all__`` is defined.)" msgstr "" "در این مثال، ماژول های :mod:`!echo` و :mod:`!surround` در فضای نام فعلی وارد" -" می شوند زیرا آنها در بسته :mod:`!sound.effects` تعریف شده اند، زمانی که " -"دستور ``from...import`` اجرا می شود. (این همچنین زمانی که ``__all__`` تعریف " -"شده است، کار می کند.)" +" می شوند زیرا آنها در بسته :mod:`!sound.effects` تعریف شده اند زمانی که " +"دستور ``from...import`` اجرا می شود. (این کار همچنین زمانی که ``__all__`` " +"تعریف شده باشد کار می کند.)" #: ../../tutorial/modules.rst:550 #, fuzzy @@ -1305,10 +1294,9 @@ msgid "" "certain patterns when you use ``import *``, it is still considered bad " "practice in production code." msgstr "" -"اگرچه برخی از ماژول ها به گونه ای طراحی شده اند که تنها نام هایی که از " -"الگوهای خاصی پیروی می کنند را وقتی که از ``import *`` استفاده می کنید، صادر " -"کنند، اما همچنان در کدهای تولیدی این کار به عنوان یک عمل نادرست شناخته می " -"شود." +"اگرچه بعضی از ماژول ها طراحی شده اند تا فقط نام هایی را که از الگوهای خاصی " +"پیروی می کنند وقتی که از ``import *`` استفاده می کنید صادر کنند، اما استفاده" +" از این روش در کد تولیدی همچنان به عنوان یک عمل نامناسب در نظر گرفته می شود." #: ../../tutorial/modules.rst:554 #, fuzzy @@ -1319,8 +1307,9 @@ msgid "" "packages." msgstr "" "به خاطر داشته باشید که استفاده از ``from package import specific_submodule``" -" هیچ اشکالی ندارد! در واقع، این نگارش پیشنهادی است مگر اینکه ماژول واردکننده" -" نیاز داشته باشد از زیرماژول های با نام مشابه از بسته های مختلف استفاده کند." +" هیچ ایرادی ندارد! در واقع، این نشانه گذاری توصیه می شود مگر اینکه ماژول " +"وارداتی نیاز به استفاده از زیرماژول هایی با همان نام از بسته های مختلف داشته" +" باشد." #: ../../tutorial/modules.rst:563 #, fuzzy @@ -1337,9 +1326,9 @@ msgid "" ":mod:`!sound.effects` package, it can use ``from sound.effects import " "echo``." msgstr "" -"وقتی بسته ها به زیرمجموعه ها سازماندهی می شوند (مانند بسته :mod:`!sound` در " -"مثال)، می توانید از واردات مطلق برای ارجاع به زیرماژول های بسته های خواهر " -"استفاده کنید. برای مثال، اگر ماژول :mod:`!sound.filters.vocoder` نیاز به " +"وقتی بسته ها به زیر بسته ها سازماندهی می شوند (مانند بسته :mod:`!sound` در " +"مثال)، می توانید از واردات مطلق برای ارجاع به زیرماژول های بسته های همان سطح" +" استفاده کنید. برای مثال، اگر ماژول :mod:`!sound.filters.vocoder` نیاز به " "استفاده از ماژول :mod:`!echo` در بسته :mod:`!sound.effects` داشته باشد، می " "تواند از ``from sound.effects import echo`` استفاده کند." @@ -1351,10 +1340,10 @@ msgid "" "current and parent packages involved in the relative import. From the " ":mod:`!surround` module for example, you might use::" msgstr "" -"شما همچنین می توانید از ایمپورت های نسبی، با قالب ``from module import " -"name`` از دستور import، استفاده کنید. این ایمپورت ها از نقطه های ابتدایی " -"برای نشان دادن پکیج های فعلی و والد مرتبط با ایمپورت نسبی استفاده می کنند. " -"به عنوان مثال، از ماژول :mod:`!surround` شما ممکن است استفاده کنید::" +"شما همچنین می توانید از relative imports استفاده کنید، با فرم ``from module " +"import name`` از عبارت import. این ایمپورت ها از نقطه های ابتدایی برای مشخص " +"کردن بسته های جاری و والد در ایمپورت نسبی استفاده می کنند. برای مثال، از " +"ماژول :mod:`!surround`، ممکن است استفاده کنید::" #: ../../tutorial/modules.rst:576 #, fuzzy @@ -1363,9 +1352,9 @@ msgid "" "from .. import formats\n" "from ..filters import equalizer" msgstr "" -"از `. ` ماژول `echo` را وارد کن\n" -"از `.. ` ماژول `formats` را وارد کن\n" -"از `..filters ` ماژول `equalizer` را وارد کن" +"از . وارد کردن echo \n" +"از .. وارد کردن formats \n" +"از ..filters وارد کردن equalizer " #: ../../tutorial/modules.rst:580 #, fuzzy @@ -1375,10 +1364,10 @@ msgid "" "intended for use as the main module of a Python application must always use " "absolute imports." msgstr "" -"توجه داشته باشید که ایمپورت های نسبی بر اساس نام ماژول فعلی انجام می شوند. " -"از آن جا که نام ماژول اصلی همیشه ``\"__main__\"`` است، ماژول هایی که به " -"عنوان ماژول اصلی یک برنامه پایتون استفاده می شوند باید همیشه از ایمپورت های " -"مطلق استفاده کنند." +"توجه داشته باشید که واردات نسبی بر اساس نام ماژول فعلی است. از آنجا که نام " +"ماژول اصلی همیشه ``\"__main__\"`` است، ماژول هایی که برای استفاده به عنوان " +"ماژول اصلی یک برنامه کاربردی Python در نظر گرفته شده اند، باید همیشه از " +"واردات مطلق استفاده کنند." #: ../../tutorial/modules.rst:586 #, fuzzy @@ -1394,11 +1383,11 @@ msgid "" "that file is executed. This variable can be modified; doing so affects " "future searches for modules and subpackages contained in the package." msgstr "" -"بسته ها از یک ویژگی ویژه ی دیگر به نام :attr:`~module.__path__` پشتیبانی می " -"کنند. این ویژگی به عنوان یک :term:`sequence` از رشته هایی که نام دایرکتوری " -"حاوی :file:`__init__.py` بسته را دارند، قبل از اجرای کد در آن فایل مقداردهی " -"اولیه می شود. این متغیر قابل تغییر است؛ و انجام این کار بر جستجوهای آینده " -"برای ماژول ها و زیر بسته های موجود در بسته تأثیر می گذارد." +"بسته ها از یک ویژگی خاص دیگر به نام :attr:`~module.__path__` پشتیبانی می " +"کنند. این ویژگی به صورت یک :term:`sequence` از رشته هایی که نام دایرکتوری " +"حاوی :file:`__init__.py` بسته را در برمی گیرند، قبل از اجرای کد در آن فایل " +"مقداردهی اولیه می شود. این متغیر قابل تغییر است و تغییر آن جستجوهای آینده " +"برای ماژول ها و زیربسته های موجود در بسته را تحت تأثیر قرار می دهد." #: ../../tutorial/modules.rst:595 #, fuzzy @@ -1406,13 +1395,13 @@ msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." msgstr "" -"در حالی که اغلب به این ویژگی نیازی نیست، اما می تواند برای گسترش مجموعه " -"ماژول های موجود در یک بسته استفاده شود." +"در حالی که این ویژگی اغلب مورد نیاز نیست، می تواند برای گسترش مجموعه ماژول " +"های موجود در یک پکیج استفاده شود." #: ../../tutorial/modules.rst:600 #, fuzzy msgid "Footnotes" -msgstr "پانوشت ها" +msgstr "پاورقی ها" #: ../../tutorial/modules.rst:601 #, fuzzy @@ -1421,8 +1410,8 @@ msgid "" "execution of a module-level function definition adds the function name to " "the module's global namespace." msgstr "" -"در واقع تعریف توابع نیز 'دستورات'ی هستند که 'اجرا' می شوند؛ اجرای تعریف یک " -"تابع در سطح ماژول، نام تابع را به فضای نام سراسری ماژول اضافه می کند." +"در واقع، تعریف توابع نیز 'بیانیه هایی' هستند که 'اجرا' می شوند؛ اجرای تعریف " +"یک تابع در سطح ماژول، نام تابع را به فضای نام سراسری ماژول اضافه می کند." #: ../../tutorial/modules.rst:184 ../../tutorial/modules.rst:267 #: ../../tutorial/modules.rst:348 @@ -1443,16 +1432,19 @@ msgstr "مسیر" #: ../../tutorial/modules.rst:267 #, fuzzy msgid "sys" -msgstr "سیستم" +msgstr "" +"سیستم: ماژولی در پایتون که به شما اجازه می دهد با ویژگی های مختلف سیستم در تعامل باشید.\n" +"\n" +"ماژول `sys` تعدادی پارامتر و توابع را تعریف می کند که می توانید برای دسترسی و کنترل اپلیکیشن های پایتون از آنها استفاده کنید. برخی از آنها عبارتند از: `sys.argv` که لیستی از آرگومان های خط فرمان را برمی گرداند، و ویژگی `sys.exit()` که اجرا را خاتمه می دهد و وضعیت خروج را تعیین می کند." #: ../../tutorial/modules.rst:348 #, fuzzy msgid "builtins" -msgstr "بیلت این ها" +msgstr "" +"تابع های داخلی Python که به صورت پیش فرض در تمام محیط های Python در دسترس " +"هستند و نیازی به وارد کردن ماژول خاصی ندارند." #: ../../tutorial/modules.rst:493 #, fuzzy msgid "__all__" -msgstr "" -"__all__ \n" -"__all__ در زبان برنامه نویسی پایتون یک متغیر لیست است که در ماژول ها برای تعریف نام هایی استفاده می شود که باید هنگام وارد کردن (import کردن) ماژول مورد نظر از طریق عبارت `from module import *` اکسپورت شوند. با تعریف __all__، شما می توانید کنترل دقیقی بر روی اجزایی که به بیرون از ماژول شما در دسترس قرار می گیرند داشته باشید." +msgstr "__all__" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 00af4a36a..5d28ae248 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -49,10 +49,10 @@ msgid "" "0" msgstr "" ">>> import os\n" -">>> os.getcwd() # مسیر کاری فعلی را بازگردانید\n" +">>> os.getcwd() # دایرکتوری کاری فعلی را بازگردانی می کند\n" "'C:\\\\Python313'\n" -">>> os.chdir('/server/accesslogs') # تغییر مسیر کاری فعلی\n" -">>> os.system('mkdir today') # اجرای دستور mkdir در شل سیستم\n" +">>> os.chdir('/server/accesslogs') # دایرکتوری کاری فعلی را تغییر می دهد\n" +">>> os.system('mkdir today') # فرمان mkdir را در شل سیستم اجرا می کند\n" "0" #: ../../tutorial/stdlib.rst:23 @@ -62,9 +62,9 @@ msgid "" "This will keep :func:`os.open` from shadowing the built-in :func:`open` " "function which operates much differently." msgstr "" -"حتماً از سبک ``import os`` به جای ``from os import *`` استفاده کنید. این کار" -" مانع از این می شود که :func:`os.open` بر روی تابع داخلی :func:`open` که به " -"طور متفاوتی کار می کند، سایه بیندازد." +"مطمئن شوید که از سبک ``import os`` به جای ``from os import *`` استفاده کنید." +" این کار از سایه انداختن :func:`os.open` بر روی تابع داخلی :func:`open` " +"جلوگیری می کند که به شکل بسیار متفاوتی عمل می کند." #: ../../tutorial/stdlib.rst:29 #, fuzzy @@ -72,8 +72,8 @@ msgid "" "The built-in :func:`dir` and :func:`help` functions are useful as " "interactive aids for working with large modules like :mod:`os`::" msgstr "" -"توابع داخلی :func:`dir` و :func:`help` به عنوان کمک های تعاملی برای کار با " -"ماژول های بزرگی مانند :mod:`os` مفید هستند::" +"توابع داخلی :func:`dir` و :func:`help` به عنوان ابزارهای تعاملی برای کار با " +"ماژول های بزرگ مانند :mod:`os` مفید هستند::" #: ../../tutorial/stdlib.rst:32 #, fuzzy @@ -84,13 +84,11 @@ msgid "" ">>> help(os)\n" "" msgstr "" -"```python\n" ">>> import os\n" ">>> dir(os)\n" "<لیستی از تمام توابع ماژول را برمی گرداند>\n" ">>> help(os)\n" -"<یک صفحه راهنمای گسترده ای که از توضیحات داخلی ماژول ساخته شده است را برمی گرداند>\n" -"```" +"<یک صفحه راهنمای جامع که از مستندات داخلی ماژول ایجاد شده است را برمی گرداند>" #: ../../tutorial/stdlib.rst:38 #, fuzzy @@ -98,8 +96,8 @@ msgid "" "For daily file and directory management tasks, the :mod:`shutil` module " "provides a higher level interface that is easier to use::" msgstr "" -"برای انجام وظایف روزانه مدیریت فایل و پوشه، ماژول :mod:`shutil` یک رابط " -"کاربری سطح بالاتری را فراهم می کند که استفاده از آن آسان تر است::" +"برای وظایف روزانه مدیریت فایل و پوشه، ماژول :mod:`shutil` یک رابط سطح بالاتر" +" ارائه می دهد که استفاده از آن آسان تر است::" #: ../../tutorial/stdlib.rst:41 #, fuzzy @@ -110,18 +108,16 @@ msgid "" ">>> shutil.move('/build/executables', 'installdir')\n" "'installdir'" msgstr "" -"```python\n" ">>> import shutil\n" ">>> shutil.copyfile('data.db', 'archive.db')\n" "'archive.db'\n" ">>> shutil.move('/build/executables', 'installdir')\n" -"'installdir'\n" -"```" +"'installdir'" #: ../../tutorial/stdlib.rst:51 #, fuzzy msgid "File Wildcards" -msgstr "الگوهای جایگزین فایل ها" +msgstr "کارت های جایگزین فایل" #: ../../tutorial/stdlib.rst:53 #, fuzzy @@ -129,8 +125,8 @@ msgid "" "The :mod:`glob` module provides a function for making file lists from " "directory wildcard searches::" msgstr "" -"ماژول :mod:`glob` یک تابع برای ایجاد لیست فایل ها از جستجوهای کلی دایرکتوری " -"با استفاده از کاراکترهای جانشین فراهم می کند::" +"ماژول :mod:`glob` یک تابع برای ایجاد فهرست فایل ها از جستجوهای ویلدکارت " +"دایرکتوری فراهم می کند::" #: ../../tutorial/stdlib.rst:56 #, fuzzy @@ -139,11 +135,9 @@ msgid "" ">>> glob.glob('*.py')\n" "['primes.py', 'random.py', 'quote.py']" msgstr "" -"```python\n" ">>> import glob\n" ">>> glob.glob('*.py')\n" -"['primes.py', 'random.py', 'quote.py']\n" -"```" +"['primes.py', 'random.py', 'quote.py']" #: ../../tutorial/stdlib.rst:64 #, fuzzy @@ -157,9 +151,9 @@ msgid "" "arguments are stored in the :mod:`sys` module's *argv* attribute as a list." " For instance, let's take the following :file:`demo.py` file::" msgstr "" -"اسکریپت های متداول کمکی اغلب نیاز دارند تا آرگومان های خط فرمان را پردازش " +"اسکریپت های مفید عمومی اغلب نیاز دارند که آرگومان های خط فرمان را پردازش " "کنند. این آرگومان ها به صورت یک لیست در ویژگی *argv* ماژول :mod:`sys` ذخیره " -"می شوند. به عنوان مثال، بیایید فایل :file:`demo.py` زیر را در نظر بگیریم::" +"می شوند. به عنوان مثال، بیایید فایل زیر :file:`demo.py` را در نظر بگیریم::" #: ../../tutorial/stdlib.rst:70 #, fuzzy @@ -168,11 +162,9 @@ msgid "" "import sys\n" "print(sys.argv)" msgstr "" -"```python\n" "# فایل demo.py\n" "import sys\n" -"print(sys.argv)\n" -"```" +"print(sys.argv)" #: ../../tutorial/stdlib.rst:74 #, fuzzy @@ -194,9 +186,9 @@ msgid "" "process command line arguments. The following script extracts one or more " "filenames and an optional number of lines to be displayed::" msgstr "" -"ماژول :mod:`argparse` مکانیزم پیچیده تری برای پردازش آرگومان های خط فرمان " -"فراهم می کند. اسکریپت زیر یک یا چند نام فایل و یک تعداد اختیاری از خطوطی که " -"باید نمایش داده شوند را استخراج می کند::" +"ماژول :mod:`argparse` یک مکانیزم پیچیده تر برای پردازش آرگومان های خط فرمان " +"فراهم می کند. اسکریپت زیر یک یا چند نام فایل و یک تعداد خطوط اختیاری برای " +"نمایش استخراج می کند::" #: ../../tutorial/stdlib.rst:83 #, fuzzy @@ -211,17 +203,15 @@ msgid "" "args = parser.parse_args()\n" "print(args)" msgstr "" -"```python\n" -"import argparse\n" +"وارد کردن 'argparse'\n" "\n" -"parser = argparse.ArgumentParser(\n" -" prog='top',\n" -" description='نمایش خطوط اول از هر فایل')\n" -"parser.add_argument('filenames', nargs='+')\n" -"parser.add_argument('-l', '--lines', type=int, default=10)\n" -"args = parser.parse_args()\n" -"print(args)\n" -"```" +"'parser = argparse.ArgumentParser'(\n" +" 'prog='top'',\n" +" description='Show top lines from each file')\n" +"'parser.add_argument'('filenames', 'nargs='+'')\n" +"'parser.add_argument'('-l', '--lines', 'type=int', 'default=10')\n" +"'args = parser.parse_args'()\n" +"'print'(args)" #: ../../tutorial/stdlib.rst:93 #, fuzzy @@ -231,13 +221,13 @@ msgid "" "to ``['alpha.txt', 'beta.txt']``." msgstr "" "هنگامی که در خط فرمان با ``python top.py --lines=5 alpha.txt beta.txt`` اجرا" -" می شود، اسکریپت، ``args.lines`` را به ``5`` و ``args.filenames`` را به " +" می شود، اسکریپت ``args.lines`` را به ``5`` و ``args.filenames`` را به " "``['alpha.txt', 'beta.txt']`` تنظیم می کند." #: ../../tutorial/stdlib.rst:101 #, fuzzy msgid "Error Output Redirection and Program Termination" -msgstr "هدایت خروجی خطا و پایان برنامه" +msgstr "انتقال خروجی خطا و خاتمه برنامه" #: ../../tutorial/stdlib.rst:103 #, fuzzy @@ -246,9 +236,9 @@ msgid "" "*stderr*. The latter is useful for emitting warnings and error messages to " "make them visible even when *stdout* has been redirected::" msgstr "" -"ماژول :mod:`sys` همچنین دارای ویژگی هایی برای *stdin*، *stdout* و *stderr* " -"است. مورد آخر برای ارسال هشدارها و پیام های خطا مفید است تا حتی زمانی که " -"*stdout* به مسیر دیگری هدایت شده است، قابل مشاهده باشند::" +"ماژول :mod:`sys` همچنین ویژگی هایی برای *stdin*، *stdout* و *stderr* دارد. " +"ویژگی آخر برای تولید هشدارها و پیام های خطا مفید است تا آنها را حتی زمانی که" +" *stdout* هدایت شده است قابل مشاهده کند::" #: ../../tutorial/stdlib.rst:107 #, fuzzy @@ -256,19 +246,19 @@ msgid "" ">>> sys.stderr.write('Warning, log file not found starting a new one\\n')\n" "Warning, log file not found starting a new one" msgstr "" -"``sys.stderr.write``('هشدار، فایل گزارش یافت نشد، یک فایل جدید ایجاد می " -"شود.\\n')" +">>> sys.stderr.write('هشدار، فایل گزارش پیدا نشد، یک فایل جدید شروع می شود\\n')\n" +"هشدار، فایل گزارش پیدا نشد، یک فایل جدید شروع می شود" #: ../../tutorial/stdlib.rst:110 #, fuzzy msgid "The most direct way to terminate a script is to use ``sys.exit()``." msgstr "" -"مستقیم ترین راه برای خاتمه دادن به یک اسکریپت، استفاده از ``sys.exit()`` " -"است." +"مستقیم ترین راه برای پایان دادن به یک اسکریپت استفاده از ``sys.exit()`` است." #: ../../tutorial/stdlib.rst:116 +#, fuzzy msgid "String Pattern Matching" -msgstr "" +msgstr "تطبیق الگوهای رشته ای" #: ../../tutorial/stdlib.rst:118 #, fuzzy @@ -277,9 +267,9 @@ msgid "" "processing. For complex matching and manipulation, regular expressions offer" " succinct, optimized solutions::" msgstr "" -"ماژول :mod:`re` ابزارهایی برای عبارات منظم ارائه می دهد که به پردازش پیشرفته" -" رشته ها کمک می کند. برای تطبیق و دستکاری های پیچیده، عبارات منظم راه حل های" -" مختصر و بهینه ای ارائه می کنند::" +"ماژول :mod:`re` ابزارهای عبارت با قاعده را برای پردازش پیشرفته رشته ها فراهم" +" می کند. برای انطباق و دستکاری پیچیده، عبارات با قاعده راه حل های مختصر و " +"بهینه ارائه می دهند::" #: ../../tutorial/stdlib.rst:122 #, fuzzy @@ -302,8 +292,8 @@ msgid "" "When only simple capabilities are needed, string methods are preferred " "because they are easier to read and debug::" msgstr "" -"هنگامی که تنها به قابلیت های ساده نیاز است، استفاده از متدهای رشته ای ترجیح " -"داده می شود زیرا خواندن و اشکال زدایی آن ها آسان تر است::" +"وقتی تنها به امکانات ساده نیاز است، متدهای رشته ترجیح داده می شوند زیرا " +"خواندن و اشکال زدایی آن ها آسان تر است::" #: ../../tutorial/stdlib.rst:131 #, fuzzy @@ -311,10 +301,8 @@ msgid "" ">>> 'tea for too'.replace('too', 'two')\n" "'tea for two'" msgstr "" -"```python\n" ">>> 'tea for too'.replace('too', 'two')\n" -"'tea for two'\n" -"```" +"'tea for two'" #: ../../tutorial/stdlib.rst:138 #, fuzzy @@ -327,7 +315,7 @@ msgid "" "The :mod:`math` module gives access to the underlying C library functions " "for floating-point math::" msgstr "" -"ماژول :mod:`math` به توابع کتابخانه C پایه برای محاسبات ممیز شناور دسترسی می" +"ماژول :mod:`math` به توابع کتابخانه C زیربنایی برای محاسبات اعشاری دسترسی می" " دهد::" #: ../../tutorial/stdlib.rst:143 @@ -339,19 +327,17 @@ msgid "" ">>> math.log(1024, 2)\n" "10.0" msgstr "" -"``` python\n" ">>> import math\n" ">>> math.cos(math.pi / 4)\n" "0.70710678118654757\n" ">>> math.log(1024, 2)\n" -"10.0\n" -"```" +"10.0" #: ../../tutorial/stdlib.rst:149 #, fuzzy msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" -"ماژول :mod:`random` ابزارهایی برای انجام انتخاب های تصادفی ارائه می دهد::" +"ماژول :mod:`random` ابزارهایی را برای انجام انتخاب های تصادفی فراهم می کند::" #: ../../tutorial/stdlib.rst:151 #, fuzzy @@ -366,17 +352,15 @@ msgid "" ">>> random.randrange(6) # random integer chosen from range(6)\n" "4" msgstr "" -"```python\n" ">>> import random\n" ">>> random.choice(['apple', 'pear', 'banana'])\n" -"'سیب'\n" +"'apple'\n" ">>> random.sample(range(100), 10) # نمونه گیری بدون جایگزینی\n" -"[30, 83، 16، 4، 8، 81، 41، 50، 18، 33]\n" -">>> random.random() # عدد اعشاری تصادفی از بازه [0.0، 1.0)\n" +"[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]\n" +">>> random.random() # عدد شناور تصادفی از بازه [0.0, 1.0)\n" "0.17970987693706186\n" ">>> random.randrange(6) # عدد صحیح تصادفی انتخاب شده از range(6)\n" -"4\n" -"```" +"4" #: ../../tutorial/stdlib.rst:161 #, fuzzy @@ -384,10 +368,11 @@ msgid "" "The :mod:`statistics` module calculates basic statistical properties (the " "mean, median, variance, etc.) of numeric data::" msgstr "" -"ماژول :mod:`statistics` خصوصیات آماری پایه (میانگین، میانه، واریانس، و غیره)" -" داده های عددی را محاسبه می کند::" +"ماژول :mod:`statistics` خصوصیات آماری پایه (میانگین، میانه، واریانس و غیره) " +"داده های عددی را محاسبه می کند::" #: ../../tutorial/stdlib.rst:164 +#, fuzzy msgid "" ">>> import statistics\n" ">>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]\n" @@ -398,6 +383,14 @@ msgid "" ">>> statistics.variance(data)\n" "1.3720238095238095" msgstr "" +">>> import statistics\n" +">>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]\n" +">>> statistics.mean(data)\n" +"1.6071428571428572\n" +">>> statistics.median(data)\n" +"1.25\n" +">>> statistics.variance(data)\n" +"1.3720238095238095" #: ../../tutorial/stdlib.rst:173 #, fuzzy @@ -405,7 +398,7 @@ msgid "" "The SciPy project has many other modules for numerical " "computations." msgstr "" -"پروژه SciPy شامل ماژول های متعددی برای محاسبات عددی است." +"پروژه SciPy شامل ماژول های بسیاری برای محاسبات عددی است." #: ../../tutorial/stdlib.rst:179 #, fuzzy @@ -419,9 +412,9 @@ msgid "" "internet protocols. Two of the simplest are :mod:`urllib.request` for " "retrieving data from URLs and :mod:`smtplib` for sending mail::" msgstr "" -"ماژول های متعددی برای دسترسی به اینترنت و پردازش پروتکل های اینترنت وجود " -"دارند. دو مورد از ساده ترین آنها، ماژول ``:mod:`urllib.request``` برای " -"دریافت داده ها از URL ها و ``:mod:`smtplib``` برای ارسال ایمیل هستند." +"تعدادی ماژول برای دسترسی به اینترنت و پردازش پروتکل های اینترنت وجود دارد. " +"دو مورد از ساده ترین آن ها :mod:`urllib.request` برای بازیابی داده ها از " +"URLها و :mod:`smtplib` برای ارسال ایمیل هستند::" #: ../../tutorial/stdlib.rst:185 #, fuzzy @@ -445,13 +438,12 @@ msgid "" "... \"\"\")\n" ">>> server.quit()" msgstr "" -"```python\n" ">>> from urllib.request import urlopen\n" ">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as response:\n" "... for line in response:\n" "... line = line.decode() # تبدیل بایت ها به رشته\n" "... if line.startswith('datetime'):\n" -"... print(line.rstrip()) # حذف خط جدید انتهایی\n" +"... print(line.rstrip()) # حذف نویسۀ جدید در انتها\n" "...\n" "datetime: 2022-01-01T01:36:47.689215+00:00\n" "\n" @@ -461,18 +453,17 @@ msgstr "" "... \"\"\"To: jcaesar@example.org\n" "... From: soothsayer@example.org\n" "...\n" -"... از «ایدس مارس» برحذر باش.\n" +"... Beware the Ides of March.\n" "... \"\"\")\n" -">>> server.quit()\n" -"```" +">>> server.quit()" #: ../../tutorial/stdlib.rst:204 #, fuzzy msgid "" "(Note that the second example needs a mailserver running on localhost.)" msgstr "" -"(توجه داشته باشید که مثال دوم نیاز به یک mailserver در حال اجرا بر روی " -"localhost دارد.)" +"(توجه داشته باشید که مثال دوم به یک سرور ایمیل در حال اجرا بر روی " +"«localhost» نیاز دارد.)" #: ../../tutorial/stdlib.rst:210 #, fuzzy @@ -488,10 +479,10 @@ msgid "" " for output formatting and manipulation. The module also supports objects " "that are timezone aware. ::" msgstr "" -"ماژول :mod:`datetime` کلا س هایی برای مدیریت تاریخ و زمان به روش های ساده و " -"پیچیده فراهم می کند. در حالی که محاسبات تاریخ و زمان پشتیبانی می شود، تمرکز " -"پیاده سازی بر استخراج کارآمد اعضا برای قالب بندی و مدیریت خروجی است. این " -"ماژول از اشیائی که آگاه به منطقه زمانی هستند نیز پشتیبانی می کند. ::" +"ماژول :mod:`datetime` کلاس هایی را برای دستکاری تاریخ و زمان به روش های ساده" +" و پیچیده فراهم می کند. در حالی که محاسبات تاریخ و زمان پشتیبانی می شود، " +"تمرکز پیاده سازی بر استخراج کارآمد اعضا برای قالب بندی خروجی و دستکاری است. " +"این ماژول همچنین از اشیایی که به منطقه زمانی آگاه هستند پشتیبانی می کند. ::" #: ../../tutorial/stdlib.rst:218 #, fuzzy @@ -510,21 +501,19 @@ msgid "" ">>> age.days\n" "14368" msgstr "" -"```python\n" -">>> # تاریخ ها به سادگی ساخته و قالب بندی می شوند\n" +">>> # تاریخ ها به راحتی ساخته و قالب بندی می شوند\n" ">>> from datetime import date\n" -">>> امروز = date.today()\n" -">>> امروز\n" +">>> now = date.today()\n" +">>> now\n" "datetime.date(2003, 12, 2)\n" -">>> امروز.strftime(\"%m-%d-%y. %d %b %Y is a %A on the %d day of %B.\")\n" +">>> now.strftime(\"%m-%d-%y. %d %b %Y is a %A on the %d day of %B.\")\n" "'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'\n" "\n" ">>> # تاریخ ها از حساب تقویمی پشتیبانی می کنند\n" -">>> تولد = date(1964, 7, 31)\n" -">>> سن = امروز - تولد\n" -">>> سن.days\n" -"14368\n" -"```" +">>> birthday = date(1964, 7, 31)\n" +">>> age = now - birthday\n" +">>> age.days\n" +"14368" #: ../../tutorial/stdlib.rst:236 #, fuzzy @@ -538,9 +527,9 @@ msgid "" "modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, " ":mod:`zipfile` and :mod:`tarfile`. ::" msgstr "" -"قالب های رایج بایگانی و فشرده سازی داده ها به طور مستقیم توسط ماژول های زیر " -"پشتیبانی می شوند: :mod:`zlib`، :mod:`gzip`، :mod:`bz2`، :mod:`lzma`، " -":mod:`zipfile` و :mod:`tarfile`. ::" +"قالب های معمول فشرده سازی و آرشیو داده به طور مستقیم توسط ماژول های " +":mod:`zlib`، :mod:`gzip`، :mod:`bz2`، :mod:`lzma`، :mod:`zipfile` و " +":mod:`tarfile` پشتیبانی می شوند. ::" #: ../../tutorial/stdlib.rst:242 #, fuzzy @@ -557,7 +546,6 @@ msgid "" ">>> zlib.crc32(s)\n" "226805979" msgstr "" -"```\n" ">>> import zlib\n" ">>> s = b'witch which has which witches wrist watch'\n" ">>> len(s)\n" @@ -568,8 +556,7 @@ msgstr "" ">>> zlib.decompress(t)\n" "b'witch which has which witches wrist watch'\n" ">>> zlib.crc32(s)\n" -"226805979\n" -"```" +"226805979" #: ../../tutorial/stdlib.rst:258 #, fuzzy @@ -583,9 +570,9 @@ msgid "" "performance of different approaches to the same problem. Python provides a " "measurement tool that answers those questions immediately." msgstr "" -"برخی از کاربران پایتون علاقه مند به دانستن عملکرد نسبی روش های مختلف برای حل" -" یک مسئله ی یکسان می شوند. پایتون ابزاری برای اندازه گیری فراهم کرده است که " -"به سرعت به این سوالات پاسخ می دهد." +"برخی از کاربران پایتون علاقه زیادی به دانستن عملکرد نسبی روش های مختلف برای " +"حل یک مسئله دارند. پایتون یک ابزار اندازه گیری ارائه می دهد که به این سؤالات" +" به طور فوری پاسخ می دهد." #: ../../tutorial/stdlib.rst:264 #, fuzzy @@ -594,9 +581,9 @@ msgid "" "feature instead of the traditional approach to swapping arguments. The " ":mod:`timeit` module quickly demonstrates a modest performance advantage::" msgstr "" -"به عنوان مثال، ممکن است وسوسه انگیز باشد که به جای روش سنتی جابجا کردن " -"آرگومان ها از قابلیت بستن و باز کردن `tuple` ها استفاده کنید. ماژول " -":mod:`timeit` به سرعت یک مزیت عملکردی کوچک را نشان می دهد::" +"به عنوان مثال، ممکن است وسوسه انگیز باشد که به جای استفاده از روش سنتی برای " +"جابجایی آرگومان ها، از ویژگی بسته بندی و بازکردن اشیاء «tuple» استفاده کنید." +" ماژول :mod:`timeit` به سرعت یک مزیت عملکردی نسبی را نشان می دهد::" #: ../../tutorial/stdlib.rst:268 #, fuzzy @@ -607,13 +594,11 @@ msgid "" ">>> Timer('a,b = b,a', 'a=1; b=2').timeit()\n" "0.54962537085770791" msgstr "" -"```\n" ">>> from timeit import Timer\n" ">>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()\n" "0.57535828626024577\n" ">>> Timer('a,b = b,a', 'a=1; b=2').timeit()\n" -"0.54962537085770791\n" -"```" +"0.54962537085770791" #: ../../tutorial/stdlib.rst:274 #, fuzzy @@ -623,8 +608,8 @@ msgid "" "sections in larger blocks of code." msgstr "" "برخلاف سطح دانه بندی دقیق :mod:`timeit`، ماژول های :mod:`profile` و " -":mod:`pstats` ابزارهایی برای شناسایی بخش های بحرانی زمانی در بلوک های بزرگتر" -" کد ارائه می دهند." +":mod:`pstats` ابزارهایی را برای شناسایی بخش های بحرانی زمانی در بلوک های " +"بزرگتر کد ارائه می دهند." #: ../../tutorial/stdlib.rst:282 #, fuzzy @@ -638,8 +623,8 @@ msgid "" " function as it is developed and to run those tests frequently during the " "development process." msgstr "" -"یکی از رویکردهای توسعه ی نرم افزار با کیفیت بالا، نوشتن تست ها برای هر تابع " -"به محض توسعه ی آن و اجرای مکرر این تست ها در طول فرایند توسعه است." +"یکی از روش های توسعه نرم افزار با کیفیت بالا نوشتن تست ها برای هر تابع در " +"زمان توسعه و اجرای مکرر آن ها در طی فرآیند توسعه است." #: ../../tutorial/stdlib.rst:288 #, fuzzy @@ -651,11 +636,11 @@ msgid "" " example and it allows the doctest module to make sure the code remains true" " to the documentation::" msgstr "" -"ماژول :mod:`doctest` ابزاری برای اسکن کردن یک ماژول و اعتبارسنجی تست های " -"تعبیه شده در docstring های یک برنامه ارائه می دهد. ساخت تست به اندازه کپی " -"کردن و قرار دادن یک فراخوانی معمولی به همراه نتایج آن درون docstring ساده " -"است. این کار با ارائه یک مثال به کاربر، مستندات را بهبود می بخشد و به ماژول " -"doctest اجازه می دهد که مطمئن شود کد با مستندات مطابقت دارد." +"ماژول :mod:`doctest` ابزاری برای اسکن یک ماژول و اعتبارسنجی تست های قرار " +"گرفته در docstring برنامه فراهم می کند. ساخت تست به سادگی کپی و قرار دادن یک" +" فراخوانی معمول به همراه نتایج آن درون یک docstring است. این کار مستندات را " +"با ارائه یک مثال به کاربر بهبود می بخشد و به ماژول doctest اجازه می دهد " +"مطمئن شود که کد همچنان با مستندات همخوانی دارد::" #: ../../tutorial/stdlib.rst:295 #, fuzzy @@ -681,7 +666,7 @@ msgstr "" " return sum(values) / len(values)\n" "\n" "import doctest\n" -"doctest.testmod() # به صورت خودکار تست های تعبیه شده را اعتبارسنجی می کند\n" +"doctest.testmod() # اعتبارسنجی خودکار تست های جاسازی شده\n" "```" #: ../../tutorial/stdlib.rst:306 @@ -691,9 +676,8 @@ msgid "" "module, but it allows a more comprehensive set of tests to be maintained in " "a separate file::" msgstr "" -"ماژول :mod:`unittest` به اندازه ی ماژول :mod:`doctest` به سادگی نیست، اما " -"این امکان را می دهد که مجموعه ای جامع تر از تست ها در یک فایل جداگانه " -"نگهداری شوند::" +"ماژول :mod:`unittest` به سادگی ماژول :mod:`doctest` نیست، اما اجازه می دهد " +"تا مجموعه جامع تری از تست ها را در یک فایل جداگانه نگهداری کنید::" #: ../../tutorial/stdlib.rst:310 #, fuzzy @@ -712,7 +696,6 @@ msgid "" "\n" "unittest.main() # Calling from the command line invokes all tests" msgstr "" -"```python\n" "import unittest\n" "\n" "class TestStatisticalFunctions(unittest.TestCase):\n" @@ -725,13 +708,12 @@ msgstr "" " with self.assertRaises(TypeError):\n" " average(20, 30, 70)\n" "\n" -"unittest.main() # فراخوانی از خط فرمان تمامی تست ها را اجرا می کند\n" -"```" +"unittest.main() # فراخوانی از خط فرمان تمامی تست ها را اجرا می کند" #: ../../tutorial/stdlib.rst:328 #, fuzzy msgid "Batteries Included" -msgstr "شامل بودن امکانات پایه" +msgstr "شامل بودن کتابخانه ها" #: ../../tutorial/stdlib.rst:330 #, fuzzy @@ -740,8 +722,8 @@ msgid "" "the sophisticated and robust capabilities of its larger packages. For " "example:" msgstr "" -"پایتون دارای فلسفه \"همراه با باتری\" است. این موضوع به خوبی از طریق قابلیت " -"های پیچیده و قدرتمند بسته های بزرگتر آن نمایان می شود. به عنوان مثال:" +"پایتون یک فلسفه \"همراه با باتری ها\" دارد. این موضوع به بهترین شکل در " +"قابلیت های پیشرفته و قوی بسته های بزرگ تر آن دیده می شود. برای مثال:" #: ../../tutorial/stdlib.rst:333 #, fuzzy @@ -750,9 +732,9 @@ msgid "" "remote procedure calls into an almost trivial task. Despite the modules' " "names, no direct knowledge or handling of XML is needed." msgstr "" -"ماژول های :mod:`xmlrpc.client` و :mod:`xmlrpc.server` اجرا کردن فراخوانی " -"رویه های از راه دور را به یک کار تقریباً ساده تبدیل می کنند. با وجود نام های" -" این ماژول ها، نیازی به دانش مستقیم یا مدیریت XML نیست." +"ماژول های :mod:`xmlrpc.client` و :mod:`xmlrpc.server` اجرای فراخوانی های " +"رویه ای راه دور را به یک کار تقریباً ساده تبدیل می کنند. با وجود نام این " +"ماژول ها، هیچ گونه دانش مستقیم یا مدیریت XML مورد نیاز نیست." #: ../../tutorial/stdlib.rst:337 #, fuzzy @@ -764,12 +746,11 @@ msgid "" "structures (including attachments) and for implementing internet encoding " "and header protocols." msgstr "" -"پکیج :mod:`email` یک کتابخانه برای مدیریت پیام های ایمیل است که شامل اسناد " -"پیامی مبتنی بر MIME و دیگر اسناد مبتنی بر :rfc:`2822` می شود. برخلاف " -":mod:`smtplib` و :mod:`poplib` که عملاً پیام ها را ارسال و دریافت می کنند، " -"پکیج ایمیل دارای یک مجموعه ابزار کامل برای ساخت یا رمزگشایی ساختارهای پیچیده" -" پیام ها (شامل پیوست ها) و برای پیاده سازی رمزگذاری اینترنت و پروتکل های " -"سرصفحه است." +"پکیج :mod:`email` یک کتابخانه برای مدیریت پیام های ایمیل، از جمله اسناد " +"مبتنی بر MIME و :rfc:`2822` دیگر است. برخلاف :mod:`smtplib` و :mod:`poplib` " +"که واقعاً پیام ها را ارسال و دریافت می کنند، پکیج ایمیل مجموعه کاملی از " +"ابزارها برای ساخت یا رمزگشایی ساختارهای پیچیده پیام (شامل پیوست ها) و برای " +"پیاده سازی پروتکل های رمزگذاری و سربرگ اینترنت دارد." #: ../../tutorial/stdlib.rst:344 #, fuzzy @@ -782,13 +763,13 @@ msgid "" "Together, these modules and packages greatly simplify data interchange " "between Python applications and other tools." msgstr "" -"پکیج :mod:`json` پشتیبانی قوی ای برای تجزیه این فرمت محبوب تبادل داده ارائه " -"می دهد. ماژول :mod:`csv` خواندن و نوشتن مستقیم فایل ها در قالب «مقدار-جدا-" -"شده-با-ویرگول» را که معمولاً توسط پایگاه های داده و صفحه گسترده ها پشتیبانی " -"می شود، فراهم می کند. پردازش XML توسط پکیج های :mod:`xml.etree.ElementTree`،" -" :mod:`xml.dom` و :mod:`xml.sax` پشتیبانی می شود. به همراه هم، این ماژول ها " -"و پکیج ها تبادل داده بین برنامه های پایتون و دیگر ابزارها را به شدت ساده می " -"کنند." +"پکیج :mod:`json` پشتیبانی قدرتمندی برای تجزیه این قالب متداول تبادل داده " +"فراهم می کند. ماژول :mod:`csv` پشتیبانی مستقیم از خواندن و نوشتن فایل ها به " +"صورت قالب مقادیر جدا شده با کاما را ارائه می دهد، که به طور معمول توسط " +"پایگاه های داده و صفحات گسترده پشتیبانی می شود. پردازش XML توسط پکیج های " +":mod:`xml.etree.ElementTree`، :mod:`xml.dom` و :mod:`xml.sax` پشتیبانی می " +"شود. این ماژول ها و پکیج ها با هم تبادل داده ها بین برنامه های Python و سایر" +" ابزارها را به طور قابل توجهی ساده می کنند." #: ../../tutorial/stdlib.rst:353 #, fuzzy @@ -797,9 +778,9 @@ msgid "" "providing a persistent database that can be updated and accessed using " "slightly nonstandard SQL syntax." msgstr "" -"ماژول :mod:`sqlite3` یک بسته بندی برای کتابخانه پایگاه داده SQLite است که یک" -" پایگاه داده پایدار ارائه می دهد که می تواند با استفاده از سینتکس SQL با کمی" -" تغییر به روزرسانی و دسترسی پیدا کند." +"ماژول :mod:`sqlite3` یک پوسته برای کتابخانه پایگاه داده SQLite است که یک " +"پایگاه داده پایدار ارائه می دهد که می توان آن را با استفاده از نحو SQL کمی " +"غیر استاندارد به روزرسانی و دسترسی پیدا کرد." #: ../../tutorial/stdlib.rst:357 #, fuzzy @@ -807,8 +788,8 @@ msgid "" "Internationalization is supported by a number of modules including " ":mod:`gettext`, :mod:`locale`, and the :mod:`codecs` package." msgstr "" -"پشتیبانی از بین المللی سازی توسط تعدادی از ماژول ها از جمله :mod:`gettext`، " -":mod:`locale` و بستهٔ :mod:`codecs` انجام می شود." +"بین المللی سازی توسط چندین ماژول از جمله :mod:`gettext`، :mod:`locale`، و " +"بسته :mod:`codecs` پشتیبانی می شود." #: ../../tutorial/stdlib.rst:27 #, fuzzy @@ -818,4 +799,4 @@ msgstr "تابع داخلی" #: ../../tutorial/stdlib.rst:27 #, fuzzy msgid "help" -msgstr "راهنما" +msgstr "کمک" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 359dfcdbb..cb667151c 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/stdlib2.rst:5 #, fuzzy msgid "Brief Tour of the Standard Library --- Part II" -msgstr "مروری کوتاه بر کتابخانه استاندارد --- قسمت دوم" +msgstr "گشتی سریع در کتابخانه استاندارد --- بخش دوم" #: ../../tutorial/stdlib2.rst:7 #, fuzzy @@ -32,14 +32,14 @@ msgid "" "This second tour covers more advanced modules that support professional " "programming needs. These modules rarely occur in small scripts." msgstr "" -"این تور دوم به بررسی ماژول های پیشرفته تری می پردازد که نیازهای برنامه نویسی" -" حرفه ای را پشتیبانی می کنند. این ماژول ها به ندرت در اسکریپت های کوچک " -"مشاهده می شوند." +"تور دوم به بررسی ماژول های پیشرفته تری می پردازد که از نیازهای برنامه نویسی " +"حرفه ای پشتیبانی می کنند. این ماژول ها به ندرت در اسکریپت های کوچک ظاهر می " +"شوند." #: ../../tutorial/stdlib2.rst:14 #, fuzzy msgid "Output Formatting" -msgstr "قالب بندی خروجی" +msgstr "فرمت دهی خروجی" #: ../../tutorial/stdlib2.rst:16 #, fuzzy @@ -47,8 +47,8 @@ msgid "" "The :mod:`reprlib` module provides a version of :func:`repr` customized for " "abbreviated displays of large or deeply nested containers::" msgstr "" -"ماژول :mod:`reprlib` نسخه ای از :func:`repr` را ارائه می دهد که برای نمایش " -"خلاصه ای از مجموعه های بزرگ یا تو در تو سفارشی شده است." +"ماژول :mod:`reprlib` نسخه ای از :func:`repr` را فراهم می کند که برای نمایش " +"مختصر محتوای بزرگ یا به شدت تودرتو سفارشی شده است::" #: ../../tutorial/stdlib2.rst:19 #, fuzzy @@ -57,11 +57,9 @@ msgid "" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" msgstr "" -"```python\n" ">>> import reprlib\n" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" -"\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"\n" -"```" +"\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" #: ../../tutorial/stdlib2.rst:23 #, fuzzy @@ -71,10 +69,10 @@ msgid "" "interpreter. When the result is longer than one line, the \"pretty printer\"" " adds line breaks and indentation to more clearly reveal data structure::" msgstr "" -"ماژول :mod:`pprint` کنترل پیچیده تری بر روی چاپ اشیای داخلی و تعریف شده توسط" -" کاربر ارائه می دهد، به طوری که برای مفسر قابل خواندن باشد. وقتی نتیجه بیشتر" -" از یک خط می شود، «پرینتر زیبا» شکستگی های خط و تورفتگی هایی اضافه می کند تا" -" ساختار داده ها را به وضوح بیشتری نشان دهد." +"ماژول :mod:`pprint` کنترل پیچیده تری بر چاپ اشیاء داخلی و تعریف شده توسط " +"کاربر به نحوی که توسط مفسر قابل خواندن باشد، ارائه می دهد. زمانی که نتیجه " +"بیش از یک خط باشد، \"چاپگر زیبا\" برش خط و تورفتگی هایی اضافه می کند تا " +"ساختار داده به وضوح بیشتری نمایش داده شود::" #: ../../tutorial/stdlib2.rst:28 #, fuzzy @@ -90,7 +88,6 @@ msgid "" " [['magenta', 'yellow'],\n" " 'blue']]]" msgstr "" -"```python\n" ">>> import pprint\n" ">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" "... 'yellow'], 'blue']]]\n" @@ -100,8 +97,7 @@ msgstr "" " 'white',\n" " ['green', 'red']],\n" " [['magenta', 'yellow'],\n" -" 'blue']]]\n" -"```" +" 'blue']]]" #: ../../tutorial/stdlib2.rst:39 #, fuzzy @@ -109,8 +105,8 @@ msgid "" "The :mod:`textwrap` module formats paragraphs of text to fit a given screen " "width::" msgstr "" -"ماژول :mod:`textwrap` پاراگراف های متن را به صورتی قالب بندی می کند که با " -"عرض مشخص شده برای صفحه متناسب باشد." +"ماژول :mod:`textwrap` پاراگراف های متن را فرمت می کند تا در عرض صفحه مشخصی " +"جا بگیرند::" #: ../../tutorial/stdlib2.rst:42 #, fuzzy @@ -126,18 +122,14 @@ msgid "" "instead of one big string with newlines\n" "to separate the wrapped lines." msgstr "" -"```python\n" ">>> import textwrap\n" -">>> doc = \"\"\"متد wrap() درست مانند fill() است، به جز اینکه\n" -"... به جای یک رشته بزرگ با خطوط جدید برای جداسازی\n" -"... خطوط پیچیده شده، یک لیست از رشته ها برمی گرداند.\"\"\"\n" +">>> doc = \"\"\"متد wrap() دقیقاً مانند fill() است با این تفاوت که به جای یک رشته بزرگ که خطوط پیچیده شده را با خطوط جدید جدا می کند، لیستی از رشته ها را برمی گرداند.\"\"\"\n" "...\n" ">>> print(textwrap.fill(doc, width=40))\n" -"متد wrap() درست مانند fill() است، به جز\n" -"اینکه به جای یک رشته بزرگ با خطوط جدید\n" -"برای جداسازی خطوط پیچیده شده، یک لیست از\n" -"رشته ها برمی گرداند.\n" -"```" +"متد wrap() دقیقاً مانند fill() است با این\n" +"تفاوت که به جای یک رشته بزرگ که خطوط\n" +"پیچیده شده را با خطوط جدید جدا می کند،\n" +"لیستی از رشته ها را برمی گرداند." #: ../../tutorial/stdlib2.rst:53 #, fuzzy @@ -146,9 +138,9 @@ msgid "" "formats. The grouping attribute of locale's format function provides a " "direct way of formatting numbers with group separators::" msgstr "" -"ماژول :mod:`locale` به یک پایگاه داده از قالب های داده های خاص فرهنگ دسترسی " -"دارد. ویژگی گروه بندی تابع قالب بندی locale یک راه مستقیم برای قالب بندی " -"اعداد با جداکننده های گروه فراهم می کند::" +"ماژول :mod:`locale` به یک پایگاه داده از قالب های داده مخصوص فرهنگ ها دسترسی" +" دارد. ویژگی grouping تابع format در locale یک روش مستقیم برای قالب بندی " +"اعداد با جداکننده های گروه ارائه می دهد::" #: ../../tutorial/stdlib2.rst:57 #, fuzzy @@ -164,23 +156,21 @@ msgid "" "... conv['frac_digits'], x), grouping=True)\n" "'$1,234,567.80'" msgstr "" -"```python\n" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" "'English_United States.1252'\n" -">>> conv = locale.localeconv() # دریافت نقشه ای از قراردادها\n" +">>> conv = locale.localeconv() # بدست آوردن نقشه ای از قراردادها\n" ">>> x = 1234567.8\n" ">>> locale.format_string(\"%d\", x, grouping=True)\n" "'1,234,567'\n" ">>> locale.format_string(\"%s%.*f\", (conv['currency_symbol'],\n" "... conv['frac_digits'], x), grouping=True)\n" -"'$1,234,567.80'\n" -"```" +"'$1,234,567.80'" #: ../../tutorial/stdlib2.rst:72 #, fuzzy msgid "Templating" -msgstr "قالب بندی" +msgstr "الگوگذاری" #: ../../tutorial/stdlib2.rst:74 #, fuzzy @@ -190,10 +180,10 @@ msgid "" "allows users to customize their applications without having to alter the " "application." msgstr "" -"ماژول :mod:`string` شامل یک کلاس چندمنظوره :class:`~string.Template` با یک " -"نحوی ساده شده است که مناسب ویرایش توسط کاربران نهایی می باشد. این امکان به " -"کاربران داده می شود تا برنامه های خود را بدون نیاز به تغییر برنامه سفارشی " -"سازی کنند." +"ماژول :mod:`string` شامل یک کلاس چندمنظوره :class:`~string.Template` است که " +"دارای یک نحو ساده شده مناسب برای ویرایش توسط کاربران نهایی می باشد. این " +"امکان را به کاربران می دهد تا برنامه های خود را بدون نیاز به تغییر خود " +"برنامه سفارشی کنند." #: ../../tutorial/stdlib2.rst:78 #, fuzzy @@ -204,10 +194,11 @@ msgid "" "letters with no intervening spaces. Writing ``$$`` creates a single escaped" " ``$``::" msgstr "" -"فرمت از نام های جایگزین تشکیل شده است که به صورت ``$`` با شناسه های معتبر " -"Python (کاراکترهای الفبایی-عددی و زیرخط) ساخته شده اند. قرار دادن جایگزین " -"درون آکولادها به آن امکان می دهد که بدون فاصله با حروف الفبایی-عددی بیشتری " -"دنبال شود. نوشتن ``$$`` یک ``$`` فرار تک ایجاد می کند::" +"فرمت از نام های جایگزین ساخته شده توسط ``$`` استفاده می کند که شامل شناسه " +"های معتبر پایتون (کاراکترهای الفبایی عددی و زیرخط) می باشد. قرار دادن " +"جایگزین در داخل براکت ها این امکان را می دهد که با حروف الفبایی عددی بیشتری " +"بدون فاصله های میانی دنبال شود. نوشتن ``$$``، یک ``$`` فرار یافته ایجاد می " +"کند::" #: ../../tutorial/stdlib2.rst:83 #, fuzzy @@ -217,12 +208,10 @@ msgid "" ">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" "'Nottinghamfolk send $10 to the ditch fund.'" msgstr "" -"```python\n" ">>> from string import Template\n" ">>> t = Template('${village}folk send $$10 to $cause.')\n" ">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" -"'Nottinghamfolk send $10 to the ditch fund.'\n" -"```" +"'Nottinghamfolk send $10 to the ditch fund.'" #: ../../tutorial/stdlib2.rst:88 #, fuzzy @@ -233,12 +222,12 @@ msgid "" ":meth:`~string.Template.safe_substitute` method may be more appropriate --- " "it will leave placeholders unchanged if data is missing::" msgstr "" -"روش :meth:`~string.Template.substitute` یک :exc:`KeyError` را زمانی ایجاد می" -" کند که یک \"placeholder\" در یک دیکشنری یا یک آرگومان کلیدی تأمین نشده " -"باشد. برای برنامه های کاربردی مشابه \"mail-merge\"، داده های تأمین شده توسط " -"کاربر ممکن است ناقص باشند و روش :meth:`~string.Template.safe_substitute` " -"ممکن است مناسب تر باشد --- زیرا اگر داده ای موجود نباشد، \"placeholders\" را" -" بدون تغییر باقی خواهد گذاشت." +"متد :meth:`~string.Template.substitute` یک :exc:`KeyError` را زمانی برمی " +"گرداند که یک جایگزین در یک دیکشنری یا یک آرگومان کلیدواژه ارائه نشده باشد. " +"برای برنامه های کاربردی به سبک ترکیب پیام ها، داده هایی که توسط کاربر ارائه " +"می شوند ممکن است ناقص باشند و متد :meth:`~string.Template.safe_substitute` " +"ممکن است مناسب تر باشد --- این متد، جایگزین ها را بدون تغییر باقی می گذارد " +"اگر داده ها ناقص باشند::" #: ../../tutorial/stdlib2.rst:94 #, fuzzy @@ -252,16 +241,14 @@ msgid "" ">>> t.safe_substitute(d)\n" "'Return the unladen swallow to $owner.'" msgstr "" -"```plaintext\n" -">>> t = Template('Return the $item to $owner.')\n" +">>> t = Template('بازگرداندن $item به $owner.')\n" ">>> d = dict(item='unladen swallow')\n" ">>> t.substitute(d)\n" -"ردیابی (آخرین فراخوانی اخیر):\n" +"Traceback (most recent call last):\n" " ...\n" "KeyError: 'owner'\n" ">>> t.safe_substitute(d)\n" -"'Return the unladen swallow to $owner.'\n" -"```" +"'بازگرداندن unladen swallow به $owner.'" #: ../../tutorial/stdlib2.rst:103 #, fuzzy @@ -271,10 +258,10 @@ msgid "" "placeholders such as the current date, image sequence number, or file " "format::" msgstr "" -"زیرکلاس های `Template` می توانند یک جداکننده سفارشی تعیین کنند. به عنوان " -"مثال، یک ابزار تغییر نام گروهی برای مرورگر عکس ممکن است تصمیم بگیرد از علامت" -" درصد به عنوان جایگزین برای نگهدارنده هایی مانند تاریخ فعلی، شماره تصویر " -"دنباله یا فرمت فایل استفاده کند::" +"کلاس های زیرمجموعه Template می توانند یک جداکننده سفارشی مشخص کنند. برای " +"مثال، یک ابزار تغییر نام دسته ای برای مرورگر عکس ممکن است انتخاب کند از " +"علامت درصد به عنوان جایگزین برای مواردی مثل تاریخ جاری، شماره ترتیب تصویر، " +"یا فرمت فایل استفاده کند::" #: ../../tutorial/stdlib2.rst:107 #, fuzzy @@ -298,15 +285,13 @@ msgid "" "img_1076.jpg --> Ashley_1.jpg\n" "img_1077.jpg --> Ashley_2.jpg" msgstr "" -"```python\n" ">>> import time, os.path\n" ">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" ">>> class BatchRename(Template):\n" -"... در اینجا از \"Template\" استفاده می کنیم.\n" "... delimiter = '%'\n" "...\n" -">>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ')\n" -"فرمت جدید نام گذاری را وارد کنید (%d-تاریخ %n-شماره توالی %f-فرمت): Ashley_%n%f\n" +">>> fmt = input('لطفاً سبک تغییر نام را وارد کنید (%d-تاریخ %n-شماره ترتیب %f-فرمت): ')\n" +"لطفاً سبک تغییر نام را وارد کنید (%d-تاریخ %n-شماره ترتیب %f-فرمت): Ashley_%n%f\n" "\n" ">>> t = BatchRename(fmt)\n" ">>> date = time.strftime('%d%b%y')\n" @@ -317,8 +302,7 @@ msgstr "" "\n" "img_1074.jpg --> Ashley_0.jpg\n" "img_1076.jpg --> Ashley_1.jpg\n" -"img_1077.jpg --> Ashley_2.jpg\n" -"```" +"img_1077.jpg --> Ashley_2.jpg" #: ../../tutorial/stdlib2.rst:126 #, fuzzy @@ -327,14 +311,14 @@ msgid "" "details of multiple output formats. This makes it possible to substitute " "custom templates for XML files, plain text reports, and HTML web reports." msgstr "" -"کاربرد دیگر قالب بندی جدا کردن منطق برنامه از جزئیات فرمت های مختلف خروجی " +"کاربرد دیگر قالب بندی، جدا کردن منطق برنامه از جزئیات قالب های مختلف خروجی " "است. این کار امکان جایگزینی قالب های سفارشی برای فایل های XML، گزارش های متن" " ساده و گزارش های وب HTML را فراهم می کند." #: ../../tutorial/stdlib2.rst:134 #, fuzzy msgid "Working with Binary Data Record Layouts" -msgstr "کار با چیدمان رکورد داده های دودویی" +msgstr "کار با طرح بندی داده های باینری رکوردها" #: ../../tutorial/stdlib2.rst:136 #, fuzzy @@ -348,11 +332,11 @@ msgid "" "little-endian byte order::" msgstr "" "ماژول :mod:`struct` توابع :func:`~struct.pack` و :func:`~struct.unpack` را " -"برای کار با فرمت های رکورد دودویی با طول متغیر فراهم می کند. مثال زیر نشان " -"می دهد که چگونه می توان بدون استفاده از ماژول :mod:`zipfile` از طریق اطلاعات" -" هدر در یک فایل ZIP مرور کرد. کدهای بسته ``\"H\"`` و ``\"I\"`` به ترتیب " -"نمایانگر اعداد بدون علامت دو و چهار بایتی هستند. ``\"<\"`` نشان می دهد که " -"این اعداد دارای اندازه استاندارد و به ترتیب بایت های little-endian هستند::" +"برای کار با فرمت های رکورد باینری با طول متغیر فراهم می کند. مثال زیر نشان " +"می دهد که چگونه می توان بدون استفاده از ماژول :mod:`zipfile` از اطلاعات هدر " +"در یک فایل ZIP عبور کرد. کدهای بسته بندی ``\"H\"`` و ``\"I\"`` به ترتیب نشان" +" دهنده اعداد بدون علامت دو بایتی و چهار بایتی هستند. ``\"<\"`` نشان می دهد " +"که آن ها اندازه استاندارد و به ترتیب بایت کوچک اندین هستند::" #: ../../tutorial/stdlib2.rst:144 #, fuzzy @@ -376,26 +360,24 @@ msgid "" "\n" " start += extra_size + comp_size # skip to the next header" msgstr "" -"```python\n" -"import struct\n" +"ماژول `struct` را وارد کنید\n" "\n" -"with open('myfile.zip', 'rb') as f:\n" -" data = f.read()\n" +"با باز کردن فایل 'myfile.zip' در حالت باینری به صورت 'rb' به عنوان `f`:\n" +" اطلاعات را با استفاده از `f.read()` بخوانید\n" "\n" -"start = 0\n" -"for i in range(3): # نمایش هدرهای 3 فایل اول\n" -" start += 14\n" -" fields = struct.unpack('>> a = A(10) # ایجاد یک ارجاع\n" ">>> d = weakref.WeakValueDictionary()\n" -">>> d['primary'] = a # ایجاد نکردن ارجاع\n" -">>> d['primary'] # واکشی شیء اگر همچنان زنده باشد\n" +">>> d['primary'] = a # ایجاد ارجاع انجام نمی شود\n" +">>> d['primary'] # شی را در صورت زنده بودن واکشی کن\n" "10\n" -">>> del a # حذف تنها ارجاع\n" -">>> gc.collect() # اجرای هم زمان جمع آوری زباله\n" +">>> del a # رفع آن یک ارجاع\n" +">>> gc.collect() # راه اندازی جمع آوری زباله بلافاصله\n" "0\n" -">>> d['primary'] # ورود به طور خودکار حذف شد\n" +">>> d['primary'] # ورودی به طور خودکار حذف شد\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" -" d['primary'] # ورود به طور خودکار حذف شد\n" +" d['primary'] # ورودی به طور خودکار حذف شد\n" " File \"C:/python313/lib/weakref.py\", line 46, in __getitem__\n" " o = self.data[key]()\n" "KeyError: 'primary'" @@ -681,7 +660,7 @@ msgid "" "sometimes there is a need for alternative implementations with different " "performance trade-offs." msgstr "" -"نیازهای بسیاری از ساختارهای داده را می توان با نوع لیست داخلی برآورده کرد. " +"نیازهای بسیاری از ساختارهای داده را می توان با نوع فهرست داخلی برآورده کرد. " "با این حال، گاهی اوقات نیاز به پیاده سازی های جایگزین با مبادلات عملکردی " "متفاوت وجود دارد." @@ -694,11 +673,12 @@ msgid "" "unsigned binary numbers (typecode ``\"H\"``) rather than the usual 16 bytes " "per entry for regular lists of Python int objects::" msgstr "" -"ماژول :mod:`array` یک شئ :class:`~array.array` ارائه می دهد که شبیه به لیستی" -" است که تنها داده های همگن را ذخیره می کند و آن را به صورت فشرده تر ذخیره می" -" کند. مثال زیر یک آرایه از اعداد را نشان می دهد که به صورت اعداد باینری بدون" -" علامت دو بایتی (کد نوع ``\"H\"``) ذخیره شده اند، به جای حالت معمول 16 بایت " -"برای هر ورودی در لیست های معمولی اشیاء int پایتون::" +"ماژول :mod:`array` یک شیء :class:`~array.array` فراهم می کند که شبیه به یک " +"لیست است اما فقط داده های همگن را ذخیره کرده و آن را به صورت فشرده تر ذخیره " +"می کند. مثال زیر یک آرایه از اعداد را نشان می دهد که به عنوان اعداد باینری " +"بدون علامت دو بایتی (با کد نوع ``\"H\"``) ذخیره شده اند. این در مقابل ذخیره " +"سازی معمول 16 بایت به ازای هر ورودی برای لیست های معمولی از اشیاء int در " +"پایتون است::" #: ../../tutorial/stdlib2.rst:302 #, fuzzy @@ -710,14 +690,12 @@ msgid "" ">>> a[1:3]\n" "array('H', [10, 700])" msgstr "" -"```python\n" -">>> از ماژول array کلاس array را وارد کنید\n" +">>> from array import array\n" ">>> a = array('H', [4000, 10, 700, 22222])\n" ">>> sum(a)\n" "26932\n" ">>> a[1:3]\n" -"array('H', [10, 700])\n" -"```" +"array('H', [10, 700])" #: ../../tutorial/stdlib2.rst:309 #, fuzzy @@ -727,10 +705,10 @@ msgid "" "slower lookups in the middle. These objects are well suited for implementing" " queues and breadth first tree searches::" msgstr "" -"ماژول :mod:`collections` یک شیء :class:`~collections.deque` فراهم می کند که " -"شبیه به یک لیست است با قابلیت افزودن و حذف سریع تر از سمت چپ، اما جستجو در " -"وسط آن کندتر است. این اشیاء برای پیاده سازی صف ها و جستجوهای عرضی درخت مناسب" -" هستند." +"ماژول :mod:`collections` یک شیء :class:`~collections.deque` را فراهم می کند " +"که شبیه به یک لیست است با این تفاوت که اضافه کردن و حذف از سمت چپ در آن سریع" +" تر است اما جستجو در میانه کندتر صورت می گیرد. این اشیاء برای پیاده سازی صف " +"ها و جستجو به روش اول سطح درخت به خوبی مناسب هستند::" #: ../../tutorial/stdlib2.rst:314 #, fuzzy @@ -741,13 +719,11 @@ msgid "" ">>> print(\"Handling\", d.popleft())\n" "Handling task1" msgstr "" -"```python\n" ">>> from collections import deque\n" -">>> d = deque([\"کار1\", \"کار2\", \"کار3\"])\n" -">>> d.append(\"کار4\")\n" -">>> print(\"در حال رسیدگی به\", d.popleft())\n" -"در حال رسیدگی به کار1\n" -"```" +">>> d = deque([\"task1\", \"task2\", \"task3\"])\n" +">>> d.append(\"task4\")\n" +">>> print(\"Handling\", d.popleft())\n" +"Handling task1" #: ../../tutorial/stdlib2.rst:322 #, fuzzy @@ -760,30 +736,13 @@ msgid "" " return m\n" " unsearched.append(m)" msgstr "" -"در جایی از داده های ورودی، ``unsearched = deque([starting_node])`` تعریف شده است که برای ایجاد یک صف دوبل (double-ended queue) از گره شروع استفاده می شود.\n" -"\n" -"تابع ``breadth_first_search`` به صورت زیر تعریف شده است:\n" -"\n" -"```\n" +"unsearched = deque([starting_node])\n" "def breadth_first_search(unsearched):\n" " node = unsearched.popleft()\n" " for m in gen_moves(node):\n" -"```\n" -"\n" -"این خط اول گره اول را از ابتدای صف ``unsearched`` خارج کرده و به عنوان ``node`` تعریف می کند. سپس، برای هر حرکت ممکن از طریق ``for m in gen_moves(node):`` حلقه اجرا می شود.\n" -"\n" -"در طول اجرای حلقه، ابتدا بررسی می کند که آیا حرکت جاری هدف است یا خیر:\n" -"\n" -"```\n" " if is_goal(m):\n" " return m\n" -"```\n" -"\n" -"اگر حرکت جاری هدف باشد، آن حرکت بازگردانده می شود. در غیراین صورت، حرکت به انتهای صف ``unsearched`` اضافه می شود:\n" -"\n" -"```\n" -" unsearched.append(m)\n" -"```" +" unsearched.append(m)" #: ../../tutorial/stdlib2.rst:330 #, fuzzy @@ -792,8 +751,8 @@ msgid "" "other tools such as the :mod:`bisect` module with functions for manipulating" " sorted lists::" msgstr "" -"علاوه بر پیاده سازی های جایگزین لیست، کتابخانه ابزارهای دیگری نیز ارائه می " -"دهد، مانند ماژول :mod:`bisect` با تابع هایی برای دستکاری لیست های مرتب شده::" +"علاوه بر پیاده سازی های لیست جایگزین، این کتابخانه ابزارهای دیگری نیز ارائه " +"می دهد مثل ماژول :mod:`bisect` با توابعی برای دستکاری لیست های مرتب شده::" #: ../../tutorial/stdlib2.rst:334 #, fuzzy @@ -804,13 +763,11 @@ msgid "" ">>> scores\n" "[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" msgstr "" -"```\n" ">>> import bisect\n" ">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" ">>> bisect.insort(scores, (300, 'ruby'))\n" ">>> scores\n" -"[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]\n" -"```" +"[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" #: ../../tutorial/stdlib2.rst:340 #, fuzzy @@ -822,8 +779,8 @@ msgid "" msgstr "" "ماژول :mod:`heapq` توابعی برای پیاده سازی heapها بر اساس لیست های معمولی " "ارائه می دهد. کم ارزش ترین ورودی همیشه در موقعیت صفر نگه داشته می شود. این " -"کار برای برنامه هایی مفید است که به طور مکرر به کوچک ترین عنصر دسترسی دارند " -"اما نمی خواهند کل لیست را به طور کامل مرتب کنند." +"برای برنامه هایی که به طور مکرر به کوچک ترین عنصر دسترسی دارند اما نمی " +"خواهند یک مرتب سازی کامل لیست اجرا کنند، مفید است::" #: ../../tutorial/stdlib2.rst:345 #, fuzzy @@ -835,14 +792,12 @@ msgid "" ">>> [heappop(data) for i in range(3)] # fetch the three smallest entries\n" "[-5, 0, 1]" msgstr "" -"```python\n" ">>> از heapq وارد کنید heapify, heappop, heappush\n" -">>> داده ها = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" -">>> heapify(داده ها) # لیست را به ترتیب هیپ مرتب کنید\n" -">>> heappush(داده ها, -5) # یک ورودی جدید اضافه کنید\n" -">>> [heappop(داده ها) برای i در محدوده(3)] # سه ورودی کوچک تر را دریافت کنید\n" -"[-5, 0, 1]\n" -"```" +">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" +">>> heapify(data) # لیست را به ترتیب هیپ مرتب کنید\n" +">>> heappush(data, -5) # یک ورودی جدید اضافه کنید\n" +">>> [heappop(data) for i in range(3)] # سه ورودی کوچک تر را بگیرید\n" +"[-5, 0, 1]" #: ../../tutorial/stdlib2.rst:356 #, fuzzy @@ -857,15 +812,17 @@ msgid "" "implementation of binary floating point, the class is especially helpful for" msgstr "" "ماژول :mod:`decimal` یک نوع داده :class:`~decimal.Decimal` برای محاسبات " -"اعشاری با نقطه شناور ارائه می دهد. در مقایسه با پیاده سازی :class:`float` " -"داخلی برای نقطه شناور دودویی، این کلاس به ویژه مفید است برای" +"اعشاری با نقطه شناور ارائه می دهد. در مقایسه با پیاده سازی داخلی " +":class:`float` برای اعداد با نقطه شناور دودویی، این کلاس به ویژه برای..." #: ../../tutorial/stdlib2.rst:362 #, fuzzy msgid "" "financial applications and other uses which require exact decimal " "representation," -msgstr "کاربردهای مالی و سایر مواردی که نیاز به نمایش اعشاری دقیق دارند،" +msgstr "" +"برنامه های کاربردی مالی و استفاده های دیگری که نیاز به نمایش دقیق اعشاری " +"دارند،" #: ../../tutorial/stdlib2.rst:364 #, fuzzy @@ -875,12 +832,12 @@ msgstr "کنترل بر دقت،" #: ../../tutorial/stdlib2.rst:365 #, fuzzy msgid "control over rounding to meet legal or regulatory requirements," -msgstr "کنترل بر روی گرد کردن برای مطابقت با الزامات قانونی یا مقرراتی،" +msgstr "کنترل بر گرد کردن به منظور رعایت الزامات قانونی یا مقرراتی،" #: ../../tutorial/stdlib2.rst:366 #, fuzzy msgid "tracking of significant decimal places, or" -msgstr "ردیابی ارقام اعشاری مهم، یا" +msgstr "ردیابی ارقام اعشاری قابل توجه، یا" #: ../../tutorial/stdlib2.rst:367 #, fuzzy @@ -888,8 +845,8 @@ msgid "" "applications where the user expects the results to match calculations done " "by hand." msgstr "" -"برنامه هایی که کاربر انتظار دارد نتایج با محاسبات دستی انجام شده تطابق داشته" -" باشند." +"کاربردهایی که کاربر انتظار دارد نتایج با محاسبات انجام شده به صورت دستی " +"تطابق داشته باشند." #: ../../tutorial/stdlib2.rst:370 #, fuzzy @@ -898,9 +855,9 @@ msgid "" "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" -"به عنوان مثال، محاسبه مالیات ۵٪ بر روی هزینه ۷۰ سنتی تلفن، در محاسبات اعشاری" -" و محاسبات اعشاری دودویی نتایج متفاوتی می دهد. این تفاوت زمانی محسوس می شود " -"که نتایج به نزدیک ترین سنت گرد شوند::" +"به عنوان مثال، محاسبه ۵٪ مالیات بر روی یک هزینه تماس ۷۰ سنتی نتایج متفاوتی " +"در محاسبات اعشاری نقطه شناور و محاسبات دودویی نقطه شناور می دهد. این تفاوت " +"زمانی که نتایج به نزدیک ترین سنت گرد شوند به وضوح قابل توجه خواهد بود::" #: ../../tutorial/stdlib2.rst:374 #, fuzzy @@ -911,12 +868,15 @@ msgid "" ">>> round(.70 * 1.05, 2)\n" "0.73" msgstr "" -"```>>> از decimal وارد کنید *\n" +"متغیر `Decimal` در کتابخانه `decimal` سطح دقت بالاتری ارائه می دهد و می تواند برای محاسبات مالی و دیگر کاربردهایی که به دقت بالایی نیاز دارند استفاده شود. در محاسبات اعشاری، ممکن است به یک نتیجه متفاوت از آنچه انتظار دارید برسید، زیرا اعشار دودویی نمی تواند تمام اعداد اعشاری را به طور دقیق نمایش دهد.\n" +"\n" +"به عنوان مثال::\n" +"\n" +">>> from decimal import Decimal\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" "Decimal('0.74')\n" ">>> round(.70 * 1.05, 2)\n" -"0.73\n" -"```" +"0.73" #: ../../tutorial/stdlib2.rst:380 #, fuzzy @@ -928,10 +888,10 @@ msgid "" "decimal quantities." msgstr "" "نتیجه :class:`~decimal.Decimal` یک صفر انتهایی را حفظ می کند و به طور خودکار" -" چهار رقم معنی دار را از عملوندهایی با دو رقم معنی دار نتیجه گیری می کند. " -"``Decimal`` همانند ریاضیات دستی عمل می کند و مشکلاتی را که ممکن است در زمان " -"عدم توانایی نمایش دقیق اعداد اعشاری به وسیله نقطه شناور دودویی بوجود آید، " -"اجتناب می کند." +" اهمیت چهار مکانی را از ضرایبی با اهمیت دو مکانی استنباط می کند. Decimal " +"ریاضیات انجام شده به صورت دستی را بازتولید می کند و از مسائلی که می تواند " +"زمانی که نقطه شناور باینری نمی تواند دقیقاً مقادیر ده دهی را نمایش دهد، " +"جلوگیری می کند." #: ../../tutorial/stdlib2.rst:386 #, fuzzy @@ -940,9 +900,9 @@ msgid "" "modulo calculations and equality tests that are unsuitable for binary " "floating point::" msgstr "" -"بازنمایی دقیق به کلاس :class:`~decimal.Decimal` امکان می دهد تا محاسبات باقی" -" مانده و آزمون های تساوی ای که برای اعداد اعشاری دودویی نامناسب هستند را " -"انجام دهد." +"بازنمایی دقیق به کلاس :class:`~decimal.Decimal` امکان می دهد تا محاسبات " +"پیمانه ای و آزمون های برابری را که برای اعداد اعشاری دودویی نامناسب هستند، " +"انجام دهد::" #: ../../tutorial/stdlib2.rst:390 #, fuzzy @@ -963,17 +923,16 @@ msgstr "" "0.09999999999999995\n" "\n" ">>> sum([Decimal('0.1')]*10) == Decimal('1.0')\n" -"درست\n" +"True\n" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" -"نادرست" +"False" #: ../../tutorial/stdlib2.rst:400 #, fuzzy msgid "" "The :mod:`decimal` module provides arithmetic with as much precision as " "needed::" -msgstr "" -"ماژول :mod:`decimal` محاسبات حسابی را با هر دقتی که لازم باشد ارائه می دهد::" +msgstr "ماژول :mod:`decimal` محاسبات ریاضی را با دقت مورد نیاز فراهم می کند::" #: ../../tutorial/stdlib2.rst:402 #, fuzzy diff --git a/tutorial/venv.po b/tutorial/venv.po index dcd0942d2..332717929 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/venv.rst:6 #, fuzzy msgid "Virtual Environments and Packages" -msgstr "محیط های مجازی و بسته ها" +msgstr "محیط های مجازی و پکیج ها" #: ../../tutorial/venv.rst:9 #, fuzzy @@ -40,10 +40,11 @@ msgid "" "bug has been fixed or the application may be written using an obsolete " "version of the library's interface." msgstr "" -"برنامه های پایتون اغلب از پکیج ها و ماژول هایی استفاده می کنند که به عنوان " -"بخشی از کتابخانه استاندارد ارائه نمی شوند. برنامه ها گاهی به نسخه خاصی از یک" -" کتابخانه نیاز دارند، زیرا ممکن است برنامه نیاز داشته باشد یک باگ خاص رفع " -"شده باشد یا برنامه با استفاده از نسخه قدیمی رابط کتابخانه نوشته شده باشد." +"برنامه های Python اغلب از پکیج ها و ماژول هایی استفاده می کنند که به عنوان " +"بخشی از کتابخانه استاندارد ارائه نمی شوند. گاهی اوقات برنامه ها به یک نسخه " +"خاص از یک کتابخانه نیاز دارند، زیرا ممکن است برنامه به این صورت باشد که یک " +"باگ خاص در آن رفع شده است یا برنامه با استفاده از یک نسخه قدیمی از رابط " +"کتابخانه نوشته شده باشد." #: ../../tutorial/venv.rst:17 #, fuzzy @@ -54,11 +55,11 @@ msgid "" " are in conflict and installing either version 1.0 or 2.0 will leave one " "application unable to run." msgstr "" -"این بدان معناست که ممکن است نصب یک نسخه ی Python نتواند نیازهای هر برنامه ای" -" را برآورده سازد. اگر برنامه ی A به نسخه ی 1.0 از یک ماژول خاص نیاز داشته " -"باشد ولی برنامه ی B به نسخه ی 2.0 نیاز داشته باشد، در این صورت این نیازها در" -" تضاد هستند و نصب کردن هر یک از نسخه های 1.0 و یا 2.0 باعث خواهد شد که یکی " -"از برنامه ها قادر به اجرا نباشد." +"این به این معنی است که ممکن است یک نصب پایتون نتواند نیازهای تمامی برنامه ها" +" را برآورده کند. اگر برنامه A به نسخه 1.0 یک ماژول خاص نیاز داشته باشد، اما " +"برنامه B به نسخه 2.0 نیاز داشته باشد، در این صورت نیازها در تضاد هستند و نصب" +" هر کدام از نسخه های 1.0 یا 2.0 باعث می شود که یکی از برنامه ها نتواند اجرا " +"شود." #: ../../tutorial/venv.rst:23 #, fuzzy @@ -68,8 +69,8 @@ msgid "" "particular version of Python, plus a number of additional packages." msgstr "" "راه حل این مشکل ایجاد یک :term:`virtual environment` است، یک درخت دایرکتوری " -"مستقل که شامل یک نصب Python برای نسخه خاصی از Python و به علاوه تعدادی بسته " -"های اضافی است." +"مستقل که شامل یک نصب پایتون برای یک نسخه خاص از پایتون به علاوه تعدادی بسته " +"اضافی می باشد." #: ../../tutorial/venv.rst:27 #, fuzzy @@ -81,11 +82,11 @@ msgid "" "application B requires a library be upgraded to version 3.0, this will not " "affect application A's environment." msgstr "" -"سپس برنامه های مختلف می توانند از محیط های مجازی متفاوتی استفاده کنند. برای " -"حل مثال قبلی از نیازمندی های متناقض، برنامه A می تواند محیط مجازی خاص خود را" -" با نسخه 1.0 نصب شده داشته باشد، در حالی که برنامه B می تواند محیط مجازی " -"دیگری با نسخه 2.0 داشته باشد. اگر برنامه B نیاز داشته باشد که یک کتابخانه به" -" نسخه 3.0 ارتقا یابد، این ارتقا محیط برنامه A را تحت تأثیر قرار نخواهد داد." +"برنامه های مختلف می توانند از محیط های مجازی مختلف استفاده کنند. برای حل " +"مثال قبلی از نیازمندی های متناقض، برنامه A می تواند محیط مجازی خود را با " +"نسخه 1.0 نصب شده داشته باشد در حالی که برنامه B محیط مجازی دیگری با نسخه 2.0" +" دارد. اگر برنامه B نیاز به ارتقاء یک کتابخانه به نسخه 3.0 داشته باشد، این " +"موضوع بر محیط برنامه A تأثیری نخواهد داشت." #: ../../tutorial/venv.rst:36 #, fuzzy @@ -101,11 +102,10 @@ msgid "" "instance, executing the command with ``python3.12`` will install version " "3.12." msgstr "" -"ماژولی که برای ایجاد و مدیریت محیط های مجازی استفاده می شود، به نام " -":mod:`venv` شناخته می شود. :mod:`venv` نسخه پایتونی که فرمان از آن اجرا شده " -"است را نصب خواهد کرد (همانطور که توسط گزینه :option:`--version` گزارش شده " -"است). به عنوان مثال، اجرای فرمان با ``python3.12`` نسخه 3.12 را نصب خواهد " -"کرد." +"ماژولی که برای ایجاد و مدیریت محیط های مجازی استفاده می شود، :mod:`venv` " +"نامیده می شود. :mod:`venv` نسخه ای از پایتون را نصب می کند که فرمان از آن " +"اجرا شده است (طبق گزارش گزینه :option:`--version`). به عنوان مثال، اجرای " +"فرمان با ``python3.12`` نسخه 3.12 را نصب خواهد کرد." #: ../../tutorial/venv.rst:44 #, fuzzy @@ -115,8 +115,8 @@ msgid "" "path::" msgstr "" "برای ایجاد یک محیط مجازی، یک دایرکتوری را انتخاب کنید که می خواهید آن را در " -"آنجا قرار دهید و با استفاده از ماژول :mod:`venv` به صورت یک اسکریپت همراه با" -" مسیر دایرکتوری اجرا کنید::" +"آنجا قرار دهید، و ماژول :mod:`venv` را به عنوان یک اسکریپت با مسیر دایرکتوری" +" اجرا کنید::" #: ../../tutorial/venv.rst:47 #, fuzzy @@ -130,9 +130,9 @@ msgid "" "also create directories inside it containing a copy of the Python " "interpreter and various supporting files." msgstr "" -"اگر شاخه ``tutorial-env`` وجود نداشته باشد، این عمل آن را ایجاد خواهد کرد و " -"همچنین شاخه هایی داخل آن ایجاد می کند که شامل یک نسخه از مفسر Python و فایل " -"های پشتیبانی مختلف می باشد." +"این کار، دایرکتوری ``tutorial-env`` را در صورتی که وجود نداشته باشد ایجاد می" +" کند و همچنین دایرکتوری هایی در داخل آن ایجاد می کند که شامل یک نسخه از مفسر" +" Python و فایل های پشتیبانی مختلف هستند." #: ../../tutorial/venv.rst:53 #, fuzzy @@ -143,39 +143,40 @@ msgid "" "prevents clashing with ``.env`` environment variable definition files that " "some tooling supports." msgstr "" -"یک مکان رایج برای دایرکتوری یک محیط مجازی، ``.venv`` است. این نام باعث می " -"شود که دایرکتوری معمولاً در شل شما پنهان بماند و بدین ترتیب از مسیر خارج " -"شود، در حالی که نامی به آن می دهد که توضیح می دهد چرا این دایرکتوری وجود " -"دارد. همچنین از تداخل با فایل های تعریف متغیر محیطی ``.env`` که برخی ابزارها" -" پشتیبانی می کنند، جلوگیری می کند." +"یک مکان معمول برای یک محیط مجازی ``.venv`` است. این نام به طور معمول " +"دایرکتوری را در پوسته شما پنهان نگه می دارد و در نتیجه آن را از دید خارج " +"کرده و در عین حال نامی به آن می دهد که توضیح می دهد چرا دایرکتوری وجود دارد." +" همچنین از تداخل با فایل های تعریف متغیر محیطی ``.env`` که برخی ابزارها از " +"آن ها پشتیبانی می کنند، جلوگیری می کند." #: ../../tutorial/venv.rst:59 #, fuzzy msgid "Once you've created a virtual environment, you may activate it." -msgstr "پس از اینکه یک محیط مجازی را ایجاد کردید، می توانید آن را فعال کنید." +msgstr "پس از ایجاد یک محیط مجازی، می توانید آن را فعال کنید." #: ../../tutorial/venv.rst:61 #, fuzzy msgid "On Windows, run::" -msgstr "در ویندوز اجرا کنید::" +msgstr "در ویندوز، اجرا کنید::" #: ../../tutorial/venv.rst:63 #, fuzzy msgid "tutorial-env\\Scripts\\activate" msgstr "" -"```bash\n" +"```plaintext\n" +"اجرا:\n" "tutorial-env\\Scripts\\activate\n" "```" #: ../../tutorial/venv.rst:65 #, fuzzy msgid "On Unix or MacOS, run::" -msgstr "در سیستم عامل Unix یا MacOS، این دستور را اجرا کنید::" +msgstr "در Unix یا MacOS، اجرا کنید::" #: ../../tutorial/venv.rst:67 #, fuzzy msgid "source tutorial-env/bin/activate" -msgstr "منبع tutorial-env/bin/activate" +msgstr "source tutorial-env/bin/activate" #: ../../tutorial/venv.rst:69 #, fuzzy @@ -184,9 +185,9 @@ msgid "" "or :program:`fish` shells, there are alternate ``activate.csh`` and " "``activate.fish`` scripts you should use instead.)" msgstr "" -"این اسکریپت برای پوسته bash نوشته شده است. اگر از پوسته های :program:`csh` " -"یا :program:`fish` استفاده می کنید، باید به جای آن از اسکریپت های جایگزین " -"``activate.csh`` و ``activate.fish`` استفاده کنید." +"(این اسکریپت برای شل bash نوشته شده است. اگر شما از شل های :program:`csh` یا" +" :program:`fish` استفاده می کنید، باید به جای آن از اسکریپت های " +"``activate.csh`` و ``activate.fish`` استفاده کنید.)" #: ../../tutorial/venv.rst:74 #, fuzzy @@ -196,9 +197,9 @@ msgid "" "running ``python`` will get you that particular version and installation of " "Python. For example:" msgstr "" -"فعال سازی محیط مجازی باعث می شود اعلان پوسته شما تغییر کند تا نشان دهد که از" -" کدام محیط مجازی استفاده می کنید و محیط را طوری تغییر دهد که اجرای " -"``python`` آن نسخه و نصب خاص از Python را به شما بدهد. به عنوان مثال:" +"فعال کردن محیط مجازی، اعلان شل شما را تغییر می دهد تا نشان دهد از کدام محیط " +"مجازی استفاده می کنید و محیط را به صورتی تغییر می دهد که اجرای ``python`` " +"نسخه و نصب خاصی از پایتون را برای شما فراهم کند. به عنوان مثال:" #: ../../tutorial/venv.rst:79 #, fuzzy @@ -213,7 +214,6 @@ msgid "" "'~/envs/tutorial-env/lib/python3.5/site-packages']\n" ">>>" msgstr "" -"```bash\n" "$ source ~/envs/tutorial-env/bin/activate\n" "(tutorial-env) $ python\n" "Python 3.5.1 (default, May 6 2016, 10:59:36)\n" @@ -222,8 +222,7 @@ msgstr "" ">>> sys.path\n" "['', '/usr/local/lib/python35.zip', ...,\n" "'~/envs/tutorial-env/lib/python3.5/site-packages']\n" -">>>\n" -"```" +">>>" #: ../../tutorial/venv.rst:91 #, fuzzy @@ -233,17 +232,26 @@ msgstr "برای غیرفعال کردن یک محیط مجازی، تایپ ک #: ../../tutorial/venv.rst:93 #, fuzzy msgid "deactivate" -msgstr "غیرفعال کردن" +msgstr "" +"\n" +"غیرفعال کردن" #: ../../tutorial/venv.rst:95 #, fuzzy msgid "into the terminal." -msgstr "در داخل \"ترمینال\" وارد کنید." +msgstr "" +"متغیرهای ``f-string`` در پایتون قابلیت قالب بندی رشته ها را با استفاده از مشخصات ارائه شده در قالب بندی ارائه می دهند. برای استفاده از این ویژگی، قبل از شروع یک رشته با استفاده از یک ``f``، شروع به معرفی یک ``f-string`` می کنیم. مقادیر دلخواه را می توان به راحتی توسط آکولادها محصور کرد که می توانند شامل هر بیان پایتون باشند. برای مثال::\n" +"\n" +" name = \"پایتون\"\n" +" version = 3.9\n" +" description = f\"زبان برنامه نویسی {name} نسخه {version} منتشر شد\"\n" +"\n" +"این ویژگی قالب بندی را می توان برای اکثر اشیاء در پایتون به طور مستقیم استفاده کرد، تنها با اضافه کردن یک رشته قالب بندی مرتب در داخل آکولادها، مانند ``{value:.2f}`` برای قالب بندی اعداد اعشاری با دو رقم اعشار." #: ../../tutorial/venv.rst:98 #, fuzzy msgid "Managing Packages with pip" -msgstr "مدیریت پکیج ها با استفاده از pip" +msgstr "مدیریت بسته ها با استفاده از pip" #: ../../tutorial/venv.rst:100 #, fuzzy @@ -253,10 +261,10 @@ msgid "" "Package Index `_. You can browse the Python Package Index" " by going to it in your web browser." msgstr "" -"شما می توانید بسته ها را با استفاده از برنامه ای به نام :program:`pip` نصب، " -"به روزرسانی و حذف کنید. به طور پیش فرض ``pip`` بسته ها را از `Python Package" -" Index `_ نصب می کند. شما می توانید با رفتن به آن در " -"مرورگر وب خود به مرور فهرست بسته های پایتون بپردازید." +"شما می توانید به کمک برنامه ای به نام :program:`pip` بسته ها را نصب، ارتقا و" +" حذف کنید. به طور پیش فرض، ``pip`` بسته ها را از `Python Package Index " +"`_ نصب می کند. شما می توانید با مراجعه به مرورگر وب خود، " +"به فهرست بسته های پایتون دسترسی پیدا کنید." #: ../../tutorial/venv.rst:105 #, fuzzy @@ -265,16 +273,15 @@ msgid "" " etc. (Consult the :ref:`installing-index` guide for complete documentation" " for ``pip``.)" msgstr "" -"``pip`` شامل تعدادی زیر فرمان است: \"install\"، \"uninstall\"، \"freeze\"، و" -" غیره. (برای مستندات کامل ``pip`` به راهنمای :ref:`installing-index` مراجعه " -"کنید.)" +"``pip`` چندین زیر فرمان دارد: \"install\"، \"uninstall\"، \"freeze\" و غیره." +" (برای مستندات کامل ``pip`` به راهنمای :ref:`installing-index` مراجعه کنید.)" #: ../../tutorial/venv.rst:109 #, fuzzy msgid "" "You can install the latest version of a package by specifying a package's " "name:" -msgstr "شما می توانید آخرین نسخه یک بسته را با مشخص کردن نام بسته نصب کنید:" +msgstr "می توانید جدیدترین نسخه یک بسته را با مشخص کردن نام بسته نصب کنید:" #: ../../tutorial/venv.rst:111 #, fuzzy @@ -287,11 +294,11 @@ msgid "" "Successfully installed novas-3.1.1.3" msgstr "" "(tutorial-env) $ python -m pip install novas\n" -"در حال جمع آوری novas\n" -" دانلود novas-3.1.1.3.tar.gz (136 کیلوبایت)\n" -"در حال نصب پکیج های جمع آوری شده: novas\n" -" اجرای setup.py برای نصب novas\n" -"به طور موفقیت آمیز novas-3.1.1.3 نصب شد" +"Collecting novas\n" +" Downloading novas-3.1.1.3.tar.gz (136kB)\n" +"Installing collected packages: novas\n" +" Running setup.py install for novas\n" +"Successfully installed novas-3.1.1.3" #: ../../tutorial/venv.rst:120 #, fuzzy @@ -299,8 +306,8 @@ msgid "" "You can also install a specific version of a package by giving the package " "name followed by ``==`` and the version number:" msgstr "" -"شما همچنین می توانید یک نسخه خاص از یک بسته را با وارد کردن نام بسته به " -"همراه ``==`` و شماره نسخه نصب کنید:" +"شما همچنین می توانید نسخه خاصی از یک بسته را با ارائه نام بسته به همراه " +"``==`` و شماره نسخه نصب کنید:" #: ../../tutorial/venv.rst:123 #, fuzzy @@ -312,10 +319,10 @@ msgid "" "Successfully installed requests-2.6.0" msgstr "" "(tutorial-env) $ python -m pip install requests==2.6.0\n" -"در حال جمع آوری requests==2.6.0\n" -" با استفاده از کش requests-2.6.0-py2.py3-none-any.whl\n" -"در حال نصب بسته های جمع آوری شده: requests\n" -"با موفقیت requests-2.6.0 نصب شد" +"جمع آوری requests==2.6.0\n" +" استفاده از کش requests-2.6.0-py2.py3-none-any.whl\n" +"نصب پکیج های جمع آوری شده: requests\n" +"requests-2.6.0 با موفقیت نصب شد" #: ../../tutorial/venv.rst:131 #, fuzzy @@ -325,10 +332,10 @@ msgid "" "number to get that version, or you can run ``python -m pip install " "--upgrade`` to upgrade the package to the latest version:" msgstr "" -"اگر دوباره این دستور را اجرا کنید، ``pip`` متوجه می شود که نسخه درخواستی از " -"قبل نصب شده است و کاری انجام نمی دهد. می توانید یک شماره نسخه متفاوت را " -"ارائه دهید تا آن نسخه را دریافت کنید، یا می توانید ``python -m pip install " -"--upgrade`` را اجرا کنید تا بسته به آخرین نسخه ارتقا یابد:" +"اگر این دستور را دوباره اجرا کنید، ``pip`` متوجه می شود که نسخه درخواست شده " +"قبلاً نصب شده است و هیچ کاری انجام نمی دهد. می توانید شماره نسخه دیگری ارائه" +" دهید تا آن نسخه را دریافت کنید، یا می توانید با اجرای ``python -m pip " +"install --upgrade`` بسته را به آخرین نسخه ارتقا دهید:" #: ../../tutorial/venv.rst:136 #, fuzzy @@ -341,15 +348,13 @@ msgid "" " Successfully uninstalled requests-2.6.0\n" "Successfully installed requests-2.7.0" msgstr "" -"```plaintext\n" "(tutorial-env) $ python -m pip install --upgrade requests\n" -"در حال جمع آوری requests\n" -"در حال نصب بسته های جمع آوری شده: requests\n" -" نصب قبلی یافت شد: requests 2.6.0\n" -" در حال حذف نصب requests-2.6.0:\n" -" حذف نصب requests-2.6.0 با موفقیت انجام شد\n" -"requests-2.7.0 با موفقیت نصب شد\n" -"```" +"جمع آوری requests\n" +"نصب بسته های جمع آوری شده: requests\n" +" یافتن نصب موجود: requests 2.6.0\n" +" حذف نصب requests-2.6.0:\n" +" حذف موفقیت آمیز requests-2.6.0\n" +"نصب موفقیت آمیز requests-2.7.0" #: ../../tutorial/venv.rst:146 #, fuzzy @@ -357,8 +362,8 @@ msgid "" "``python -m pip uninstall`` followed by one or more package names will " "remove the packages from the virtual environment." msgstr "" -"``python -m pip uninstall`` به دنبال یک یا چند نام بسته باعث حذف آن بسته ها " -"از محیط مجازی خواهد شد." +"دستور ``python -m pip uninstall`` که با یک یا چند نام بسته دنبال می شود، " +"بسته ها را از محیط مجازی حذف می کند." #: ../../tutorial/venv.rst:149 #, fuzzy @@ -382,20 +387,18 @@ msgid "" "Location: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" "Requires:" msgstr "" -"```plaintext\n" "(tutorial-env) $ python -m pip show requests\n" "---\n" -"نسخه اطلاعات متادیتا: ۲.۰\n" +"نسخه ابرداده: 2.0\n" "نام: requests\n" -"نسخه: ۲.۷.۰\n" -"خلاصه: HTTP پایتون برای انسان ها.\n" -"صفحه اصلی: http://python-requests.org\n" +"نسخه: 2.7.0\n" +"خلاصه: Python HTTP برای انسان ها.\n" +"صفحه خانه: http://python-requests.org\n" "نویسنده: Kenneth Reitz\n" "ایمیل نویسنده: me@kennethreitz.com\n" "مجوز: Apache 2.0\n" -"موقعیت: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" -"نیازمندی ها:\n" -"```" +"محل قرارگیری: /Users/akuchling/envs/tutorial-env/lib/python3.4/site-packages\n" +"نیازمندی ها:" #: ../../tutorial/venv.rst:166 #, fuzzy @@ -403,8 +406,7 @@ msgid "" "``python -m pip list`` will display all of the packages installed in the " "virtual environment:" msgstr "" -"``python -m pip list`` تمامی بسته های نصب شده در محیط مجازی را نمایش خواهد " -"داد:" +"``python -m pip list`` تمامی بسته های نصب شده در محیط مجازی را نمایش می دهد:" #: ../../tutorial/venv.rst:169 #, fuzzy @@ -416,14 +418,12 @@ msgid "" "requests (2.7.0)\n" "setuptools (16.0)" msgstr "" -"```bash\n" "(tutorial-env) $ python -m pip list\n" "novas (3.1.1.3)\n" "numpy (1.9.2)\n" "pip (7.0.3)\n" "requests (2.7.0)\n" -"setuptools (16.0)\n" -"```" +"setuptools (16.0)" #: ../../tutorial/venv.rst:178 #, fuzzy @@ -433,10 +433,9 @@ msgid "" "expects. A common convention is to put this list in a ``requirements.txt`` " "file:" msgstr "" -"``python -m pip freeze`` لیستی مشابه از بسته های نصب شده تولید می کند، اما " -"خروجی از فرمتی استفاده می کند که ``python -m pip install`` انتظار دارد. یک " -"قرارداد رایج این است که این لیست را در یک فایل ``requirements.txt`` قرار " -"دهید:" +"``python -m pip freeze`` فهرستی از بسته های نصب شده تولید می کند، اما خروجی " +"با فرمتی است که ``python -m pip install`` انتظار دارد. یک رسم متداول این است" +" که این فهرست را در یک فایل ``requirements.txt`` قرار دهید:" #: ../../tutorial/venv.rst:182 #, fuzzy @@ -447,13 +446,11 @@ msgid "" "numpy==1.9.2\n" "requests==2.7.0" msgstr "" -"```shell\n" "(tutorial-env) $ python -m pip freeze > requirements.txt\n" "(tutorial-env) $ cat requirements.txt\n" "novas==3.1.1.3\n" "numpy==1.9.2\n" -"requests==2.7.0\n" -"```" +"requests==2.7.0" #: ../../tutorial/venv.rst:190 #, fuzzy @@ -462,9 +459,9 @@ msgid "" "shipped as part of an application. Users can then install all the necessary" " packages with ``install -r``:" msgstr "" -"سپس می توان \"``requirements.txt``\" را به سیستم کنترل نسخه متعهد کرده و به " -"عنوان بخشی از یک برنامه ارسال نمود. کاربران سپس می توانند با استفاده از " -"\"``install -r``\" تمام بسته های لازم را نصب کنند." +"سپس می توان ``requirements.txt`` را به کنترل نسخه متعهد کرد و به عنوان بخشی " +"از برنامه ارسال کرد. کاربران سپس می توانند با استفاده از ``install -r`` " +"تمامی بسته های ضروری را نصب کنند:" #: ../../tutorial/venv.rst:194 #, fuzzy @@ -480,16 +477,16 @@ msgid "" " Running setup.py install for novas\n" "Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" msgstr "" -"(tutorial-env) $ python -m pip install -r requirements.txt \n" -"در حال جمع آوری novas==3.1.1.3 (از -r requirements.txt (خط 1)) \n" -" ... \n" -"در حال جمع آوری numpy==1.9.2 (از -r requirements.txt (خط 2)) \n" -" ... \n" -"در حال جمع آوری requests==2.7.0 (از -r requirements.txt (خط 3)) \n" -" ... \n" -"در حال نصب پکیج های جمع آوری شده: novas، numpy، requests \n" -" اجرای setup.py install برای novas \n" -"با موفقیت نصب شد: novas-3.1.1.3 numpy-1.9.2 requests-2.7.0 " +"(tutorial-env) $ python -m pip install -r requirements.txt\n" +"در حال جمع آوری novas==3.1.1.3 (از -r requirements.txt (خط 1))\n" +" ...\n" +"در حال جمع آوری numpy==1.9.2 (از -r requirements.txt (خط 2))\n" +" ...\n" +"در حال جمع آوری requests==2.7.0 (از -r requirements.txt (خط 3))\n" +" ...\n" +"در حال نصب پکیج های جمع آوری شده: novas, numpy, requests\n" +" اجرای setup.py install برای novas\n" +"با موفقیت نصب شد: novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" #: ../../tutorial/venv.rst:207 #, fuzzy diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index d05032b44..f0611533f 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/whatnow.rst:5 #, fuzzy msgid "What Now?" -msgstr "چی کاری باید انجام داد؟" +msgstr "حال چه کنیم؟" #: ../../tutorial/whatnow.rst:7 #, fuzzy @@ -33,9 +33,9 @@ msgid "" "--- you should be eager to apply Python to solving your real-world problems." " Where should you go to learn more?" msgstr "" -"مطالعه این آموزش احتمالاً علاقه شما به استفاده از Python را تقویت کرده است " -"--- شما باید مشتاق باشید که Python را برای حل مسائل دنیای واقعی خود به کار " -"ببرید. از کجا باید یادگیری بیشتر را شروع کنید؟" +"خواندن این آموزش احتمالاً علاقه شما به استفاده از پایتون را تقویت کرده است " +"--- شما باید مشتاق باشید که پایتون را برای حل مسائل واقعی تان به کار بگیرید." +" برای یادگیری بیشتر کجا باید بروید؟" #: ../../tutorial/whatnow.rst:11 #, fuzzy @@ -43,14 +43,15 @@ msgid "" "This tutorial is part of Python's documentation set. Some other documents " "in the set are:" msgstr "" -"این آموزش بخشی از مجموعه مستندات پایتون است. برخی دیگر از مستندات موجود در " -"این مجموعه عبارتند از:" +"این آموزش بخشی از مجموعه مستندات پایتون است. برخی از سایر اسناد در این " +"مجموعه عبارتند از:" #: ../../tutorial/whatnow.rst:14 #, fuzzy msgid ":ref:`library-index`:" msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را فراهم کنید." +"متاسفانه بدون مشاهده متن اصلی نمی توانم ترجمه ای ارائه بدهم. لطفاً متن اصلی " +"را ارسال فرمایید تا به شما کمک کنم." #: ../../tutorial/whatnow.rst:16 #, fuzzy @@ -63,12 +64,12 @@ msgid "" "many other tasks. Skimming through the Library Reference will give you an " "idea of what's available." msgstr "" -"شما باید این راهنما را مرور کنید که مرجع کاملی (اگرچه مختصر) درباره انواع، " -"توابع و ماژول های موجود در کتابخانه استاندارد ارائه می دهد. توزیع استاندارد " -"Python شامل *lot* کد اضافی است. ماژول هایی برای خواندن صندوق های پستی " -"یونیکس، بازیابی اسناد از طریق HTTP، تولید اعداد تصادفی، تجزیه گزینه های خط " -"فرمان، فشرده سازی داده ها و بسیاری وظایف دیگر وجود دارند. مروری بر مرجع " -"کتابخانه به شما ایده ای از قابلیت های موجود خواهد داد." +"شما باید این راهنما را مرور کنید که مواد مرجع کامل (هرچند مختصر) درباره " +"انواع، توابع و ماژول های موجود در کتابخانه استاندارد ارائه می دهد. توزیع " +"استاندارد پایتون شامل یک *lot* از کد اضافی است. ماژول هایی برای خواندن صندوق" +" های پستی یونیکس، بازیابی اسناد از طریق HTTP، تولید اعداد تصادفی، تجزیه " +"گزینه های خط فرمان، فشرده سازی داده ها و بسیاری از وظایف دیگر وجود دارد. " +"مرور اجمالی از مرجع کتابخانه به شما ایده ای از آنچه موجود است خواهد داد." #: ../../tutorial/whatnow.rst:24 #, fuzzy @@ -76,8 +77,8 @@ msgid "" ":ref:`installing-index` explains how to install additional modules written " "by other Python users." msgstr "" -":ref:`installing-index` توضیح می دهد که چگونه ماژول های اضافی نوشته شده توسط" -" دیگر کاربران پایتون را نصب کنیم." +":ref:`installing-index` توضیح می دهد چگونه ماژول های اضافی نوشته شده توسط " +"کاربران دیگر پایتون را نصب کنیم." #: ../../tutorial/whatnow.rst:27 #, fuzzy @@ -86,13 +87,13 @@ msgid "" "semantics. It's heavy reading, but is useful as a complete guide to the " "language itself." msgstr "" -":ref:`reference-index`: توضیحی دقیق از سینتکس و معنای پایتون. این متن سنگین " -"است، اما به عنوان یک راهنمای کامل برای خود زبان مفید است." +":ref:`reference-index`: یک توضیح دقیق از نحو و معناشناسی زبان پایتون. این " +"متن سنگین است، اما به عنوان یک راهنمای کامل برای خود زبان مفید می باشد." #: ../../tutorial/whatnow.rst:31 #, fuzzy msgid "More Python resources:" -msgstr "منابع بیشتر پایتون:" +msgstr "منابع بیشتر برای پایتون:" #: ../../tutorial/whatnow.rst:33 #, fuzzy @@ -100,13 +101,13 @@ msgid "" "https://www.python.org: The major Python web site. It contains code, " "documentation, and pointers to Python-related pages around the web." msgstr "" -"وب سایت اصلی Python: این وب سایت شامل کد، مستندات و لینک هایی به صفحات مرتبط" -" با Python در سراسر اینترنت می باشد." +"https://www.python.org: وب سایت اصلی پایتون. این وب سایت شامل کد، مستندات، " +"و پیوندهایی به صفحات مرتبط با پایتون در سراسر وب می باشد." #: ../../tutorial/whatnow.rst:36 #, fuzzy msgid "https://docs.python.org: Fast access to Python's documentation." -msgstr "دسترسی سریع به مستندات پایتون: https://docs.python.org" +msgstr "https://docs.python.org: دسترسی سریع به مستندات پایتون." #: ../../tutorial/whatnow.rst:38 #, fuzzy @@ -116,10 +117,10 @@ msgid "" "available for download. Once you begin releasing code, you can register it " "here so that others can find it." msgstr "" -"https://pypi.org: شاخص بسته های پایتون، که قبلاً به عنوان مغازه پنیر نیز " -"شناخته می شد [#]_، یک شاخص از ماژول های پایتون ایجاد شده توسط کاربران است که" -" برای دانلود در دسترس هستند. پس از آنکه شروع به انتشار کد کردید، می توانید " -"آن را در اینجا ثبت کنید تا دیگران بتوانند آن را پیدا کنند." +"https://pypi.org: شاخص بسته های پایتون، که قبلاً به نام فروشگاه پنیر نیز " +"شناخته می شد [#]_، شاخصی از ماژول های پایتون ایجاد شده توسط کاربران است که " +"برای دانلود در دسترس هستند. زمانی که شروع به عرضه کدهای خود کنید، می توانید " +"آنها را اینجا ثبت کنید تا دیگران بتوانند آن را پیدا کنند." #: ../../tutorial/whatnow.rst:43 #, fuzzy @@ -129,10 +130,10 @@ msgid "" "Particularly notable contributions are collected in a book also titled " "Python Cookbook (O'Reilly & Associates, ISBN 0-596-00797-3.)" msgstr "" -"https://code.activestate.com/recipes/langs/python/: کتاب Python Cookbook " -"مجموعه ای بزرگ از مثال های کد، ماژول های بزرگتر و اسکریپت های مفید است. " -"مشارکت های به ویژه قابل توجه در کتابی با همین عنوان، یعنی Python Cookbook " -"(منتشر شده توسط O'Reilly & Associates، شابک 0-596-00797-3) جمع آوری شده اند." +"https://code.activestate.com/recipes/langs/python/: کتابخانه Python Cookbook" +" مجموعه بزرگی از مثال های کد، ماژول های بزرگ تر و اسکریپت های مفید است. " +"مشارکت های به ویژه قابل توجه در کتابی با عنوان Python Cookbook (انتشارات " +"O'Reilly & Associates، ISBN 0-596-00797-3) گردآوری شده اند." #: ../../tutorial/whatnow.rst:48 #, fuzzy @@ -140,8 +141,8 @@ msgid "" "https://pyvideo.org collects links to Python-related videos from conferences" " and user-group meetings." msgstr "" -"وب سایت https://pyvideo.org لینک هایی به ویدئوهای مرتبط با پایتون از کنفرانس" -" ها و جلسات گروه های کاربری را جمع آوری می کند." +"https://pyvideo.org لینک هایی به ویدیوهای مربوط به پایتون از کنفرانس ها و " +"جلسات گروه های کاربری جمع آوری می کند." #: ../../tutorial/whatnow.rst:51 #, fuzzy @@ -151,9 +152,10 @@ msgid "" " as linear algebra, Fourier transforms, non-linear solvers, random number " "distributions, statistical analysis and the like." msgstr "" -"پروژه علمی پایتون شامل ماژول هایی برای محاسبات و دستکاری سریع آرایه ها به " -"همراه مجموعه ای از بسته ها برای مواردی مانند جبر خطی، تبدیلات فوریه، حل " -"کننده های غیرخطی، توزیع های اعداد تصادفی، تحلیل های آماری و موارد مشابه است." +"پروژه Scientific Python در https://scipy.org شامل ماژول هایی برای محاسبات و " +"دستکاری آرایه ها به صورت سریع به همراه مجموعه ای از بسته ها برای مواردی " +"مانند جبر خطی، تبدیل های فوریه، حل کننده های غیرخطی، توزیع اعداد تصادفی، " +"تحلیل آماری و موارد مشابه است." #: ../../tutorial/whatnow.rst:56 #, fuzzy @@ -166,13 +168,14 @@ msgid "" " new features, and announcing new modules. Mailing list archives are " "available at https://mail.python.org/pipermail/." msgstr "" -"برای پرسش ها و گزارش مشکلات مرتبط با پایتون، می توانید به گروه خبری " -":newsgroup:`comp.lang.python` پست ارسال کنید، یا آن ها را به فهرست پستی در " -"python-list@python.org بفرستید. گروه خبری و فهرست پستی به یکدیگر متصل هستند،" -" بنابراین پیام هایی که به یکی ارسال می شود، به طور خودکار به دیگری نیز ارسال" -" خواهد شد. روزانه صدها پست ارسال می شود که شامل پرسش و پاسخ، پیشنهاد ویژگی " -"های جدید و اعلام ماژول های جدید است. آرشیو های فهرست پستی در " -"https://mail.python.org/pipermail/ در دسترس هستند." +"برای پرسش ها و گزارش مشکلات مرتبط با پایتون، می توانید در گروه خبری " +":newsgroup:`comp.lang.python` پست بگذارید، یا آنها را به لیست پستی در " +"python-list@python.org ارسال کنید. گروه خبری و لیست پستی به یکدیگر متصل " +"هستند، بنابراین پیام هایی که به یکی ارسال می شوند، به صورت خودکار به دیگری " +"نیز فرستاده می شوند. روزانه صدها پست ارسال می شود که در آنها به طرح پرسش ها " +"(و پاسخ به آنها)، پیشنهاد ویژگی های جدید، و اعلام ماژول های جدید پرداخته می " +"شود. آرشیوهای لیست پستی در https://mail.python.org/pipermail/ در دسترس " +"هستند." #: ../../tutorial/whatnow.rst:64 #, fuzzy @@ -182,15 +185,15 @@ msgid "" "questions that come up again and again, and may already contain the solution" " for your problem." msgstr "" -"قبل از ارسال، حتماً فهرست :ref:`Frequently Asked Questions ` (که " +"قبل از ارسال، حتماً لیست :ref:`Frequently Asked Questions ` (که " "به عنوان FAQ نیز شناخته می شود) را بررسی کنید. FAQ به بسیاری از سوالاتی که " -"بارها و بارها مطرح می شوند پاسخ می دهد و ممکن است راه حل مسئله شما را قبلاً " -"در خود داشته باشد." +"بارها و بارها مطرح می شوند پاسخ می دهد و ممکن است قبلاً راه حل مشکل شما را " +"در بر داشته باشد." #: ../../tutorial/whatnow.rst:70 #, fuzzy msgid "Footnotes" -msgstr "پانویس ها" +msgstr "پاورقی ها" #: ../../tutorial/whatnow.rst:71 #, fuzzy @@ -198,5 +201,5 @@ msgid "" "\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop," " but whatever cheese he asks for, the clerk says it's missing." msgstr "" -"اسکچ \"Cheese Shop\" یک اجرای کمدی از Monty Python است: مشتری وارد فروشگاه " -"پنیر می شود، اما هر نوع پنیری که می خواهد، فروشنده می گوید که موجود نیست." +"\"فروشگاه پنیر\" یک نمایش نامه از مانتی پایتون است: مردی به فروشگاه پنیر " +"وارد می شود، اما هر پنیری که درخواست می کند، فروشنده می گوید که موجود نیست." From bc522ad3b2dc1ecb4e3fc2d1a4eadf5ead050d0e Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 02:51:26 +0330 Subject: [PATCH 3/9] fix linting using scripts (not translating code blocks) --- bugs.po | 4 +- library/functions.po | 181 +++++++++++---------------- tutorial/appendix.po | 14 +-- tutorial/classes.po | 245 ++++++++++++++++--------------------- tutorial/controlflow.po | 220 +++++++++++++++------------------ tutorial/datastructures.po | 91 +++++++------- tutorial/errors.po | 83 ++++++------- tutorial/floatingpoint.po | 39 +++--- tutorial/inputoutput.po | 57 ++++----- tutorial/interpreter.po | 13 +- tutorial/introduction.po | 125 +++++++++---------- tutorial/modules.po | 62 +++++----- tutorial/stdlib.po | 48 ++++---- tutorial/stdlib2.po | 87 +++++++------ tutorial/venv.po | 2 +- tutorial/whatnow.po | 4 +- 16 files changed, 575 insertions(+), 700 deletions(-) diff --git a/bugs.po b/bugs.po index fb89750ce..7e7cd146e 100644 --- a/bugs.po +++ b/bugs.po @@ -230,7 +230,7 @@ msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "fewer than ten words is good." msgstr "" -"برای بخش \"Title\"، یک توضیح کوتاه از مشکل وارد کنید؛ کمتر از ده کلمه مناسب " +"برای بخش \"Title\", یک توضیح کوتاه از مشکل وارد کنید؛ کمتر از ده کلمه مناسب " "است." #: ../../bugs.rst:79 @@ -241,7 +241,7 @@ msgid "" "extension modules were involved, and what hardware and software platform you" " were using (including version information as appropriate)." msgstr "" -"در قسمت \"Comment\"، مشکل را با جزئیات بیان کنید، از جمله اینکه انتظار " +"در قسمت \"Comment\", مشکل را با جزئیات بیان کنید، از جمله اینکه انتظار " "داشتید چه اتفاقی بیفتد و چه چیزی واقعاً اتفاق افتاد. حتماً اشاره کنید که آیا" " ماژول های افزونه درگیر بودند یا خیر و از چه بستر سخت افزاری و نرم افزار " "استفاده می کردید (شامل اطلاعات مربوط به نسخه در صورت لزوم)." diff --git a/library/functions.po b/library/functions.po index 9f4a9bf01..146e73223 100644 --- a/library/functions.po +++ b/library/functions.po @@ -676,9 +676,11 @@ msgid "" " return False\n" " return True" msgstr "" -"تابع `all` یک `iterable` به عنوان ورودی می گیرد. برای هر عنصر در `iterable`،" -" اگر عنصری وجود داشته باشد که مقدار آن False باشد، تابع `False` برمی گردد. " -"اگر تمام عناصر True باشند، تابع `True` برمی گردد." +"def all(iterable):\n" +" for element in iterable:\n" +" if not element:\n" +" return False\n" +" return True" #: ../../library/functions.rst:89 #, fuzzy @@ -728,10 +730,6 @@ msgid "" " return True\n" " return False" msgstr "" -"تابع `any` یک `iterable` را به عنوان ورودی می گیرد و بررسی می کند که آیا حداقل یکی از عناصر آن مقدار `True` دارد یا خیر. اگر حداقل یکی از عناصر مقدار `True` داشته باشد، مقدار `True` برمی گرداند، در غیر این صورت مقدار `False` بازگردانده می شود. \n" -"\n" -"این تابع به شکل زیر تعریف می شود::\n" -"\n" "def any(iterable):\n" " for element in iterable:\n" " if element:\n" @@ -885,7 +883,7 @@ msgid "" "*errors*) parameters; :func:`bytearray` then converts the string to bytes " "using :meth:`str.encode`." msgstr "" -"اگر یک *string* باشد، همچنین باید پارامترهای *encoding* (و به اختیار، " +"اگر یک *string* باشد، همچنین باید پارامترهای *encoding* (و به اختیار, " "*errors*) را فراهم کنید؛ سپس :func:`bytearray` رشته را با استفاده از " ":meth:`str.encode` به بایت تبدیل می کند." @@ -973,7 +971,7 @@ msgstr "" "`:const:`False`` بازگردانده می شود. اگر ```True``` برگردانده شود، همچنان " "امکان شکست فراخوانی وجود دارد، اما اگر ```False``` باشد، فراخوانی `*object*`" " هرگز موفق نخواهد شد. توجه داشته باشید که کلاس ها قابل فراخوانی هستند " -"(فراخوانی یک کلاس، یک نمونه جدید برمی گرداند)؛ نمونه ها نیز در صورتی قابل " +"(فراخوانی یک کلاس, یک نمونه جدید برمی گرداند)؛ نمونه ها نیز در صورتی قابل " "فراخوانی هستند که کلاس آن ها دارای متد `:meth:`~object.__call__`` باشد." #: ../../library/functions.rst:242 @@ -1029,10 +1027,9 @@ msgid "" " @classmethod\n" " def f(cls, arg1, arg2): ..." msgstr "" -"کلاس `C`:\n" -"\n" +"class C:\n" " @classmethod\n" -" def `f`(cls, arg1, arg2): ..." +" def f(cls, arg1, arg2): ..." #: ../../library/functions.rst:269 #, fuzzy @@ -1134,7 +1131,7 @@ msgstr "" "آرگومان *mode* مشخص می کند که چه نوع کدی باید کامپایل شود؛ می تواند " "``'exec'`` باشد اگر *source* شامل یک دنباله از دستورات باشد، ``'eval'`` اگر " "شامل یک عبارت واحد باشد، یا ``'single'`` اگر شامل یک دستور تعاملی واحد باشد " -"(در حالت آخر، دستورات عبارت که به چیزی غیر از ``None`` ارزیابی می شوند، چاپ " +"(در حالت آخر, دستورات عبارت که به چیزی غیر از ``None`` ارزیابی می شوند, چاپ " "خواهند شد)." #: ../../library/functions.rst:314 @@ -1153,10 +1150,10 @@ msgid "" msgstr "" "پارامترهای اختیاری *flags* و *dont_inherit* مشخص می کنند کدام :ref:`compiler" " options ` باید فعال شود و کدام :ref:`future features " -"` باید مجاز باشد. اگر هیچ یک موجود نباشد (یا هر دو صفر باشند)، کد با" +"` باید مجاز باشد. اگر هیچ یک موجود نباشد (یا هر دو صفر باشند), کد با" " همان فلگ هایی که بر روی کدی که :func:`compile` را فراخوانی می کند تأثیر می " "گذارد، کامپایل می شود. اگر پارامتر *flags* داده شود و *dont_inherit* موجود " -"نباشد (یا صفر باشد)، گزینه های کامپایلر و دستورهای آینده که توسط پارامتر " +"نباشد (یا صفر باشد), گزینه های کامپایلر و دستورهای آینده که توسط پارامتر " "*flags* مشخص شده، علاوه بر آن هایی که به هر حال استفاده می شدند، استفاده می " "شوند. اگر *dont_inherit* یک عدد صحیح غیر صفر باشد، پس پارامتر *flags* همان " "است -- فلگ های (ویژگی های آینده و گزینه های کامپایلر) در کد اطراف نادیده " @@ -1193,7 +1190,7 @@ msgstr "" "آرگومان *optimize* سطح بهینه سازی کامپایلر را مشخص می کند؛ مقدار پیش فرض " "``-1`` سطح بهینه سازی مفسر را طبق گزینه های :option:`-O` انتخاب می کند. سطوح" " صریح شامل ``0`` (بدون بهینه سازی؛ ``__debug__`` درست است)، ``1`` (تأییدها " -"حذف می شوند، ``__debug__`` نادرست است) یا ``2`` (رشته های مستندات نیز حذف می" +"حذف می شوند, ``__debug__`` نادرست است) یا ``2`` (رشته های مستندات نیز حذف می" " شوند) است." #: ../../library/functions.rst:339 @@ -1596,13 +1593,11 @@ msgid "" " yield n, elem\n" " n += 1" msgstr "" -"```python\n" "def enumerate(iterable, start=0):\n" " n = start\n" " for elem in iterable:\n" " yield n, elem\n" -" n += 1\n" -"```" +" n += 1" #: ../../library/functions.rst:0 #, fuzzy @@ -1672,7 +1667,7 @@ msgid "" "environment if they are already referenced in the scope that is calling " ":func:`eval` (e.g. via a :keyword:`nonlocal` statement)." msgstr "" -"آرگومان *expression* به عنوان یک عبارت پایتون (از نظر فنی، یک لیست شرایط) با" +"آرگومان *expression* به عنوان یک عبارت پایتون (از نظر فنی, یک لیست شرایط) با" " استفاده از نگاشت های *globals* و *locals* به عنوان فضای نام های سراسری و " "محلی تجزیه و ارزیابی می شود. اگر دیکشنری *globals* وجود داشته باشد و حاوی " "مقداری برای کلید ``__builtins__`` نباشد، یک ارجاع به دیکشنری ماژول داخلی " @@ -1799,7 +1794,7 @@ msgid "" msgstr "" "در تمامی موارد، اگر بخش های اختیاری حذف شوند، کد در محدوده فعلی اجرا می شود." " اگر تنها *globals* ارائه شود، باید یک دیکشنری باشد (و نه زیرکلاسی از " -"دیکشنری)، که برای هر دو متغیرهای جهانی و محلی استفاده خواهد شد. اگر " +"دیکشنری), که برای هر دو متغیرهای جهانی و محلی استفاده خواهد شد. اگر " "*globals* و *locals* داده شوند، به ترتیب برای متغیرهای جهانی و محلی استفاده " "می شوند. اگر ارائه شود، *locals* می تواند هر شیء نگاشت باشد. به خاطر داشته " "باشید که در سطح ماژول، متغیرهای جهانی و محلی همان دیکشنری هستند." @@ -2147,7 +2142,7 @@ msgstr "" "مقدار هش آبجکت را برمی گرداند (اگر داشته باشد). مقادیر هش اعداد صحیح هستند. " "آن ها برای مقایسه سریع کلیدهای دیکشنری در زمان جستجوی دیکشنری استفاده می " "شوند. مقادیر عددی که برابر مقایسه می شوند، مقدار هش یکسانی دارند (حتی اگر از" -" نوع های مختلفی باشند، مانند 1 و 1.0)." +" نوع های مختلفی باشند, مانند 1 و 1.0)." #: ../../library/functions.rst:895 #, fuzzy @@ -2486,9 +2481,9 @@ msgid "" " an invalid type if an earlier check succeeds." msgstr "" "اگر آرگومان *object* یک نمونه از آرگومان *classinfo* باشد یا زیرکلاسی " -"(مستقیم، غیرمستقیم یا :term:`virtual `) از آن، ``True``" +"(مستقیم, غیرمستقیم یا :term:`virtual `) از آن، ``True``" " را برمی گرداند. اگر *object* یک شیء از نوع داده شده نباشد، تابع همیشه " -"``False`` برمی گردد. اگر *classinfo* یک تاپل از اشیاء نوع (یا بازگشتی، تاپل " +"``False`` برمی گردد. اگر *classinfo* یک تاپل از اشیاء نوع (یا بازگشتی, تاپل " "های دیگر این چنینی) یا :ref:`types-union` از چندین نوع باشد، ``True`` را " "برمی گرداند اگر *object* یک نمونه از هر یک از انواع باشد. اگر *classinfo* یک" " نوع یا تاپل هایی از انواع و چنین تاپل هایی نباشد، استثنایی از نوع " @@ -2510,10 +2505,10 @@ msgid "" "return ``True`` if *class* is a subclass of any entry in *classinfo*. In " "any other case, a :exc:`TypeError` exception is raised." msgstr "" -"اگر *class* زیرکلاسی (مستقیم، غیرمستقیم یا :term:`virtual `) از *classinfo* باشد، ``True`` را برمی گرداند. یک کلاس به عنوان " "زیرکلاس خودش نیز در نظر گرفته می شود. *classinfo* ممکن است یک تاپل از اشیا " -"کلاس (یا به طور بازگشتی، دیگر تاپل های مشابه) یا :ref:`types-union` باشد، که" +"کلاس (یا به طور بازگشتی, دیگر تاپل های مشابه) یا :ref:`types-union` باشد، که" " در این حالت اگر *class* زیرکلاس هر ورودی در *classinfo* باشد، ``True`` را " "برمی گرداند. در هر حالت دیگر، یک استثنای :exc:`TypeError` ایجاد می شود." @@ -2570,10 +2565,10 @@ msgid "" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" msgstr "" -"از `functools` ماژول `partial` را وارد کنید\n" -"با استفاده از دستور `with` فایل 'mydata.db' را در حالت خواندن باینری (`rb`) باز کنید:\n" -" برای هر بلوک در تکرار حاصل از `partial(f.read, 64)` که به طور مداوم تا رسیدن به بایت خالی `b''` می خواند:\n" -" `process_block(block)` را اجرا کنید" +"from functools import partial\n" +"with open('mydata.db', 'rb') as f:\n" +" for block in iter(partial(f.read, 64), b''):\n" +" process_block(block)" #: ../../library/functions.rst:1129 #, fuzzy @@ -2583,7 +2578,7 @@ msgid "" "(such as a dictionary, set, or frozen set)." msgstr "" "طول (تعداد آیتم ها) یک شیء را برمی گرداند. آرگومان می تواند یک توالی (مثل " -"رشته، بایت ها، تاپل، لیست، یا رنج) یا یک مجموعه (مثل دیکشنری، ست، یا مجموعه " +"رشته, بایت ها, تاپل, لیست, یا رنج) یا یک مجموعه (مثل دیکشنری, ست, یا مجموعه " "ی منجمد) باشد." #: ../../library/functions.rst:1135 @@ -2671,7 +2666,7 @@ msgid "" "variables and nonlocal cell references does *not* affect the contents of " "previously returned dictionaries." msgstr "" -"در یک :term:`optimized scope` (شامل توابع، ژنراتورها و کوروتین ها)، هر بار " +"در یک :term:`optimized scope` (شامل توابع, ژنراتورها و کوروتین ها), هر بار " "فراخوانی ``locals()`` یک دیکشنری جدید بازمی گرداند که شامل وابستگی های فعلی " "متغیرهای محلی تابع و هرگونه ارجاع سلول غیرمحلی است. در این حالت، تغییرات " "وابستگی نام که از طریق دیکشنری بازگردانی شده انجام می شود، *not* به متغیرهای" @@ -2924,8 +2919,8 @@ msgid "" msgstr "" "*file* یک :term:`path-like object` است که مسیر فایل (مطلق یا نسبی نسبت به " "دایرکتوری کاری فعلی) که قرار است باز شود یا یک توصیفگر فایل عدد صحیح از فایل" -" برای بسته بندی شده را ارائه می دهد. (اگر یک توصیفگر فایل داده شود، هنگامی " -"که شیء I/O بازگشتی بسته می شود، بسته می شود مگر اینکه *closefd* به ``False``" +" برای بسته بندی شده را ارائه می دهد. (اگر یک توصیفگر فایل داده شود, هنگامی " +"که شیء I/O بازگشتی بسته می شود, بسته می شود مگر اینکه *closefd* به ``False``" " تنظیم شود.)" #: ../../library/functions.rst:1340 @@ -2944,7 +2939,7 @@ msgid "" msgstr "" "*mode* یک رشته اختیاری است که نحوه باز شدن فایل را مشخص می کند. به صورت پیش " "فرض، ``'r'`` است که به معنای باز کردن برای خواندن در حالت متنی است. سایر " -"مقادیر معمول شامل ``'w'`` برای نوشتن (که در صورت وجود، فایل را کوتاه می " +"مقادیر معمول شامل ``'w'`` برای نوشتن (که در صورت وجود, فایل را کوتاه می " "کند)، ``'x'`` برای ایجاد انحصاری و ``'a'`` برای افزودن (که در سیستم های " "*some* Unix به این معناست که *all* نوشتن به انتهای فایل اضافه می شود بدون " "توجه به موقعیت کنونی جستجو). در حالت متنی، اگر *encoding* مشخص نشده باشد، " @@ -3055,7 +3050,7 @@ msgid "" "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and" " ``'r+b'`` open the file with no truncation." msgstr "" -"حالت پیش فرض ``'r'`` است (باز کردن برای خواندن متن، مترادف ``'rt'``). حالت " +"حالت پیش فرض ``'r'`` است (باز کردن برای خواندن متن, مترادف ``'rt'``). حالت " "های ``'w+'`` و ``'w+b'`` فایل را باز و محتوای آن را حذف می کنند. حالت های " "``'r+'`` و ``'r+b'`` فایل را بدون حذف کردن باز می کنند." @@ -3074,7 +3069,7 @@ msgstr "" "قائل می شود. فایل هایی که در حالت باینری باز می شوند (از جمله زمانی که " "``'b'`` در آرگومان *mode* قرار دارد) محتویات را به صورت اشیاء :class:`bytes`" " بدون هیچ فرایند کدگشایی برمی گردانند. در حالت متنی (که به صورت پیش فرض است " -"یا زمانی که ``'t'`` در آرگومان *mode* گنجانده شده است)، محتویات فایل به صورت" +"یا زمانی که ``'t'`` در آرگومان *mode* گنجانده شده است), محتویات فایل به صورت" " :class:`str` برگردانده می شود؛ به شرطی که بایت ها ابتدا با استفاده از " "کدگشایی وابسته به پلتفرم یا با استفاده از *encoding* مشخص شده (در صورت " "تعیین) رمزگشایی شوند." @@ -3106,7 +3101,7 @@ msgstr "" "*buffering* یک عدد صحیح اختیاری است که برای تنظیم سیاست بافر استفاده می شود." " مقدار 0 را برای خاموش کردن بافر (فقط در حالت باینری مجاز است) و 1 برای " "انتخاب بافر خط (فقط زمانی که در حالت متنی نوشتن انجام می شود قابل استفاده " -"است)، و یک عدد صحیح > 1 را برای نشان دادن اندازه به بایت های یک بافر ثابت " +"است), و یک عدد صحیح > 1 را برای نشان دادن اندازه به بایت های یک بافر ثابت " "استفاده کنید. توجه داشته باشید که تعیین اندازه بافر به این صورت برای I/O " "بافر باینری اعمال می شود، اما ``TextIOWrapper`` (یعنی فایل هایی که با " "``mode='r+'`` باز می شوند) بافر متفاوتی خواهد داشت. برای غیرفعال کردن بافر " @@ -3149,7 +3144,7 @@ msgid "" msgstr "" "*encoding* نام کدگذاری است که برای رمزگشایی یا رمزگذاری فایل استفاده می شود." " این باید فقط در حالت متنی به کار برده شود. کدگذاری پیش فرض بستگی به پلتفرم " -"دارد (هر چه :func:`locale.getencoding` برگرداند)، اما هر :term:`text " +"دارد (هر چه :func:`locale.getencoding` برگرداند), اما هر :term:`text " "encoding` که توسط پایتون پشتیبانی شود می تواند استفاده شود. فهرست کدگذاری " "های پشتیبانی شده را در ماژول :mod:`codecs` ببینید." @@ -3165,7 +3160,7 @@ msgstr "" "*errors* یک رشته اختیاری است که مشخص می کند چگونه خطاهای کدگذاری و رمزگشایی " "باید مدیریت شوند—این نمی تواند در حالت باینری استفاده شود. تعدادی از مدیریت " "کننده های خطای استاندارد موجود هستند (در زیر :ref:`error-handlers` لیست شده " -"اند)، اگرچه هر نام مدیریت خطایی که با :func:`codecs.register_error` ثبت شده " +"اند), اگرچه هر نام مدیریت خطایی که با :func:`codecs.register_error` ثبت شده " "باشد نیز معتبر است. اسامی استاندارد شامل موارد زیر هستند:" #: ../../library/functions.rst:1419 @@ -3347,7 +3342,7 @@ msgstr "" ">>> with open('spamspam.txt', 'w', opener=opener) as f:\n" "... print('This will be written to somedir/spamspam.txt', file=f)\n" "...\n" -">>> os.close(dir_fd) # درز ندهید یک شناسه فایل" +">>> os.close(dir_fd) # don't leak a file descriptor" #: ../../library/functions.rst:1495 #, fuzzy @@ -3365,8 +3360,8 @@ msgid "" ":class:`io.FileIO`, is returned." msgstr "" "نوع :term:`file object` که توسط تابع :func:`open` برگردانده می شود بستگی به " -"حالت دارد. وقتی :func:`open` برای باز کردن یک فایل در حالت متنی (``'w'``، " -"``'r'``، ``'wt'``، ``'rt'``، و غیره) استفاده می شود، یک زیرکلاس از " +"حالت دارد. وقتی :func:`open` برای باز کردن یک فایل در حالت متنی (``'w'``, " +"``'r'``, ``'wt'``, ``'rt'``, و غیره) استفاده می شود، یک زیرکلاس از " ":class:`io.TextIOBase` (به طور خاص :class:`io.TextIOWrapper`) را برمی " "گرداند. وقتی برای باز کردن یک فایل در حالت باینری با بافرینگ استفاده می شود،" " کلاس بازگشتی یک زیرکلاس از :class:`io.BufferedIOBase` است. کلاس دقیق متفاوت" @@ -3517,7 +3512,7 @@ msgid "" msgstr "" "استدلال ها باید از نوع عددی باشند. با انواع عملوندهای مختلط، قوانین تبدیل " "نوع برای عملگرهای حسابی دودویی اعمال می شود. برای عملوندهای :class:`int`، " -"نتیجه همان نوع عملوندها را دارد (پس از تبدیل نوع)، مگر اینکه استدلال دوم " +"نتیجه همان نوع عملوندها را دارد (پس از تبدیل نوع), مگر اینکه استدلال دوم " "منفی باشد؛ در این صورت، تمام استدلال ها به float تبدیل می شوند و یک نتیجه " "float ارائه می شود. به عنوان مثال، ``pow(10, 2)`` به ``100`` ختم می شود، اما" " ``pow(10, -2)`` به ``0.01`` ختم می شود. برای یک پایه منفی از نوع " @@ -3672,9 +3667,6 @@ msgid "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" msgstr "" -"کلاسی به نام C وجود دارد که در آن یک خصوصیت به نام `x` تعریف شده است. این خصوصیت به کمک توابع مخصوص به خود مقداردهی و حذف می شود و همچنین مقدار آن را بازمی گرداند. در این کلاس، خصوصیت `x` به روش زیر پیاده سازی شده است:\n" -"\n" -"```python\n" "class C:\n" " def __init__(self):\n" " self._x = None\n" @@ -3688,10 +3680,7 @@ msgstr "" " def delx(self):\n" " del self._x\n" "\n" -" x = property(getx, setx, delx, \"I'm the 'x' property.\")\n" -"```\n" -"\n" -"در اینجا، `property` به شکلی استفاده شده است که توابع `getx`, `setx` و `delx` را به عنوان دسترسی دهنده (accessor)، تنظیم کننده (mutator) و حذف کننده (deleter) مربوط به خصوصیت `x` تعریف می کند." +" x = property(getx, setx, delx, \"I'm the 'x' property.\")" #: ../../library/functions.rst:1653 #, fuzzy @@ -3728,13 +3717,13 @@ msgid "" " \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" msgstr "" -"کلاس Parrot:\n" +"class Parrot:\n" " def __init__(self):\n" " self._voltage = 100000\n" "\n" " @property\n" " def voltage(self):\n" -" \"\"\"ولتاژ فعلی را بگیر.\"\"\"\n" +" \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" #: ../../library/functions.rst:1669 @@ -3781,10 +3770,6 @@ msgid "" " def x(self):\n" " del self._x" msgstr "" -"کلاسی به نام `C` داریم که با استفاده از `property` مدیریت یک ویژگی را انجام می دهد. این کد شامل یک مقدار خصوصی `_x` است که به وسیله روش های `getter`، `setter` و `deleter` برای خاصیت `x` قابل دسترسی و تغییر است. \n" -"\n" -"کد به شکل زیر است::\n" -"\n" "class C:\n" " def __init__(self):\n" " self._x = None\n" @@ -3880,13 +3865,13 @@ msgid "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" msgstr "" -"کلاس `Person`:\n" -" def __init__(self، نام، سن):\n" -" self.name = نام\n" -" self.age = سن\n" +"class Person:\n" +" def __init__(self, name, age):\n" +" self.name = name\n" +" self.age = age\n" "\n" " def __repr__(self):\n" -" برگرداندن f\"Person('{self.name}', {self.age})\"" +" return f\"Person('{self.name}', {self.age})\"" #: ../../library/functions.rst:1754 #, fuzzy @@ -3926,7 +3911,7 @@ msgstr "" "مضرب 10 به توان منفی *ndigits* گرد می شوند؛ اگر دو مضرب به یک اندازه نزدیک " "باشند، گرد کردن به سمت گزینه زوج انجام می شود (مثلاً هر دو ``round(0.5)`` و " "``round(-0.5)`` به ``0`` گرد می شوند، و ``round(1.5)`` به ``2``). هر مقدار " -"صحیحی برای *ndigits* معتبر است (مثبت، صفر یا منفی). مقدار بازگشتی یک عدد " +"صحیحی برای *ndigits* معتبر است (مثبت, صفر یا منفی). مقدار بازگشتی یک عدد " "صحیح است اگر *ndigits* حذف شود یا ``None`` باشد. در غیر این صورت، مقدار " "بازگشتی همان نوع *number* را دارد." @@ -4016,7 +4001,7 @@ msgid "" msgstr "" "از آنجا که :ref:`private name mangling ` در زمان " "کامپایل اتفاق می افتد، برای تنظیم یک ویژگی خصوصی (ویژگی هایی با دو زیرخط " -"پیشرو)، باید به صورت دستی نام آن را تغییر دهید تا با :func:`setattr` تنظیم " +"پیشرو), باید به صورت دستی نام آن را تغییر دهید تا با :func:`setattr` تنظیم " "شود." #: ../../library/functions.rst:1826 @@ -4062,7 +4047,7 @@ msgid "" "Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, " ":attr:`~slice.stop`, and :attr:`~slice.step` are hashable)." msgstr "" -"اشیای Slice اکنون :term:`hashable` هستند (با فرض اینکه :attr:`~slice.start`،" +"اشیای Slice اکنون :term:`hashable` هستند (با فرض اینکه :attr:`~slice.start`," " :attr:`~slice.stop` و :attr:`~slice.step` قابل هش هستند)." #: ../../library/functions.rst:1850 @@ -4087,7 +4072,7 @@ msgid "" "directly)." msgstr "" "تابع *key* یک آرگومان را مشخص می کند که از هر عنصر در *iterable* برای " -"استخراج یک کلید مقایسه استفاده می شود (برای مثال، ``key=str.lower``). مقدار " +"استخراج یک کلید مقایسه استفاده می شود (برای مثال, ``key=str.lower``). مقدار " "پیش فرض ``None`` است (عناصر را مستقیماً مقایسه کنید)." #: ../../library/functions.rst:1858 @@ -4118,8 +4103,8 @@ msgid "" msgstr "" "تابع داخلی :func:`sorted` تضمین می شود که پایدار باشد. یک مرتب سازی زمانی " "پایدار است که اطمینان دهد ترتیب نسبی عناصر برابر را تغییر نمی دهد --- این " -"امر برای مرتب سازی در چندین مرحله مفید است (به عنوان مثال، ابتدا بر اساس " -"دپارتمان، سپس بر اساس درجه حقوق مرتب سازی کنید)." +"امر برای مرتب سازی در چندین مرحله مفید است (به عنوان مثال, ابتدا بر اساس " +"دپارتمان, سپس بر اساس درجه حقوق مرتب سازی کنید)." #: ../../library/functions.rst:1869 #, fuzzy @@ -4171,17 +4156,9 @@ msgid "" " @staticmethod\n" " def f(arg1, arg2, argN): ..." msgstr "" -"کلاس ها می توانند شامل روش های ثابت یا ``staticmethod`` باشند. تفاوت این است که یک روش ثابت به نمونه ای از کلاس نیازی ندارد و می تواند بدون ایجاد یک شی از کلاس استفاده شود.\n" -"\n" -"روش های ثابت با استفاده از دکوراتور ``@staticmethod`` تعریف می شوند. این روش ها همچنان به کلاس به عنوان اولین پارامتر منتقل نمی شوند، بلکه مانند توابع نرمال رفتار می کنند. این یعنی که برای فراخوانی آن ها نیازی به نمونه سازی از کلاس نیست.\n" -"\n" -"مثال::\n" -"\n" -" class C:\n" -" @staticmethod\n" -" def f(arg1, arg2, argN): ...\n" -"\n" -"در اینجا، ``f`` یک روش ثابت است که با کلاس ``C`` تعریف شده است. برای اجرای آن، نیازی به ساختاردهی یک شی از کلاس نیست و مستقیماً می توان آن را فراخوانی کرد." +"class C:\n" +" @staticmethod\n" +" def f(arg1, arg2, argN): ..." #: ../../library/functions.rst:1891 #, fuzzy @@ -4240,12 +4217,6 @@ msgid "" "class C:\n" " method = staticmethod(regular_function)" msgstr "" -"تابع توابع ایستا\n" -"\n" -"تابع `staticmethod` یک شیء روش است که با استفاده از یک تابع معمولی ساخته می شود. به برنامه نویسان اجازه می دهد تا بدون نیاز به نمونه سازی از کلاس، تابع را مستقیماً روی کلاس فراخوانی کنند.\n" -"\n" -"یک مثال ساده::\n" -"\n" "def regular_function():\n" " ...\n" "\n" @@ -4267,8 +4238,8 @@ msgid "" ":attr:`~function.__annotations__`), have a new ``__wrapped__`` attribute, " "and are now callable as regular functions." msgstr "" -"متدهای ایستا اکنون ویژگی های متد (:attr:`~function.__module__`، " -":attr:`~function.__name__`، :attr:`~function.__qualname__`، " +"متدهای ایستا اکنون ویژگی های متد (:attr:`~function.__module__`, " +":attr:`~function.__name__`, :attr:`~function.__qualname__`, " ":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " "برند، یک ویژگی جدید به نام ``__wrapped__`` دارند و اکنون به عنوان توابع " "معمولی قابل فراخوانی هستند." @@ -4401,8 +4372,8 @@ msgstr "" "ممکن است حذف شوند (\":func:`!super` بدون آرگومان\"). در این حالت، *type* " "کلاس محصور کننده و *obj* اولین آرگومان تابع محصور کننده بلافاصله (معمولاً " "``self``) خواهد بود. (این بدان معناست که استفاده از :func:`!super` بدون " -"آرگومان در توابع تو در تو، از جمله عبارات تولید کننده که به طور ضمنی توابع " -"تو در تو ایجاد می کنند، مطابق انتظار کار نخواهد کرد.)" +"آرگومان در توابع تو در تو, از جمله عبارات تولید کننده که به طور ضمنی توابع " +"تو در تو ایجاد می کنند, مطابق انتظار کار نخواهد کرد.)" #: ../../library/functions.rst:1990 #, fuzzy @@ -4436,8 +4407,8 @@ msgstr "" "دارد تا \"نمودارهای الماس\" را پیاده سازی کرد جایی که چندین کلاس پایه همان " "متد را پیاده سازی می کنند. طراحی خوب ایجاب می کند که چنین پیاده سازی هایی در" " هر مورد دارای امضای فراخوانی مشابه باشند (زیرا ترتیب فراخوانی ها در زمان " -"اجرا تعیین می شود، زیرا این ترتیب به تغییرات در سلسله مراتب کلاس ها سازگار " -"است، و زیرا این ترتیب می تواند شامل کلاس های هم سطحی باشد که پیش از زمان " +"اجرا تعیین می شود, زیرا این ترتیب به تغییرات در سلسله مراتب کلاس ها سازگار " +"است, و زیرا این ترتیب می تواند شامل کلاس های هم سطحی باشد که پیش از زمان " "اجرا ناشناخته هستند)." #: ../../library/functions.rst:2005 @@ -4454,13 +4425,10 @@ msgid "" " super().method(arg) # This does the same thing as:\n" " # super(C, self).method(arg)" msgstr "" -"کلاس `C(B)`:\n" -"\n" -"```python\n" -"def method(self, arg):\n" -" super().method(arg) # این کار همانند موارد زیر انجام می شود:\n" -" # super(C, self).method(arg)\n" -"```" +"class C(B):\n" +" def method(self, arg):\n" +" super().method(arg) # This does the same thing as:\n" +" # super(C, self).method(arg)" #: ../../library/functions.rst:2012 #, fuzzy @@ -4638,7 +4606,7 @@ msgid "" msgstr "" "اشیایی مانند ماژول ها و نمونه ها دارای یک ویژگی قابل به روزرسانی " ":attr:`~object.__dict__` هستند؛ اما، دیگر اشیا ممکن است محدودیت هایی برای " -"نوشتن بر روی ویژگی های :attr:`!__dict__` خود داشته باشند (به عنوان مثال، " +"نوشتن بر روی ویژگی های :attr:`!__dict__` خود داشته باشند (به عنوان مثال, " "کلاس ها از یک :class:`types.MappingProxyType` برای جلوگیری از به روزرسانی " "مستقیم دیکشنری استفاده می کنند)." @@ -4655,7 +4623,7 @@ msgid "" " defines the :attr:`~object.__slots__` attribute)." msgstr "" "اگر یک شیء مشخص شود ولی صفت :attr:`~object.__dict__` نداشته باشد، یک استثنا " -"از نوع :exc:`TypeError` ایجاد می شود (برای مثال، اگر کلاس آن صفت " +"از نوع :exc:`TypeError` ایجاد می شود (برای مثال, اگر کلاس آن صفت " ":attr:`~object.__slots__` را تعریف کرده باشد)." #: ../../library/functions.rst:2107 @@ -4691,7 +4659,7 @@ msgid "" "(2, 'spice')\n" "(3, 'everything nice')" msgstr "" -">>> برای آیتم در zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" +">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" "... print(item)\n" "...\n" "(1, 'sugar')\n" @@ -4963,7 +4931,7 @@ msgstr "" #: ../../library/functions.rst:2248 #, fuzzy msgid "spam = __import__('spam', globals(), locals(), [], 0)" -msgstr "``spam = __import__('spam', globals(), locals(), [], 0)``" +msgstr "spam = __import__('spam', globals(), locals(), [], 0)" #: ../../library/functions.rst:2250 #, fuzzy @@ -4973,12 +4941,7 @@ msgstr "عبارت ``import spam.ham`` منجر به این فراخوانی م #: ../../library/functions.rst:2252 #, fuzzy msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" -msgstr "" -"``spam = __import__('spam.ham', globals(), locals(), [], 0)``: این خط از کد " -"در پایتون برای وارد کردن ماژولی با نام `'spam.ham'` استفاده می شود. این تابع" -" برای برنامه نویسی پویا و زمانی که نام ماژول ممکن است در زمان اجرا تعیین " -"شود، مفید است. پارامترها به این صورت هستند: نام ماژول، نگهدارنده ی فضای نام " -"های سراسری و محلی، لیستی از اشیا و سطح (که در این مثال صفر است)." +msgstr "spam = __import__('spam.ham', globals(), locals(), [], 0)" #: ../../library/functions.rst:2254 #, fuzzy @@ -5096,7 +5059,7 @@ msgstr "بی نهایت" #: ../../library/functions.rst:814 #, fuzzy msgid "__format__" -msgstr "__فرمت__" +msgstr "__format__" #: ../../library/functions.rst:814 ../../library/functions.rst:1925 #, fuzzy diff --git a/tutorial/appendix.po b/tutorial/appendix.po index c114cbb79..a509d84da 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -157,7 +157,7 @@ msgstr "" "(فرض را بر این می گیریم که مفسر روی :envvar:`PATH` کاربر است) در ابتدای " "اسکریپت و دادن حالت اجرایی به فایل. ``#!`` باید دو کاراکتر اول فایل باشد. در" " برخی از پلتفرم ها، این خط اول باید با یک پایان خط به سبک یونیکس " -"(``'\\n'``)، و نه پایان خط به سبک ویندوز (``'\\r\\n'``) به پایان برسد. توجه " +"(``'\\n'``), و نه پایان خط به سبک ویندوز (``'\\r\\n'``) به پایان برسد. توجه " "داشته باشید که کاراکتر هش یا پوند، ``'#'``، برای شروع یک نظر (کامنت) در " "پایتون استفاده می شود." @@ -254,12 +254,12 @@ msgid "" " startup_file = fobj.read()\n" " exec(startup_file)" msgstr "" -"وارد کردن کتابخانه ی os \n" -"filename = os.environ.get('PYTHONSTARTUP') \n" -"اگر filename و os.path.isfile(filename): \n" -" با open(filename) به صورت fobj: \n" -" startup_file = fobj.read() \n" -" اجرا کردن startup_file " +"import os\n" +"filename = os.environ.get('PYTHONSTARTUP')\n" +"if filename and os.path.isfile(filename):\n" +" with open(filename) as fobj:\n" +" startup_file = fobj.read()\n" +" exec(startup_file)" #: ../../tutorial/appendix.rst:124 #, fuzzy diff --git a/tutorial/classes.po b/tutorial/classes.po index dbdf190a6..228c385af 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -83,14 +83,14 @@ msgid "" "instances." msgstr "" "در اصطلاحات C++، به طور معمول اعضای کلاس (از جمله اعضای داده) *public* هستند" -" (به جز موارد زیر :ref:`tut-private`)، و تمام توابع عضو *virtual* هستند. " +" (به جز موارد زیر :ref:`tut-private`), و تمام توابع عضو *virtual* هستند. " "مانند Modula-3، هیچ میانبری برای ارجاع به اعضای شی از روش های آن وجود ندارد:" " تابع روش با یک آرگومان اول صریح که نمایانگر شی است اعلام می شود، که به طور " "ضمنی توسط فراخوانی ارائه می شود. مانند Smalltalk، خود کلاس ها اشیاء هستند. " "این امر معناشناسی برای واردات و تغییر نام را فراهم می کند. برخلاف C++ و " "Modula-3، انواع داخلی می توانند به عنوان کلاس های پایه برای توسعه توسط کاربر" " استفاده شوند. همچنین، مانند C++، بیشتر عملگرهای داخلی با نحو خاص (عملگرهای " -"محاسباتی، زیرنویسی و غیره) می توانند برای نمونه های کلاس بازتعریف شوند." +"محاسباتی, زیرنویسی و غیره) می توانند برای نمونه های کلاس بازتعریف شوند." #: ../../tutorial/classes.rst:34 #, fuzzy @@ -100,10 +100,10 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" -"(به دلیل عدم وجود اصطلاحات پذیرفته شده جهانی برای صحبت در مورد کلاس ها، به " +"(به دلیل عدم وجود اصطلاحات پذیرفته شده جهانی برای صحبت در مورد کلاس ها, به " "صورت گهگاه از اصطلاحات Smalltalk و C++ استفاده خواهم کرد. ترجیح می دادم از " -"اصطلاحات Modula-3 استفاده کنم، زیرا معنای شیءگرایی آن به معنای شیءگرایی " -"پایتون نزدیک تر است تا C++، اما انتظار دارم که خوانندگان کمی از آن آگاهی " +"اصطلاحات Modula-3 استفاده کنم, زیرا معنای شیءگرایی آن به معنای شیءگرایی " +"پایتون نزدیک تر است تا C++, اما انتظار دارم که خوانندگان کمی از آن آگاهی " "داشته باشند.)" #: ../../tutorial/classes.rst:43 @@ -130,7 +130,7 @@ msgstr "" "اشیا هویت خاص خود را دارند و چندین نام (در حوزه های مختلف) می توانند به یک " "شیء واحد متصل شوند. این در زبان های دیگر به عنوان «علیاسینگ» شناخته می شود. " "این موضوع معمولاً در نگاه اول به پایتون نادیده گرفته می شود و می توان آن را " -"هنگام کار با نوع های پایه غیر قابل تغییر (اعداد، رشته ها، تاپل ها) با " +"هنگام کار با نوع های پایه غیر قابل تغییر (اعداد, رشته ها, تاپل ها) با " "اطمینان نادیده گرفت. اما، «علیاسینگ» تأثیر بالقوه ای غیرمنتظره بر معنی کدهای" " پایتون دارد که شامل اشیای قابل تغییر مانند لیست ها، دیکشنری ها و اکثر انواع" " دیگر می شود. این مسئله معمولاً به نفع برنامه استفاده می شود، زیرا علیاس ها " @@ -262,7 +262,7 @@ msgid "" msgstr "" "فضای نام محلی برای یک تابع زمانی ایجاد می شود که تابع فراخوانی شود و زمانی " "که تابع بازگردد یا یک استثنایی رخ دهد که در داخل تابع مدیریت نمی شود، حذف می" -" شود. (در واقع، فراموش کردن راه بهتری برای توصیف چیزی است که واقعاً اتفاق می" +" شود. (در واقع, فراموش کردن راه بهتری برای توصیف چیزی است که واقعاً اتفاق می" " افتد.) البته، هر فراخوانی بازگشتی فضای نام محلی خاص خود را دارد." #: ../../tutorial/classes.rst:112 @@ -364,7 +364,7 @@ msgstr "" "یا با چه نام مستعاری فراخوانی می شود. از طرف دیگر، جستجوی واقعی برای نام ها " "به صورت پویا انجام می شود، یعنی در زمان اجرا --- با این حال، تعریف زبان در " "حال حرکت به سمت حل نام ها به صورت ایستا، در زمان \"کامپایل\" است، بنابراین " -"به حل نام ها به صورت پویا وابسته نباشید! (در واقع، متغیرهای محلی در حال حاضر" +"به حل نام ها به صورت پویا وابسته نباشید! (در واقع, متغیرهای محلی در حال حاضر" " به صورت ایستا تعیین می شوند.)" #: ../../tutorial/classes.rst:146 @@ -444,7 +444,6 @@ msgid "" "scope_test()\n" "print(\"In global scope:\", spam)" msgstr "" -"```python\n" "def scope_test():\n" " def do_local():\n" " spam = \"local spam\"\n" @@ -459,15 +458,14 @@ msgstr "" "\n" " spam = \"test spam\"\n" " do_local()\n" -" print(\"پس از انتساب محلی:\", spam)\n" +" print(\"After local assignment:\", spam)\n" " do_nonlocal()\n" -" print(\"پس از انتساب غیرمحلی:\", spam)\n" +" print(\"After nonlocal assignment:\", spam)\n" " do_global()\n" -" print(\"پس از انتساب سراسری:\", spam)\n" +" print(\"After global assignment:\", spam)\n" "\n" "scope_test()\n" -"print(\"در حوزه سراسری:\", spam)\n" -"```" +"print(\"In global scope:\", spam)" #: ../../tutorial/classes.rst:191 #, fuzzy @@ -648,8 +646,8 @@ msgid "" " def f(self):\n" " return 'hello world'" msgstr "" -"کلاس MyClass:\n" -" \"\"\"یک کلاس مثال ساده\"\"\"\n" +"class MyClass:\n" +" \"\"\"A simple example class\"\"\"\n" " i = 12345\n" "\n" " def f(self):\n" @@ -684,7 +682,7 @@ msgstr "" #: ../../tutorial/classes.rst:286 ../../tutorial/classes.rst:303 #, fuzzy msgid "x = MyClass()" -msgstr "```x = MyClass()``` یک نمونه از کلاس ``MyClass`` ایجاد می کند." +msgstr "x = MyClass()" #: ../../tutorial/classes.rst:288 #, fuzzy @@ -714,12 +712,8 @@ msgid "" "def __init__(self):\n" " self.data = []" msgstr "" -"```python\n" "def __init__(self):\n" -" self.data = []\n" -"```\n" -"\n" -"از این تابع برای مقداردهی اولیه به یک شیء جدید استفاده می شود. در اینجا، ویژگی `data` به عنوان یک لیست خالی تعریف شده است." +" self.data = []" #: ../../tutorial/classes.rst:299 #, fuzzy @@ -757,7 +751,6 @@ msgid "" ">>> x.r, x.i\n" "(3.0, -4.5)" msgstr "" -"```python\n" ">>> class Complex:\n" "... def __init__(self, realpart, imagpart):\n" "... self.r = realpart\n" @@ -765,8 +758,7 @@ msgstr "" "...\n" ">>> x = Complex(3.0, -4.5)\n" ">>> x.r, x.i\n" -"(3.0, -4.5)\n" -"```" +"(3.0, -4.5)" #: ../../tutorial/classes.rst:322 #, fuzzy @@ -810,13 +802,11 @@ msgid "" "print(x.counter)\n" "del x.counter" msgstr "" -"```python\n" "x.counter = 1\n" "while x.counter < 10:\n" " x.counter = x.counter * 2\n" "print(x.counter)\n" -"del x.counter\n" -"```" +"del x.counter" #: ../../tutorial/classes.rst:340 #, fuzzy @@ -878,10 +868,9 @@ msgid "" "while True:\n" " print(xf())" msgstr "" -"\n" -"``xf = x.f`` \n" -"در حالی که ``True`` است: \n" -"    ``print(xf())`` " +"xf = x.f\n" +"while True:\n" +" print(xf())" #: ../../tutorial/classes.rst:370 #, fuzzy @@ -977,22 +966,22 @@ msgid "" ">>> e.name # unique to e\n" "'Buddy'" msgstr "" -"کلاس `Dog`:\n" +"class Dog:\n" "\n" -"    kind = 'canine'     # متغیر کلاس که توسط همه نمونه ها به اشتراک گذاشته می شود\n" +" kind = 'canine' # class variable shared by all instances\n" "\n" -"    def __init__(self, name):\n" -"        self.name = name     # متغیر نمونه که برای هر نمونه منحصر به فرد است\n" +" def __init__(self, name):\n" +" self.name = name # instance variable unique to each instance\n" "\n" -">>> d = `Dog`('Fido')\n" -">>> e = `Dog`('Buddy')\n" -">>> `d.kind` # به اشتراک گذاشته شده توسط همه سگ ها\n" +">>> d = Dog('Fido')\n" +">>> e = Dog('Buddy')\n" +">>> d.kind # shared by all dogs\n" "'canine'\n" -">>> `e.kind` # به اشتراک گذاشته شده توسط همه سگ ها\n" +">>> e.kind # shared by all dogs\n" "'canine'\n" -">>> `d.name` # منحصر به فرد برای d\n" +">>> d.name # unique to d\n" "'Fido'\n" -">>> `e.name` # منحصر به فرد برای e\n" +">>> e.name # unique to e\n" "'Buddy'" #: ../../tutorial/classes.rst:422 @@ -1030,21 +1019,21 @@ msgid "" ">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" msgstr "" -"کلاس Dog:\n" +"class Dog:\n" "\n" -"```tricks``` = [] # استفاده اشتباه از یک متغیر کلاسی\n" +" tricks = [] # mistaken use of a class variable\n" "\n" -"```def __init__(self, name):```\n" -"```self.name = name```\n" +" def __init__(self, name):\n" +" self.name = name\n" "\n" -"```def add_trick(self, trick):```\n" -"```self.tricks.append(trick)```\n" +" def add_trick(self, trick):\n" +" self.tricks.append(trick)\n" "\n" -"```>>> d = Dog('Fido')```\n" -"```>>> e = Dog('Buddy')```\n" -"```>>> d.add_trick('roll over')```\n" -"```>>> e.add_trick('play dead')```\n" -"```>>> d.tricks # به طور غیرمنتظره ای بین تمام سگ ها به اشتراک گذاشته می شود```\n" +">>> d = Dog('Fido')\n" +">>> e = Dog('Buddy')\n" +">>> d.add_trick('roll over')\n" +">>> e.add_trick('play dead')\n" +">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" #: ../../tutorial/classes.rst:445 @@ -1073,15 +1062,14 @@ msgid "" ">>> e.tricks\n" "['play dead']" msgstr "" -"کلاس Dog:\n" +"class Dog:\n" "\n" -"```python\n" -" def __init__(self, name):\n" -" self.name = name\n" -" self.tricks = [] # ایجاد یک لیست خالی جدید برای هر سگ\n" +" def __init__(self, name):\n" +" self.name = name\n" +" self.tricks = [] # creates a new empty list for each dog\n" "\n" -" def add_trick(self, trick):\n" -" self.tricks.append(trick)\n" +" def add_trick(self, trick):\n" +" self.tricks.append(trick)\n" "\n" ">>> d = Dog('Fido')\n" ">>> e = Dog('Buddy')\n" @@ -1090,8 +1078,7 @@ msgstr "" ">>> d.tricks\n" "['roll over']\n" ">>> e.tricks\n" -"['play dead']\n" -"```" +"['play dead']" #: ../../tutorial/classes.rst:469 #, fuzzy @@ -1151,8 +1138,8 @@ msgstr "" " شیء مورد اشاره قرار گیرند. به عبارت دیگر، کلاس ها قابل استفاده برای پیاده " "سازی انواع داده های کاملاً انتزاعی نیستند. در واقع، هیچ چیزی در پایتون وجود " "ندارد که امکان پنهان سازی داده ها را به صورت اجباری فراهم کند --- این موضوع " -"کاملاً بر اساس قرارداد است. (از سوی دیگر، پیاده سازی پایتون که به زبان C " -"نوشته شده، می تواند جزئیات پیاده سازی را به طور کامل پنهان کند و در صورت " +"کاملاً بر اساس قرارداد است. (از سوی دیگر, پیاده سازی پایتون که به زبان C " +"نوشته شده, می تواند جزئیات پیاده سازی را به طور کامل پنهان کند و در صورت " "لزوم دسترسی به یک شیء را کنترل نماید؛ این قابلیت می تواند توسط افزونه های " "نوشته شده به زبان C برای پایتون استفاده شود.)" @@ -1229,7 +1216,7 @@ msgid "" "\n" " h = g" msgstr "" -"# تابعی که خارج از کلاس تعریف شده است\n" +"# Function defined outside the class\n" "def f1(self, x, y):\n" " return min(x, x+y)\n" "\n" @@ -1277,16 +1264,16 @@ msgid "" " self.add(x)\n" " self.add(x)" msgstr "" -"کلاس `Bag`:\n" -" \n" -" `def __init__(self):`\n" -" این یک تابع سازنده است که یک لیست خالی به نام `data` ایجاد می کند.\n" -" \n" -" `def add(self, x):`\n" -" این تابع مقدار `x` را به لیست `data` اضافه می کند.\n" +"class Bag:\n" +" def __init__(self):\n" +" self.data = []\n" "\n" -" `def addtwice(self, x):`\n" -" این تابع مقدار `x` را دو بار به لیست `data` اضافه می کند. در اینجا، از تابع `add` دو بار استفاده می شود." +" def add(self, x):\n" +" self.data.append(x)\n" +"\n" +" def addtwice(self, x):\n" +" self.add(x)\n" +" self.add(x)" #: ../../tutorial/classes.rst:549 #, fuzzy @@ -1489,7 +1476,7 @@ msgid "" " .\n" " " msgstr "" -"کلاس `DerivedClassName` (پایه1، پایه2، پایه3):\n" +"کلاس `DerivedClassName` (پایه1, پایه2, پایه3):\n" " <دستورا لعمل-۱>\n" " .\n" " .\n" @@ -1577,7 +1564,7 @@ msgstr "" "داخل یک شی، وجود ندارند. با این حال، یک قاعده وجود دارد که بیشتر کدهای " "پایتون از آن پیروی می کنند: نامی که با یک زیرخط (مانند ``_spam``) شروع می " "شود، باید به عنوان بخشی غیرعمومی از API در نظر گرفته شود (چه این نام یک " -"تابع، یک روش یا یک عضو داده باشد). این باید به عنوان جزئیات پیاده سازی در " +"تابع, یک روش یا یک عضو داده باشد). این باید به عنوان جزئیات پیاده سازی در " "نظر گرفته شود و ممکن است بدون اطلاع قبلی تغییر کند." #: ../../tutorial/classes.rst:682 @@ -1593,7 +1580,7 @@ msgid "" "identifier, as long as it occurs within the definition of a class." msgstr "" "از آنجایی که کاربرد معتبری برای اعضای خصوصی کلاس وجود دارد (یعنی جلوگیری از " -"تداخل نام ها با نام هایی که توسط زیرکلاس ها تعریف می شوند)، پشتیبانی محدودی " +"تداخل نام ها با نام هایی که توسط زیرکلاس ها تعریف می شوند), پشتیبانی محدودی " "برای این مکانیزم، که به آن :dfn:`تغییر نام` گفته می شود، وجود دارد. هر شناسه" " ای از فرم ``__spam`` (که حداقل شامل دو زیرخط در ابتدا و حداکثر یک زیرخط در " "انتها باشد) به صورت متنی با ``_classname__spam`` جایگزین می شود، که در اینجا" @@ -1641,24 +1628,24 @@ msgid "" " for item in zip(keys, values):\n" " self.items_list.append(item)" msgstr "" -"کلاس `Mapping`:\n" -" تعریف `__init__` (خود، تکراری):\n" -" خود.لیست_آیتم ها = []\n" -" خود.__به روزرسانی(تکراری)\n" +"class Mapping:\n" +" def __init__(self, iterable):\n" +" self.items_list = []\n" +" self.__update(iterable)\n" "\n" -" تعریف به روزرسانی(self, iterable):\n" -" برای آیتم در تکراری:\n" -" خود.لیست_آیتم ها.اضافه کردن(آیتم)\n" +" def update(self, iterable):\n" +" for item in iterable:\n" +" self.items_list.append(item)\n" "\n" -" __به روزرسانی = به روزرسانی # نسخه کپی خصوصی از روش اصلی به روزرسانی()\n" +" __update = update # private copy of original update() method\n" "\n" -"کلاس `MappingSubclass` (`Mapping`):\n" +"class MappingSubclass(Mapping):\n" "\n" -" تعریف به روزرسانی(خود، کلیدها، مقادیر):\n" -" # امضای جدیدی برای به روزرسانی فراهم می کند\n" -" # اما ملاک `__init__()` را نمی شکند\n" -" برای آیتم در `zip(keys, values)`:\n" -" خود.لیست_آیتم ها.اضافه کردن(آیتم)" +" def update(self, keys, values):\n" +" # provides new signature for update()\n" +" # but does not break __init__()\n" +" for item in zip(keys, values):\n" +" self.items_list.append(item)" #: ../../tutorial/classes.rst:718 #, fuzzy @@ -1705,7 +1692,7 @@ msgstr "" #: ../../tutorial/classes.rst:738 #, fuzzy msgid "Odds and Ends" -msgstr "ریز و درشت ها" +msgstr "Odds and Ends" #: ../../tutorial/classes.rst:740 #, fuzzy @@ -1729,9 +1716,13 @@ msgid "" " dept: str\n" " salary: int" msgstr "" -"از ماژول `dataclasses`، کلاس `Employee` با استفاده از دکوراتور `@dataclass` " -"تعریف شده است. این کلاس شامل سه ویژگی به نام های `name`، `dept` و `salary` " -"است که به ترتیب از نوع داده ای `str`، `str` و `int` هستند." +"from dataclasses import dataclass\n" +"\n" +"@dataclass\n" +"class Employee:\n" +" name: str\n" +" dept: str\n" +" salary: int" #: ../../tutorial/classes.rst:754 #, fuzzy @@ -1742,10 +1733,10 @@ msgid "" ">>> john.salary\n" "1000" msgstr "" -">>> جان = Employee('john', 'computer lab', 1000)\n" -">>> جان.dept\n" +">>> john = Employee('john', 'computer lab', 1000)\n" +">>> john.dept\n" "'computer lab'\n" -">>> جان.salary\n" +">>> john.salary\n" "1000" #: ../../tutorial/classes.rst:760 @@ -1806,7 +1797,6 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end='')" msgstr "" -"```python\n" "for element in [1, 2, 3]:\n" " print(element)\n" "for element in (1, 2, 3):\n" @@ -1816,16 +1806,7 @@ msgstr "" "for char in \"123\":\n" " print(char)\n" "for line in open(\"myfile.txt\"):\n" -" print(line, end='')\n" -"``` \n" -"\n" -"برای تکرار بر روی المان های لیستی مانند `[1, 2, 3]` از حلقه `for` استفاده می شود و هر المان به وسیله `print` چاپ می شود. به طور مشابه، این امر برای تاپل ها مانند `(1, 2, 3)` نیز انجام می گیرد. \n" -"\n" -"در عبارت دیکشنری `{'one':1, 'two':2}`، حلقه `for` بر روی کلیدها تکرار می کند و هر کلید به وسیله `print` نمایش داده می شود.\n" -"\n" -"برای رشته ها مانند `\"123\"`، حلقه `for` از طریق هر کاراکتر تکرار می کند و نتیجه هر کاراکتر به وسیله `print` چاپ می شود.\n" -"\n" -"در مورد فایل ها، حلقه `for` می تواند بر روی هر خط در فایل باز شده با نام \"myfile.txt\" تکرار کند و هر خط را با `print` همراه با حذف خط پایانی پیش فرض چاپ کند." +" print(line, end='')" #: ../../tutorial/classes.rst:798 #, fuzzy @@ -1920,8 +1901,8 @@ msgid "" " self.index = self.index - 1\n" " return self.data[self.index]" msgstr "" -"کلاس Reverse:\n" -" \"\"\"یک تکرارگر برای پیمایش معکوس بر روی یک دنباله.\"\"\"\n" +"class Reverse:\n" +" \"\"\"Iterator for looping over a sequence backwards.\"\"\"\n" " def __init__(self, data):\n" " self.data = data\n" " self.index = len(data)\n" @@ -1930,10 +1911,10 @@ msgstr "" " return self\n" "\n" " def __next__(self):\n" -" اگر self.index به 0 برسد:\n" -" یک استثناء StopIteration ایجاد کن\n" -" self.index را به اندازه یک واحد کم کن\n" -" بازگردان data[self.index] را" +" if self.index == 0:\n" +" raise StopIteration\n" +" self.index = self.index - 1\n" +" return self.data[self.index]" #: ../../tutorial/classes.rst:845 #, fuzzy @@ -1990,17 +1971,9 @@ msgid "" " for index in range(len(data)-1, -1, -1):\n" " yield data[index]" msgstr "" -"```python\n" "def reverse(data):\n" " for index in range(len(data)-1, -1, -1):\n" -" yield data[index]\n" -"```\n" -"\n" -"```farsi\n" -"def reverse(data):\n" -" برای index در بازه range(len(data)-1, -1, -1):\n" -" yield data[index]\n" -"```\n" +" yield data[index]" #: ../../tutorial/classes.rst:875 #, fuzzy @@ -2013,15 +1986,13 @@ msgid "" "o\n" "g" msgstr "" -"```python\n" -">>> for char in reverse('گلف'):\n" +">>> for char in reverse('golf'):\n" "... print(char)\n" "...\n" -"ف\n" -"ل\n" -"و\n" -"گ\n" -"```" +"f\n" +"l\n" +"o\n" +"g" #: ../../tutorial/classes.rst:883 #, fuzzy @@ -2109,23 +2080,21 @@ msgid "" ">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" "['f', 'l', 'o', 'g']" msgstr "" -"```python\n" ">>> sum(i*i for i in range(10)) # sum of squares\n" "285\n" "\n" ">>> xvec = [10, 20, 30]\n" ">>> yvec = [7, 5, 3]\n" -">>> sum(x*y for x,y in zip(xvec, yvec)) # محاسبه حاصلضرب نقطه ای\n" +">>> sum(x*y for x,y in zip(xvec, yvec)) # dot product\n" "260\n" "\n" -">>> unique_words = set(word for line in page for word in line.split()) # کلمات یکتا\n" +">>> unique_words = set(word for line in page for word in line.split())\n" "\n" -">>> valedictorian = max((student.gpa, student.name) for student in graduates) # پیدا کردن دانش آموز برتر\n" +">>> valedictorian = max((student.gpa, student.name) for student in graduates)\n" "\n" ">>> data = 'golf'\n" -">>> list(data[i] for i in range(len(data)-1, -1, -1)) # برعکس کردن داده ها\n" -"['f', 'l', 'o', 'g']\n" -"```" +">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" +"['f', 'l', 'o', 'g']" #: ../../tutorial/classes.rst:932 #, fuzzy diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 3afcb1259..77325e4e7 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -123,8 +123,8 @@ msgid "" msgstr "" "بیانیه :keyword:`for` در پایتون کمی با آنچه ممکن است در C یا Pascal به آن " "عادت کرده باشید متفاوت است. به جای آنکه همیشه بر روی یک پیشرفت عددی حسابی " -"حرکت کند (مثل Pascal)، یا امکان تعریف گام تکرار و شرط توقف را برای کاربر " -"فراهم کند (مثل C)، بیانیه :keyword:`!for` در پایتون بر روی آیتم های هر توالی" +"حرکت کند (مثل Pascal), یا امکان تعریف گام تکرار و شرط توقف را برای کاربر " +"فراهم کند (مثل C), بیانیه :keyword:`!for` در پایتون بر روی آیتم های هر توالی" " (مثل یک لیست یا رشته) به ترتیبی که در توالی ظاهر می شوند، تکرار می کند. " "برای مثال:" @@ -177,15 +177,15 @@ msgid "" " if status == 'active':\n" " active_users[user] = status" msgstr "" -"# ایجاد یک مجموعه نمونه\n" +"# Create a sample collection\n" "users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" "\n" -"# استراتژی: تکرار بر روی یک نسخه\n" +"# Strategy: Iterate over a copy\n" "for user, status in users.copy().items():\n" " if status == 'inactive':\n" " del users[user]\n" "\n" -"# استراتژی: ایجاد یک مجموعه جدید\n" +"# Strategy: Create a new collection\n" "active_users = {}\n" "for user, status in users.items():\n" " if status == 'active':\n" @@ -217,7 +217,7 @@ msgid "" "3\n" "4" msgstr "" -">>> برای i در range(5):\n" +">>> for i in range(5):\n" "... print(i)\n" "...\n" "0\n" @@ -312,7 +312,7 @@ msgid "" ">>> range(10)\n" "range(0, 10)" msgstr "" -">>> range(10) \n" +">>> range(10)\n" "range(0, 10)" #: ../../tutorial/controlflow.rst:143 @@ -531,8 +531,8 @@ msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the ``for`` loop, **not** the ``if`` statement.)" msgstr "" -"(بله، این کد درست است. با دقت نگاه کنید: قسمت ``else`` به حلقه ``for`` تعلق " -"دارد، **not** به عبارت ``if``.)" +"(بله, این کد درست است. با دقت نگاه کنید: قسمت ``else`` به حلقه ``for`` تعلق " +"دارد, **not** به عبارت ``if``.)" #: ../../tutorial/controlflow.rst:242 #, fuzzy @@ -589,7 +589,7 @@ msgid "" "..." msgstr "" ">>> while True:\n" -"... pass # منتظر دریافت قطع برنامه با صفحه کلید (Ctrl+C)\n" +"... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." #: ../../tutorial/controlflow.rst:266 @@ -629,7 +629,7 @@ msgid "" "..." msgstr "" ">>> def initlog(*args):\n" -"... pass # به یاد داشته باشید که این را پیاده سازی کنید!\n" +"... pass # Remember to implement this!\n" "..." #: ../../tutorial/controlflow.rst:284 @@ -677,7 +677,6 @@ msgid "" " case _:\n" " return \"Something's wrong with the internet\"" msgstr "" -"```python\n" "def http_error(status):\n" " match status:\n" " case 400:\n" @@ -687,8 +686,7 @@ msgstr "" " case 418:\n" " return \"I'm a teapot\"\n" " case _:\n" -" return \"Something's wrong with the internet\"\n" -"```" +" return \"Something's wrong with the internet\"" #: ../../tutorial/controlflow.rst:307 #, fuzzy @@ -742,7 +740,7 @@ msgid "" " case _:\n" " raise ValueError(\"Not a point\")" msgstr "" -"# point یک تاپل (x, y) است\n" +"# point is an (x, y) tuple\n" "match point:\n" " case (0, 0):\n" " print(\"Origin\")\n" @@ -803,23 +801,23 @@ msgid "" " case _:\n" " print(\"Not a point\")" msgstr "" -"کلاس `Point`:\n" -" تعریف `__init__` (خود، x، y):\n" -" خود. x = x\n" -" خود. y = y\n" -"\n" -"تعریف `where_is` (نقطه):\n" -" تطابق نقطه:\n" -" مورد `Point(x=0, y=0)`:\n" -" چاپ (\"مبدأ\")\n" -" مورد `Point(x=0, y=y)`:\n" -" چاپ (f\"Y={y}\")\n" -" مورد `Point(x=x, y=0)`:\n" -" چاپ (f\"X={x}\")\n" -" مورد `Point`():\n" -" چاپ (\"یک جای دیگر\")\n" -" مورد _:\n" -" چاپ (\"نقطه نیست\")" +"class Point:\n" +" def __init__(self, x, y):\n" +" self.x = x\n" +" self.y = y\n" +"\n" +"def where_is(point):\n" +" match point:\n" +" case Point(x=0, y=0):\n" +" print(\"Origin\")\n" +" case Point(x=0, y=y):\n" +" print(f\"Y={y}\")\n" +" case Point(x=x, y=0):\n" +" print(f\"X={x}\")\n" +" case Point():\n" +" print(\"Somewhere else\")\n" +" case _:\n" +" print(\"Not a point\")" #: ../../tutorial/controlflow.rst:360 #, fuzzy @@ -846,10 +844,10 @@ msgid "" "Point(x=1, y=var)\n" "Point(y=var, x=1)" msgstr "" -"Point(1, var) \n" -"Point(1, y=var) \n" -"Point(x=1, y=var) \n" -"Point(y=var, x=1) " +"Point(1, var)\n" +"Point(1, y=var)\n" +"Point(x=1, y=var)\n" +"Point(y=var, x=1)" #: ../../tutorial/controlflow.rst:371 #, fuzzy @@ -866,7 +864,7 @@ msgstr "" " یافته از چیزی که در سمت چپ یک انتساب قرار می دهید نگاه کنید، تا بفهمید کدام" " متغیرها به چه چیزی تنظیم خواهند شد. تنها نام های مستقل (مانند ``var`` در " "بالا) توسط یک عبارت مطابقت تخصیص داده می شوند. نام های نقطه دار (مانند " -"``foo.bar``)، نام های خصوصیت (``x=`` و ``y=`` در بالا) یا نام های کلاس (که " +"``foo.bar``), نام های خصوصیت (``x=`` و ``y=`` در بالا) یا نام های کلاس (که " "با \"(...)\" در کنار آنها شناخته می شوند، مانند ``Point`` در بالا) هرگز " "تخصیص داده نمی شوند." @@ -901,7 +899,7 @@ msgid "" " case _:\n" " print(\"Something else\")" msgstr "" -"کلاس Point:\n" +"class Point:\n" " __match_args__ = ('x', 'y')\n" " def __init__(self, x, y):\n" " self.x = x\n" @@ -909,15 +907,15 @@ msgstr "" "\n" "match points:\n" " case []:\n" -" print(\"هیچ نقطه ای وجود ندارد\")\n" +" print(\"No points\")\n" " case [Point(0, 0)]:\n" -" print(\"مبدا\")\n" +" print(\"The origin\")\n" " case [Point(x, y)]:\n" -" print(f\"نقطه منفرد {x}, {y}\")\n" +" print(f\"Single point {x}, {y}\")\n" " case [Point(0, y1), Point(0, y2)]:\n" -" print(f\"دو نقطه روی محور Y در {y1}, {y2}\")\n" +" print(f\"Two on the Y axis at {y1}, {y2}\")\n" " case _:\n" -" print(\"چیز دیگری\")" +" print(\"Something else\")" #: ../../tutorial/controlflow.rst:399 #, fuzzy @@ -940,7 +938,7 @@ msgid "" " case Point(x, y):\n" " print(f\"Not on the diagonal\")" msgstr "" -"مطابقت نقطه:\n" +"match point:\n" " case Point(x, y) if x == y:\n" " print(f\"Y=X at {x}\")\n" " case Point(x, y):\n" @@ -986,7 +984,7 @@ msgstr "" "الگوهای نگاشت: ``{\"bandwidth\": b, \"latency\": l}`` مقادیر " "``\"bandwidth\"`` و ``\"latency\"`` را از یک دیکشنری استخراج می کند. بر خلاف" " الگوهای ترتیبی، کلیدهای اضافی نادیده گرفته می شوند. یک استخراج مانند " -"``**rest`` نیز پشتیبانی می شود. (اما ``**_`` اضافی خواهد بود، بنابراین مجاز " +"``**rest`` نیز پشتیبانی می شود. (اما ``**_`` اضافی خواهد بود, بنابراین مجاز " "نیست.)" #: ../../tutorial/controlflow.rst:425 @@ -997,7 +995,7 @@ msgstr "زیر الگوها ممکن است با استفاده از کلیدو #: ../../tutorial/controlflow.rst:427 #, fuzzy msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." -msgstr "در حالت (Point(x1, y1)، Point(x2, y2) به عنوان p2): ..." +msgstr "در حالت (Point(x1, y1), Point(x2, y2) به عنوان p2): ..." #: ../../tutorial/controlflow.rst:429 #, fuzzy @@ -1046,7 +1044,6 @@ msgid "" " case Color.BLUE:\n" " print(\"I'm feeling the blues :(\")" msgstr "" -"```python\n" "from enum import Enum\n" "class Color(Enum):\n" " RED = 'red'\n" @@ -1061,8 +1058,7 @@ msgstr "" " case Color.GREEN:\n" " print(\"Grass is green\")\n" " case Color.BLUE:\n" -" print(\"I'm feeling the blues :(\")\n" -"```" +" print(\"I'm feeling the blues :(\")" #: ../../tutorial/controlflow.rst:454 #, fuzzy @@ -1165,9 +1161,9 @@ msgstr "" "می شوند، سپس در جدول نماد محلی توابع محیطی، سپس در جدول نماد جهانی، و در " "نهایت در جدول نام های داخلی. بنابراین، متغیرهای جهانی و متغیرهای توابع محیطی" " نمی توانند به صورت مستقیم یک مقدار را در یک تابع دریافت کنند (مگر اینکه " -"برای متغیرهای جهانی، در یک عبارت :keyword:`global` نام گذاری شده باشند، یا " -"برای متغیرهای توابع محیطی، در یک عبارت :keyword:`nonlocal` نام گذاری شده " -"باشند)، اگرچه می توان به آنها ارجاع داد." +"برای متغیرهای جهانی, در یک عبارت :keyword:`global` نام گذاری شده باشند, یا " +"برای متغیرهای توابع محیطی, در یک عبارت :keyword:`nonlocal` نام گذاری شده " +"باشند), اگرچه می توان به آنها ارجاع داد." #: ../../tutorial/controlflow.rst:505 #, fuzzy @@ -1181,7 +1177,7 @@ msgid "" msgstr "" "پارامترهای واقعی (آرگومان ها) در یک فراخوانی تابع در جدول نمادهای محلی تابع " "فراخوانی شده معرفی می شوند؛ بنابراین، آرگومان ها به صورت *call by value* (که" -" *value* همیشه یک شیء *reference* است، نه مقدار شیء) منتقل می شوند. [#]_ " +" *value* همیشه یک شیء *reference* است, نه مقدار شیء) منتقل می شوند. [#]_ " "زمانی که تابعی، تابع دیگری را فراخوانی می کند یا به صورت بازگشتی خود را صدا " "می زند، یک جدول نماد محلی جدید برای آن فراخوانی ایجاد می شود." @@ -1268,17 +1264,17 @@ msgid "" ">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" msgstr "" -">>> def fib2(n): # بازگرداندن سری فیبوناچی تا n\n" -"... \"\"\"یک لیست شامل سری فیبوناچی تا n برمی گرداند.\"\"\"\n" +">>> def fib2(n): # return Fibonacci series up to n\n" +"... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" "... result = []\n" "... a, b = 0, 1\n" "... while a < n:\n" -"... result.append(a) # به توضیحات پایین رجوع کنید\n" +"... result.append(a) # see below\n" "... a, b = b, a+b\n" "... return result\n" "...\n" -">>> f100 = fib2(100) # فراخوانی تابع\n" -">>> f100 # نوشتن نتیجه\n" +">>> f100 = fib2(100) # call it\n" +">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" #: ../../tutorial/controlflow.rst:550 @@ -1318,7 +1314,7 @@ msgstr "" "``methodname`` نام متدی است که توسط نوع آن شی تعریف شده است. انواع مختلف، " "متدهای مختلفی را تعریف می کنند. متدهای انواع مختلف ممکن است نام یکسانی داشته" " باشند بدون این که ابهامی ایجاد کنند. (این امکان وجود دارد که نوع اشیا و " -"متدهای خود را با استفاده از *classes* تعریف کنید، به :ref:`tut-classes` " +"متدهای خود را با استفاده از *classes* تعریف کنید, به :ref:`tut-classes` " "مراجعه کنید) متد :meth:`!append` که در مثال نشان داده شده برای اشیای لیست " "تعریف شده است؛ این متد یک عنصر جدید را به انتهای لیست اضافه می کند. در این " "مثال معادل ``result = result + [a]`` است، اما کارآمدتر." @@ -1368,10 +1364,6 @@ msgid "" " raise ValueError('invalid user response')\n" " print(reminder)" msgstr "" -"\n" -"تعریف یک تابع ساده برای پرسیدن یک سوال از کاربر و انتظار دریافت یک پاسخ معتبر:\n" -"\n" -"```python\n" "def ask_ok(prompt, retries=4, reminder='Please try again!'):\n" " while True:\n" " reply = input(prompt)\n" @@ -1382,8 +1374,7 @@ msgstr "" " retries = retries - 1\n" " if retries < 0:\n" " raise ValueError('invalid user response')\n" -" print(reminder)\n" -"```" +" print(reminder)" #: ../../tutorial/controlflow.rst:598 #, fuzzy @@ -1482,13 +1473,13 @@ msgid "" "print(f(2))\n" "print(f(3))" msgstr "" -"تعریف تابع `f` که دو آرگومان `a` و `L` که پیش فرض یک لیست خالی `[]` است، می پذیرد. این تابع مقدار `a` را به لیست `L` اضافه کرده و سپس `L` را برمی گرداند.\n" -"\n" -"در این مثال، چاپ مقادیر زیر رخ خواهد داد::\n" +"def f(a, L=[]):\n" +" L.append(a)\n" +" return L\n" "\n" -" [1]\n" -" [1, 2]\n" -" [1, 2, 3]" +"print(f(1))\n" +"print(f(2))\n" +"print(f(3))" #: ../../tutorial/controlflow.rst:636 #, fuzzy @@ -1503,9 +1494,7 @@ msgid "" "[1, 2, 3]" msgstr "" "[1]\n" -"\n" "[1, 2]\n" -"\n" "[1, 2, 3]" #: ../../tutorial/controlflow.rst:642 @@ -1526,13 +1515,11 @@ msgid "" " L.append(a)\n" " return L" msgstr "" -"تابع پیش فرض های قابل تغییر: این مثال نشان می دهد که چگونه ممکن است یک مقدار" -" پیش فرض لیست به طور غیرمنتظره تغییر کند. وقتی که از لیستی به عنوان یک مقدار" -" پیش فرض برای یک آرگومان استفاده می کنید، باید محتاط باشید، زیرا اگر مقدار " -"پیش فرض فقط یکبار در هنگام تعریف تابع ارزیابی شده باشد، تابع ممکن است مقدار " -"پیش فرض را در فراخوانی های بعدی تغییر دهد. در این مثال، اگر `L` `None` " -"نباشد، سپس مقدار پیش فرض استفاده می شود و مقدار `a` را به انتهای لیست پیش " -"فرض اضافه می کند، اما در غیر این صورت یک لیست جدید ساخته شده است." +"def f(a, L=None):\n" +" if L is None:\n" +" L = []\n" +" L.append(a)\n" +" return L" #: ../../tutorial/controlflow.rst:655 #, fuzzy @@ -1558,13 +1545,11 @@ msgid "" " print(\"-- Lovely plumage, the\", type)\n" " print(\"-- It's\", state, \"!\")" msgstr "" -"```python\n" -"def parrot(voltage, state='خشک', action='پرواز', type='آبی نروژی'):\n" -" print(\"-- این طوطی نمی تواند\", action, end=' ')\n" -" print(\"اگر شما\", voltage, \"ولت از آن عبور دهید.\")\n" -" print(\"-- پرهای زیبا،\", type)\n" -" print(\"-- آن\", state, \"است!\")\n" -"```" +"def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" +" print(\"-- This parrot wouldn't\", action, end=' ')\n" +" print(\"if you put\", voltage, \"volts through it.\")\n" +" print(\"-- Lovely plumage, the\", type)\n" +" print(\"-- It's\", state, \"!\")" #: ../../tutorial/controlflow.rst:666 #, fuzzy @@ -1573,7 +1558,7 @@ msgid "" "(``state``, ``action``, and ``type``). This function can be called in any " "of the following ways::" msgstr "" -"یک آرگومان ضروری (``voltage``) و سه آرگومان اختیاری (``state``، ``action`` و" +"یک آرگومان ضروری (``voltage``) و سه آرگومان اختیاری (``state``, ``action`` و" " ``type``) را می پذیرد. این تابع می تواند به هر یک از روش های زیر فراخوانی " "شود::" @@ -1587,12 +1572,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) # 1 آرگومان موقعیتی\n" -"parrot(voltage=1000) # 1 آرگومان کلیدواژه ای\n" -"parrot(voltage=1000000, action='VOOOOOM') # 2 آرگومان کلیدواژه ای\n" -"parrot(action='VOOOOOM', voltage=1000000) # 2 آرگومان کلیدواژه ای\n" -"parrot('a million', 'bereft of life', 'jump') # 3 آرگومان موقعیتی\n" -"parrot('a thousand', state='pushing up the daisies') # 1 موقعیتی، 1 کلیدواژه ای" +"parrot(1000) # 1 positional argument\n" +"parrot(voltage=1000) # 1 keyword argument\n" +"parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments\n" +"parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments\n" +"parrot('a million', 'bereft of life', 'jump') # 3 positional arguments\n" +"parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword" #: ../../tutorial/controlflow.rst:677 #, fuzzy @@ -1626,7 +1611,7 @@ msgstr "" "در یک فراخوانی تابع، آرگومان های کلیدی باید پس از آرگومان های موضعی بیایند. " "همه آرگومان های کلیدی که ارسال می شوند باید با یکی از آرگومان های پذیرفته " "شده توسط تابع مطابقت داشته باشند (برای مثال ``actor`` یک آرگومان معتبر برای " -"تابع ``parrot`` نیست)، و ترتیب آنها اهمیتی ندارد. این شامل آرگومان های غیر " +"تابع ``parrot`` نیست), و ترتیب آنها اهمیتی ندارد. این شامل آرگومان های غیر " "اختیاری نیز می باشد (برای مثال ``parrot(voltage=1000)`` هم معتبر است). هیچ " "آرگومانی نباید بیش از یک بار مقداری بگیرد. در اینجا مثالی آورده شده که به " "دلیل این محدودیت شکست می خورد::" @@ -1704,11 +1689,11 @@ msgid "" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" msgstr "" -"cheeseshop(\"Limburger\", \"این خیلی روان است، آقا.\",\n" -" \"این واقعاً خیلی، خیلی روان است، آقا.\",\n" -" shopkeeper=\"مایکل پیلین\",\n" -" client=\"جان کلیز\",\n" -" sketch=\"طرح مغازه پنیر\")" +"cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" +" \"It's really very, VERY runny, sir.\",\n" +" shopkeeper=\"Michael Palin\",\n" +" client=\"John Cleese\",\n" +" sketch=\"Cheese Shop Sketch\")" #: ../../tutorial/controlflow.rst:725 #, fuzzy @@ -1956,7 +1941,7 @@ msgstr "" "\n" ">>> pos_only_arg(arg=1)\n" "ردیابی اخیر (آخرین تماس اخیر):\n" -" فایل \"\"، خط 1، در \n" +" فایل \"\", خط 1، در \n" "TypeError: pos_only_arg() تعدادی آرگومان فقط-مکانی به عنوان آرگومان کلیدواژه ای دریافت کرد: 'arg'" #: ../../tutorial/controlflow.rst:836 @@ -2045,9 +2030,8 @@ msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" msgstr "" -"تعریف تابعی با نام `foo` که دو آرگومان می گیرد: `name` و `**kwds`. این تابع " -"بررسی می کند آیا `'name'` به عنوان یک کلید در `kwds` وجود دارد یا خیر و " -"مقدار بولین برمی گرداند." +"def foo(name, **kwds):\n" +" return 'name' in kwds" #: ../../tutorial/controlflow.rst:872 #, fuzzy @@ -2080,7 +2064,7 @@ msgid "" "``name`` as a positional argument and ``'name'`` as a key in the keyword " "arguments::" msgstr "" -"اما با استفاده از ``/`` (آرگومان های تنها مکانی)، این امکان وجود دارد زیرا " +"اما با استفاده از ``/`` (آرگومان های تنها مکانی), این امکان وجود دارد زیرا " "``name`` را به عنوان یک آرگومان مکانی و ``'name'`` را به عنوان یک کلید در " "آرگومان های کلیدواژه ای مجاز می کند::" @@ -2201,10 +2185,8 @@ msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" msgstr "" -"تعریف `write_multiple_items` تابعی است که سه پارامتر دریافت می کند: `file`، " -"`separator`، و آرگومان های دلخواه `args`. تابع داده های موجود در `args` را " -"با استفاده از `separator` به یک رشته ترکیب می کند و آن را داخل فایل می " -"نویسد." +"def write_multiple_items(file, separator, *args):\n" +" file.write(separator.join(args))" #: ../../tutorial/controlflow.rst:930 #, fuzzy @@ -2287,10 +2269,10 @@ msgid "" ">>> list(range(*args)) # call with arguments unpacked from a list\n" "[3, 4, 5]" msgstr "" -">>> list(range(3, 6)) # فراخوان معمولی با آرگومان های جداگانه\n" +">>> list(range(3, 6)) # normal call with separate arguments\n" "[3, 4, 5]\n" ">>> args = [3, 6]\n" -">>> list(range(*args)) # فراخوان با آرگومان هایی که از یک لیست باز شده اند\n" +">>> list(range(*args)) # call with arguments unpacked from a list\n" "[3, 4, 5]" #: ../../tutorial/controlflow.rst:965 @@ -2365,7 +2347,7 @@ msgstr "" ">>> f(0)\n" "42\n" ">>> f(1)\n" -"43\n" +"43" #: ../../tutorial/controlflow.rst:1000 #, fuzzy @@ -2384,9 +2366,9 @@ msgid "" ">>> pairs\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" msgstr "" -">>> زوج ها = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" -">>> زوج ها.مرتب سازی(key=lambda pair: pair[1])\n" -">>> زوج ها\n" +">>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" +">>> pairs.sort(key=lambda pair: pair[1])\n" +">>> pairs\n" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" #: ../../tutorial/controlflow.rst:1012 @@ -2414,7 +2396,7 @@ msgid "" msgstr "" "اولین خط باید همیشه یک خلاصه کوتاه و مختصر از هدف شیء باشد. به دلیل اختصار، " "نباید به صورت صریح نام یا نوع شیء را بیان کند، زیرا این اطلاعات از طریق روش " -"های دیگر در دسترس است (مگر در مواردی که نام، یک فعل توصیف کننده عملکرد یک " +"های دیگر در دسترس است (مگر در مواردی که نام, یک فعل توصیف کننده عملکرد یک " "تابع باشد). این خط باید با حرف بزرگ شروع شود و با نقطه پایان یابد." #: ../../tutorial/controlflow.rst:1028 @@ -2563,7 +2545,7 @@ msgid "" msgstr "" "حالا که قرار است قطعات طولانی تر و پیچیده تری از پایتون بنویسید، زمان خوبی " "است برای صحبت درباره ی *coding style*. بیشتر زبان ها را می توان به سبک های " -"مختلف نوشت (یا به طور خلاصه تر، *formatted*)؛ برخی از این سبک ها نسبت به " +"مختلف نوشت (یا به طور خلاصه تر, *formatted*)؛ برخی از این سبک ها نسبت به " "بقیه خواناتر هستند. راحت کردن خواندن کد شما برای دیگران همیشه ایده ی خوبی " "است و اتخاذ یک سبک کدنویسی خوب برای این امر بسیار کمک کننده خواهد بود." @@ -2683,7 +2665,7 @@ msgstr "" " contents = file.read()\n" " print(contents)\n" "\n" -"در این قطعه کد، 'example.txt' باز می شود و محتوای آن خوانده و چاپ می گردد. پس از اتمام بلوک 'with'، فایل به طور خودکار بسته می شود." +"در این قطعه کد، 'example.txt' باز می شود و محتوای آن خوانده و چاپ می گردد. پس از اتمام بلوک 'with', فایل به طور خودکار بسته می شود." #: ../../tutorial/controlflow.rst:1127 #, fuzzy @@ -2779,7 +2761,7 @@ msgstr "دکسترینگ ها" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy msgid "strings, documentation" -msgstr "رشته ها، مستندات" +msgstr "strings, documentation" #: ../../tutorial/controlflow.rst:918 #, fuzzy diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index a7be0e1d2..e2e205ae5 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -134,7 +134,7 @@ msgid "" "customization, see :func:`sorted` for their explanation)." msgstr "" "اقلام لیست را در جای خود مرتب کنید (می توان از آرگومان ها برای سفارشی سازی " -"مرتب سازی استفاده کرد، برای توضیح آنها به :func:`sorted` مراجعه کنید)." +"مرتب سازی استفاده کرد, برای توضیح آنها به :func:`sorted` مراجعه کنید)." #: ../../tutorial/datastructures.rst:90 #, fuzzy @@ -176,25 +176,25 @@ msgid "" "'pear'" msgstr "" ">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']\n" -">>> fruits.count('apple') \n" -"۲ \n" -">>> fruits.count('tangerine') \n" -"۰ \n" -">>> fruits.index('banana') \n" -"۳ \n" -">>> fruits.index('banana', 4) # پیدا کردن موز بعدی از مکان ۴ \n" -"۶ \n" -">>> fruits.reverse() \n" -">>> fruits \n" -"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange'] \n" -">>> fruits.append('grape') \n" -">>> fruits \n" -"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape'] \n" -">>> fruits.sort() \n" -">>> fruits \n" -"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear'] \n" -">>> fruits.pop() \n" -"'pear' " +">>> fruits.count('apple')\n" +"2\n" +">>> fruits.count('tangerine')\n" +"0\n" +">>> fruits.index('banana')\n" +"3\n" +">>> fruits.index('banana', 4) # Find next banana starting at position 4\n" +"6\n" +">>> fruits.reverse()\n" +">>> fruits\n" +"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']\n" +">>> fruits.append('grape')\n" +">>> fruits\n" +"['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']\n" +">>> fruits.sort()\n" +">>> fruits\n" +"['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']\n" +">>> fruits.pop()\n" +"'pear'" #: ../../tutorial/datastructures.rst:122 #, fuzzy @@ -239,7 +239,7 @@ msgid "" " For example::" msgstr "" "متدهای لیست استفاده از یک لیست به عنوان یک پشته را بسیار آسان می کنند، جایی " -"که آخرین عنصر اضافه شده اولین عنصر بازیابی شده است (\"آخرین ورودی، اولین " +"که آخرین عنصر اضافه شده اولین عنصر بازیابی شده است (\"آخرین ورودی, اولین " "خروجی\"). برای افزودن یک آیتم به بالای پشته از :meth:`!append` استفاده کنید." " برای بازیابی یک آیتم از بالای پشته، از :meth:`!pop` بدون یک اندیس مشخص " "استفاده کنید. برای مثال::" @@ -294,7 +294,7 @@ msgid "" "(because all of the other elements have to be shifted by one)." msgstr "" "همچنین می توان از یک لیست به عنوان صف استفاده کرد، به طوری که اولین عنصری که" -" اضافه می شود، اولین عنصری است که بازیابی می شود (\"اولین ورودی، اولین " +" اضافه می شود، اولین عنصری است که بازیابی می شود (\"اولین ورودی, اولین " "خروجی\")؛ با این حال، لیست ها برای این منظور کارآمد نیستند. در حالی که اضافه" " کردن ها و حذف ها از انتهای لیست سریع هستند، انجام وارد کردن ها یا حذف ها از" " ابتدای لیست کند است (زیرا همه عناصر دیگر باید به اندازه یک واحد جابجا " @@ -325,13 +325,13 @@ msgid "" msgstr "" ">>> from collections import deque\n" ">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n" -">>> queue.append(\"Terry\") # تری می آید\n" -">>> queue.append(\"Graham\") # گراهام می آید\n" -">>> queue.popleft() # اولین نفری که آمد حالا می رود\n" +">>> queue.append(\"Terry\") # Terry arrives\n" +">>> queue.append(\"Graham\") # Graham arrives\n" +">>> queue.popleft() # The first to arrive now leaves\n" "'Eric'\n" -">>> queue.popleft() # دومی نفری که آمد حالا می رود\n" +">>> queue.popleft() # The second to arrive now leaves\n" "'John'\n" -">>> queue # صف باقی مانده به ترتیب ورود\n" +">>> queue # Remaining queue in order of arrival\n" "deque(['Michael', 'Terry', 'Graham'])" #: ../../tutorial/datastructures.rst:196 @@ -389,10 +389,7 @@ msgstr "" #: ../../tutorial/datastructures.rst:216 #, fuzzy msgid "squares = list(map(lambda x: x**2, range(10)))" -msgstr "" -"\n" -"\n" -"مربعات = فهرست(map(lambda x: x**2, range(10)))" +msgstr "squares = list(map(lambda x: x**2, range(10)))" #: ../../tutorial/datastructures.rst:218 #, fuzzy @@ -452,13 +449,13 @@ msgid "" ">>> combs\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" msgstr "" -">>> ترکیبات = []\n" -">>> برای x در [1,2,3]:\n" -"... برای y در [3,1,4]:\n" -"... اگر x != y:\n" -"... ترکیبات.پیوست((x, y))\n" +">>> combs = []\n" +">>> for x in [1,2,3]:\n" +"... for y in [3,1,4]:\n" +"... if x != y:\n" +"... combs.append((x, y))\n" "...\n" -">>> ترکیبات\n" +">>> combs\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" #: ../../tutorial/datastructures.rst:245 @@ -476,7 +473,7 @@ msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" msgstr "" -"اگر عبارت یک تاپل باشد (مثلاً ``(x, y)`` در مثال قبلی)، باید در پرانتز قرار " +"اگر عبارت یک تاپل باشد (مثلاً ``(x, y)`` در مثال قبلی), باید در پرانتز قرار " "گیرد. ::" #: ../../tutorial/datastructures.rst:251 @@ -553,7 +550,7 @@ msgid "" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" msgstr "" -">>> از math وارد کنید pi\n" +">>> from math import pi\n" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" @@ -657,11 +654,11 @@ msgid "" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" msgstr "" ">>> transposed = []\n" -">>> برای i در طیف(4):\n" -"... # سه خط زیر لیست تو در تو را پیاده سازی می کند\n" +">>> for i in range(4):\n" +"... # the following 3 lines implement the nested listcomp\n" "... transposed_row = []\n" -"... برای سطر در matrix:\n" -"... transposed_row.append(satr[i])\n" +"... for row in matrix:\n" +"... transposed_row.append(row[i])\n" "... transposed.append(transposed_row)\n" "...\n" ">>> transposed\n" @@ -764,7 +761,7 @@ msgstr "" #: ../../tutorial/datastructures.rst:370 #, fuzzy msgid "Tuples and Sequences" -msgstr "تاپل ها و دنباله ها" +msgstr "Tuples and Sequences" #: ../../tutorial/datastructures.rst:372 #, fuzzy @@ -893,7 +890,7 @@ msgid "" "('hello',)" msgstr "" ">>> empty = ()\n" -">>> singleton = 'hello', # <-- توجه داشته باشید که ویرگول در انتها آمده است\n" +">>> singleton = 'hello', # <-- note trailing comma\n" ">>> len(empty)\n" "0\n" ">>> len(singleton)\n" @@ -1109,7 +1106,7 @@ msgid "" "use the :keyword:`in` keyword." msgstr "" "انجام ``list(d)`` بر روی یک دیکشنری، لیستی از تمامی کلیدهای استفاده شده در " -"دیکشنری را در ترتیب درج شده بر می گرداند (اگر می خواهید مرتب باشد، به جای آن" +"دیکشنری را در ترتیب درج شده بر می گرداند (اگر می خواهید مرتب باشد, به جای آن" " از ``sorted(d)`` استفاده کنید). برای بررسی اینکه آیا یک کلید خاص در دیکشنری" " وجود دارد، از کلمه کلیدی :keyword:`in` استفاده کنید." @@ -1321,7 +1318,7 @@ msgid "" "3\n" "1" msgstr "" -">>> برای i در reversed(range(1, 10, 2)):\n" +">>> for i in reversed(range(1, 10, 2)):\n" "... print(i)\n" "...\n" "9\n" diff --git a/tutorial/errors.po b/tutorial/errors.po index 9fb68caf9..439402691 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/errors.rst:5 #, fuzzy msgid "Errors and Exceptions" -msgstr "خطاها و استثناها" +msgstr "Errors and Exceptions" #: ../../tutorial/errors.rst:7 #, fuzzy @@ -231,10 +231,10 @@ msgid "" msgstr "" ">>> while True:\n" "... try:\n" -"... x = int(input(\"لطفاً یک عدد وارد کنید: \"))\n" +"... x = int(input(\"Please enter a number: \"))\n" "... break\n" "... except ValueError:\n" -"... print(\"اوه! این یک عدد معتبر نبود. دوباره سعی کنید...\")\n" +"... print(\"Oops! That was no valid number. Try again...\")\n" "..." #: ../../tutorial/errors.rst:102 @@ -309,7 +309,7 @@ msgid "" "... except (RuntimeError, TypeError, NameError):\n" "... pass" msgstr "" -"... به جز (RuntimeError، TypeError، NameError):\n" +"... به جز (RuntimeError, TypeError, NameError):\n" "... عبور" #: ../../tutorial/errors.rst:128 @@ -323,7 +323,7 @@ msgid "" msgstr "" "یک کلاس در یک بند :keyword:`except` با خطاهایی مطابقت دارد که نمونه هایی از " "خود کلاس یا یکی از کلاس های مشتق شده از آن هستند (اما نه به صورت برعکس --- " -"یک *except clause* که یک کلاس مشتق شده را فهرست کرده است، با نمونه های کلاس " +"یک *except clause* که یک کلاس مشتق شده را فهرست کرده است, با نمونه های کلاس " "های پایه ی خود مطابقت ندارد). برای مثال، کد زیر به ترتیب B، C، D را چاپ " "خواهد کرد::" @@ -349,24 +349,24 @@ msgid "" " except B:\n" " print(\"B\")" msgstr "" -"کلاس `B` (استثنا): \n" -"عبور کنید\n" +"class B(Exception):\n" +" pass\n" "\n" -"کلاس `C` (مشتق از `B`): \n" -"عبور کنید\n" +"class C(B):\n" +" pass\n" "\n" -"کلاس `D` (مشتق از `C`): \n" -"عبور کنید\n" +"class D(C):\n" +" pass\n" "\n" -"برای `cls` در `[B, C, D]`: \n" -"سعی کنید: \n" -"کلاس را ایجاد کنید و آن را برانگیزید \n" -"اگر `D` بود: \n" -"چاپ کنید \"D\" \n" -"اگر `C` بود: \n" -"چاپ کنید \"C\" \n" -"اگر `B` بود: \n" -"چاپ کنید \"B\"" +"for cls in [B, C, D]:\n" +" try:\n" +" raise cls()\n" +" except D:\n" +" print(\"D\")\n" +" except C:\n" +" print(\"C\")\n" +" except B:\n" +" print(\"B\")" #: ../../tutorial/errors.rst:152 #, fuzzy @@ -376,7 +376,7 @@ msgid "" "triggered." msgstr "" "توجه داشته باشید که اگر *except clauses* معکوس شود (با ``except B`` به عنوان" -" اول)، خروجی B، B، B خواهد بود --- اولین *except clause* مطابقت داده شده " +" اول), خروجی B، B، B خواهد بود --- اولین *except clause* مطابقت داده شده " "فعال می شود." #: ../../tutorial/errors.rst:155 @@ -510,7 +510,6 @@ msgid "" " print(f\"Unexpected {err=}, {type(err)=}\")\n" " raise" msgstr "" -"```python\n" "import sys\n" "\n" "try:\n" @@ -518,13 +517,12 @@ msgstr "" " s = f.readline()\n" " i = int(s.strip())\n" "except OSError as err:\n" -" print(\"خطای سیستم عامل:\", err)\n" +" print(\"OS error:\", err)\n" "except ValueError:\n" -" print(\"نمی توان داده ها را به عدد صحیح تبدیل کرد.\")\n" +" print(\"Could not convert data to an integer.\")\n" "except Exception as err:\n" -" print(f\"پیش بینی نشده {err=}, {type(err)=}\")\n" -" raise\n" -"```" +" print(f\"Unexpected {err=}, {type(err)=}\")\n" +" raise" #: ../../tutorial/errors.rst:216 #, fuzzy @@ -551,14 +549,14 @@ msgid "" " print(arg, 'has', len(f.readlines()), 'lines')\n" " f.close()" msgstr "" -"برای هر `arg` در `sys.argv[1:]`:\n" -" تلاش کن:\n" -" `f` را به صورت `open(arg, 'r')` باز کن\n" -" به جز `OSError`:\n" -" `print('cannot open', arg)` را اجرا کن\n" -" در غیر این صورت:\n" -" `print(arg, 'has', len(f.readlines()), 'lines')` را اجرا کن\n" -" `f.close()` را اجرا کن" +"for arg in sys.argv[1:]:\n" +" try:\n" +" f = open(arg, 'r')\n" +" except OSError:\n" +" print('cannot open', arg)\n" +" else:\n" +" print(arg, 'has', len(f.readlines()), 'lines')\n" +" f.close()" #: ../../tutorial/errors.rst:230 #, fuzzy @@ -647,14 +645,14 @@ msgid "" msgstr "" "تنها آرگومان به :keyword:`raise` نشان دهنده استثنایی است که باید برانگیخته " "شود. این باید یا یک نمونه استثناء یا یک کلاس استثناء باشد (کلاسی که از " -":class:`BaseException` مشتق شده است، مانند :exc:`Exception` یا یکی از " +":class:`BaseException` مشتق شده است, مانند :exc:`Exception` یا یکی از " "زیرکلاس های آن). اگر یک کلاس استثناء ارسال شود، به صورت ضمنی با فراخوانی " "سازنده اش بدون آرگومان نمونه سازی می شود::" #: ../../tutorial/errors.rst:270 #, fuzzy msgid "raise ValueError # shorthand for 'raise ValueError()'" -msgstr "یک خطای ValueError ایجاد کن # شکل کوتاه 'raise ValueError()'" +msgstr "raise ValueError # shorthand for 'raise ValueError()'" #: ../../tutorial/errors.rst:272 #, fuzzy @@ -765,7 +763,7 @@ msgid "" "# exc must be exception instance or None.\n" "raise RuntimeError from exc" msgstr "" -"# exc باید یک نمونه استثنا یا None باشد.\n" +"# exc must be exception instance or None.\n" "raise RuntimeError from exc" #: ../../tutorial/errors.rst:322 @@ -1161,7 +1159,7 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" msgstr "" -"برای خط در فایل \"myfile.txt\":\n" +"for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" #: ../../tutorial/errors.rst:497 @@ -1187,8 +1185,7 @@ msgid "" " for line in f:\n" " print(line, end=\"\")" msgstr "" -"با استفاده از `with open(\"myfile.txt\") as f`:\n" -"\n" +"with open(\"myfile.txt\") as f:\n" " for line in f:\n" " print(line, end=\"\")" @@ -1374,10 +1371,10 @@ msgstr "" "داشتن خطاهای سیستم\n" "داشتن خطاهای سیستم عامل\n" " + ردگیری گروه استثنا ( آخرین فراخوانی در ابتدا):\n" -" | فایل \"\"، خط 2، در \n" +" | فایل \"\", خط 2، در \n" " | f()\n" " | ~^^\n" -" | فایل \"\"، خط 2، در f\n" +" | فایل \"\", خط 2، در f\n" " | raise ExceptionGroup(\n" " | ...<12 خطوط>...\n" " | )\n" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 63d3e444d..25ec97900 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -243,10 +243,10 @@ msgid "" ">>> repr(math.pi)\n" "'3.141592653589793'" msgstr "" -">>> format(math.pi, '.12g') # 12 عدد معنادار را بدهید\n" +">>> format(math.pi, '.12g') # give 12 significant digits\n" "'3.14159265359'\n" "\n" -">>> format(math.pi, '.2f') # 2 رقم بعد از نقطه را بدهید\n" +">>> format(math.pi, '.2f') # give 2 digits after the point\n" "'3.14'\n" "\n" ">>> repr(math.pi)\n" @@ -538,9 +538,9 @@ msgid "" "True" msgstr "" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" -"نادرست\n" +"False\n" ">>> sum([0.1] * 10) == 1.0\n" -"درست" +"True" #: ../../tutorial/floatingpoint.rst:233 #, fuzzy @@ -577,17 +577,17 @@ msgid "" msgstr "" ">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" "... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" -">>> float(sum(map(Fraction, arr))) # جمع دقیق با یکبار رُند کردن\n" +">>> float(sum(map(Fraction, arr))) # Exact summation with single rounding\n" "8.042173697819788e-13\n" -">>> math.fsum(arr) # رُند کردن یکباره\n" +">>> math.fsum(arr) # Single rounding\n" "8.042173697819788e-13\n" -">>> sum(arr) # رُند کردن های متعدد با دقت گسترش یافته\n" +">>> sum(arr) # Multiple roundings in extended precision\n" "8.042178034628478e-13\n" ">>> total = 0.0\n" ">>> for x in arr:\n" -"... total += x # رُند کردن های متعدد با دقت استاندارد\n" +"... total += x # Multiple roundings in standard precision\n" "...\n" -">>> total # جمع مستقیم عدد صحیحی را ندارد!\n" +">>> total # Straight addition has no correct digits!\n" "-0.0051575902860057365" #: ../../tutorial/floatingpoint.rst:260 @@ -617,7 +617,7 @@ msgid "" msgstr "" "خطای نمایش به این واقعیت اشاره دارد که برخی (در واقع بیشتر) کسرهای اعشاری " "نمی توانند به طور دقیق به صورت کسرهای دودویی (مبنای ۲) نمایش داده شوند. این " -"دلیل اصلی است که چرا پایتون (یا پرل، C، C++، جاوا، فورترن و بسیاری دیگر) " +"دلیل اصلی است که چرا پایتون (یا پرل, C, C++, جاوا, فورترن و بسیاری دیگر) " "اغلب نمی توانند عدد اعشاری دقیقی را که انتظار دارید نمایش دهند." #: ../../tutorial/floatingpoint.rst:271 @@ -661,7 +661,7 @@ msgid "" "2**53``), the best value for *N* is 56:" msgstr "" "و با یادآوری اینکه *J* دقیقا ۵۳ بیت دارد (``>= 2**52`` است اما ``< 2**53`` " -"نیست)، بهترین مقدار برای *N* برابر ۵۶ است:" +"نیست), بهترین مقدار برای *N* برابر ۵۶ است:" #: ../../tutorial/floatingpoint.rst:289 #, fuzzy @@ -670,7 +670,7 @@ msgid "" "True" msgstr "" ">>> 2**52 <= 2**56 // 10 < 2**53\n" -"درست" +"True" #: ../../tutorial/floatingpoint.rst:294 #, fuzzy @@ -721,10 +721,7 @@ msgstr "" #: ../../tutorial/floatingpoint.rst:316 #, fuzzy msgid "7205759403792794 / 2 ** 56" -msgstr "" -"تقسیم یک عدد صحیح بزرگ بر توان ۲ در پایتون به سادگی قابل انجام است. این توانایی به لطف نوع داده ی \"int\" پایتون است که به صورت خودکار اعداد بزرگ را دسته بندی و مدیریت می کند. برای مثال، در زیر یک عدد صحیح بزرگ بر یک توان از ۲ تقسیم می شود و نتیجه بازگردانده می شود:\n" -"\n" -"7205759403792794 / 2 ** 56" +msgstr "7205759403792794 / 2 ** 56" #: ../../tutorial/floatingpoint.rst:318 #, fuzzy @@ -796,7 +793,7 @@ msgid "" msgstr "" "به این معنا که عدد دقیق ذخیره شده در کامپیوتر برابر با مقدار دهدهی " "0.1000000000000000055511151231257827021181583404541015625 است. به جای نمایش " -"مقدار کامل دهدهی، بسیاری از زبان ها (شامل نسخه های قدیمی تر پایتون)، نتیجه " +"مقدار کامل دهدهی، بسیاری از زبان ها (شامل نسخه های قدیمی تر پایتون), نتیجه " "را به 17 رقم معنادار گرد می کنند:" #: ../../tutorial/floatingpoint.rst:347 @@ -838,13 +835,13 @@ msgstr "" ">>> from fractions import Fraction\n" "\n" ">>> Fraction.from_float(0.1)\n" -"کسر (3602879701896397، 36028797018963968)\n" +"Fraction(3602879701896397, 36028797018963968)\n" "\n" ">>> (0.1).as_integer_ratio()\n" -"(3602879701896397، 36028797018963968)\n" +"(3602879701896397, 36028797018963968)\n" "\n" ">>> Decimal.from_float(0.1)\n" -"اعشاری ('0.1000000000000000055511151231257827021181583404541015625')\n" +"Decimal('0.1000000000000000055511151231257827021181583404541015625')\n" "\n" -">>> format(Decimal.from_float(0.1)، '.17')\n" +">>> format(Decimal.from_float(0.1), '.17')\n" "'0.10000000000000001'" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 01ccd901a..7f3b27017 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/inputoutput.rst:5 #, fuzzy msgid "Input and Output" -msgstr "ورودی و خروجی" +msgstr "Input and Output" #: ../../tutorial/inputoutput.rst:7 #, fuzzy @@ -92,7 +92,7 @@ msgstr "" ">>> year = 2016\n" ">>> event = 'Referendum'\n" ">>> f'Results of the {year} {event}'\n" -"'نتایج همه پرسی 2016'" +"'Results of the 2016 Referendum'" #: ../../tutorial/inputoutput.rst:37 #, fuzzy @@ -175,7 +175,7 @@ msgid "" msgstr "" "تابع :func:`str` قرار است که نمایش هایی از مقادیر را برگرداند که برای انسان " "قابل فهم باشند، در حالی که :func:`repr` هدف دارد نمایش هایی تولید کند که " -"توسط مفسر خوانده شوند (یا اگر هیچ سینتکس معادلی وجود نداشته باشد، یک " +"توسط مفسر خوانده شوند (یا اگر هیچ سینتکس معادلی وجود نداشته باشد, یک " ":exc:`SyntaxError` را اجباری می کند). برای اشیایی که نمایش خاصی برای مصرف " "انسانی ندارند، :func:`str` همان مقداری که :func:`repr` برمی گرداند را برمی " "گرداند. بسیاری از مقادیر، مانند اعداد یا ساختارهایی مانند لیست ها و دیکشنری " @@ -211,7 +211,7 @@ msgid "" ">>> repr((x, y, ('spam', 'eggs')))\n" "\"(32.5, 40000, ('spam', 'eggs'))\"" msgstr "" -">>> s = 'سلام، دنیا.'\n" +">>> s = 'سلام, دنیا.'\n" ">>> str(s)\n" "'سلام، دنیا.'\n" ">>> repr(s)\n" @@ -220,11 +220,11 @@ msgstr "" "'0.14285714285714285'\n" ">>> x = 10 * 3.25\n" ">>> y = 200 * 200\n" -">>> s = 'مقدار x برابر است با ' + repr(x) + '، و y برابر است با ' + repr(y) + '...'\n" +">>> s = 'مقدار x برابر است با ' + repr(x) + ', و y برابر است با ' + repr(y) + '...'\n" ">>> print(s)\n" "مقدار x برابر است با 32.5، و y برابر است با 40000...\n" -">>> # تابع repr() در رشته ها، نقل قول ها و بک اسلش ها را اضافه می کند:\n" -">>> hello = 'سلام، دنیا\\n'\n" +">>> # تابع repr() در رشته ها, نقل قول ها و بک اسلش ها را اضافه می کند:\n" +">>> hello = 'سلام, دنیا\\n'\n" ">>> hellos = repr(hello)\n" ">>> print(hellos)\n" "'سلام، دنیا\\n'\n" @@ -400,10 +400,10 @@ msgid "" ">>> print('{1} and {0}'.format('spam', 'eggs'))\n" "eggs and spam" msgstr "" -">>> print('{0} و {1}'.format('spam', 'eggs'))\n" -"spam و eggs\n" -">>> print('{1} و {0}'.format('spam', 'eggs'))\n" -"eggs و spam" +">>> print('{0} and {1}'.format('spam', 'eggs'))\n" +"spam and eggs\n" +">>> print('{1} and {0}'.format('spam', 'eggs'))\n" +"eggs and spam" #: ../../tutorial/inputoutput.rst:183 #, fuzzy @@ -635,7 +635,7 @@ msgstr "" "طولانی باشد، آن را کوتاه نمی کنند و به صورت تغییر نیافته برمی گردانند؛ این " "ممکن است چینش ستون های شما را به هم بریزد، اما این اغلب بهتر از جایگزینی غلط" " است که می تواند باعث اشتباه در یک مقدار شود. (اگر به راستی به کوتاه کردن " -"نیاز دارید، می توانید همیشه یک عملیات برش اضافه کنید، مانند " +"نیاز دارید, می توانید همیشه یک عملیات برش اضافه کنید, مانند " "``x.ljust(n)[:n]``.)" #: ../../tutorial/inputoutput.rst:275 @@ -720,7 +720,7 @@ msgstr "" #: ../../tutorial/inputoutput.rst:318 #, fuzzy msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" -msgstr "```f = open('workfile', 'w', encoding=\"utf-8\")```" +msgstr ">>> f = open('workfile', 'w', encoding=\"utf-8\")" #: ../../tutorial/inputoutput.rst:325 #, fuzzy @@ -776,7 +776,7 @@ msgid "" "reading and writing such files." msgstr "" "در حالت متنی، به صورت پیش فرض هنگام خواندن، انتهای خطوط مختص به پلتفرم " -"(``\\n`` در یونیکس، ``\\r\\n`` در ویندوز) به سادگی به ``\\n`` تبدیل می شود. " +"(``\\n`` در یونیکس, ``\\r\\n`` در ویندوز) به سادگی به ``\\n`` تبدیل می شود. " "هنگام نوشتن در حالت متنی، پیش فرض این است که وقوعات ``\\n`` به انتهای خطوط " "مختص به پلتفرم تبدیل شوند. این تغییرات پشت صحنه در داده های فایل برای فایل " "های متنی مناسب است، اما داده های باینری مانند آنچه در فایل های :file:`JPEG` " @@ -811,7 +811,7 @@ msgstr "" ">>> with open('workfile', encoding=\"utf-8\") as f:\n" "... read_data = f.read()\n" "\n" -">>> # ما می توانیم بررسی کنیم که فایل به طور خودکار بسته شده است.\n" +">>> # We can check that the file has been automatically closed.\n" ">>> f.closed\n" "True" @@ -906,7 +906,7 @@ msgid "" "''" msgstr "" ">>> f.read()\n" -"'این تمام فایل است.\\n'\n" +"'This is the entire file.\\n'\n" ">>> f.read()\n" "''" @@ -938,9 +938,9 @@ msgid "" "''" msgstr "" ">>> f.readline()\n" -"'این اولین خط فایل است.\\n'\n" +"'This is the first line of the file.\\n'\n" ">>> f.readline()\n" -"'خط دوم فایل\\n'\n" +"'Second line of the file\\n'\n" ">>> f.readline()\n" "''" @@ -992,10 +992,8 @@ msgid "" ">>> f.write('This is a test\\n')\n" "15" msgstr "" -"```python\n" ">>> f.write('This is a test\\n')\n" -"15\n" -"```" +"15" #: ../../tutorial/inputoutput.rst:443 #, fuzzy @@ -1014,8 +1012,8 @@ msgid "" ">>> f.write(s)\n" "18" msgstr "" -">>> value = ('پاسخ', 42)\n" -">>> s = str(value) # تبدیل تیپل به رشته\n" +">>> value = ('the answer', 42)\n" +">>> s = str(value) # convert the tuple to string\n" ">>> f.write(s)\n" "18" @@ -1066,14 +1064,14 @@ msgstr "" ">>> f = open('workfile', 'rb+')\n" ">>> f.write(b'0123456789abcdef')\n" "16\n" -">>> f.seek(5) # به بایت ششم در فایل بروید\n" +">>> f.seek(5) # Go to the 6th byte in the file\n" "5\n" ">>> f.read(1)\n" "b'5'\n" -">>> f.seek(-3, 2) # به 3 بایت قبل از انتها بروید\n" +">>> f.seek(-3, 2) # Go to the 3rd byte before the end\n" "13\n" ">>> f.read(1)\n" -"b'd'\n" +"b'd'" #: ../../tutorial/inputoutput.rst:474 #, fuzzy @@ -1084,7 +1082,7 @@ msgid "" "*offset* values are those returned from the ``f.tell()``, or zero. Any other" " *offset* value produces undefined behaviour." msgstr "" -"در فایل های متنی (آنهایی که بدون ``b`` در رشته حالت باز می شوند)، فقط جابه " +"در فایل های متنی (آنهایی که بدون ``b`` در رشته حالت باز می شوند), فقط جابه " "جایی های نسبی نسبت به ابتدای فایل مجاز هستند (استثنا جابه جایی به انتهای " "فایل با ``seek(0, 2)`` است) و تنها مقادیر معتبر *offset* آنهایی هستند که از " "``f.tell()`` برگشت داده می شوند، یا صفر. هر مقدار *offset* دیگر رفتار " @@ -1195,10 +1193,7 @@ msgstr "" #: ../../tutorial/inputoutput.rst:526 #, fuzzy msgid "json.dump(x, f)" -msgstr "" -"```python\n" -"json.dump(x, f)\n" -"```" +msgstr "json.dump(x, f)" #: ../../tutorial/inputoutput.rst:528 #, fuzzy diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index e4f164b3a..4ac2246ea 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -59,7 +59,7 @@ msgid "" msgstr "" "به شل. [#]_ از آنجایی که انتخاب دایرکتوری که مفسر در آن قرار دارد یک گزینه " "نصب است، مکان های دیگری نیز ممکن است وجود داشته باشد؛ با کارشناس محلی پایتون" -" یا مدیر سیستم خود مشورت کنید. (برای مثال، :file:`/usr/local/python` یک مکان" +" یا مدیر سیستم خود مشورت کنید. (برای مثال, :file:`/usr/local/python` یک مکان" " جایگزین محبوب است.)" #: ../../tutorial/interpreter.rst:26 @@ -85,7 +85,7 @@ msgid "" " exit status. If that doesn't work, you can exit the interpreter by typing " "the following command: ``quit()``." msgstr "" -"وارد کردن نویسه ی پایان فایل (:kbd:`Control-D` روی یونیکس، :kbd:`Control-Z` " +"وارد کردن نویسه ی پایان فایل (:kbd:`Control-D` روی یونیکس, :kbd:`Control-Z` " "روی ویندوز) در اعلان اولیه باعث می شود که مفسر با وضعیت خروجی صفر خارج شود. " "اگر این کار نتیجه نداد، می توانید با وارد کردن فرمان زیر از مفسر خارج شوید: " "``quit()``." @@ -223,8 +223,8 @@ msgstr "" "وقتی که دستورات از یک tty خوانده می شوند، گفته می شود که مفسر در حالت " "*interactive mode* قرار دارد. در این حالت، برای دریافت فرمان بعدی با " "*primary prompt* درخواست می کند، که معمولاً سه علامت بزرگ تر (``>>>``) " -"هستند؛ برای خطوط ادامه، با *secondary prompt* درخواست می کند، که به طور پیش " -"فرض سه نقطه (``...``) هستند. مفسر قبل از نمایش اولین درخواست، پیامی خوش آمد " +"هستند؛ برای خطوط ادامه, با *secondary prompt* درخواست می کند, که به طور پیش " +"فرض سه نقطه (``...``) هستند. مفسر قبل از نمایش اولین درخواست, پیامی خوش آمد " "می فرستد که شماره نسخه و اعلامیه حقوقی را بیان می کند." #: ../../tutorial/interpreter.rst:98 @@ -334,10 +334,7 @@ msgstr "" #: ../../tutorial/interpreter.rst:150 #, fuzzy msgid "# -*- coding: cp1252 -*-" -msgstr "" -"متن درخواستی برای ترجمه: \n" -"\n" -"# -*- coding: cp1252 -*-" +msgstr "# -*- coding: cp1252 -*-" #: ../../tutorial/interpreter.rst:152 #, fuzzy diff --git a/tutorial/introduction.po b/tutorial/introduction.po index b00239922..4ab04f04e 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -37,7 +37,7 @@ msgid "" "type a blank line; this is used to end a multi-line command." msgstr "" "در مثال های زیر، ورودی و خروجی با وجود یا عدم وجود پرامپت ها (:term:`>>>` و " -":term:`...`) از هم متمایز می شوند: برای تکرار مثال، باید همه چیزهایی که پس " +":term:`...`) از هم متمایز می شوند: برای تکرار مثال, باید همه چیزهایی که پس " "از پرامپت می آید را هنگامی که پرامپت ظاهر می شود تایپ کنید؛ خطوطی که با " "پرامپت شروع نمی شوند خروجی از مفسر هستند. توجه داشته باشید که یک پرامپت " "ثانویه روی یک خط به تنهایی در یک مثال به این معناست که شما باید یک خط خالی " @@ -53,7 +53,7 @@ msgid "" msgstr "" "شما می توانید نمایش دستورات و خروجی ها را با کلیک بر روی ``>>>`` در گوشه " "بالا-راست یک جعبه مثال تعویض کنید. اگر دستورات و خروجی ها را برای یک مثال " -"مخفی کنید، آنگاه می توانید به راحتی خطوط ورودی را به مفسر خود کپی و الصاق " +"مخفی کنید, آنگاه می توانید به راحتی خطوط ورودی را به مفسر خود کپی و الصاق " "کنید." #: ../../tutorial/introduction.rst:23 @@ -88,10 +88,10 @@ msgid "" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" -"# این اولین توضیح است\n" -"spam = 1 # و این دومین توضیح است\n" -" # ... و حالا سومی!\n" -"text = \"# این یک توضیح نیست زیرا داخل کوتیشن­ها قرار دارد.\"" +"# this is the first comment\n" +"spam = 1 # and this is the second comment\n" +" # ... and now a third!\n" +"text = \"# This is not a comment because it's inside quotes.\"" #: ../../tutorial/introduction.rst:42 #, fuzzy @@ -105,7 +105,7 @@ msgid "" "the primary prompt, ``>>>``. (It shouldn't take long.)" msgstr "" "بیایید چند دستور ساده پایتون را امتحان کنیم. مفسر را اجرا کرده و منتظر اعلان" -" اصلی، ``>>>``، بمانید. (نباید مدت زیادی طول بکشد.)" +" اصلی، ``>>>``, بمانید. (نباید مدت زیادی طول بکشد.)" #: ../../tutorial/introduction.rst:51 #, fuzzy @@ -143,7 +143,7 @@ msgstr "" "20\n" ">>> (50 - 5*6) / 4\n" "5.0\n" -">>> 8 / 5 # تقسیم همیشه یک عدد اعشاری برمی گرداند\n" +">>> 8 / 5 # division always returns a floating-point number\n" "1.6" #: ../../tutorial/introduction.rst:68 @@ -153,8 +153,8 @@ msgid "" "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type " ":class:`float`. We will see more about numeric types later in the tutorial." msgstr "" -"اعداد صحیح (مثلاً ``2``، ``4``، ``20``) از نوع :class:`int` هستند، آنهایی که" -" دارای قسمت کسری هستند (مثلاً ``5.0``، ``1.6``) از نوع :class:`float` می " +"اعداد صحیح (مثلاً ``2``, ``4``, ``20``) از نوع :class:`int` هستند، آنهایی که" +" دارای قسمت کسری هستند (مثلاً ``5.0``, ``1.6``) از نوع :class:`float` می " "باشند. در ادامه آموزش، درباره انواع عددی بیشتر خواهیم دید." #: ../../tutorial/introduction.rst:72 @@ -209,7 +209,7 @@ msgid "" msgstr "" ">>> 5 ** 2 # 5 squared\n" "25\n" -">>> 2 ** 7 # 2 به توان 7\n" +">>> 2 ** 7 # 2 to the power of 7\n" "128" #: ../../tutorial/introduction.rst:93 @@ -240,7 +240,7 @@ msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" msgstr "" -"اگر یک متغیر \"تعریف نشده\" باشد (یعنی مقداری به آن اختصاص داده نشده باشد)، " +"اگر یک متغیر \"تعریف نشده\" باشد (یعنی مقداری به آن اختصاص داده نشده باشد), " "تلاش برای استفاده از آن باعث بروز خطا می شود::" #: ../../tutorial/introduction.rst:104 @@ -271,7 +271,7 @@ msgid "" ">>> 4 * 3.75 - 1\n" "14.0" msgstr "" -">>> 4 * 3.75 - 1 \n" +">>> 4 * 3.75 - 1\n" "14.0" #: ../../tutorial/introduction.rst:115 @@ -304,9 +304,7 @@ msgstr "" ">>> price + _\n" "113.0625\n" ">>> round(_, 2)\n" -"113.06\n" -"\n" -"در مثال بالا، مقدار مالیات به درصد تعریف شده است. قیمت اولیه کالا 100.50 است. با ضرب قیمت در نرخ مالیات، مقدار مالیات محاسبه می شود. سپس قیمت کالا با مقدار مالیات جمع می شود و نتیجه در مرحله ی آخر با دقت دو رقم اعشار گرد می شود." +"113.06" #: ../../tutorial/introduction.rst:128 #, fuzzy @@ -350,8 +348,8 @@ msgid "" msgstr "" "پایتون می تواند متن ها (که با نوع :class:`str` نمایش داده می شوند و به " "\"رشته ها\" معروف هستند) و همچنین اعداد را پردازش کند. این شامل حروف " -"\"``!``\"، کلمات \"``rabbit``\"، نام ها \"``Paris``\"، جملات \"``Got your " -"back.``\"، و غیره \"``Yay! :)``\" می شود. می توان آن ها را درون گیومه های " +"\"``!``\", کلمات \"``rabbit``\", نام ها \"``Paris``\", جملات \"``Got your " +"back.``\", و غیره \"``Yay! :)``\" می شود. می توان آن ها را درون گیومه های " "تکی (``'...'``) یا دو گیومه (``\"...\"``) قرار داد و نتیجه یکسان خواهد بود " "[#]_." @@ -379,9 +377,9 @@ msgid "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" msgstr "" -">>> 'doesn\\'t' # از \\' برای جلوگیری از برخورد با آپاستروف استفاده کنید...\n" +">>> 'doesn\\'t' # use \\' to escape the single quote...\n" "\"doesn't\"\n" -">>> \"doesn't\" # ...یا به جای آن از کوتیشن دوتایی استفاده کنید\n" +">>> \"doesn't\" # ...or use double quotes instead\n" "\"doesn't\"\n" ">>> '\"Yes,\" they said.'\n" "'\"Yes,\" they said.'\n" @@ -413,9 +411,9 @@ msgid "" "Second line." msgstr "" ">>> s = 'First line.\\nSecond line.' # \\n به معنای خط جدید است\n" -">>> s # بدون print()، کاراکترهای خاص در رشته قرار می گیرند\n" +">>> s # بدون print(), کاراکترهای خاص در رشته قرار می گیرند\n" "'First line.\\nSecond line.'\n" -">>> print(s) # با print()، کاراکترهای خاص تفسیر می شوند، بنابراین \\n خط جدید ایجاد می کند\n" +">>> print(s) # با print(), کاراکترهای خاص تفسیر می شوند, بنابراین \\n خط جدید ایجاد می کند\n" "First line.\n" "Second line." @@ -511,7 +509,7 @@ msgid "" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" -">>> # سه بار 'un'، به دنبال آن 'ium'\n" +">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" "'unununium'" @@ -548,10 +546,10 @@ msgid "" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" msgstr "" -">>> text = ('چندین رشته را داخل پرانتز قرار دهید '\n" -"... 'تا به هم متصل شوند.')\n" +">>> text = ('Put several strings within parentheses '\n" +"... 'to have them joined together.')\n" ">>> text\n" -"'چندین رشته را داخل پرانتز قرار دهید تا به هم متصل شوند.'" +"'Put several strings within parentheses to have them joined together.'" #: ../../tutorial/introduction.rst:234 #, fuzzy @@ -626,9 +624,9 @@ msgid "" "'n'" msgstr "" ">>> word = 'Python'\n" -">>> word[0] # کاراکتر در موقعیت 0\n" +">>> word[0] # character in position 0\n" "'P'\n" -">>> word[5] # کاراکتر در موقعیت 5\n" +">>> word[5] # character in position 5\n" "'n'" #: ../../tutorial/introduction.rst:263 @@ -648,9 +646,9 @@ msgid "" ">>> word[-6]\n" "'P'" msgstr "" -">>> word[-1] # آخرین کاراکتر\n" +">>> word[-1] # last character\n" "'n'\n" -">>> word[-2] # دومین کاراکتر از انتها\n" +">>> word[-2] # second-last character\n" "'o'\n" ">>> word[-6]\n" "'P'" @@ -681,9 +679,9 @@ msgid "" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" msgstr "" -">>> word[0:2] # حروف از موقعیت 0 (شامل) تا 2 (غیرشامل)\n" +">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" "'Py'\n" -">>> word[2:5] # حروف از موقعیت 2 (شامل) تا 5 (غیرشامل)\n" +">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" #: ../../tutorial/introduction.rst:282 @@ -706,11 +704,11 @@ msgid "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" msgstr "" -">>> word[:2] # کاراکترها از ابتدا تا موقعیت ۲ (غیرمشمول)\n" +">>> word[:2] # character from the beginning to position 2 (excluded)\n" "'Py'\n" -">>> word[4:] # کاراکترها از موقعیت ۴ (مشمول) تا انتها\n" +">>> word[4:] # characters from position 4 (included) to the end\n" "'on'\n" -">>> word[-2:] # کاراکترها از دومین از آخر (مشمول) تا انتها\n" +">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" #: ../../tutorial/introduction.rst:292 @@ -995,7 +993,7 @@ msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" -"مانند رشته ها (و تمام انواع داخلی :term:`sequence` دیگر)، لیست ها نیز می " +"مانند رشته ها (و تمام انواع داخلی :term:`sequence` دیگر), لیست ها نیز می " "توانند شاخص گذاری و برش داده شوند::" #: ../../tutorial/introduction.rst:399 @@ -1008,11 +1006,11 @@ msgid "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" msgstr "" -">>> squares[0] # ایندکس دهی، آیتم را بازمی گرداند\n" +">>> squares[0] # indexing returns the item\n" "1\n" ">>> squares[-1]\n" "25\n" -">>> squares[-3:] # برش، یک لیست جدید را بازمی گرداند\n" +">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" #: ../../tutorial/introduction.rst:406 @@ -1048,10 +1046,10 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125]" msgstr "" -">>> cubes = [1, 8, 27, 65, 125] # اینجا چیزی اشتباه است\n" -">>> 4 ** 3 # مکعب 4 برابر 64 است، نه 65!\n" +">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" +">>> 4 ** 3 # the cube of 4 is 64, not 65!\n" "64\n" -">>> cubes[3] = 64 # جایگزینی مقدار اشتباه\n" +">>> cubes[3] = 64 # replace the wrong value\n" ">>> cubes\n" "[1, 8, 27, 64, 125]" @@ -1072,8 +1070,8 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" -">>> cubes.append(216) # مکعب ۶ را اضافه کنید\n" -">>> cubes.append(7 ** 3) # و مکعب ۷ را اضافه کنید\n" +">>> cubes.append(216) # add the cube of 6\n" +">>> cubes.append(7 ** 3) # and the cube of 7\n" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" @@ -1103,7 +1101,7 @@ msgid "" msgstr "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" -">>> id(rgb) == id(rgba) # آنها به همان شیء اشاره می کنند\n" +">>> id(rgb) == id(rgba) # they reference the same object\n" "True\n" ">>> rgba.append(\"Alph\")\n" ">>> rgb\n" @@ -1165,20 +1163,20 @@ msgid "" ">>> letters\n" "[]" msgstr "" -">>> حروف = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" -">>> حروف\n" +">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" +">>> letters\n" "['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" -">>> # جایگزینی چند مقدار\n" -">>> حروف[2:5] = ['C', 'D', 'E']\n" -">>> حروف\n" +">>> # replace some values\n" +">>> letters[2:5] = ['C', 'D', 'E']\n" +">>> letters\n" "['a', 'b', 'C', 'D', 'E', 'f', 'g']\n" -">>> # حالا حذفشان کن\n" -">>> حروف[2:5] = []\n" -">>> حروف\n" +">>> # now remove them\n" +">>> letters[2:5] = []\n" +">>> letters\n" "['a', 'b', 'f', 'g']\n" -">>> # لیست را با جایگزینی تمام عناصر با یک لیست خالی پاک کن\n" -">>> حروف[:] = []\n" -">>> حروف\n" +">>> # clear the list by replacing all the elements with an empty list\n" +">>> letters[:] = []\n" +">>> letters\n" "[]" #: ../../tutorial/introduction.rst:472 @@ -1193,8 +1191,8 @@ msgid "" ">>> len(letters)\n" "4" msgstr "" -">>> حروف = ['a', 'b', 'c', 'd']\n" -">>> len(حروف)\n" +">>> letters = ['a', 'b', 'c', 'd']\n" +">>> len(letters)\n" "4" #: ../../tutorial/introduction.rst:478 @@ -1265,8 +1263,8 @@ msgid "" "5\n" "8" msgstr "" -">>> # سری فیبوناچی:\n" -">>> # جمع دو عنصر مقدار بعدی را تعریف می کند\n" +">>> # Fibonacci series:\n" +">>> # the sum of two elements defines the next\n" ">>> a, b = 0, 1\n" ">>> while a < 10:\n" "... print(a)\n" @@ -1428,14 +1426,7 @@ msgstr "" #: ../../tutorial/introduction.rst:21 #, fuzzy msgid "# (hash)" -msgstr "" -"# (هش)\n" -"ماژول ``datetime`` کلاس ها را برای دستکاری تاریخ و زمان به شیوه ای ساده و پیچیده عرضه می کند. \n" -"در حالی که استفاده از ماژول به هیچ تمهیداتی خاصی نیاز ندارد، با این حال، کمی دانش در مورد کلاس های ارائه شده می تواند برای کار با تاریخ و زمان بسیار مفید باشد::\n" -"\n" -" from datetime import datetime, timedelta\n" -"\n" -"توجه داشته باشید که توابع در ماژول ``datetime`` به شما اجازه می دهند که عملیات های ساده ای را روی زمان و تاریخ انجام دهید:" +msgstr "# (hash)" #: ../../tutorial/introduction.rst:21 #, fuzzy diff --git a/tutorial/modules.po b/tutorial/modules.po index fc3c09786..e9812735e 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -99,16 +99,16 @@ msgid "" " a, b = b, a+b\n" " return result" msgstr "" -"# ماژول اعداد فیبوناچی\n" +"# Fibonacci numbers module\n" "\n" -"def fib(n): # نوشتن سری فیبوناچی تا n\n" +"def fib(n): # write Fibonacci series up to n\n" " a, b = 0, 1\n" " while a < n:\n" " print(a, end=' ')\n" " a, b = b, a+b\n" " print()\n" "\n" -"def fib2(n): # بازگشت سری فیبوناچی تا n\n" +"def fib2(n): # return Fibonacci series up to n\n" " result = []\n" " a, b = 0, 1\n" " while a < n:\n" @@ -193,7 +193,7 @@ msgstr "" "یک ماژول می تواند شامل بیانیه های اجرایی و همچنین تعریف توابع باشد. این " "بیانیه ها به منظور مقداردهی اولیه ماژول هستند. آن ها تنها در اولین باری که " "نام ماژول در یک دستور `import` قرار می گیرد، اجرا می شوند. [#]_ (آن ها " -"همچنین اگر فایل به صورت یک اسکریپت اجرا شود، نیز اجرا خواهند شد.)" +"همچنین اگر فایل به صورت یک اسکریپت اجرا شود, نیز اجرا خواهند شد.)" #: ../../tutorial/modules.rst:79 #, fuzzy @@ -222,7 +222,7 @@ msgid "" "global namespace." msgstr "" "ماژول ها می توانند ماژول های دیگر را وارد کنند. به طور معمول (ولی الزامی " -"نیست)، تمام عبارات :keyword:`import` در ابتدای یک ماژول (یا اسکریپت، در این " +"نیست), تمام عبارات :keyword:`import` در ابتدای یک ماژول (یا اسکریپت, در این " "صورت) قرار می گیرند. نام های ماژول وارد شده، در صورتی که در سطح بالای ماژول " "(خارج از توابع یا کلاس ها) قرار گیرند، به فضای نام عمومی ماژول اضافه می " "شوند." @@ -254,7 +254,7 @@ msgid "" "the local namespace (so in the example, ``fibo`` is not defined)." msgstr "" "این کار نام ماژولی که واردات از آن انجام شده را به فضای نام محلی معرفی نمی " -"کند (بنابراین در مثال، ``fibo`` تعریف نشده است)." +"کند (بنابراین در مثال, ``fibo`` تعریف نشده است)." #: ../../tutorial/modules.rst:101 #, fuzzy @@ -395,7 +395,7 @@ msgid "" " import sys\n" " fib(int(sys.argv[1]))" msgstr "" -"اگر __name__ == \"__main__\":\n" +"if __name__ == \"__main__\":\n" " import sys\n" " fib(int(sys.argv[1]))" @@ -481,7 +481,7 @@ msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the" " shell variable :envvar:`PATH`)." msgstr "" -":envvar:`PYTHONPATH` (یک لیست از نام دایرکتوری ها، با همان نحوه نگارش متغیر " +":envvar:`PYTHONPATH` (یک لیست از نام دایرکتوری ها, با همان نحوه نگارش متغیر " "شِل :envvar:`PATH`)." #: ../../tutorial/modules.rst:196 @@ -579,7 +579,7 @@ msgstr "" "پایتون در دو حالت حافظه پنهان را بررسی نمی کند. اول، همیشه دوباره کامپایل " "کرده و نتیجه را برای ماژولی که به طور مستقیم از خط فرمان بارگذاری می شود، " "ذخیره نمی کند. دوم، اگر ماژول منبعی وجود نداشته باشد، حافظه پنهان را بررسی " -"نمی کند. برای پشتیبانی از توزیع بدون منبع (فقط کامپایل شده)، ماژول کامپایل " +"نمی کند. برای پشتیبانی از توزیع بدون منبع (فقط کامپایل شده), ماژول کامپایل " "شده باید در دایرکتوری منبع باشد و نباید ماژول منبعی وجود داشته باشد." #: ../../tutorial/modules.rst:241 @@ -939,12 +939,12 @@ msgid "" msgstr "" "فرض کنید می خواهید مجموعه ای از ماژول ها (یک \"پکیج\") برای مدیریت یکپارچه " "فایل های صوتی و داده های صوتی طراحی کنید. انواع مختلفی از فرمت های فایل صوتی" -" وجود دارد (که معمولاً با پسوندشان شناخته می شوند، برای مثال: :file:`.wav`، " -":file:`.aiff`، :file:`.au`)، بنابراین ممکن است نیاز داشته باشید مجموعه ای رو" +" وجود دارد (که معمولاً با پسوندشان شناخته می شوند, برای مثال: :file:`.wav`, " +":file:`.aiff`, :file:`.au`), بنابراین ممکن است نیاز داشته باشید مجموعه ای رو" " به رشد از ماژول ها برای تبدیل بین فرمت های مختلف فایل ها ایجاد و نگهداری " "کنید. همچنین عملیات متنوعی وجود دارد که ممکن است بخواهید بر روی داده های " -"صوتی انجام دهید (مانند میکس، افزوده های اکو، اعمال یک تابع اکولایزر، ایجاد " -"یک افکت استریو مصنوعی)، بنابراین علاوه بر این، شما در حال نوشتن جریان پایان " +"صوتی انجام دهید (مانند میکس, افزوده های اکو, اعمال یک تابع اکولایزر, ایجاد " +"یک افکت استریو مصنوعی), بنابراین علاوه بر این، شما در حال نوشتن جریان پایان " "ناپذیری از ماژول ها برای انجام این عملیات خواهید بود. اینجا ساختاری ممکن " "برای پکیج شما آورده شده است (که بر اساس یک سیستم فایل سلسله مراتبی بیان شده " "است):" @@ -1022,7 +1022,7 @@ msgid "" msgstr "" "پرونده های :file:`__init__.py` برای این لازم است که پایتون دایرکتوری هایی که" " این فایل را دارند به عنوان بسته شناخته کند (مگر آنکه از یک :term:`namespace" -" package` استفاده شود، که ویژگی نسبتاً پیشرفته ای است). این کار از مخفی شدن " +" package` استفاده شود, که ویژگی نسبتاً پیشرفته ای است). این کار از مخفی شدن " "ناخواستهٔ ماژول های معتبر توسط دایرکتوری های دارای نام های رایج، مانند " "``string``، در مسیر جستجوی ماژول جلوگیری می کند. در ساده ترین حالت، " ":file:`__init__.py` می تواند فقط یک فایل خالی باشد، اما همچنین می تواند کد " @@ -1041,7 +1041,7 @@ msgstr "" #: ../../tutorial/modules.rst:450 #, fuzzy msgid "import sound.effects.echo" -msgstr "ماژول موجود در پایتون `sound.effects.echo` را وارد می کند." +msgstr "import sound.effects.echo" #: ../../tutorial/modules.rst:452 #, fuzzy @@ -1065,7 +1065,7 @@ msgstr "راه دیگری برای وارد کردن زیرماژول وجود #: ../../tutorial/modules.rst:459 #, fuzzy msgid "from sound.effects import echo" -msgstr "از sound.effects ایمپورت echo" +msgstr "from sound.effects import echo" #: ../../tutorial/modules.rst:461 #, fuzzy @@ -1079,13 +1079,7 @@ msgstr "" #: ../../tutorial/modules.rst:464 #, fuzzy msgid "echo.echofilter(input, output, delay=0.7, atten=4)" -msgstr "" -"تابع `echo.echofilter` یک فیلتر اکو بر روی فایل صوتی ورودی اعمال می کند و فایل خروجی جدیدی تولید می کند. پارامترها به شرح زیر هستند:\n" -"\n" -"- `input`: فایل صوتی ورودی که باید پردازش شود.\n" -"- `output`: محل ذخیره صدای خروجی پردازش شده.\n" -"- `delay`: مدت زمان تاخیر پژواک در ثانیه ها (مقدار پیش فرض 0.7 است).\n" -"- `atten`: میزان کاهش شدت پژواک به صورت عددی (مقدار پیش فرض 4 است)." +msgstr "echo.echofilter(input, output, delay=0.7, atten=4)" #: ../../tutorial/modules.rst:466 #, fuzzy @@ -1098,7 +1092,7 @@ msgstr "" #: ../../tutorial/modules.rst:468 #, fuzzy msgid "from sound.effects.echo import echofilter" -msgstr "از ماژول `sound.effects.echo`، تابع `echofilter` را وارد کنید." +msgstr "from sound.effects.echo import echofilter" #: ../../tutorial/modules.rst:470 #, fuzzy @@ -1112,7 +1106,7 @@ msgstr "" #: ../../tutorial/modules.rst:473 #, fuzzy msgid "echofilter(input, output, delay=0.7, atten=4)" -msgstr "اکوفیلتر(ورودی، خروجی، تأخیر=0.7، تضعیف=4)" +msgstr "echofilter(input, output, delay=0.7, atten=4)" #: ../../tutorial/modules.rst:475 #, fuzzy @@ -1232,13 +1226,13 @@ msgid "" " return msg[::-1] # in the case of a 'from sound.effects import *'" msgstr "" "__all__ = [\n" -" \"echo\", # به فایل 'echo.py' اشاره دارد\n" -" \"surround\", # به فایل 'surround.py' اشاره دارد\n" -" \"reverse\", # !!! اکنون به تابع 'reverse' اشاره دارد !!!\n" +" \"echo\", # refers to the 'echo.py' file\n" +" \"surround\", # refers to the 'surround.py' file\n" +" \"reverse\", # !!! refers to the 'reverse' function now !!!\n" "]\n" "\n" -"def reverse(msg: str): # <-- این نام زیرماژول 'reverse.py' را تحت الشعاع قرار می دهد\n" -" return msg[::-1] # در صورت استفاده از 'from sound.effects import *'" +"def reverse(msg: str): # <-- this name shadows the 'reverse.py' submodule\n" +" return msg[::-1] # in the case of a 'from sound.effects import *'" #: ../../tutorial/modules.rst:532 #, fuzzy @@ -1327,7 +1321,7 @@ msgid "" "echo``." msgstr "" "وقتی بسته ها به زیر بسته ها سازماندهی می شوند (مانند بسته :mod:`!sound` در " -"مثال)، می توانید از واردات مطلق برای ارجاع به زیرماژول های بسته های همان سطح" +"مثال), می توانید از واردات مطلق برای ارجاع به زیرماژول های بسته های همان سطح" " استفاده کنید. برای مثال، اگر ماژول :mod:`!sound.filters.vocoder` نیاز به " "استفاده از ماژول :mod:`!echo` در بسته :mod:`!sound.effects` داشته باشد، می " "تواند از ``from sound.effects import echo`` استفاده کند." @@ -1352,9 +1346,9 @@ msgid "" "from .. import formats\n" "from ..filters import equalizer" msgstr "" -"از . وارد کردن echo \n" -"از .. وارد کردن formats \n" -"از ..filters وارد کردن equalizer " +"from . import echo\n" +"from .. import formats\n" +"from ..filters import equalizer" #: ../../tutorial/modules.rst:580 #, fuzzy diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index 5d28ae248..b88c186b4 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -49,10 +49,10 @@ msgid "" "0" msgstr "" ">>> import os\n" -">>> os.getcwd() # دایرکتوری کاری فعلی را بازگردانی می کند\n" +">>> os.getcwd() # Return the current working directory\n" "'C:\\\\Python313'\n" -">>> os.chdir('/server/accesslogs') # دایرکتوری کاری فعلی را تغییر می دهد\n" -">>> os.system('mkdir today') # فرمان mkdir را در شل سیستم اجرا می کند\n" +">>> os.chdir('/server/accesslogs') # Change current working directory\n" +">>> os.system('mkdir today') # Run the command mkdir in the system shell\n" "0" #: ../../tutorial/stdlib.rst:23 @@ -162,7 +162,7 @@ msgid "" "import sys\n" "print(sys.argv)" msgstr "" -"# فایل demo.py\n" +"# File demo.py\n" "import sys\n" "print(sys.argv)" @@ -177,7 +177,7 @@ msgstr "" #: ../../tutorial/stdlib.rst:77 #, fuzzy msgid "['demo.py', 'one', 'two', 'three']" -msgstr "['demo.py', 'یک', 'دو', 'سه']" +msgstr "['demo.py', 'one', 'two', 'three']" #: ../../tutorial/stdlib.rst:79 #, fuzzy @@ -203,15 +203,15 @@ msgid "" "args = parser.parse_args()\n" "print(args)" msgstr "" -"وارد کردن 'argparse'\n" +"import argparse\n" "\n" -"'parser = argparse.ArgumentParser'(\n" -" 'prog='top'',\n" +"parser = argparse.ArgumentParser(\n" +" prog='top',\n" " description='Show top lines from each file')\n" -"'parser.add_argument'('filenames', 'nargs='+'')\n" -"'parser.add_argument'('-l', '--lines', 'type=int', 'default=10')\n" -"'args = parser.parse_args'()\n" -"'print'(args)" +"parser.add_argument('filenames', nargs='+')\n" +"parser.add_argument('-l', '--lines', type=int, default=10)\n" +"args = parser.parse_args()\n" +"print(args)" #: ../../tutorial/stdlib.rst:93 #, fuzzy @@ -246,7 +246,7 @@ msgid "" ">>> sys.stderr.write('Warning, log file not found starting a new one\\n')\n" "Warning, log file not found starting a new one" msgstr "" -">>> sys.stderr.write('هشدار، فایل گزارش پیدا نشد، یک فایل جدید شروع می شود\\n')\n" +">>> sys.stderr.write('هشدار, فایل گزارش پیدا نشد, یک فایل جدید شروع می شود\\n')\n" "هشدار، فایل گزارش پیدا نشد، یک فایل جدید شروع می شود" #: ../../tutorial/stdlib.rst:110 @@ -355,11 +355,11 @@ msgstr "" ">>> import random\n" ">>> random.choice(['apple', 'pear', 'banana'])\n" "'apple'\n" -">>> random.sample(range(100), 10) # نمونه گیری بدون جایگزینی\n" +">>> random.sample(range(100), 10) # sampling without replacement\n" "[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]\n" -">>> random.random() # عدد شناور تصادفی از بازه [0.0, 1.0)\n" +">>> random.random() # random float from the interval [0.0, 1.0)\n" "0.17970987693706186\n" -">>> random.randrange(6) # عدد صحیح تصادفی انتخاب شده از range(6)\n" +">>> random.randrange(6) # random integer chosen from range(6)\n" "4" #: ../../tutorial/stdlib.rst:161 @@ -368,7 +368,7 @@ msgid "" "The :mod:`statistics` module calculates basic statistical properties (the " "mean, median, variance, etc.) of numeric data::" msgstr "" -"ماژول :mod:`statistics` خصوصیات آماری پایه (میانگین، میانه، واریانس و غیره) " +"ماژول :mod:`statistics` خصوصیات آماری پایه (میانگین, میانه, واریانس و غیره) " "داده های عددی را محاسبه می کند::" #: ../../tutorial/stdlib.rst:164 @@ -468,7 +468,7 @@ msgstr "" #: ../../tutorial/stdlib.rst:210 #, fuzzy msgid "Dates and Times" -msgstr "تاریخ ها و زمان ها" +msgstr "Dates and Times" #: ../../tutorial/stdlib.rst:212 #, fuzzy @@ -501,7 +501,7 @@ msgid "" ">>> age.days\n" "14368" msgstr "" -">>> # تاریخ ها به راحتی ساخته و قالب بندی می شوند\n" +">>> # dates are easily constructed and formatted\n" ">>> from datetime import date\n" ">>> now = date.today()\n" ">>> now\n" @@ -509,7 +509,7 @@ msgstr "" ">>> now.strftime(\"%m-%d-%y. %d %b %Y is a %A on the %d day of %B.\")\n" "'12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'\n" "\n" -">>> # تاریخ ها از حساب تقویمی پشتیبانی می کنند\n" +">>> # dates support calendar arithmetic\n" ">>> birthday = date(1964, 7, 31)\n" ">>> age = now - birthday\n" ">>> age.days\n" @@ -656,9 +656,8 @@ msgid "" "import doctest\n" "doctest.testmod() # automatically validate the embedded tests" msgstr "" -"```python\n" "def average(values):\n" -" \"\"\"میانگین حسابی یک لیست از اعداد را محاسبه می کند.\n" +" \"\"\"Computes the arithmetic mean of a list of numbers.\n" "\n" " >>> print(average([20, 30, 70]))\n" " 40.0\n" @@ -666,8 +665,7 @@ msgstr "" " return sum(values) / len(values)\n" "\n" "import doctest\n" -"doctest.testmod() # اعتبارسنجی خودکار تست های جاسازی شده\n" -"```" +"doctest.testmod() # automatically validate the embedded tests" #: ../../tutorial/stdlib.rst:306 #, fuzzy @@ -708,7 +706,7 @@ msgstr "" " with self.assertRaises(TypeError):\n" " average(20, 30, 70)\n" "\n" -"unittest.main() # فراخوانی از خط فرمان تمامی تست ها را اجرا می کند" +"unittest.main() # Calling from the command line invokes all tests" #: ../../tutorial/stdlib.rst:328 #, fuzzy diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index cb667151c..5709ff3bd 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -123,7 +123,7 @@ msgid "" "to separate the wrapped lines." msgstr "" ">>> import textwrap\n" -">>> doc = \"\"\"متد wrap() دقیقاً مانند fill() است با این تفاوت که به جای یک رشته بزرگ که خطوط پیچیده شده را با خطوط جدید جدا می کند، لیستی از رشته ها را برمی گرداند.\"\"\"\n" +">>> doc = \"\"\"متد wrap() دقیقاً مانند fill() است با این تفاوت که به جای یک رشته بزرگ که خطوط پیچیده شده را با خطوط جدید جدا می کند, لیستی از رشته ها را برمی گرداند.\"\"\"\n" "...\n" ">>> print(textwrap.fill(doc, width=40))\n" "متد wrap() دقیقاً مانند fill() است با این\n" @@ -159,7 +159,7 @@ msgstr "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" "'English_United States.1252'\n" -">>> conv = locale.localeconv() # بدست آوردن نقشه ای از قراردادها\n" +">>> conv = locale.localeconv() # get a mapping of conventions\n" ">>> x = 1234567.8\n" ">>> locale.format_string(\"%d\", x, grouping=True)\n" "'1,234,567'\n" @@ -360,24 +360,24 @@ msgid "" "\n" " start += extra_size + comp_size # skip to the next header" msgstr "" -"ماژول `struct` را وارد کنید\n" +"import struct\n" "\n" -"با باز کردن فایل 'myfile.zip' در حالت باینری به صورت 'rb' به عنوان `f`:\n" -" اطلاعات را با استفاده از `f.read()` بخوانید\n" +"with open('myfile.zip', 'rb') as f:\n" +" data = f.read()\n" "\n" -"شروع از 0\n" -"برای `i` در محدوده 3: # نمایش اولین 3 سربرگ فایل\n" -" 14 واحد به `start` اضافه کنید\n" -" فیلدها را با استفاده از `struct.unpack('>> [heappop(data) for i in range(3)] # fetch the three smallest entries\n" "[-5, 0, 1]" msgstr "" -">>> از heapq وارد کنید heapify, heappop, heappush\n" +">>> from heapq import heapify, heappop, heappush\n" ">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" -">>> heapify(data) # لیست را به ترتیب هیپ مرتب کنید\n" -">>> heappush(data, -5) # یک ورودی جدید اضافه کنید\n" -">>> [heappop(data) for i in range(3)] # سه ورودی کوچک تر را بگیرید\n" +">>> heapify(data) # rearrange the list into heap order\n" +">>> heappush(data, -5) # add a new entry\n" +">>> [heappop(data) for i in range(3)] # fetch the three smallest entries\n" "[-5, 0, 1]" #: ../../tutorial/stdlib2.rst:356 @@ -868,11 +867,7 @@ msgid "" ">>> round(.70 * 1.05, 2)\n" "0.73" msgstr "" -"متغیر `Decimal` در کتابخانه `decimal` سطح دقت بالاتری ارائه می دهد و می تواند برای محاسبات مالی و دیگر کاربردهایی که به دقت بالایی نیاز دارند استفاده شود. در محاسبات اعشاری، ممکن است به یک نتیجه متفاوت از آنچه انتظار دارید برسید، زیرا اعشار دودویی نمی تواند تمام اعداد اعشاری را به طور دقیق نمایش دهد.\n" -"\n" -"به عنوان مثال::\n" -"\n" -">>> from decimal import Decimal\n" +">>> from decimal import *\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" "Decimal('0.74')\n" ">>> round(.70 * 1.05, 2)\n" diff --git a/tutorial/venv.po b/tutorial/venv.po index 332717929..63b55b9e8 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -186,7 +186,7 @@ msgid "" "``activate.fish`` scripts you should use instead.)" msgstr "" "(این اسکریپت برای شل bash نوشته شده است. اگر شما از شل های :program:`csh` یا" -" :program:`fish` استفاده می کنید، باید به جای آن از اسکریپت های " +" :program:`fish` استفاده می کنید, باید به جای آن از اسکریپت های " "``activate.csh`` و ``activate.fish`` استفاده کنید.)" #: ../../tutorial/venv.rst:74 diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index f0611533f..7e99120e8 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -133,7 +133,7 @@ msgstr "" "https://code.activestate.com/recipes/langs/python/: کتابخانه Python Cookbook" " مجموعه بزرگی از مثال های کد، ماژول های بزرگ تر و اسکریپت های مفید است. " "مشارکت های به ویژه قابل توجه در کتابی با عنوان Python Cookbook (انتشارات " -"O'Reilly & Associates، ISBN 0-596-00797-3) گردآوری شده اند." +"O'Reilly & Associates, ISBN 0-596-00797-3) گردآوری شده اند." #: ../../tutorial/whatnow.rst:48 #, fuzzy @@ -173,7 +173,7 @@ msgstr "" "python-list@python.org ارسال کنید. گروه خبری و لیست پستی به یکدیگر متصل " "هستند، بنابراین پیام هایی که به یکی ارسال می شوند، به صورت خودکار به دیگری " "نیز فرستاده می شوند. روزانه صدها پست ارسال می شود که در آنها به طرح پرسش ها " -"(و پاسخ به آنها)، پیشنهاد ویژگی های جدید، و اعلام ماژول های جدید پرداخته می " +"(و پاسخ به آنها), پیشنهاد ویژگی های جدید، و اعلام ماژول های جدید پرداخته می " "شود. آرشیوهای لیست پستی در https://mail.python.org/pipermail/ در دسترس " "هستند." From d0794da454a1bec5e1043227089dc77723ccfeca Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 03:01:52 +0330 Subject: [PATCH 4/9] Update Appendix translation using sphinx directives protectors --- tutorial/appendix.po | 148 +++++++++++++++++++++---------------------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/tutorial/appendix.po b/tutorial/appendix.po index a509d84da..408d5c7b5 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/appendix.rst:5 #, fuzzy msgid "Appendix" -msgstr "ضمیمه" +msgstr "پیوست" #: ../../tutorial/appendix.rst:11 #, fuzzy @@ -38,8 +38,8 @@ msgid "" "interpreter is supported on all platforms with minimal line control " "capabilities." msgstr "" -"دو نوع از ``:term:`REPL``` تعاملی وجود دارد. مفسر کلاسیک پایه در تمامی " -"پلتفرم ها با قابلیت های حداقلی کنترل خط پشتیبانی می شود." +"دو نوع از :term:`REPL` تعاملی وجود دارد. مفسر کلاسیک پایه در تمامی پلتفرم ها" +" با قابلیت های کنترل خطی حداقلی پشتیبانی می شود." #: ../../tutorial/appendix.rst:17 #, fuzzy @@ -54,15 +54,15 @@ msgid "" " \"paste mode\", which makes pasting larger blocks of code easier. Press " ":kbd:`F3` to return to the regular prompt." msgstr "" -"در ویندوز یا سیستم های مشابه یونیکس که از :mod:`curses` پشتیبانی می کنند، به" -" طور پیش فرض از یک پوسته تعاملی جدید استفاده می شود. این پوسته از رنگ، " -"ویرایش چندخطی، مرور تاریخچه و حالت چسباندن پشتیبانی می کند. برای غیرفعال " -"کردن رنگ، به :ref:`using-on-controlling-color` مراجعه کنید. کلیدهای عملکردی " -"عملکرد اضافی فراهم می کنند. :kbd:`F1` مرورگر راهنمای تعاملی :mod:`pydoc` را " -"اجرا می کند. :kbd:`F2` اجازه می دهد تاریخچه خط فرمان را بدون خروجی و بدون " -"اعلان های :term:`>>>` و :term:`...` مرور کنید. :kbd:`F3` وارد \"حالت " -"چسباندن\" می شود که چسباندن بلوک های کد بزرگ تر را آسان تر می کند. با فشردن " -":kbd:`F3` به اعلان معمولی برگردید." +"در ویندوز یا سیستم های یونیکس مانند با پشتیبانی از :mod:`curses`، به صورت " +"پیش فرض از یک شل تعاملی جدید استفاده می شود. این شل از رنگ، ویرایش چندخطی، " +"مرور تاریخچه، و حالت چسباندن پشتیبانی می کند. برای غیرفعال کردن رنگ، جزئیات " +"را در :ref:`using-on-controlling-color` ببینید. کلیدهای تابعی برخی از قابلیت" +" های اضافی را فراهم می کنند. :kbd:`F1` مرورگر تعاملی راهنما :mod:`pydoc` را " +"فعال می کند. :kbd:`F2` اجازه می دهد تاریخچه خط فرمان را بدون خروجی و بدون " +"اعلان های :term:`>>>` و :term:`...` مرور کنید. :kbd:`F3` حالت \"چسباندن\" را" +" فعال می کند که چسباندن بلوک های بزرگ تر کد را آسان تر می سازد. برای بازگشت " +"به اعلان معمولی، :kbd:`F3` را فشار دهید." #: ../../tutorial/appendix.rst:28 #, fuzzy @@ -71,8 +71,9 @@ msgid "" "or :kbd:`quit`. Adding call parentheses after those commands is not " "required." msgstr "" -"هنگام استفاده از شل تعاملی جدید، با تایپ :kbd:`exit` یا :kbd:`quit` از شل " -"خارج شوید. افزودن پرانتزهای فراخوانی بعد از این دستورات لازم نیست." +"هنگام استفاده از پوسته تعاملی جدید، برای خروج از پوسته، :kbd:`exit` یا " +":kbd:`quit` را تایپ کنید. اضافه کردن پرانتز فراخوانی بعد از این دستورات لازم" +" نیست." #: ../../tutorial/appendix.rst:32 #, fuzzy @@ -80,13 +81,13 @@ msgid "" "If the new interactive shell is not desired, it can be disabled via the " ":envvar:`PYTHON_BASIC_REPL` environment variable." msgstr "" -"اگر پوسته تعاملی جدید مورد نظر نیست، می توان با استفاده از متغیر محیطی " -":envvar:`PYTHON_BASIC_REPL` آن را غیرفعال کرد." +"اگر پوسته تعاملی جدید مطلوب نباشد، می توان آن را از طریق متغیر محیطی " +":envvar:`PYTHON_BASIC_REPL` غیرفعال کرد." #: ../../tutorial/appendix.rst:38 #, fuzzy msgid "Error Handling" -msgstr "مدیریت خطا" +msgstr "مدیریت خطاها" #: ../../tutorial/appendix.rst:40 #, fuzzy @@ -101,15 +102,15 @@ msgid "" " All error messages are written to the standard error stream; normal output" " from executed commands is written to standard output." msgstr "" -"وقتی خطایی رخ می دهد، مفسر یک پیام خطا و یک دید کلی از پشته را چاپ می کند. " -"در حالت تعاملی، سپس به پیام اولیه بازمی گردد؛ وقتی ورودی از یک فایل می آید، " -"بعد از چاپ دید کلی پشته، با وضعیت خروج غیر صفر از برنامه خارج می شود. " -"(استثناهایی که توسط یک بند :keyword:`except` در یک دستور :keyword:`try` " -"مدیریت می شوند در این زمینه خطا نیستند.) برخی خطاها بدون قید و شرط مرگبار " -"هستند و موجب خروج با وضعیت غیر صفر می شوند؛ این حالت به ناسازگاری های داخلی " -"و برخی موارد تمام شدن حافظه اعمال می شود. تمام پیام های خطا به جریان خطای " -"استاندارد نوشته می شوند؛ خروجی نرمال از فرمان ها ی اجرا شده به خروجی " -"استاندارد نوشته می شود." +"وقتی خطایی رخ می دهد، مفسر یک پیام خطا و یک ردپای پشته چاپ می کند. در حالت " +"تعاملی، سپس به پرامپت اصلی برمی گردد؛ زمانی که ورودی از یک فایل آمده باشد، " +"پس از چاپ ردپای پشته با یک وضعیت خروجی غیر صفر خارج می شود. (استثناهایی که " +"توسط یک بند :keyword:`except` در یک دستور :keyword:`try` مدیریت می شوند در " +"این زمینه خطا نیستند.) برخی خطاها به طور غیرمشروط کشنده هستند و باعث خروج با" +" یک وضعیت خروجی غیر صفر می شوند؛ این موضوع به ناسازگاری های داخلی و برخی " +"موارد کمبود حافظه اعمال می شود. همه پیام های خطا به جریان خطای استاندارد " +"نوشته می شوند؛ خروجی معمولی از دستورات اجرا شده به خروجی استاندارد نوشته می " +"شود." #: ../../tutorial/appendix.rst:50 #, fuzzy @@ -120,15 +121,15 @@ msgid "" " the :exc:`KeyboardInterrupt` exception, which may be handled by a " ":keyword:`try` statement." msgstr "" -"با وارد کردن کاراکتر قطع (معمولاً :kbd:`Control-C` یا :kbd:`Delete`) در " -"اعلان اولیه یا ثانویه، ورودی لغو شده و به اعلان اولیه بازمی گردد. [#]_ وارد " -"کردن یک قطع در حین اجرای یک دستور، استثنای :exc:`KeyboardInterrupt` را " -"افزایش می دهد، که ممکن است توسط یک عبارت :keyword:`try` مدیریت شود." +"نوشتن کاراکتر قطع (معمولاً :kbd:`Control-C` یا :kbd:`Delete`) در اولویت اصلی" +" یا ثانویه، ورودی را لغو می کند و به اولویت اصلی برمی گردد. [#]_ نوشتن یک " +"قطع در حالی که یک فرمان در حال اجرا است، استثنای :exc:`KeyboardInterrupt` را" +" ایجاد می کند که ممکن است توسط یک عبارت :keyword:`try` مدیریت شود." #: ../../tutorial/appendix.rst:60 #, fuzzy msgid "Executable Python Scripts" -msgstr "اسکریپت های قابل اجرای پایتون" +msgstr "اسکریپت های اجرایی پایتون" #: ../../tutorial/appendix.rst:62 #, fuzzy @@ -136,8 +137,8 @@ msgid "" "On BSD'ish Unix systems, Python scripts can be made directly executable, " "like shell scripts, by putting the line ::" msgstr "" -"در سیستم های یونیکس مانند BSD، اسکریپت های پایتون را می توان به صورت مستقیم " -"اجراپذیر کرد، مانند اسکریپت های شل، با قرار دادن خط ::" +"در سیستم عامل های یونیکس مبتنی بر BSD، اسکریپت های پایتون می توانند مانند " +"اسکریپت های شل به صورت مستقیم اجرایی شوند، با قرار دادن خط ::" #: ../../tutorial/appendix.rst:65 #, fuzzy @@ -154,12 +155,11 @@ msgid "" "(``'\\r\\n'``) line ending. Note that the hash, or pound, character, " "``'#'``, is used to start a comment in Python." msgstr "" -"(فرض را بر این می گیریم که مفسر روی :envvar:`PATH` کاربر است) در ابتدای " -"اسکریپت و دادن حالت اجرایی به فایل. ``#!`` باید دو کاراکتر اول فایل باشد. در" -" برخی از پلتفرم ها، این خط اول باید با یک پایان خط به سبک یونیکس " -"(``'\\n'``), و نه پایان خط به سبک ویندوز (``'\\r\\n'``) به پایان برسد. توجه " -"داشته باشید که کاراکتر هش یا پوند، ``'#'``، برای شروع یک نظر (کامنت) در " -"پایتون استفاده می شود." +"(با فرض اینکه مفسر روی :envvar:`PATH` کاربر است) در ابتدای اسکریپت و دادن " +"فایل به حالت اجرایی. ``#!`` باید دو کاراکتر اول فایل باشد. در برخی از پلتفرم" +" ها، این خط اول باید با یک پایان خط به سبک یونیکس ``'\\n'`` خاتمه یابد، نه " +"با یک پایان خط به سبک ویندوز ``'\\r\\n'``. توجه داشته باشید که کاراکتر هش، " +"یا پوند، ``'#'``، برای شروع یک نظر در پایتون استفاده می شود." #: ../../tutorial/appendix.rst:74 #, fuzzy @@ -167,8 +167,8 @@ msgid "" "The script can be given an executable mode, or permission, using the " ":program:`chmod` command." msgstr "" -"با استفاده از فرمان :program:`chmod` می توان به اسکریپت حالتی اجرایی یا مجوز" -" داد." +"می توان به اسکریپت با استفاده از دستور :program:`chmod`، وضعیت اجرایی یا " +"مجوز داده شود." #: ../../tutorial/appendix.rst:77 #, fuzzy @@ -184,16 +184,16 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"در سیستم های ویندوز، مفهومی به نام \"حالت اجرایی\" وجود ندارد. نصب کننده " -"پایتون به طور خودکار فایل های ``.py`` را با ``python.exe`` مرتبط می کند به " -"طوری که با دوبار کلیک روی یک فایل پایتون، آن به صورت یک اسکریپت اجرا می شود." -" پسوند می تواند ``.pyw`` نیز باشد که در این حالت، پنجره کنسولی که به طور " -"معمول ظاهر می شود، مخفی می گردد." +"در سیستم های ویندوز، هیچ مفهومی به نام \"حالت اجرایی\" وجود ندارد. نصب کننده" +" پایتون به طور خودکار فایل های ``.py`` را با ``python.exe`` مرتبط می کند تا " +"با دابل کلیک روی یک فایل پایتون، آن را به عنوان یک اسکریپت اجرا کند. همچنین " +"پسوند می تواند ``.pyw`` باشد که در این صورت، پنجره کنسولی که معمولاً ظاهر می" +" شود، حذف می شود." #: ../../tutorial/appendix.rst:91 #, fuzzy msgid "The Interactive Startup File" -msgstr "فایل شروع به کار تعاملی" +msgstr "فایل شروع تعاملی" #: ../../tutorial/appendix.rst:93 #, fuzzy @@ -204,11 +204,11 @@ msgid "" "the name of a file containing your start-up commands. This is similar to " "the :file:`.profile` feature of the Unix shells." msgstr "" -"زمانی که از پایتون به صورت تعاملی استفاده می کنید، معمولاً مفید است که " -"تعدادی دستورات استاندارد هر بار که مفسر شروع می شود اجرا شوند. شما می توانید" -" این کار را با تنظیم یک متغیر محیطی به نام :envvar:`PYTHONSTARTUP` به نام " -"فایلی که حاوی دستورات شروع به کار شماست، انجام دهید. این ویژگی مشابه قابلیت " -":file:`.profile` در شِل های یونیکس است." +"هنگامی که به صورت تعاملی از پایتون استفاده می کنید، اجرای برخی دستورات " +"استاندارد در هر بار شروع مفسر می تواند مفید باشد. شما می توانید این کار را " +"با تنظیم متغیر محیطی با نام :envvar:`PYTHONSTARTUP` به نام فایلی که حاوی " +"دستورات شروع شما است انجام دهید. این قابلیت شبیه به ویژگی :file:`.profile` " +"در شل های یونیکس است." #: ../../tutorial/appendix.rst:99 #, fuzzy @@ -221,13 +221,13 @@ msgid "" " qualification in the interactive session. You can also change the prompts " "``sys.ps1`` and ``sys.ps2`` in this file." msgstr "" -"این فایل فقط در جلسات تعاملی خوانده می شود و نه زمانی که پایتون دستورات را " -"از یک اسکریپت می خواند و نه وقتی که :file:`/dev/tty` به عنوان منبع صریح " -"دستورات داده می شود (که به هرحال مانند یک جلسه تعاملی رفتار می کند). این " -"فایل در همان فضای نامی اجرا می شود که دستورات تعاملی اجرا می شوند، به طوری " -"که اشیائی که تعریف یا وارد می کند می توانند بدون نیاز به تعیین در جلسه " -"تعاملی استفاده شوند. همچنین می توانید پرسش ها ``sys.ps1`` و ``sys.ps2`` را " -"در این فایل تغییر دهید." +"این فایل فقط در جلسات تعاملی خوانده می شود، نه زمانی که پایتون دستورات را از" +" یک اسکریپت می خواند، و نه زمانی که :file:`/dev/tty` به عنوان منبع صریح " +"دستورات داده می شود (که در غیر این صورت همچون یک جلسه تعاملی رفتار می کند). " +"این فایل در همان فضای نامی که در آن دستورات تعاملی اجرا می شوند، اجرا می " +"گردد بنابراین اشیایی که تعریف یا وارد می کند می توانند بدون مشخص شدن در جلسه" +" تعاملی مورد استفاده قرار گیرند. شما می توانید درخواست ها ``sys.ps1`` و " +"``sys.ps2`` را نیز در این فایل تغییر دهید." #: ../../tutorial/appendix.rst:107 #, fuzzy @@ -238,11 +238,11 @@ msgid "" "want to use the startup file in a script, you must do this explicitly in the" " script::" msgstr "" -"اگر می خواهید فایل استارت آپ اضافی از دایرکتوری جاری بخوانید، می توانید این " -"کار را در فایل استارت آپ جهانی با استفاده از کدی مثل ``if " +"اگر می خواهید یک فایل راه اندازی اضافی از دایرکتوری فعلی بخوانید، می توانید " +"این کار را در فایل راه اندازی عمومی با کدی مشابه ``if " "os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())`` برنامه " -"ریزی کنید. اگر می خواهید فایل استارت آپ را در یک اسکریپت استفاده کنید، باید " -"به طور صریح این کار را در اسکریپت انجام دهید::" +"ریزی کنید. اگر می خواهید از فایل راه اندازی در یک اسکریپت استفاده کنید، باید" +" این کار را به طور صریح در اسکریپت انجام دهید:" #: ../../tutorial/appendix.rst:113 #, fuzzy @@ -274,10 +274,10 @@ msgid "" " location of your user site-packages directory. Start Python and run this " "code::" msgstr "" -"پایتون دو قلاب برای سفارشی سازی در اختیار شما قرار می دهد: " -":index:`sitecustomize` و :index:`usercustomize`. برای دیدن چگونگی کارکرد آن " -"ها، ابتدا باید محل دایرکتوری user site-packages خود را پیدا کنید. پایتون را" -" راه اندازی کنید و این کد را اجرا کنید::" +"پایتون دو نقطهٔ اتصال برای سفارشی سازی ارائه می دهد: :index:`sitecustomize` " +"و :index:`usercustomize`. برای دیدن چگونگی کارکرد آن، ابتدا باید مکان " +"دایرکتوری user site-packages خود را پیدا کنید. پایتون را اجرا کنید و این کد " +"را اجرا کنید:" #: ../../tutorial/appendix.rst:130 #, fuzzy @@ -298,10 +298,10 @@ msgid "" " unless it is started with the :option:`-s` option to disable the automatic " "import." msgstr "" -"اکنون می توانید فایلی با نام :file:`usercustomize.py` در آن دایرکتوری ایجاد " -"کنید و هر چیزی که می خواهید در آن قرار دهید. این کار بر تمام اجراهای Python " -"تأثیر خواهد گذاشت، مگر اینکه Python با گزینه :option:`-s` اجرا شود تا وارد " -"کردن خودکار را غیرفعال کند." +"اکنون می توانید فایلی با نام :file:`usercustomize.py` در آن پوشه ایجاد کنید " +"و هر چیزی که می خواهید در آن قرار دهید. این کار بر روی هر بار اجرای Python " +"تأثیر می گذارد، مگر اینکه با گزینه :option:`-s` که برای غیرفعال کردن وارد " +"کردن خودکار است، آغاز شود." #: ../../tutorial/appendix.rst:138 #, fuzzy @@ -311,15 +311,15 @@ msgid "" " imported before :index:`usercustomize`. See the documentation of the " ":mod:`site` module for more details." msgstr "" -":index:`sitecustomize` به همان روش کار می کند، اما معمولاً توسط مدیر رایانه " -"در دایرکتوری جهانی site-packages ایجاد می شود و قبل از " +":index:`sitecustomize` به همان صورت کار می کند، اما به طور معمول توسط مدیر " +"سیستم در دایرکتوری global site-packages ایجاد می شود و قبل از " ":index:`usercustomize` وارد می شود. برای جزئیات بیشتر به مستندات ماژول " ":mod:`site` مراجعه کنید." #: ../../tutorial/appendix.rst:145 #, fuzzy msgid "Footnotes" -msgstr "پانوشت ها" +msgstr "پاورقی ها" #: ../../tutorial/appendix.rst:146 #, fuzzy From 7bb65be17cbf006adda65568d988237fa27e2da9 Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 03:35:06 +0330 Subject: [PATCH 5/9] Update functions, classes, controlflow, interpreter and introduction translation using sphinx directives protectors --- library/functions.po | 2481 ++++++++++++++++++-------------------- tutorial/classes.po | 1023 ++++++++-------- tutorial/controlflow.po | 1250 +++++++++---------- tutorial/interpreter.po | 174 +-- tutorial/introduction.po | 471 ++++---- 5 files changed, 2561 insertions(+), 2838 deletions(-) diff --git a/library/functions.po b/library/functions.po index 146e73223..c4dfea55d 100644 --- a/library/functions.po +++ b/library/functions.po @@ -32,85 +32,63 @@ msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." msgstr "" -"مفسر پایتون دارای تعدادی توابع و انواع داخلی است که همیشه در دسترس هستند. " -"این ها به ترتیب حروف الفبا در اینجا فهرست شده اند." +"مفسر پایتون دارای تعدادی توابع و انواع داخلی است که همیشه در دسترس هستند. آن" +" ها به ترتیب حروف الفبا در اینجا فهرست شده اند." #: ../../library/functions.rst:0 #, fuzzy msgid "**A**" -msgstr "" -"متن برای ترجمه ارائه نشده است، لطفاً متنی که مایل به ترجمه آن هستید ارائه " -"دهید تا مطابق با قوانین ترجمه شود." +msgstr "**A**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`abs`" -msgstr "" -"متن وارد شده معتبر نیست. لطفاً یک متن معتبر از داکیومنت های رسمی پایتون را " -"برای ترجمه وارد کنید." +msgstr ":func:`abs`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`aiter`" -msgstr "" -"متن ارائه شده برای ترجمه نیست. لطفاً یک متن معتبر از اسناد رسمی پایتون برای " -"ترجمه ارائه دهید." +msgstr ":func:`aiter`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`all`" -msgstr "" -"متاسفم، اما متن \":func:`all`\" شامل توضیحات یا مستندات رسمی پایتون نیست و " -"قابل ترجمه به فارسی نمی باشد. اگر متن دیگری از مستندات رسمی پایتون را دارید،" -" لطفاً آن را ارسال کنید تا به فارسی ترجمه کنم." +msgstr ":func:`all`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`anext`" -msgstr "" -"متاسفم، اما به نظر نمی رسد متن داده شده بخشی از مستندات رسمی پایتون باشد که " -"بتوان آن را به فارسی ترجمه کرد. لطفاً متن دقیق تر و واقعی تری ارائه دهید تا " -"بتوانم به شما در ترجمه آن کمک کنم." +msgstr ":func:`anext`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`any`" -msgstr "" -"متاسفم، به نظر می رسد بخشی از متن جهت ترجمه ارائه نشده است. لطفاً متن صحیح " -"برای ترجمه را ارسال کنید." +msgstr ":func:`any`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`ascii`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را ارسال کنید " -"تا به شما کمک کنم." +msgstr ":func:`ascii`" #: ../../library/functions.rst:0 #, fuzzy msgid "**B**" -msgstr "" -"متن اصلی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " -"من ارائه دهید." +msgstr "**B**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`bin`" -msgstr "" -"متاسفم، به نظر می رسد متن شما شامل محتوای یونیکی نیست که قابل ترجمه باشد. " -"لطفا متنی را که نیاز به ترجمه دارد، ارسال کنید." +msgstr "متن قابل ترجمه ای موجود نیست. لطفاً متن دیگری ارائه دهید." #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`bool`" -msgstr "" -"متن ارائه شده برای ترجمه شامل هیچ محتوایی جهت ترجمه به زبان فارسی نیست. " -"لطفاً متن اصلی را ارائه کنید تا من بتوانم آن را برای شما به فارسی ترجمه کنم." +msgstr ":func:`bool`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`breakpoint`" -msgstr "متن ارائه شده قابل ترجمه نیست، لطفاً متن صحیح را وارد کنید." +msgstr ":func:`breakpoint`" #: ../../library/functions.rst:0 #, fuzzy @@ -125,47 +103,32 @@ msgstr "|func-bytes|_" #: ../../library/functions.rst:0 #, fuzzy msgid "**C**" -msgstr "" -"متاسفانه، متنی که برای ترجمه ارسال کرده اید قابل مشاهده نیست. لطفاً متن " -"دقیقی که می خواهید ترجمه شود را فراهم کنید، تا بتوانم به بهترین نحو به شما " -"کمک کنم." +msgstr "**C**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`callable`" -msgstr "" -"متن ارائه شده برای ترجمه به زبان فارسی شامل هیچ متنی نیست که نیاز به ترجمه " -"داشته باشد. اگر نیاز به ترجمه متنی خاص یا راهنمایی دارید، لطفاً متن کامل آن " -"را ارسال کنید." +msgstr ":func:`callable`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`chr`" -msgstr "" -"متاسفم، اما متنی که برای ترجمه قرار داده اید شامل هیچ توضیح یا متنی از " -"مستندات پایتون نیست تا بتوانم آن را به فارسی ترجمه کنم. لطفاً متن مورد نظر " -"خود را مجدداً ارسال کنید." +msgstr ":func:`chr`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`classmethod`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن انگلیسی که می خواهید ترجمه شود را " -"در اختیار من قرار دهید." +msgstr ":func:`classmethod`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`compile`" -msgstr "" -"متن ارائه شده برای ترجمه به فارسی شامل هیچ محتوایی جز یک سری کاراکترهای به " -"ظاهر تصادفی نیست. لطفاً متن مجدد بررسی و مشخصات بیشتری ارائه دهید." +msgstr ":func:`compile`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`complex`" -msgstr "" -"متن ارائه شده وجود ندارد تا بتوان ترجمه کرد. لطفاً متن مورد نظر برای ترجمه " -"را ارائه دهید." +msgstr ":func:`complex`" #: ../../library/functions.rst:0 #, fuzzy @@ -175,9 +138,7 @@ msgstr "**D**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`delattr`" -msgstr "" -"متن برای ترجمه ارائه نشده است؛ لطفاً متن مورد نظر خود را جهت ترجمه به من " -"بدهید." +msgstr ":func:`delattr`" #: ../../library/functions.rst:0 #, fuzzy @@ -187,69 +148,52 @@ msgstr "|func-dict|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`dir`" -msgstr "" -"متاسفانه، متن برای ترجمه ارائه نشده است. لطفا متن مورد نظر خود را برای ترجمه" -" ارسال نمایید." +msgstr ":func:`dir`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`divmod`" -msgstr "" -"متن برای ترجمه مشخص نشده است. لطفاً متنی که باید ترجمه شود را ارائه دهید." +msgstr ":func:`divmod`" #: ../../library/functions.rst:0 #, fuzzy msgid "**E**" -msgstr "" -"متن مورد نظر برای ترجمه موجود نمی باشد. لطفاً متن موردنظر را جهت ترجمه ارسال" -" نمایید." +msgstr "**E**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`enumerate`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی که می خواهید به فارسی ترجمه شود " -"را ارسال کنید." +msgstr ":func:`enumerate`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`eval`" -msgstr "" -"متنی برای ترجمه ارائه نکردید. لطفاً متن مورد نظر خود را ارسال کنید تا بتوانم" -" آن را به فارسی ترجمه کنم." +msgstr ":func:`eval`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`exec`" -msgstr "متاسفم، نمی توانم متن را برای شما ترجمه کنم." +msgstr ":func:`exec`" #: ../../library/functions.rst:0 #, fuzzy msgid "**F**" -msgstr "" -"متن برای ترجمه وجود ندارد. لطفاً متن مشخصی را که می خواهید به فارسی ترجمه " -"شود ارائه دهید." +msgstr "**F**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`filter`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " -"کنید." +msgstr ":func:`filter`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`float`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفا متنی که نیاز به ترجمه دارد را ارسال " -"کنید." +msgstr ":func:`float`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`format`" -msgstr "" -"متاسفانه متن شما تنها شامل کاراکترهای نامفهوم و غیر قابل ترجمه است. لطفاً " -"متن قابل ترجمه ای ارائه دهید." +msgstr ":func:`format`" #: ../../library/functions.rst:0 #, fuzzy @@ -259,14 +203,12 @@ msgstr "|func-frozenset|_" #: ../../library/functions.rst:0 #, fuzzy msgid "**G**" -msgstr "متن نامشخص. لطفاً متن را برای ترجمه بارگذاری کنید." +msgstr "**G**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`getattr`" -msgstr "" -"متاسفانه، متن درخواست شما حاوی هیچ متنی برای ترجمه نیست. لطفاً یک متن معتبر " -"ارسال کنید که به ترجمه نیاز دارد." +msgstr ":func:`getattr`" #: ../../library/functions.rst:0 #, fuzzy @@ -276,80 +218,62 @@ msgstr ":func:`globals`" #: ../../library/functions.rst:0 #, fuzzy msgid "**H**" -msgstr "" -"متأسفم، هیچ متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نیاز برای ترجمه " -"را ارسال کنید." +msgstr "**H**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`hasattr`" -msgstr "" -"متن جهت ترجمه ارائه نشده است. لطفاً متنی که باید ترجمه شود را ارائه دهید." +msgstr ":func:`hasattr`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`hash`" -msgstr "متأسفم، اما من نمی توانم متن شما را ترجمه کنم." +msgstr ":func:`hash`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`help`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را ارائه " -"دهید." +msgstr ":func:`help`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`hex`" -msgstr "متن برای ترجمه ارائه نشده است. لطفاً متنی برای ترجمه فراهم کنید." +msgstr ":func:`hex`" #: ../../library/functions.rst:0 #, fuzzy msgid "**I**" -msgstr "" -"متن خاصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود برای ترجمه به " -"فارسی را وارد کنید." +msgstr "**I**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`id`" -msgstr "" -"من نمی توانم متن را ترجمه کنم زیرا در متن اصلی اطلاعات مشخصی برای ترجمه وجود" -" ندارد. لطفاً متن اصلی که نیاز به ترجمه دارد را فراهم کنید تا بتوانم کمک " -"کنم." +msgstr ":func:`id`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`input`" -msgstr "متن ارائه شده معتبر نیست. لطفاً متن معتبر و مرتبطی ارائه دهید." +msgstr ":func:`input`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`int`" -msgstr "" -"متاسفانه، متن ورودی شامل محتوای مناسبی برای ترجمه نیست. لطفاً یک متن معتبر " -"از مستندات رسمی پایتون وارد کنید تا بتوانم آن را به فارسی ترجمه کنم." +msgstr ":func:`int`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`isinstance`" -msgstr "" -"متاسفانه هیچ متنی برای ترجمه وجود ندارد. لطفا متن مورد نظر را جهت ترجمه " -"ارائه کنید." +msgstr ":func:`isinstance`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`issubclass`" -msgstr "" -"متاسفانه، به نظر می رسد متنی که برای ترجمه ارائه داده اید، ناقص یا اشتباه " -"است. لطفاً متن کامل و صحیح را برای ترجمه ارسال کنید." +msgstr ":func:`issubclass`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`iter`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به " -"فارسی ارسال کنید." +msgstr ":func:`iter`" #: ../../library/functions.rst:0 #, fuzzy @@ -369,29 +293,22 @@ msgstr "|func-list|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`locals`" -msgstr "" -"متاسفانه، متن خاصی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای" -" ترجمه مجدد ارسال کنید." +msgstr ":func:`locals`" #: ../../library/functions.rst:0 #, fuzzy msgid "**M**" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " -"کنید تا به شما کمک کنم." +msgstr "**M**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`map`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن کامل را برای ترجمه ارائه دهید." +msgstr ":func:`map`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`max`" -msgstr "" -"متاسفانه، اطلاعاتی برای ترجمه این متن در اختیار من قرار داده نشده است. لطفاً" -" متن مورد نظر خود را ارائه دهید تا بتوانم آن را به فارسی ترجمه کنم." +msgstr ":func:`max`" #: ../../library/functions.rst:0 #, fuzzy @@ -401,96 +318,69 @@ msgstr "|func-memoryview|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`min`" -msgstr "" -"متنی ارائه نشده است تا بتوانم ترجمه کنم. لطفاً متن مورد نظر را قرار دهید تا " -"به فارسی ترجمه شود." +msgstr ":func:`min`" #: ../../library/functions.rst:0 #, fuzzy msgid "**N**" -msgstr "" -"متاسفم، اما متنی برای ترجمه ارائه نکردید. لطفاً متن مورد نظر جهت ترجمه را " -"ارائه دهید تا کمک کنم." +msgstr "**N**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`next`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه به زبان" -" فارسی ارسال کنید." +msgstr ":func:`next`" #: ../../library/functions.rst:0 #, fuzzy msgid "**O**" -msgstr "" -"متأسفانه، متن یا محتوا برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را " -"وارد کنید تا بتوانم به شما کمک کنم." +msgstr "**O**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`object`" -msgstr "" -"متغیر `X` مقداری دارد که مشخص می کند کد به چه صورت عمل کند. اگر `X` برابر با `1` باشد، تابع `foo()` فراخوانی می شود، در غیر این صورت تابع `bar()` فراخوانی می شود. این شرایط به صورت زیر تعریف شده است::\n" -"\n" -" if X == 1:\n" -" foo()\n" -" else:\n" -" bar()" +msgstr ":func:`object`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`oct`" -msgstr "" -"متاسفانه درخواست شما حاوی اطلاعات قابل ترجمه ای نمی باشد. لطفاً متن مرتبط و " -"ترجمه پذیری را ارائه دهید." +msgstr ":func:`oct`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`open`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را ارائه دهید تا به " -"فارسی ترجمه شود." +msgstr ":func:`open`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`ord`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای ترجمه ارسال " -"کنید." +msgstr ":func:`ord`" #: ../../library/functions.rst:0 #, fuzzy msgid "**P**" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن را فراهم کنید تا بتوانم آن را به " -"فارسی ترجمه کنم." +msgstr "**P**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`pow`" -msgstr "" -"متنی برای ترجمه ارائه نشد. لطفاً متن مورد نظر برای ترجمه را فراهم کنید." +msgstr ":func:`pow`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`print`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً قسمتی از مستندات رسمی پایتون را که نیاز" -" به ترجمه دارد، ارسال کنید." +msgstr ":func:`print`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`property`" -msgstr "" -"متأسفانه، متن قابل ارائه برای ترجمه به \"FARSI\" داده نشده است. لطفاً متنی " -"که نیاز به ترجمه دارد را ارسال کنید تا من به شما کمک کنم." +msgstr ":func:`property`" #: ../../library/functions.rst:0 #, fuzzy msgid "**R**" msgstr "" -"متن ارائه شده برای ترجمه شامل کدی یا اصطلاحات فنی نیست. لطفاً متن مناسب یا " -"قطعه ای از مستندات را ارائه دهید تا بتوان ترجمه ای ارائه داد." +"\n" +"**R**" #: ../../library/functions.rst:0 #, fuzzy @@ -500,56 +390,42 @@ msgstr "|func-range|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`repr`" -msgstr "" -"متأسفم، اما متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای " -"ترجمه ارائه دهید." +msgstr ":func:`repr`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`reversed`" -msgstr "" -"متاسفانه، متن ارائه شده شامل محتوایی نمی شود که نیاز به ترجمه داشته باشد. " -"اگر نیاز به ترجمه قسمت های متفاوتی دارید، لطفاً متن مورد نظر را ارسال کنید." +msgstr ":func:`reversed`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`round`" -msgstr "" -"متن ارائه شده شامل عبارت ناشناخته یا غیرقابل ترجمه \":func:`round`\" است که " -"به نظر نمی رسد بخشی از مستندات رسمی پایتون باشد. لطفاً متن دیگری را برای " -"ترجمه به فارسی ارائه کنید." +msgstr ":func:`round`" #: ../../library/functions.rst:0 #, fuzzy msgid "**S**" -msgstr "" -"متاسفم، من نمی توانم متنی را که ارائه نداده اید، ترجمه کنم. لطفاً متن مورد " -"نظر خود را برای ترجمه ارائه دهید." +msgstr "**S**" #: ../../library/functions.rst:0 #, fuzzy msgid "|func-set|_" -msgstr "|func-set|_" +msgstr "|تابع-مجموعه|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`setattr`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود برای ترجمه ارسال " -"کنید." +msgstr ":func:`setattr`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`slice`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن اصلی خود را ارسال کنید و من آن را " -"به فارسی ترجمه خواهم کرد." +msgstr ":func:`slice`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`sorted`" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را ارسال کنید." +msgstr ":func:`sorted`" #: ../../library/functions.rst:0 #, fuzzy @@ -559,29 +435,22 @@ msgstr ":func:`staticmethod`" #: ../../library/functions.rst:0 #, fuzzy msgid "|func-str|_" -msgstr "|func-str|_" +msgstr "|تابع-رشته ای|_" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`sum`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن را فراهم کنید تا بتوانم آن را برای " -"شما به فارسی ترجمه کنم." +msgstr ":func:`sum`" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`super`" -msgstr "" -"متن برای ترجمه ارائه نشده است. آیا ممکن است متن دیگری برای ترجمه به فارسی " -"فراهم کنید؟" +msgstr ":func:`super`" #: ../../library/functions.rst:0 #, fuzzy msgid "**T**" -msgstr "" -"متأسفانه، تا زمانی که شما متن خاصی برای ترجمه ارائه ندهید، نمی توانم متنی را" -" به فارسی ترجمه کنم. لطفا متن مورد نظرتان را ارائه دهید تا بتوانم به شما کمک" -" کنم." +msgstr "**T**" #: ../../library/functions.rst:0 #, fuzzy @@ -596,41 +465,32 @@ msgstr ":func:`type`" #: ../../library/functions.rst:0 #, fuzzy msgid "**V**" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی برای ترجمه به فارسی ارائه دهید." +msgstr "**V**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`vars`" -msgstr "" -"متن اصلی برای ترجمه ارائه نشده است. لطفاً متن اصلی را برای ترجمه ارسال کنید." +msgstr ":func:`vars`" #: ../../library/functions.rst:0 #, fuzzy msgid "**Z**" -msgstr "" -"متأسفم، اما متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر خود را برای " -"ترجمه ارسال کنید." +msgstr "**Z**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`zip`" -msgstr "" -"متنی که برای ترجمه داده شده حاوی هیچ محتوای خاصی نیست و به نظر می رسد فقط یک" -" رشته از حروف است. لطفا یک متن معتبر از مستندات رسمی پایتون ارائه دهید تا " -"بتوانم آن را به فارسی ترجمه کنم." +msgstr ":func:`zip`" #: ../../library/functions.rst:0 #, fuzzy msgid "**_**" -msgstr "متن فراهم نشده است." +msgstr "**_**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`__import__`" -msgstr "" -"متأسفم، اما به نظر می رسد متنی برای ترجمه ارائه نشده است. لطفاً متن مورد نظر" -" خود را برای ترجمه ارسال کنید." +msgstr ":func:`__import__`" #: ../../library/functions.rst:59 #, fuzzy @@ -639,9 +499,9 @@ msgid "" "floating-point number, or an object implementing :meth:`~object.__abs__`. If" " the argument is a complex number, its magnitude is returned." msgstr "" -"مقدار مطلق یک عدد را برمی گرداند. آرگومان می تواند یک عدد صحیح، یک عدد " -"اعشاری و یا یک شیء که :meth:`~object.__abs__` را پیاده سازی می کند باشد. اگر" -" آرگومان یک عدد مختلط باشد، اندازه آن برگردانده می شود." +"مقدار مطلق یک عدد را برمی گرداند. استدلال می تواند یک عدد صحیح، یک عدد " +"اعشاری، یا یک شیء که :meth:`~object.__abs__` را پیاده سازی می کند، باشد. اگر" +" استدلال یک عدد مختلط باشد، بزرگی آن بازگردانده می شود." #: ../../library/functions.rst:67 #, fuzzy @@ -649,14 +509,13 @@ msgid "" "Return an :term:`asynchronous iterator` for an :term:`asynchronous " "iterable`. Equivalent to calling ``x.__aiter__()``." msgstr "" -"یک :term:`asynchronous iterator` برای یک :term:`asynchronous iterable` برمی " -"گرداند. معادل با فراخوانی ``x.__aiter__()`` است." +"بازگرداندن یک :term:`asynchronous iterator` برای یک :term:`asynchronous " +"iterable`. معادل فراخوانی ``x.__aiter__()`` است." #: ../../library/functions.rst:70 #, fuzzy msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." -msgstr "" -"توجه: برخلاف :func:`iter`، :func:`aiter` هیچ ویراسیون دو آرگومان ندارد." +msgstr "توجه: برخلاف :func:`iter`، :func:`aiter` نسخه دو آرگومانی ندارد." #: ../../library/functions.rst:76 #, fuzzy @@ -664,8 +523,8 @@ msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" msgstr "" -"اگر تمام عناصر *iterable* درست باشند (یا اگر شیٔ iterable خالی باشد)، " -"``True`` را بازمی گرداند. معادل با::" +"در صورتی که تمام عناصر *iterable* درست باشند (یا اگر iterable خالی باشد)، " +"``True`` را برمی گرداند. معادل با::" #: ../../library/functions.rst:79 #, fuzzy @@ -676,11 +535,10 @@ msgid "" " return False\n" " return True" msgstr "" -"def all(iterable):\n" -" for element in iterable:\n" -" if not element:\n" -" return False\n" -" return True" +"تابع all(iterable) برای بررسی این است که آیا همه عناصر در یک ساختار قابل " +"تکرار (iterable)، ارزیابی به True دارند. برای هر عنصر در ساختار قابل تکرار، " +"اگر عنصری پیدا شود که ارزیابی به False شود، تابع نتیجه False را برمی گرداند." +" اگر همه عناصر ارزیابی به True شوند، تابع نتیجه True را برمی گرداند." #: ../../library/functions.rst:89 #, fuzzy @@ -688,16 +546,15 @@ msgid "" "When awaited, return the next item from the given :term:`asynchronous " "iterator`, or *default* if given and the iterator is exhausted." msgstr "" -"هنگامی که منتظر بمانید، آیتم بعدی را از :term:`asynchronous iterator` داده " -"شده بازگردانید، یا اگر داده شده باشد و تکرارگر به انتها رسیده باشد، " -"*default* را بازگردانید." +"هنگامی که انتظار می رود، آیتم بعدی را از :term:`asynchronous iterator` مشخص " +"شده برگردانید، یا *default* اگر داده شده و پیمایش گر تمام شده باشد." #: ../../library/functions.rst:92 #, fuzzy msgid "" "This is the async variant of the :func:`next` builtin, and behaves " "similarly." -msgstr "این نسخه ناهم زمان از :func:`next` داخلی است و رفتار مشابهی دارد." +msgstr "این نسخه ناهمگام از :func:`next` ساخته شده و به طور مشابه عمل می کند." #: ../../library/functions.rst:95 #, fuzzy @@ -707,10 +564,10 @@ msgid "" "iterator. If *default* is given, it is returned if the iterator is " "exhausted, otherwise :exc:`StopAsyncIteration` is raised." msgstr "" -"متد :meth:`~object.__anext__` از *async_iterator* را فراخوانی می کند که یک " -":term:`awaitable` برمی گرداند. انتظار برای این، مقدار بعدی از تکرارگر را " -"برمی گرداند. اگر *default* داده شده باشد، در صورت خسته شدن تکرارگر، آن را " -"برمی گرداند؛ در غیر این صورت، :exc:`StopAsyncIteration` برانگیخته می شود." +"این، متد :meth:`~object.__anext__` از *async_iterator* را فراخوانی می کند و " +"یک :term:`awaitable` برمی گرداند. منتظر ماندن برای این، مقدار بعدی تکرارگر " +"را برمی گرداند. اگر *default* داده شود، در صورت اتمام تکرارگر، آن برگردانده " +"می شود و در غیر این صورت :exc:`StopAsyncIteration` برانگیخته می شود." #: ../../library/functions.rst:104 #, fuzzy @@ -718,8 +575,8 @@ msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" msgstr "" -"``True`` را برمی گرداند اگر هر عنصری از *iterable* صحیح باشد. اگر *iterable*" -" خالی باشد، ``False`` را برمی گرداند. معادل با:" +"اگر هر عنصری از *iterable* درست باشد، ``True`` را برگردانید. اگر iterable " +"خالی باشد، ``False`` را برگردانید. معادل با::" #: ../../library/functions.rst:107 #, fuzzy @@ -730,11 +587,9 @@ msgid "" " return True\n" " return False" msgstr "" -"def any(iterable):\n" -" for element in iterable:\n" -" if element:\n" -" return True\n" -" return False" +"تابع any یک مقدار iterable می گیرد و برای هر المنت در آن چک می کند. اگر " +"حداقل یکی از المنت ها مقدار True داشته باشد، مقدار True را برمی گرداند و اگر" +" نه، مقدار False را برمی گرداند." #: ../../library/functions.rst:116 #, fuzzy @@ -744,10 +599,10 @@ msgid "" ":func:`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates a " "string similar to that returned by :func:`repr` in Python 2." msgstr "" -"به عنوان :func:`repr`، یک رشته حاوی نمای قابل چاپ از یک شیء برگردانید، اما " -"کاراکترهای غیر ASCII در رشته ای که توسط :func:`repr` بازگردانده می شود را با" -" استفاده از ``\\x``، ``\\u`` یا ``\\U`` فرار دهید. این یک رشته مشابه با آنچه" -" توسط :func:`repr` در پایتون 2 بازگردانده می شود، تولید می کند." +"به عنوان :func:`repr`، یک رشته که نمایشی قابل چاپ از یک شیء است را برمی " +"گرداند، اما کاراکترهای غیر ASCII در رشته برگشتی توسط :func:`repr` را با " +"فرارهای ``\\x``، ``\\u``، یا ``\\U`` فرار دهید. این رشته ای شبیه به آنچه " +"توسط :func:`repr` در پایتون 2 برگردانده می شود را تولید می کند." #: ../../library/functions.rst:124 #, fuzzy @@ -757,10 +612,10 @@ msgid "" "object, it has to define an :meth:`~object.__index__` method that returns an" " integer. Some examples:" msgstr "" -"یک عدد صحیح را به یک رشته باینری که با \"0b\" پیشوند شده تبدیل کنید. نتیجه " -"یک عبارت معتبر پایتون است. اگر *x* یک شیء Python :class:`int` نباشد، باید یک" -" روش :meth:`~object.__index__` تعریف کند که یک عدد صحیح را برگرداند. چند " -"مثال:" +"تبدیل یک عدد صحیح به یک رشته باینری که با \"0b\" پیشوند شده است. نتیجه یک " +"عبارت معتبر پایتون خواهد بود. اگر *x* یک شیء پایتون :class:`int` نباشد، لازم" +" است یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح برگرداند. " +"برخی مثال ها:" #: ../../library/functions.rst:134 #, fuzzy @@ -768,7 +623,7 @@ msgid "" "If the prefix \"0b\" is desired or not, you can use either of the following " "ways." msgstr "" -"اگر پیشوند \"0b\" مورد نظر است یا نه، می توانید از هر یک از روش های زیر " +"اگر پیشوند \"0b\" مورد نظر است یا خیر، می توانید از هر یک از روش های زیر " "استفاده کنید." #: ../../library/functions.rst:141 ../../library/functions.rst:942 @@ -787,18 +642,18 @@ msgid "" ":ref:`typesnumeric`). It cannot be subclassed further. Its only instances " "are ``False`` and ``True`` (see :ref:`typebool`)." msgstr "" -"یک مقدار بولی را برمی گرداند، یعنی یکی از ``True`` یا ``False``. آرگومان با " -"استفاده از تبدیل استاندارد :ref:`truth testing procedure ` تبدیل می " -"شود. اگر آرگومان نادرست باشد یا حذف شود، این مقدار ``False`` را برمی گرداند؛" -" در غیر این صورت، مقدار ``True`` را برمی گرداند. کلاس :class:`bool` یک " -"زیرکلاس از :class:`int` است (به :ref:`typesnumeric` مراجعه کنید). نمی توان " -"آن را به طور بیشتری زیرکلاس سازی کرد. تنها نمونه های آن ``False`` و ``True``" -" هستند (به :ref:`typebool` مراجعه کنید)." +"بازگرداندن یک مقدار Boolean، یعنی یکی از ``True`` یا ``False``. آرگومان با " +"استفاده از استاندارد :ref:`truth testing procedure ` تبدیل می شود. " +"اگر آرگومان نادرست یا حذف شده باشد، این ``False`` را برمی گرداند؛ در غیر این" +" صورت، ``True`` را برمی گرداند. کلاس :class:`bool` یک زیرکلاس از " +":class:`int` است (نگاه کنید به :ref:`typesnumeric`). نمی تواند بیشتر زیرکلاس" +" گردد. تنها نمونه های آن ``False`` و ``True`` هستند (نگاه کنید به " +":ref:`typebool`)." #: ../../library/functions.rst:156 ../../library/functions.rst:807 #, fuzzy msgid "The parameter is now positional-only." -msgstr "پارامتر اکنون فقط مکان پذیر است." +msgstr "این پارامتر اکنون فقط به صورت موقعیتی می باشد." #: ../../library/functions.rst:161 #, fuzzy @@ -813,16 +668,16 @@ msgid "" " you to drop into the debugger of choice. If :func:`sys.breakpointhook` is " "not accessible, this function will raise :exc:`RuntimeError`." msgstr "" -"این تابع شما را در محل فراخوانی به اشکال زدا وارد می کند. به طور خاص، " -"`:func:`sys.breakpointhook`` را صدا می زند و ```args``` و ```kws``` را " -"مستقیماً عبور می دهد. به طور پیش فرض، ```sys.breakpointhook()```، " -"`:func:`pdb.set_trace`` را فراخوانی می کند، بدون اینکه هیچ آرگومانی انتظار " -"داشته باشد. در این حالت، این تابع یک تابع راحتی (کمکی) است که شما نیازی به " -"وارد کردن صریح `:mod:`pdb`` یا نوشتن کد زیاد برای ورود به اشکال زدا ندارید. " -"اما، می توان `:func:`sys.breakpointhook`` را به تابع دیگری تنظیم کرد و " -"`:func:`breakpoint`` به طور خودکار آن را صدا خواهد زد و به شما اجازه می دهد " -"در اشکال زدای مورد نظر وارد شوید. اگر `:func:`sys.breakpointhook`` قابل " -"دسترسی نباشد، این تابع `:exc:`RuntimeError`` را ایجاد خواهد کرد." +"این تابع شما را در محل فراخوانی به خطایاب منتقل می کند. به طور خاص، " +":func:`sys.breakpointhook` را فراخوانی می کند و ``args`` و ``kws`` را " +"مستقیماً عبور می دهد. به طور پیش فرض، ``sys.breakpointhook()`` بدون نیاز به " +"هیچ آرگومانی :func:`pdb.set_trace` را فراخوانی می کند. در این مورد، این یک " +"تابع راحتی صرف است تا نیازی به وارد کردن صریح :mod:`pdb` یا نوشتن کدهای " +"بیشتری برای ورود به خطایاب نداشته باشید. با این حال، " +":func:`sys.breakpointhook` می تواند به تابع دیگری تنظیم شود و " +":func:`breakpoint` به طور خودکار آن را فراخوانی می کند و به شما این امکان را" +" می دهد که به خطایاب مورد نظر خود وارد شوید. اگر :func:`sys.breakpointhook` " +"در دسترس نباشد، این تابع :exc:`RuntimeError` را ایجاد خواهد کرد." #: ../../library/functions.rst:173 #, fuzzy @@ -831,8 +686,8 @@ msgid "" ":envvar:`PYTHONBREAKPOINT` environment variable. See " ":func:`sys.breakpointhook` for usage details." msgstr "" -"به طور پیش فرض، رفتار :func:`breakpoint` می تواند با متغیر محیطی " -":envvar:`PYTHONBREAKPOINT` تغییر کند. برای جزئیات استفاده به " +"به طور پیش فرض، رفتار :func:`breakpoint` می تواند با متغیر محیطی " +":envvar:`PYTHONBREAKPOINT` تغییر کند. برای جزئیات استفاده، به " ":func:`sys.breakpointhook` مراجعه کنید." #: ../../library/functions.rst:177 @@ -861,11 +716,11 @@ msgid "" "methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" -"یک آرایه جدید از بایت ها برگردانید. کلاس :class:`bytearray` یک دنباله متغیر " -"از اعداد صحیح در محدوده 0 <= x < 256 است. این کلاس بیشتر متدهای معمول دنباله" -" های متغیر را که در :ref:`typesseq-mutable` توضیح داده شده است، و همچنین " -"بیشتر متدهایی که نوع :class:`bytes` دارد را داراست، به :ref:`bytes-methods` " -"مراجعه کنید." +"یک آرایه بایتی جدید برمی گرداند. کلاس :class:`bytearray` یک دنباله قابل " +"تغییر از اعداد صحیح در محدوده 0 <= x < 256 است. این کلاس اکثر روش های معمول " +"دنباله های قابل تغییر را دارد که در :ref:`typesseq-mutable` توضیح داده شده " +"اند و همچنین بیشتر روش هایی که نوع :class:`bytes` دارد را داراست، به " +":ref:`bytes-methods` مراجعه کنید." #: ../../library/functions.rst:195 #, fuzzy @@ -873,8 +728,8 @@ msgid "" "The optional *source* parameter can be used to initialize the array in a few" " different ways:" msgstr "" -"استفاده از پارامتر اختیاری *source* می تواند برای مقداردهی اولیه آرایه به " -"چند روش مختلف صورت گیرد:" +"پارامتر اختیاری *source* می تواند برای مقداردهی اولیه آرایه به چند روش مختلف" +" استفاده شود:" #: ../../library/functions.rst:198 #, fuzzy @@ -883,9 +738,9 @@ msgid "" "*errors*) parameters; :func:`bytearray` then converts the string to bytes " "using :meth:`str.encode`." msgstr "" -"اگر یک *string* باشد، همچنین باید پارامترهای *encoding* (و به اختیار, " -"*errors*) را فراهم کنید؛ سپس :func:`bytearray` رشته را با استفاده از " -":meth:`str.encode` به بایت تبدیل می کند." +"اگر یک *string* باشد، شما باید همچنین پارامترهای *encoding* (و به طور " +"اختیاری، *errors*) را ارائه دهید؛ سپس :func:`bytearray` رشته را با استفاده " +"از :meth:`str.encode` به بایت تبدیل می کند." #: ../../library/functions.rst:202 #, fuzzy @@ -893,7 +748,7 @@ msgid "" "If it is an *integer*, the array will have that size and will be initialized" " with null bytes." msgstr "" -"اگر یک *integer* باشد، آرایه به همان اندازه خواهد بود و با بایت های خالی " +"اگر یک *integer* باشد، آرایه به آن اندازه خواهد بود و با بایت های خالی " "مقداردهی اولیه می شود." #: ../../library/functions.rst:205 @@ -903,8 +758,8 @@ msgid "" "`, a read-only buffer of the object will be used to " "initialize the bytes array." msgstr "" -"اگر این یک آبجکت مطابق با :ref:`buffer interface ` باشد، یک " -"بافر فقط خواندنی از آبجکت برای مقداردهی اولیه آرایه bytes استفاده خواهد شد." +"اگر این یک شیء مطابق با :ref:`buffer interface ` باشد، یک " +"بافر فقط خواندنی از شیء برای مقداردهی اولیه آرایه bytes استفاده خواهد شد." #: ../../library/functions.rst:208 #, fuzzy @@ -912,18 +767,18 @@ msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." msgstr "" -"اگر *iterable* باشد، باید یک iterable از اعداد صحیح در محدوده ``0 <= x < " -"256`` باشد، که به عنوان محتوای اولیه آرایه استفاده می شوند." +"اگر یک *iterable* باشد، باید یک تکرارشونده از اعداد صحیح در بازه ``0 <= x < " +"256`` باشد که به عنوان محتوای اولیه آرایه استفاده می شود." #: ../../library/functions.rst:211 #, fuzzy msgid "Without an argument, an array of size 0 is created." -msgstr "بدون آرگومنت، یک آرایه با اندازه 0 ایجاد می شود." +msgstr "بدون آرگومان، یک آرایه با اندازه 0 ایجاد می شود." #: ../../library/functions.rst:213 #, fuzzy msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." -msgstr "همچنین به :ref:`binaryseq` و :ref:`typebytearray` مراجعه کنید." +msgstr "همچنین ببینید :ref:`binaryseq` و :ref:`typebytearray`." #: ../../library/functions.rst:222 #, fuzzy @@ -933,24 +788,23 @@ msgid "" ":class:`bytearray` -- it has the same non-mutating methods and the same " "indexing and slicing behavior." msgstr "" -"یک شیء جدید \"bytes\" برمی گرداند که یک توالی تغییرناپذیر از اعداد صحیح در " -"بازه ``0 <= x < 256`` است. :class:`bytes` نسخه تغییرناپذیر " +"یک شیء جدید \"bytes\" بازگردانید که دنباله ای غیرقابل تغییر از اعداد صحیح در" +" محدوده ``0 <= x < 256`` است. :class:`bytes` نسخه غیرقابل تغییر از " ":class:`bytearray` است -- دارای همان روش های غیرقابل تغییر و همان رفتار " -"اندیس گذاری و بُرش است." +"ایندکس بندی و برش است." #: ../../library/functions.rst:227 #, fuzzy msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." -msgstr "" -"مطابقاً، استدلال های سازنده به همان صورت :func:`bytearray` تفسیر می شوند." +msgstr "بنابراین، آرگومان های سازنده مثل :func:`bytearray` تفسیر می شوند." #: ../../library/functions.rst:229 #, fuzzy msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" -"آبجکت های بایت نیز می توانند با استفاده از لیترال ها ایجاد شوند، به " -":ref:`strings` مراجعه کنید.\n" +"شیء های بایت همچنین می توانند با استفاده از لیترال ها ایجاد شوند، به " +":ref:`strings` مراجعه کنید." #: ../../library/functions.rst:231 #, fuzzy @@ -967,12 +821,12 @@ msgid "" "Note that classes are callable (calling a class returns a new instance); " "instances are callable if their class has a :meth:`~object.__call__` method." msgstr "" -"اگر آرگومان `*object*` قابل فراخوانی به نظر برسد، `:const:`True`` و اگر نه، " -"`:const:`False`` بازگردانده می شود. اگر ```True``` برگردانده شود، همچنان " -"امکان شکست فراخوانی وجود دارد، اما اگر ```False``` باشد، فراخوانی `*object*`" -" هرگز موفق نخواهد شد. توجه داشته باشید که کلاس ها قابل فراخوانی هستند " -"(فراخوانی یک کلاس, یک نمونه جدید برمی گرداند)؛ نمونه ها نیز در صورتی قابل " -"فراخوانی هستند که کلاس آن ها دارای متد `:meth:`~object.__call__`` باشد." +"برمی گرداند :const:`True` اگر آرگومان *object* قابل فراخوانی به نظر برسد، " +":const:`False` اگر نه. اگر این ``True`` برگرداند، هنوز ممکن است که یک " +"فراخوانی شکست بخورد، اما اگر ``False`` باشد، فراخوانی *object* هرگز موفق " +"نخواهد شد. توجه داشته باشید که کلاس ها قابل فراخوانی هستند (فراخوانی یک کلاس" +" یک نمونه جدید برمی گرداند)؛ نمونه ها قابل فراخوانی هستند اگر کلاس آن ها یک " +"متد :meth:`~object.__call__` داشته باشد." #: ../../library/functions.rst:242 #, fuzzy @@ -980,7 +834,7 @@ msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" -"این تابع ابتدا در Python 3.0 حذف شد و سپس در Python 3.2 بازگردانده شد." +"این تابع ابتدا در پایتون 3.0 حذف شد و سپس در پایتون 3.2 بازگردانده شد." #: ../../library/functions.rst:249 #, fuzzy @@ -990,10 +844,9 @@ msgid "" "``chr(8364)`` returns the string ``'€'``. This is the inverse of " ":func:`ord`." msgstr "" -"رشته ای را برمی گرداند که نمایانگر کاراکتری است که نقطه کد یونیکد آن عدد " -"صحیح *i* است. به عنوان مثال، ``chr(97)`` رشته ``'a'`` را برمی گرداند، در " -"حالی که ``chr(8364)`` رشته ``'€'`` را برمی گرداند. این عمکرد عکس :func:`ord`" -" است." +"رشته ای را برگردانید که نمایانگر کاراکتری باشد که نقطه کد یونیکد آن عدد صحیح" +" *i* است. به عنوان مثال، ``chr(97)`` رشته ``'a'`` را برمی گرداند، درحالی که " +"``chr(8364)`` رشته ``'€'`` را برمی گرداند. این عملکرد معکوس :func:`ord` است." #: ../../library/functions.rst:253 #, fuzzy @@ -1001,13 +854,13 @@ msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." msgstr "" -"محدوده معتبر برای آرگومان از 0 تا 1,114,111 (0x10FFFF در مبنای 16) است. اگر " -"``*i*`` خارج از این محدوده باشد، ``:exc:`ValueError``` ایجاد خواهد شد." +"محدوده معتبر برای آرگومان از 0 تا 1,114,111 (0x10FFFF در مبنای 16) است. " +":exc:`ValueError` زمانی که *i* خارج از آن محدوده باشد، ایجاد خواهد شد." #: ../../library/functions.rst:259 #, fuzzy msgid "Transform a method into a class method." -msgstr "تبدیل یک متد به متد کلاسی." +msgstr "تبدیل یک متد به یک متد کلاسی." #: ../../library/functions.rst:261 #, fuzzy @@ -1016,9 +869,9 @@ msgid "" "an instance method receives the instance. To declare a class method, use " "this idiom::" msgstr "" -"یک متد کلاس، کلاس را به عنوان اولین آرگومان ضمنی دریافت می کند، درست مانند " -"اینکه یک متد نمونه، نمونه را دریافت می کند. برای تعریف یک متد کلاس از این " -"عبارت استفاده کنید::" +"یک متد کلاس، کلاس را به عنوان اولین آرگومان ضمنی دریافت می کند، درست همانطور" +" که یک متد نمونه، نمونه را دریافت می کند. برای اعلام یک متد کلاس از این روش " +"استفاده کنید:" #: ../../library/functions.rst:265 #, fuzzy @@ -1027,7 +880,7 @@ msgid "" " @classmethod\n" " def f(cls, arg1, arg2): ..." msgstr "" -"class C:\n" +"کلاس C:\n" " @classmethod\n" " def f(cls, arg1, arg2): ..." @@ -1037,7 +890,7 @@ msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see " ":ref:`function` for details." msgstr "" -"فرم ``@classmethod`` یک تابع :term:`decorator` است -- برای جزئیات به " +"فرم ``@classmethod`` یک تابع :term:`decorator` است -- برای جزئیات بیشتر به " ":ref:`function` مراجعه کنید." #: ../../library/functions.rst:272 @@ -1048,10 +901,10 @@ msgid "" "class. If a class method is called for a derived class, the derived class " "object is passed as the implied first argument." msgstr "" -"یک روش کلاس می تواند هم بر روی کلاس (مانند ``C.f()``) و هم بر روی نمونه ای " -"از آن (مانند ``C().f()``) فراخوانی شود. به نمونه به جز برای کلاس آن توجه نمی" -" شود. اگر یک روش کلاس برای یک کلاس مشتق شده فراخوانی شود، شیء کلاس مشتق شده " -"به عنوان اولین آرگومان ضمنی ارسال می شود." +"یک متد کلاسی می تواند یا بر روی کلاس (مانند ``C.f()``) و یا بر روی یک نمونه " +"(مانند ``C().f()``) فراخوانی شود. نمونه نادیده گرفته می شود به جز کلاس آن. " +"اگر یک متد کلاسی برای یک کلاس مشتق شده فراخوانی شود، شیء کلاس مشتق شده به " +"عنوان آرگومان اول ضمنی ارسال می شود." #: ../../library/functions.rst:277 #, fuzzy @@ -1060,9 +913,9 @@ msgid "" "those, see :func:`staticmethod` in this section. For more information on " "class methods, see :ref:`types`." msgstr "" -"متدهای کلاس با متدهای استاتیک در C++ یا Java متفاوت هستند. اگر به آن ها نیاز" -" دارید، به :func:`staticmethod` در این بخش مراجعه کنید. برای اطلاعات بیشتر " -"در مورد متدهای کلاس، به :ref:`types` مراجعه کنید." +"متدهای کلاس با متدهای استاتیک C++ یا جاوا متفاوت هستند. اگر به دنبال آن ها " +"هستید، به :func:`staticmethod` در این بخش مراجعه کنید. برای اطلاعات بیشتر در" +" مورد متدهای کلاس، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:281 #, fuzzy @@ -1070,8 +923,8 @@ msgid "" "Class methods can now wrap other :term:`descriptors ` such as " ":func:`property`." msgstr "" -"روش های کلاس اکنون می توانند سایر :term:`descriptors ` مانند " -":func:`property` را بسته بندی کنند." +"متدهای کلاس اکنون می توانند سایر :term:`descriptors ` ها مانند " +":func:`property` را پوشش دهند." #: ../../library/functions.rst:285 #, fuzzy @@ -1081,10 +934,10 @@ msgid "" ":attr:`~function.__qualname__`, :attr:`~function.__doc__` and " ":attr:`~function.__annotations__`) and have a new ``__wrapped__`` attribute." msgstr "" -"متدهای کلاس اکنون ویژگی های متد (:attr:`~function.__module__`, " -":attr:`~function.__name__`, :attr:`~function.__qualname__`, " +"متدهای کلاس اکنون ویژگی های متد (:attr:`~function.__module__`، " +":attr:`~function.__name__`، :attr:`~function.__qualname__`، " ":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " -"برند و یک ویژگی جدید ``__wrapped__`` دارند." +"برند و دارای ویژگی جدید ``__wrapped__`` می باشند." #: ../../library/functions.rst:292 #, fuzzy @@ -1092,8 +945,8 @@ msgid "" "Class methods can no longer wrap other :term:`descriptors ` such" " as :func:`property`." msgstr "" -"متدهای کلاس دیگر نمی توانند دیگر :term:`descriptors ` مانند " -":func:`property` را بپیچانند." +"روش های کلاس دیگر نمی توانند :term:`descriptors ` دیگری مانند " +":func:`property` را بپیچند." #: ../../library/functions.rst:299 #, fuzzy @@ -1103,10 +956,10 @@ msgid "" "string, a byte string, or an AST object. Refer to the :mod:`ast` module " "documentation for information on how to work with AST objects." msgstr "" -"کامپایل کردن *source* به یک شیء کد یا یک شیء AST. اشیاء کد می توانند توسط " -":func:`exec` یا :func:`eval` اجرا شوند. *source* می تواند به صورت یک رشته " -"معمولی، یک رشته بایتی یا یک شیء AST باشد. برای اطلاعات بیشتر در مورد کار با " -"اشیاء AST به مستندات ماژول :mod:`ast` مراجعه کنید." +"*source* را به یک شیء کد یا AST کامپایل کنید. اشیاء کد می توانند توسط " +":func:`exec` یا :func:`eval` اجرا شوند. *source* می تواند یک رشته معمولی، یک" +" رشته بایت یا یک شیء AST باشد. به مستندات ماژول :mod:`ast` برای اطلاعاتی " +"درباره نحوه کار با اشیاء AST مراجعه کنید." #: ../../library/functions.rst:304 #, fuzzy @@ -1115,9 +968,9 @@ msgid "" "pass some recognizable value if it wasn't read from a file (``''`` " "is commonly used)." msgstr "" -"آرگومان *filename* باید فایلی را که کد از آن خوانده شده است مشخص کند؛ اگر کد" -" از یک فایل خوانده نشده است، یک مقدار قابل تشخیص بدهید (``''`` به " -"طور معمول استفاده می شود)." +"استدلال *filename* باید فایل را که کد از آن خوانده شده است، فراهم کند؛ اگر " +"از یک فایل خوانده نشده است، یک مقدار قابل شناسایی را ارسال کنید (معمولاً " +"``''`` استفاده می شود)." #: ../../library/functions.rst:308 #, fuzzy @@ -1128,11 +981,11 @@ msgid "" "single interactive statement (in the latter case, expression statements that" " evaluate to something other than ``None`` will be printed)." msgstr "" -"آرگومان *mode* مشخص می کند که چه نوع کدی باید کامپایل شود؛ می تواند " -"``'exec'`` باشد اگر *source* شامل یک دنباله از دستورات باشد، ``'eval'`` اگر " -"شامل یک عبارت واحد باشد، یا ``'single'`` اگر شامل یک دستور تعاملی واحد باشد " -"(در حالت آخر, دستورات عبارت که به چیزی غیر از ``None`` ارزیابی می شوند, چاپ " -"خواهند شد)." +"آرگومان *mode* تعیین می کند که چه نوع کدی باید کامپایل شود؛ می تواند " +"``'exec'`` باشد اگر *source* شامل یک دنباله از دستورها باشد، ``'eval'`` باشد" +" اگر شامل یک عبارت منفرد باشد، یا ``'single'`` باشد اگر که شامل یک دستور " +"تعاملی منفرد باشد (در حالت آخر، عبارت هایی که به چیزی جز ``None`` ارزیابی می" +" شوند چاپ خواهند شد)." #: ../../library/functions.rst:314 #, fuzzy @@ -1148,16 +1001,16 @@ msgid "" "*flags* argument is it -- the flags (future features and compiler options) " "in the surrounding code are ignored." msgstr "" -"پارامترهای اختیاری *flags* و *dont_inherit* مشخص می کنند کدام :ref:`compiler" -" options ` باید فعال شود و کدام :ref:`future features " -"` باید مجاز باشد. اگر هیچ یک موجود نباشد (یا هر دو صفر باشند), کد با" -" همان فلگ هایی که بر روی کدی که :func:`compile` را فراخوانی می کند تأثیر می " -"گذارد، کامپایل می شود. اگر پارامتر *flags* داده شود و *dont_inherit* موجود " -"نباشد (یا صفر باشد), گزینه های کامپایلر و دستورهای آینده که توسط پارامتر " -"*flags* مشخص شده، علاوه بر آن هایی که به هر حال استفاده می شدند، استفاده می " -"شوند. اگر *dont_inherit* یک عدد صحیح غیر صفر باشد، پس پارامتر *flags* همان " -"است -- فلگ های (ویژگی های آینده و گزینه های کامپایلر) در کد اطراف نادیده " -"گرفته می شوند." +"آرگومان های اختیاری *flags* و *dont_inherit* کنترل می کنند که کدام " +":ref:`compiler options ` باید فعال شود و کدام " +":ref:`future features ` باید مجاز باشد. اگر هیچ کدام حضور نداشته " +"باشند (یا هر دو صفر باشند) کد با همان پرچم هایی که بر کدی که :func:`compile`" +" را فراخوانی می کند تأثیر می گذارند، کامپایل می شود. اگر آرگومان *flags* " +"داده شود و *dont_inherit* داده نشود (یا صفر باشد) آنگاه گزینه های کامپایلر و" +" دستورات آینده ای که توسط آرگومان *flags* مشخص شده اند، علاوه بر آنهایی که " +"به هر حال استفاده می شوند، به کار می روند. اگر *dont_inherit* عددی غیرصفر " +"باشد، آنگاه آرگومان *flags* آن است -- پرچم های (ویژگی های آینده و گزینه های " +"کامپایلر) در کد اطراف نادیده گرفته می شوند." #: ../../library/functions.rst:325 #, fuzzy @@ -1170,13 +1023,13 @@ msgid "" ":ref:`Compiler flags ` can be found in :mod:`ast` " "module, with ``PyCF_`` prefix." msgstr "" -"گزینه های کامپایلر و اظهارات آینده با بیت هایی مشخص می شوند که می توانند به " -"صورت «OR» بیت وایزی با هم ترکیب شوند تا چندین گزینه را مشخص کنند. بیت فیلد " -"لازم برای مشخص کردن یک ویژگی آینده ی خاص را می توان به عنوان ویژگی " -":attr:`~__future__._Feature.compiler_flag` بر روی نمونه ی " -":class:`~__future__._Feature` در ماژول :mod:`__future__` یافت. " -":ref:`Compiler flags ` را می توان در ماژول :mod:`ast` با" -" پیشوند ``PyCF_`` یافت." +"گزینه های کامپایلر و بیانیه های آینده با بیت هایی مشخص می شوند که می توان آن" +" ها را با عملگر OR بیتی به هم الحاق کرد تا گزینه های متعددی مشخص شوند. فیلد " +"بیتی موردنیاز برای مشخص کردن یک ویژگی آینده مشخص به صورت خاصیت " +":attr:`~__future__._Feature.compiler_flag` بر روی نمونه " +":class:`~__future__._Feature` در ماژول :mod:`__future__` یافت می شود. " +":ref:`Compiler flags ` در ماژول :mod:`ast` با پیش وند " +"``PyCF_`` یافت می شود." #: ../../library/functions.rst:333 #, fuzzy @@ -1187,11 +1040,11 @@ msgid "" " optimization; ``__debug__`` is true), ``1`` (asserts are removed, " "``__debug__`` is false) or ``2`` (docstrings are removed too)." msgstr "" -"آرگومان *optimize* سطح بهینه سازی کامپایلر را مشخص می کند؛ مقدار پیش فرض " -"``-1`` سطح بهینه سازی مفسر را طبق گزینه های :option:`-O` انتخاب می کند. سطوح" -" صریح شامل ``0`` (بدون بهینه سازی؛ ``__debug__`` درست است)، ``1`` (تأییدها " -"حذف می شوند, ``__debug__`` نادرست است) یا ``2`` (رشته های مستندات نیز حذف می" -" شوند) است." +"*optimize* این پارامتر سطح بهینه سازی کامپایلر را مشخص می کند؛ مقدار پیش فرض" +" ``-1`` سطح بهینه سازی مفسر را به روشی که توسط :option:`-O` گزینه ها داده " +"شده، انتخاب می کند. سطوح صریح عبارتند از ``0`` (بدون بهینه سازی؛ " +"``__debug__`` درست است)، ``1`` (assertها حذف شده، ``__debug__`` نادرست است) " +"یا ``2`` (docstrings نیز حذف می شوند)." #: ../../library/functions.rst:339 #, fuzzy @@ -1199,9 +1052,8 @@ msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." msgstr "" -"این تابع خطای :exc:`SyntaxError` را ایجاد می کند اگر کد منبع کامپایل شده " -"نامعتبر باشد، و خطای :exc:`ValueError` را ایجاد می کند اگر کد منبع حاوی بایت" -" های null باشد." +"این تابع :exc:`SyntaxError` را در صورتی که کد منبع کامپایل شده نامعتبر باشد،" +" و :exc:`ValueError` را اگر منبع شامل بایت های null باشد، برمی گرداند." #: ../../library/functions.rst:342 #, fuzzy @@ -1209,8 +1061,8 @@ msgid "" "If you want to parse Python code into its AST representation, see " ":func:`ast.parse`." msgstr "" -"اگر می خواهید کد Python را به نمایندگی AST تجزیه کنید، به :func:`ast.parse` " -"مراجعه کنید." +"اگر می خواهید کد پایتون را به نمایش AST آن تجزیه کنید، :func:`ast.parse` را " +"ببینید." #: ../../library/functions.rst:345 ../../library/functions.rst:347 #, fuzzy @@ -1220,8 +1072,8 @@ msgid "" "compilation." msgstr "" "یک :ref:`auditing event ` ``compile`` با آرگومان های ``source`` و " -"``filename`` به وجود می آورد. این رویداد ممکن است توسط کامپایل ضمنی نیز به " -"وجود آید." +"``filename`` مطرح می شود. این رویداد ممکن است توسط کامپایل ضمنی نیز مطرح " +"شود." #: ../../library/functions.rst:353 #, fuzzy @@ -1231,9 +1083,9 @@ msgid "" "to facilitate detection of incomplete and complete statements in the " ":mod:`code` module." msgstr "" -"در هنگام کامپایل کردن یک رشته با کد چند-خطی در حالت ``'single'`` یا " -"``'eval'``، ورودی باید حداقل با یک نویسه ی خط جدید خاتمه یابد. این کار به " -"منظور تسهیل در تشخیص دستورات ناقص و کامل در ماژول :mod:`code` است." +"هنگام کامپایل کردن یک رشته با کد چندخطی در حالت ``'single'`` یا ``'eval'``، " +"ورودی باید حداقل با یک کاراکتر newline خاتمه یابد. این کار به منظور تسهیل " +"تشخیص جملات ناقص و کامل در ماژول :mod:`code` است." #: ../../library/functions.rst:360 #, fuzzy @@ -1242,9 +1094,9 @@ msgid "" "large/complex string when compiling to an AST object due to stack depth " "limitations in Python's AST compiler." msgstr "" -"این امکان وجود دارد که با استفاده از یک رشتهٔ به اندازه کافی بزرگ/پیچیده، " -"مفسر پایتون را هنگامی که به یک شیء AST کامپایل می شود، به دلیل محدودیت های " -"عمق پشته در کامپایلر AST پایتون، دچار کرش کنید." +"ممکن است با یک رشته به اندازه کافی بزرگ/پیچیده، مفسر پایتون را هنگام کامپایل" +" به یک شیء AST به دلیل محدودیت های عمق پشته در کامپایلر AST پایتون از کار " +"بیاندازید." #: ../../library/functions.rst:364 #, fuzzy @@ -1252,9 +1104,8 @@ msgid "" "Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " "does not have to end in a newline anymore. Added the *optimize* parameter." msgstr "" -"استفاده از شکست خط های جدید در ویندوز و مک مجاز است. همچنین، ورودی در حالت " -"``'exec'`` دیگر نیازی به پایان با یک شکست خط ندارد. پارامتر *optimize* اضافه" -" شد." +"استفاده از خط جدید ویندوز و مک مجاز است. همچنین، ورودی در حالت ``'exec'`` " +"لازم نیست با یک خط جدید پایان یابد. پارامتر *optimize* اضافه شده است." #: ../../library/functions.rst:368 #, fuzzy @@ -1262,7 +1113,7 @@ msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." msgstr "" -"پیش تر، :exc:`TypeError` زمانی به وجود می آمد که بایت های نال در *source* " +"قبلاً، :exc:`TypeError` زمانی افزایش می یافت که بایت های نال در *source* " "مشاهده می شدند." #: ../../library/functions.rst:372 @@ -1271,9 +1122,9 @@ msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." msgstr "" -"اکنون می توان ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` را به صورت پرچم هایی ارسال " -"کرد تا پشتیبانی از ``await``، ``async for`` و ``async with`` در سطح بالا " -"فعال شود." +"می توان ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` را اکنون در پرچم ها برای فعال " +"کردن پشتیبانی از ``await``، ``async for``، و ``async with`` در سطح بالا " +"گذراند." #: ../../library/functions.rst:381 #, fuzzy @@ -1281,8 +1132,8 @@ msgid "" "Convert a single string or number to a complex number, or create a complex " "number from real and imaginary parts." msgstr "" -"یک رشته یا عدد را به یک عدد مختلط تبدیل کنید، یا یک عدد مختلط از قسمت های " -"حقیقی و موهومی ایجاد کنید." +"تبدیل یک رشته یا عدد منفرد به یک عدد مختلط، یا ایجاد یک عدد مختلط از قسمت " +"های حقیقی و موهومی." #: ../../library/functions.rst:384 ../../library/functions.rst:752 #: ../../library/functions.rst:998 @@ -1311,21 +1162,21 @@ msgid "" "(-1.23+4.5j)" msgstr "" ">>> complex('+1.23')\n" -"(1.23+0j)\n" +"(۱.۲۳+۰j)\n" ">>> complex('-4.5j')\n" -"-4.5j\n" +"-۴.۵j\n" ">>> complex('-1.23+4.5j')\n" -"(-1.23+4.5j)\n" +"(-۱.۲۳+۴.۵j)\n" ">>> complex('\\t( -1.23+4.5J )\\n')\n" -"(-1.23+4.5j)\n" +"(-۱.۲۳+۴.۵j)\n" ">>> complex('-Infinity+NaNj')\n" "(-inf+nanj)\n" -">>> complex(1.23)\n" -"(1.23+0j)\n" -">>> complex(imag=-4.5)\n" -"-4.5j\n" -">>> complex(-1.23, 4.5)\n" -"(-1.23+4.5j)" +">>> complex(۱.۲۳)\n" +"(۱.۲۳+۰j)\n" +">>> complex(imag=-۴.۵)\n" +"-۴.۵j\n" +">>> complex(-۱.۲۳, ۴.۵)\n" +"(-۱.۲۳+۴.۵j)" #: ../../library/functions.rst:405 #, fuzzy @@ -1342,17 +1193,16 @@ msgid "" ":token:`~float:complexvalue` production rule in the following grammar, after" " parentheses and leading and trailing whitespace characters are removed:" msgstr "" -"اگر آرگومان یک رشته باشد، باید شامل یک بخش حقیقی (به همان فرمتی که برای " -":func:`float` استفاده می شود) یا یک بخش موهومی (با همان فرمت اما با پسوند " -"``'j'`` یا ``'J'``) باشد، یا هر دو بخش حقیقی و موهومی (در این حالت علامت بخش" -" موهومی ضروری است). رشته می تواند به طور اختیاری توسط فاصله های سفید و " -"پرانتزهای ``'('`` و ``')'`` محصور شود که نادیده گرفته می شوند. رشته نباید " -"شامل فاصله ی سفید بین ``'+'``، ``'-'``، پسوند ``'j'`` یا ``'J'`` و عدد " -"اعشاری باشد. به عنوان مثال، ``complex('1+2j')`` قابل قبول است، اما " -"``complex('1 + 2j')`` منجر به ایجاد :exc:`ValueError` می شود. به طور دقیق " -"تر، ورودی باید با قانون تولید :token:`~float:complexvalue` در دستور زبان زیر" -" مطابقت داشته باشد، پس از حذف پرانتزها و کاراکترهای فضای سفید در ابتدا و " -"انتها:" +"اگر آرگومان یک رشته باشد، باید حاوی یک بخش حقیقی (در همان قالب " +":func:`float`) یا یک بخش موهومی (با همان قالب اما با پسوند ``'j'`` یا " +"``'J'``) و یا هر دو بخش حقیقی و موهومی (علامت بخش موهومی در این حالت الزامی " +"است) باشد. رشته می تواند به صورت اختیاری با فاصله و پرانتزهای گرد ``'('`` و " +"``')'`` احاطه شده باشد که نادیده گرفته می شوند. رشته نباید شامل فاصله بین " +"``'+'``، ``'-'``، پسوند ``'j'`` یا ``'J'`` و عدد اعشاری باشد. به عنوان مثال،" +" ``complex('1+2j')`` صحیح است، اما ``complex('1 + 2j')`` خطای " +":exc:`ValueError` ایجاد می کند. به طور دقیق تر، ورودی باید با قاعده تولید " +":token:`~float:complexvalue` در دستور زبان زیر مطابقت داشته باشد، پس از حذف " +"پرانتزها و فاصله های ابتدایی و انتهایی:" #: ../../library/functions.rst:424 #, fuzzy @@ -1364,11 +1214,11 @@ msgid "" ":meth:`~object.__float__`. If :meth:`!__float__` is not defined then it " "falls back to :meth:`~object.__index__`." msgstr "" -"اگر آرگومان یک عدد باشد، سازنده به عنوان یک تبدیل عددی عمل می کند مانند " -":class:`int` و :class:`float`. برای یک شی عمومی پایتون ``x``، ``complex(x)``" -" به ``x.__complex__()`` واگذار می کند. اگر :meth:`~object.__complex__` تعریف" -" نشده باشد، به :meth:`~object.__float__` بر می گردد. اگر :meth:`!__float__` " -"تعریف نشده باشد، به :meth:`~object.__index__` بر می گردد." +"اگر آرگومان یک عدد باشد، سازنده به عنوان یک تبدیل عددی مانند :class:`int` و " +":class:`float` عمل می کند. برای یک شئ عمومی پایتون ``x``، ``complex(x)`` به " +"``x.__complex__()`` محول می شود. اگر :meth:`~object.__complex__` تعریف نشده " +"باشد، سپس به :meth:`~object.__float__` بازمی گردد. اگر :meth:`!__float__` " +"تعریف نشده باشد، سپس به :meth:`~object.__index__` بازمی گردد." #: ../../library/functions.rst:433 #, fuzzy @@ -1381,29 +1231,29 @@ msgid "" "imaginary component ``real.imag+imag.real``. If one of arguments is a real " "number, only its real component is used in the above expressions." msgstr "" -"اگر دو آرگومان ارائه شود یا از آرگومان های کلیدواژه ای استفاده شود، هر " -"آرگومان می تواند هر نوع عددی باشد (از جمله مختلط). اگر هر دو آرگومان اعداد " -"واقعی باشند، یک عدد مختلط با مؤلفه واقعی *real* و مؤلفه موهومی *imag* برمی " -"گردد. اگر هر دو آرگومان اعداد مختلط باشند، یک عدد مختلط با مؤلفه واقعی " -"``real.real-imag.imag`` و مؤلفه موهومی ``real.imag+imag.real`` برمی گردد. " -"اگر یکی از آرگومان ها یک عدد واقعی باشد، فقط مؤلفه واقعی آن در عبارات فوق " +"اگر دو آرگومان ارائه شده یا آرگومان های کلیدی استفاده شوند، هر آرگومان می " +"تواند هر نوع عددی (از جمله مختلط) باشد. اگر هر دو آرگومان اعداد حقیقی باشند،" +" یک عدد مختلط با مؤلفه حقیقی *real* و مؤلفه موهومی *imag* برگردانده می شود. " +"اگر هر دو آرگومان اعداد مختلط باشند، یک عدد مختلط با مؤلفه حقیقی " +"``real.real-imag.imag`` و مؤلفه موهومی ``real.imag+imag.real`` برگردانده می " +"شود. اگر یکی از آرگومان ها عدد حقیقی باشد، فقط مؤلفه حقیقی آن در عبارات فوق " "استفاده می شود." #: ../../library/functions.rst:443 #, fuzzy msgid "If all arguments are omitted, returns ``0j``." -msgstr "اگر همه آرگومان ها حذف شوند، ```0j``` را بازمی گرداند." +msgstr "اگر همهٔ آرگومان ها حذف شده باشند، ``0j`` را برمی گرداند." #: ../../library/functions.rst:445 #, fuzzy msgid "The complex type is described in :ref:`typesnumeric`." -msgstr "نوع عدد مختلط در :ref:`typesnumeric` توضیح داده شده است." +msgstr "نوع complex در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:447 ../../library/functions.rst:804 #: ../../library/functions.rst:1047 #, fuzzy msgid "Grouping digits with underscores as in code literals is allowed." -msgstr "گروه بندی ارقام با استفاده از زیرخط ها در کدهای لیترال مجاز است." +msgstr "از خط تیره برای جداسازی اعداد در نمایه های کد می توان استفاده کرد." #: ../../library/functions.rst:450 #, fuzzy @@ -1411,8 +1261,8 @@ msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and " ":meth:`~object.__float__` are not defined." msgstr "" -"در صورتی که :meth:`~object.__complex__` و :meth:`~object.__float__` تعریف " -"نشده باشند، به :meth:`~object.__index__` برمی گردد." +"به :meth:`~object.__index__` برمی گردد اگر :meth:`~object.__complex__` و " +":meth:`~object.__float__` تعریف نشده باشند." #: ../../library/functions.rst:457 #, fuzzy @@ -1423,11 +1273,11 @@ msgid "" "example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. *name* " "need not be a Python identifier (see :func:`setattr`)." msgstr "" -"این یک هم خانواده ی :func:`setattr` است. آرگومان ها یک شیء و یک رشته هستند. " -"رشته باید نام یکی از ویژگی های شیء باشد. این تابع ویژگی نام برده شده را حذف " -"می کند، به شرطی که شیء اجازه دهد. برای مثال، ``delattr(x, 'foobar')`` معادل " -"با ``del x.foobar`` است. *name* نیاز نیست که حتماً یک شناسه Python باشد " -"(نگاه کنید به :func:`setattr`)." +"این یک خویشاوند از :func:`setattr` است. آرگومان ها یک شیء و یک رشته هستند. " +"رشته باید نام یکی از ویژگی های شیء باشد. تابع ویژگی نام گذاری شده را حذف می " +"کند، به شرطی که شیء این اجازه را بدهد. به عنوان مثال، ``delattr(x, " +"'foobar')`` معادل ``del x.foobar`` است. *name* نیازی نیست که یک شناسگر " +"پایتون باشد (به :func:`setattr` مراجعه کنید)." #: ../../library/functions.rst:470 #, fuzzy @@ -1445,8 +1295,8 @@ msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and " ":class:`tuple` classes, as well as the :mod:`collections` module." msgstr "" -"برای دیگر کانتینرها به کلاس های :class:`list`، :class:`set` و :class:`tuple`" -" داخلی، همچنین به ماژول :mod:`collections` مراجعه کنید." +"برای سایر کانتینرها به کلاس های داخلی :class:`list`، :class:`set` و " +":class:`tuple`، و همچنین ماژول :mod:`collections` مراجعه کنید." #: ../../library/functions.rst:480 #, fuzzy @@ -1455,9 +1305,9 @@ msgid "" "With an argument, attempt to return a list of valid attributes for that " "object." msgstr "" -"بدون آرگومان ها، لیست نام ها در حوزه محلی فعلی را بازگردانی کنید. با یک " -"آرگومان، تلاش کنید تا لیستی از ویژگی های معتبر برای آن شیء را بازگردانی " -"کنید." +"اگر بدون آرگومان استفاده شود، لیستی از نام ها در حوزه محلی جاری را برمی " +"گرداند. اگر با یک آرگومان استفاده شود، تلاش می کند تا لیستی از ویژگی های " +"معتبر برای آن شی را برگرداند." #: ../../library/functions.rst:483 #, fuzzy @@ -1468,11 +1318,11 @@ msgid "" ":func:`~object.__getattribute__` function to customize the way :func:`dir` " "reports their attributes." msgstr "" -"اگر شیئی دارای روشی به نام :meth:`~object.__dir__` باشد، این روش فراخوانی می" -" شود و باید لیست ویژگی ها را برگرداند. این امر به اشیایی که تابع سفارشی " -":func:`~object.__getattr__` یا :func:`~object.__getattribute__` را پیاده " -"سازی کرده اند اجازه می دهد تا نحوه گزارش ویژگی هایشان توسط :func:`dir` را " -"سفارشی کنند." +"اگر شیء دارای متدی به نام :meth:`~object.__dir__` باشد، این متد فراخوانی شده" +" و باید لیستی از ویژگی ها را برگرداند. این امکان را فراهم می کند که اشیایی " +"که یک تابع :func:`~object.__getattr__` یا :func:`~object.__getattribute__` " +"سفارشی را پیاده سازی کرده اند، بتوانند نحوه گزارش ویژگی های خود توسط " +":func:`dir` را سفارشی سازی کنند." #: ../../library/functions.rst:490 #, fuzzy @@ -1483,10 +1333,11 @@ msgid "" "necessarily complete and may be inaccurate when the object has a custom " ":func:`~object.__getattr__`." msgstr "" -"اگر شیء :meth:`~object.__dir__` را فراهم نکند، تابع تلاش خود را می کند تا " -"اطلاعات را از صفت :attr:`~object.__dict__` شیء، در صورت تعریف شدن، و از شیء " -"نوع آن جمع آوری کند. لیست حاصل لزوماً کامل نیست و ممکن است وقتی شیء دارای یک" -" :func:`~object.__getattr__` سفارشی است نادرست باشد." +"اگر شیء :meth:`~object.__dir__` را ارائه ندهد، تابع تمام تلاش خود را می کند " +"تا اطلاعات لازم را از ویژگی :attr:`~object.__dict__` شیء، در صورتی که تعریف " +"شده باشد، و از شیء نوع آن جمع آوری کند. لیستی که به دست می آید لزوماً کامل " +"نیست و ممکن است زمانی که شیء دارای :func:`~object.__getattr__` سفارشی باشد، " +"نادرست باشد." #: ../../library/functions.rst:496 #, fuzzy @@ -1495,15 +1346,15 @@ msgid "" "of objects, as it attempts to produce the most relevant, rather than " "complete, information:" msgstr "" -"مکانیزم پیش فرض :func:`dir` با انواع مختلف اشیاء به گونه ای متفاوت عمل می " -"کند، زیرا تلاش می کند اطلاعات مرتبط تر را به جای اطلاعات کامل ارائه دهد:" +"مکانیسم پیش فرض :func:`dir` با انواع مختلف اشیا به گونه ای متفاوت رفتار می " +"کند، زیرا سعی دارد اطلاعات مرتبط تر (و نه کامل) را تولید کند:" #: ../../library/functions.rst:500 #, fuzzy msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." -msgstr "اگر شیء یک شیء ماژول باشد، فهرست شامل نام های ویژگی های ماژول است." +msgstr "اگر شیء یک شیء ماژول باشد، لیست شامل نام های ویژگی های ماژول است." #: ../../library/functions.rst:503 #, fuzzy @@ -1512,7 +1363,7 @@ msgid "" "attributes, and recursively of the attributes of its bases." msgstr "" "اگر شیء یک نوع یا شیء کلاس باشد، لیست شامل نام های ویژگی های آن و به صورت " -"بازگشتی، نام ویژگی های پایه های آن می باشد." +"بازگشتی شامل ویژگی های مبناهای آن می باشد." #: ../../library/functions.rst:506 #, fuzzy @@ -1521,13 +1372,13 @@ msgid "" "its class's attributes, and recursively of the attributes of its class's " "base classes." msgstr "" -"در غیر این صورت، فهرست شامل نام های ویژگی های شیء، نام های ویژگی های کلاس " -"آن، و به صورت بازگشتی نام های ویژگی های کلاس های پایه ی کلاس آن است." +"در غیر این صورت، فهرست شامل نام های ویژگی های شئ، نام های ویژگی های کلاس آن،" +" و به صورت بازگشتی ویژگی های کلاس های پایه آن کلاس خواهد بود." #: ../../library/functions.rst:510 #, fuzzy msgid "The resulting list is sorted alphabetically. For example:" -msgstr "فهرست حاصل به ترتیب حروف الفبا مرتب شده است. برای مثال:" +msgstr "لیست نهایی به صورت حروف الفبا مرتب می شود. برای مثال:" #: ../../library/functions.rst:530 #, fuzzy @@ -1538,11 +1389,11 @@ msgid "" "its detailed behavior may change across releases. For example, metaclass " "attributes are not in the result list when the argument is a class." msgstr "" -"از آنجا که :func:`dir` به عنوان ابزاری برای استفاده در محیط تعاملی ارائه می " -"شود، تلاش می کند مجموعه ای جذاب از نام ها را بیشتر از تلاش برای ارائه مجموعه" -" ای دقیق یا یکسان از نام ها ارائه دهد و رفتار دقیق آن ممکن است در نسخه های " -"مختلف تغییر کند. به عنوان مثال، ویژگی های متاکلاس زمانی که آرگومان یک کلاس " -"است در لیست نتایج قرار نمی گیرند." +"از آنجا که :func:`dir` به طور عمده برای استفاده در یک پرامپت تعاملی ارائه " +"می شود، سعی دارد تا مجموعه ای جذاب از نام ها را فراهم کند، بیشتر از اینکه " +"سعی کند مجموعه ای به طور دقیق یا پیوسته تعریف شده از نام ها را ارائه دهد." +" رفتار دقیق آن ممکن است در نسخه های مختلف تغییر کند. برای مثال، زمانی که " +"آرگومان یک کلاس است، صفات متاکلاس در لیست نتیجه نیستند." #: ../../library/functions.rst:540 #, fuzzy @@ -1556,13 +1407,13 @@ msgid "" "% b`` is very close to *a*, if ``a % b`` is non-zero it has the same sign as" " *b*, and ``0 <= abs(a % b) < abs(b)``." msgstr "" -"دو عدد (غیرمختلط) به عنوان آرگومان بگیرید و یک جفت عدد که شامل خارج قسمت و " -"باقی مانده آن ها هنگام استفاده از تقسیم عدد صحیح است، برگردانید. با انواع " -"عملوند مختلط، قوانین برای عملگرهای حسابی باینری اعمال می شود. برای اعداد " +"دو عدد (غیر مختلط) را به عنوان آرگومان گرفته و یک جفت عدد که شامل خارج قسمت " +"و باقیمانده آن ها هنگام استفاده از تقسیم صحیح است، برمی گرداند. با انواع " +"عملوندهای مخلوط، قواعد برای عملگرهای حسابی دودویی اعمال می شود. برای اعداد " "صحیح، نتیجه همان ``(a // b, a % b)`` است. برای اعداد اعشاری نتیجه ``(q, a % " -"b)`` است، جایی که *q* معمولاً ``math.floor(a / b)`` است اما ممکن است 1 کمتر " -"از آن باشد. در هر صورت ``q * b + a % b`` بسیار نزدیک به *a* است، اگر ``a % " -"b`` صفر نباشد دارای همان علامت *b* است، و ``0 <= abs(a % b) < abs(b)``." +"b)`` است، که در آن *q* معمولاً ``math.floor(a / b)`` است اما ممکن است 1 کمتر" +" از آن باشد. در هر صورت ``q * b + a % b`` بسیار نزدیک به *a* است، اگر ``a % " +"b`` غیر صفر باشد همان علامت *b* را دارد، و ``0 <= abs(a % b) < abs(b)``." #: ../../library/functions.rst:552 #, fuzzy @@ -1573,16 +1424,16 @@ msgid "" ":func:`enumerate` returns a tuple containing a count (from *start* which " "defaults to 0) and the values obtained from iterating over *iterable*." msgstr "" -"یک شیء شمارشی برمی گرداند. *iterable* باید یک توالی، یک :term:`iterator`، یا" -" شیء دیگری باشد که از تکرار پشتیبانی کند. متد :meth:`~iterator.__next__` از " -"تکرارگر برگشتی توسط :func:`enumerate` یک تاپل شامل شمارش (از *start* که به " -"طور پیش فرض 0 است) و مقادیر به دست آمده از تکرار بر روی *iterable* برمی " -"گرداند." +"یک شیء شمارشی را برمی گرداند. *iterable* باید یک توالی، یک :term:`iterator`،" +" یا یک شیء دیگر باشد که از تکرارپذیری پشتیبانی می کند. متد " +":meth:`~iterator.__next__` از تکرارگر بازگردانده شده توسط :func:`enumerate` " +"یک تاپل شامل یک شمارشگر (از *start* که به طور پیش فرض صفر است) و مقادیری که " +"از تکرار بر روی *iterable* به دست می آیند را بازمی گرداند." #: ../../library/functions.rst:564 #, fuzzy msgid "Equivalent to::" -msgstr "معادل با::" +msgstr "معادل با:" #: ../../library/functions.rst:566 #, fuzzy @@ -1593,11 +1444,11 @@ msgid "" " yield n, elem\n" " n += 1" msgstr "" -"def enumerate(iterable, start=0):\n" -" n = start\n" -" for elem in iterable:\n" -" yield n, elem\n" -" n += 1" +"تابع enumerate یک شیء قابل تکرار و یک مقدار شروع را به عنوان ورودی می پذیرد " +"و در هر مرحله، شماره ی اندیس فعلی و عنصر مربوطه را بازمی گرداند. به صورت پیش" +" فرض، شمارش از صفر شروع می شود، اما می توان با تنظیم پارامتر start، مقدار " +"شروع را تغییر داد. در حلقه ی بازگشتی، ابتدا مقدار n و elem برای هر عنصر " +"بازگشته و سپس n به اندازه ی یک واحد افزایش می یابد." #: ../../library/functions.rst:0 #, fuzzy @@ -1607,7 +1458,7 @@ msgstr "پارامترها" #: ../../library/functions.rst:576 #, fuzzy msgid "A Python expression." -msgstr "یک عبارت پایتون." +msgstr "یک عبارت Python." #: ../../library/functions.rst:580 #, fuzzy @@ -1622,7 +1473,7 @@ msgstr "فضای نام محلی (پیش فرض: ``None``)." #: ../../library/functions.rst:0 #, fuzzy msgid "Returns" -msgstr "بازگشت ها" +msgstr "بازمی گرداند" #: ../../library/functions.rst:588 #, fuzzy @@ -1632,12 +1483,12 @@ msgstr "نتیجه ی عبارت ارزیابی شده." #: ../../library/functions.rst:0 #, fuzzy msgid "raises" -msgstr "بلند می کند" +msgstr "بالا می برد" #: ../../library/functions.rst:589 #, fuzzy msgid "Syntax errors are reported as exceptions." -msgstr "خطاهای نحوی به صورت استثناء گزارش می شوند." +msgstr "خطاهای نحوی به صورت استثنا گزارش می شوند." #: ../../library/functions.rst:593 ../../library/functions.rst:654 #, fuzzy @@ -1645,8 +1496,8 @@ msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." msgstr "" -"این تابع کد دلخواه را اجرا می کند. فراخوانی آن با ورودی ارائه شده توسط کاربر" -" ممکن است منجر به آسیب پذیری های امنیتی شود." +"این تابع کدهای دلخواه را اجرا می کند. فراخوانی آن با ورودی که توسط کاربر " +"ارائه شده است ممکن است منجر به آسیب پذیری های امنیتی شود." #: ../../library/functions.rst:596 #, fuzzy @@ -1667,20 +1518,20 @@ msgid "" "environment if they are already referenced in the scope that is calling " ":func:`eval` (e.g. via a :keyword:`nonlocal` statement)." msgstr "" -"آرگومان *expression* به عنوان یک عبارت پایتون (از نظر فنی, یک لیست شرایط) با" -" استفاده از نگاشت های *globals* و *locals* به عنوان فضای نام های سراسری و " -"محلی تجزیه و ارزیابی می شود. اگر دیکشنری *globals* وجود داشته باشد و حاوی " -"مقداری برای کلید ``__builtins__`` نباشد، یک ارجاع به دیکشنری ماژول داخلی " -":mod:`builtins` تحت آن کلید قبل از تجزیه *expression* اضافه می شود. به این " -"ترتیب می توانید با افزودن دیکشنری ``__builtins__`` خود به *globals*، مشخص " -"کنید که چه توابع داخلی برای کد اجرایی در دسترس باشند، قبل از اینکه آن را به " -":func:`eval` منتقل کنید. اگر نگاشت *locals* حذف شود، به طور پیش فرض به " -"دیکشنری *globals* انتقال پیدا می کند. اگر هر دو نگاشت ها حذف شوند، عبارت با " -"استفاده از *globals* و *locals* در محیطی که :func:`eval` فراخوانی می شود، " -"اجرا می شود. توجه داشته باشید که *eval()* تنها به :term:`nested scopes " -"` (غیر محلی ها) در محیط احاطه کننده دسترسی خواهد داشت، اگر " -"قبلاً در حوزه ای که :func:`eval` را فراخوانی می کند، ارجاع شده باشند (مثلاً " -"از طریق یک دستور :keyword:`nonlocal`)." +"آرگومان *expression* به عنوان یک عبارت پایتون (به طور خاص، یک لیست شرایط) با" +" استفاده از نگاشت های *globals* و *locals* به عنوان فضای نام سراسری و محلی " +"پردازش و ارزیابی می شود. اگر دیکشنری *globals* موجود باشد و حاوی مقداری برای" +" کلید ``__builtins__`` نباشد، ارجاعی به دیکشنری ماژول داخلی :mod:`builtins` " +"تحت آن کلید قبل از پردازش *expression* درج می شود. به این ترتیب، شما می " +"توانید با قرار دادن دیکشنری ``__builtins__`` خود در *globals* قبل از ارسال " +"آن به :func:`eval`، کنترل کنید که چه توابع داخلی برای کد اجرا شده در دسترس " +"هستند. اگر نگاشت *locals* حذف شود، به طور پیش فرض به دیکشنری *globals* تنظیم" +" می شود. اگر هر دو نگاشت حذف شوند، عبارت در محیطی با *globals* و *locals* " +"واکاوی می شود که در آنجا :func:`eval` فراخوانی می شود. توجه داشته باشید که " +"*eval()* فقط به :term:`nested scopes ` (غیر محلی ها) در محیط " +"احاطه کننده دسترسی خواهد داشت اگر آنها قبلاً به دامنه ای که :func:`eval` را " +"فراخوانی می کند ارجاع داده شده باشند (مثلاً از طریق یک دستور " +":keyword:`nonlocal`)." #: ../../library/functions.rst:612 #, fuzzy @@ -1695,9 +1546,9 @@ msgid "" " of a string. If the code object has been compiled with ``'exec'`` as the " "*mode* argument, :func:`eval`\\'s return value will be ``None``." msgstr "" -"این تابع همچنین می تواند برای اجرای اشیاء کد دلخواه (مانند آن هایی که توسط " -":func:`compile` ایجاد شده اند) مورد استفاده قرار گیرد. در این صورت، به جای " -"یک رشته، یک شیء کد را ارسال کنید. اگر شیء کد با ``'exec'`` به عنوان آرگومان " +"این تابع همچنین می تواند برای اجرای اشیاء کد دلخواه (مانند آنهایی که توسط " +":func:`compile` ایجاد شده اند) استفاده شود. در این حالت، به جای یک رشته، یک " +"شیء کد را وارد کنید. اگر شیء کد با استفاده از ``'exec'`` به عنوان آرگومان " "*mode* کامپایل شده باشد، مقدار بازگشتی :func:`eval` برابر با ``None`` خواهد " "بود." @@ -1709,8 +1560,8 @@ msgid "" "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" -"اشاره: اجرای پویا دستورات بوسیله تابع :func:`exec` پشتیبانی می شود. توابع " -":func:`globals` و :func:`locals` به ترتیب دیکشنری های سراسری و محلی جاری را " +"اجرای پویا از جملات توسط تابع :func:`exec` پشتیبانی می شود. توابع " +":func:`globals` و :func:`locals` به ترتیب دیکشنری های سراسری و محلی فعلی را " "برمی گردانند که ممکن است برای استفاده توسط :func:`eval` یا :func:`exec` مفید" " باشد." @@ -1720,8 +1571,8 @@ msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." msgstr "" -"اگر منبع داده شده یک رشته باشد، آنگاه فاصله ها و تب های ابتدایی و انتهایی " -"حذف می شوند." +"اگر منبع داده شده یک رشته باشد، فضاهای خالی و تب های ابتدای و انتهای آن حذف " +"می شوند." #: ../../library/functions.rst:631 #, fuzzy @@ -1729,8 +1580,8 @@ msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings" " with expressions containing only literals." msgstr "" -"برای مشاهده ی تابعی که می تواند به طور امن رشته هایی با عبارات فقط حاوی " -"مقادیر عددی را ارزیابی کند، به :func:`ast.literal_eval` مراجعه کنید." +"برای مشاهده تابعی که می تواند رشته ها را با عبارات حاوی تنها مقادیر مستقیم " +"به طور امن ارزیابی کند، به :func:`ast.literal_eval` مراجعه کنید." #: ../../library/functions.rst:634 ../../library/functions.rst:636 #: ../../library/functions.rst:696 ../../library/functions.rst:698 @@ -1740,7 +1591,7 @@ msgid "" "the argument. Code compilation events may also be raised." msgstr "" "یک :ref:`auditing event ` ``exec`` را با شیء کد به عنوان آرگومان " -"ایجاد می کند. رویدادهای کامپایل کد نیز ممکن است ایجاد شوند." +"برمی انگیزد. رویدادهای کامپایل کد نیز ممکن است برانگیخته شوند." #: ../../library/functions.rst:641 ../../library/functions.rst:718 #, fuzzy @@ -1755,8 +1606,8 @@ msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." msgstr "" -"معنای فضای نام پیش فرض *locals* مطابق با توضیحات مربوط به ساختار داخلی " -":func:`locals` تنظیم شده است." +"معانی فضای نام پیش فرض *locals* مطابق با آنچه برای :func:`locals` builtin " +"توصیف شده تعدیل شده است." #: ../../library/functions.rst:657 #, fuzzy @@ -1771,15 +1622,15 @@ msgid "" " not be used outside of function definitions even within the context of code" " passed to the :func:`exec` function. The return value is ``None``." msgstr "" -"این تابع اجرا شدن پویا کدهای پایتون را پشتیبانی می کند. *source* باید یا یک " -"رشته یا یک شیء کد باشد. اگر یک رشته باشد، رشته به عنوان مجموعه ای از دستورات" -" پایتون تجزیه می شود و سپس اجرا می گردد (مگر اینکه خطای نحوی رخ دهد). [#]_ " -"اگر یک شیء کد باشد، به سادگی اجرا می شود. در همه موارد، کدی که اجرا می شود " -"انتظار می رود که به عنوان ورودی فایل معتبر باشد (به بخش :ref:`file-input` در" -" کتابچه راهنمای مرجع نگاه کنید). توجه داشته باشید که دستورات " -":keyword:`nonlocal`، :keyword:`yield`، و :keyword:`return` ممکن است خارج از " -"تعریف توابع حتی در زمینه کدی که به تابع :func:`exec` ارسال می شود، استفاده " -"نشوند. مقدار برگشتی ``None`` است." +"این تابع از اجرای پویا کد پایتون پشتیبانی می کند. *source* باید یا یک رشته " +"باشد یا یک شیء کد. اگر یک رشته باشد، رشته به عنوان مجموعه ای از دستورات " +"پایتون تجزیه می شود که سپس اجرا خواهد شد (مگر اینکه خطای نحوی رخ دهد). [#]_ " +"اگر یک شیء کد باشد، به سادگی اجرا خواهد شد. در تمامی حالات، انتظار می رود " +"کدی که اجرا می شود به عنوان ورودی فایل معتبر باشد (به بخش :ref:`file-input` " +"در راهنمای مرجع مراجعه کنید). توجه داشته باشید که دستورات " +":keyword:`nonlocal`، :keyword:`yield`، و :keyword:`return` ممکن است خارج از" +" تعاریف توابع حتی در زمینه کدی که به تابع :func:`exec` فرستاده می شود، " +"استفاده نشوند. مقدار بازگشتی ``None`` است." #: ../../library/functions.rst:668 #, fuzzy @@ -1792,12 +1643,12 @@ msgid "" " any mapping object. Remember that at the module level, globals and locals " "are the same dictionary." msgstr "" -"در تمامی موارد، اگر بخش های اختیاری حذف شوند، کد در محدوده فعلی اجرا می شود." -" اگر تنها *globals* ارائه شود، باید یک دیکشنری باشد (و نه زیرکلاسی از " -"دیکشنری), که برای هر دو متغیرهای جهانی و محلی استفاده خواهد شد. اگر " -"*globals* و *locals* داده شوند، به ترتیب برای متغیرهای جهانی و محلی استفاده " -"می شوند. اگر ارائه شود، *locals* می تواند هر شیء نگاشت باشد. به خاطر داشته " -"باشید که در سطح ماژول، متغیرهای جهانی و محلی همان دیکشنری هستند." +"در همه موارد، اگر بخش های اختیاری حذف شوند، کد در حوزه جاری اجرا می شود. اگر" +" فقط *globals* ارائه شود، باید یک دیکشنری باشد (و نه یک زیرکلاس از دیکشنری)،" +" که هم برای متغیرهای سراسری و هم محلی استفاده خواهد شد. اگر *globals* و " +"*locals* داده شوند، به ترتیب برای متغیرهای سراسری و محلی به کار می روند. اگر" +" ارائه شود، *locals* می تواند هر شئ نگاشت باشد. به خاطر داشته باشید که در " +"سطح ماژول، سراسری ها و محلی ها یک دیکشنری هستند." #: ../../library/functions.rst:678 #, fuzzy @@ -1808,11 +1659,12 @@ msgid "" "access variables assigned at the top level (as the \"top level\" variables " "are treated as class variables in a class definition)." msgstr "" -"زمانی که ``exec`` دو شیء مجزا به صورت *globals* و *locals* دریافت می کند، کد" -" به گونه ای اجرا می شود که انگار در تعریف یک کلاس جاسازی شده است. این بدان " -"معناست که توابع و کلاس های تعریف شده در کد اجرا شده نمی توانند به متغیرهایی " -"که در سطح بالا تعیین شده اند دسترسی داشته باشند (زیرا متغیرهای \"سطح بالا\" " -"به عنوان متغیرهای کلاس در یک تعریف کلاس در نظر گرفته می شوند)." +"زمانی که ``exec`` دو شیء جداگانه به عنوان *globals* و *locals* دریافت می " +"کند، کد به گونه ای اجرا می شود که گویی در تعریف یک کلاس جاسازی شده است. این " +"به این معناست که توابع و کلاس هایی که در کد اجرا شده تعریف می شوند، نمی " +"توانند به متغیرهایی که در سطح بالا اختصاص داده شده اند دسترسی داشته باشند " +"(زیرا متغیرهای \"سطح بالا\" به عنوان متغیرهای کلاس در تعریف کلاس تلقی می " +"شوند)." #: ../../library/functions.rst:684 #, fuzzy @@ -1824,11 +1676,11 @@ msgid "" "``__builtins__`` dictionary into *globals* before passing it to " ":func:`exec`." msgstr "" -"اگر فرهنگ لغت *globals* دارای مقداری برای کلید ``__builtins__`` نباشد، یک " -"ارجاع به فرهنگ لغت ماژول داخلی :mod:`builtins` تحت آن کلید وارد می شود. به " -"این ترتیب، شما می توانید با وارد کردن فرهنگ لغت ``__builtins__`` خودتان به " -"*globals* قبل از ارسال آن به :func:`exec`، کنترل کنید که چه توابع داخلی برای" -" کد اجرا شده در دسترس هستند." +"اگر دیکشنری *globals* حاوی مقداری برای کلید ``__builtins__`` نباشد، یک مرجع " +"به دیکشنری ماژول ساخته شده :mod:`builtins` در زیر آن کلید اضافه می شود. به " +"این ترتیب، می توانید با وارد کردن دیکشنری ``__builtins__`` خودتان در " +"*globals* قبل از اینکه آن را به :func:`exec` بدهید، کنترل کنید که چه " +"ساختارهای داخلی در کد اجرا شده در دسترس هستند." #: ../../library/functions.rst:690 #, fuzzy @@ -1838,10 +1690,10 @@ msgid "" "variables `. The length of the tuple must exactly match " "the length of the code object's :attr:`~codeobject.co_freevars` attribute." msgstr "" -"آرگومان *closure* یک closure را مشخص می کند--یک tuple از cellvars. این مورد " -"تنها زمانی معتبر است که *object* یک شیء کد حاوی :term:`free (closure) " -"variables ` باشد. طول این tuple باید به طور دقیق با طول " -"ویژگی :attr:`~codeobject.co_freevars` شیء کد مطابقت داشته باشد." +"آرگومان *closure* یک closure را مشخص می کند--یک تاپل از cellvars. این تنها " +"زمانی معتبر است که *object* یک شی کد حاوی :term:`free (closure) variables " +"` باشد. طول تاپل باید دقیقاً با طول ویژگی " +":attr:`~codeobject.co_freevars` شی کد مطابقت داشته باشد." #: ../../library/functions.rst:703 #, fuzzy @@ -1850,9 +1702,9 @@ msgid "" " global and local namespace, respectively, which may be useful to pass " "around for use as the second and third argument to :func:`exec`." msgstr "" -"توابع داخلی :func:`globals` و :func:`locals` به ترتیب محیط های نامگذاری " -"سراسری و محلی کنونی را برمی گردانند که ممکن است برای استفاده به عنوان " -"آرگومان دوم و سوم به :func:`exec` مفید باشند." +"توابع داخلی :func:`globals` و :func:`locals` به ترتیب فضای نام سراسری و محلی" +" فعلی را بازمی گردانند، که ممکن است برای انتقال و استفاده به عنوان آرگومان " +"دوم و سوم به :func:`exec` مفید باشند." #: ../../library/functions.rst:709 #, fuzzy @@ -1861,9 +1713,9 @@ msgid "" "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" -"پیش فرض *locals* همانطور که در تابع :func:`locals` در زیر توضیح داده شده است" -" عمل می کند. اگر نیاز دارید اثرات کد بر روی *locals* پس از بازگشت تابع " -":func:`exec` را ببینید، یک دیکشنری *locals* به طور صریح ارسال کنید." +"*locals* به صورت پیش فرض به روشی که برای تابع :func:`locals` در زیر توضیح " +"داده شده است عمل می کند. اگر نیاز دارید اثرات کد بر روی *locals* را بعد از " +"بازگشت تابع :func:`exec` ببینید، یک دیکشنری *locals* صریح ارسال کنید." #: ../../library/functions.rst:713 #, fuzzy @@ -1878,11 +1730,10 @@ msgid "" "iteration, or an iterator. If *function* is ``None``, the identity function" " is assumed, that is, all elements of *iterable* that are false are removed." msgstr "" -"یک iterator از آن عناصری از *iterable* بسازید که *function* برای آن ها صحیح " -"باشد. *iterable* می تواند یک دنباله، یک مخزن که از iteration پشتیبانی می " -"کند، یا یک iterator باشد. اگر *function* برابر با ``None`` باشد، فرض می شود " -"که تابع هویت است، یعنی همه ی عناصری از *iterable* که نادرست هستند حذف می " -"شوند." +"یک تکرارگر از آن عناصری از *iterable* که برای آن ها *function* درست است، " +"بسازید. *iterable* می تواند یک دنباله، یک ظرف که از تکرار پشتیبانی می کند، " +"یا یک تکرارگر باشد. اگر *function* برابر ``None`` باشد، تابع هویت فرض می " +"شود، یعنی همه عناصر *iterable* که نادرست هستند حذف می شوند." #: ../../library/functions.rst:734 #, fuzzy @@ -1892,9 +1743,10 @@ msgid "" "not ``None`` and ``(item for item in iterable if item)`` if function is " "``None``." msgstr "" -"توجه داشته باشید که ``filter(function, iterable)`` معادل عبارت تولیدکننده ی " -"``(item for item in iterable if function(item))`` است اگر تابع ``None`` " -"نباشد و ``(item for item in iterable if item)`` اگر تابع ``None`` باشد." +"توجه داشته باشید که ``filter(function, iterable)`` معادل عبارت مولد ``(item " +"for item in iterable if function(item))`` است، اگر function برابر با " +"``None`` نباشد و ``(item for item in iterable if item)`` اگر function برابر " +"با ``None`` باشد." #: ../../library/functions.rst:739 #, fuzzy @@ -1902,13 +1754,13 @@ msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." msgstr "" -"به :func:`itertools.filterfalse` مراجعه کنید برای تابع مکمل که عناصری از " -"*iterable* را برمی گرداند که *function* برای آن ها نادرست است." +"متناظر :func:`itertools.filterfalse` را ببینید که عناصری از *iterable* را " +"برمی گرداند که برای آن ها *function* نادرست است." #: ../../library/functions.rst:750 #, fuzzy msgid "Return a floating-point number constructed from a number or a string." -msgstr "یک عدد اعشاری که از یک عدد یا یک رشته ساخته شده باشد را برمی گرداند." +msgstr "بازگشت یک عدد اعشاری که از یک عدد یا یک رشته ساخته شده است." #: ../../library/functions.rst:754 #, fuzzy @@ -1946,13 +1798,13 @@ msgid "" "conform to the :token:`~float:floatvalue` production rule in the following " "grammar, after leading and trailing whitespace characters are removed:" msgstr "" -"اگر آرگومان یک رشته باشد، باید شامل یک عدد اعشاری باشد که به صورت اختیاری با" -" یک علامت شروع شده و به صورت اختیاری در فضاهای خالی قرار گیرد. علامت اختیاری" -" ممکن است ``'+'`` یا ``'-'`` باشد؛ یک علامت ``'+'`` تأثیری بر مقدار تولید " -"شده ندارد. آرگومان ممکن است همچنین یک رشته باشد که نمایانگر یک NaN (عدد غیر " -"عددی) یا بی نهایت مثبت یا منفی است. به طور دقیق تر، ورودی باید مطابق با " -"قانون تولید :token:`~float:floatvalue` در دستور زبان زیر باشد، پس از اینکه " -"کاراکترهای فضای خالی از ابتدای و انتهای آن برداشته شده است:" +"اگر آرگومان یک رشته باشد، باید شامل یک عدد اعشاری باشد که می تواند به صورت " +"اختیاری با یک علامت پیش فرض و همچنین درون فضای خالی قرار گیرد. علامت اختیاری" +" می تواند ``'+'`` یا ``'-'`` باشد؛ علامت ``'+'`` تاثیری بر روی مقداری که " +"تولید می شود ندارد. آرگومان همچنین می تواند رشته ای باشد که یک NaN (نه-عدد) " +"یا بی نهایت مثبت یا منفی را نشان دهد. به طور دقیق تر، ورودی باید مطابق با " +"قانون تولید :token:`~float:floatvalue` در گرامر زیر باشد، پس از این که " +"کاراکترهای فضای خالی اول و آخر حذف شدند:" #: ../../library/functions.rst:788 #, fuzzy @@ -1960,8 +1812,8 @@ msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." msgstr "" -"مورد حروف بزرگ و کوچک اهمیتی ندارد، بنابراین به عنوان مثال، \"inf\"، " -"\"Inf\"، \"INFINITY\" و \"iNfINity\" همگی اشکال قابل قبول برای بینهایت مثبت " +"اندازه حروف در اینجا مهم نیست، بنابراین به عنوان مثال، \"inf\"، \"Inf\"، " +"\"INFINITY\" و \"iNfINity\" همگی نگارش های قابل قبول برای بی نهایت مثبت " "هستند." #: ../../library/functions.rst:791 @@ -1974,8 +1826,8 @@ msgid "" msgstr "" "در غیر این صورت، اگر آرگومان یک عدد صحیح یا یک عدد اعشاری باشد، یک عدد " "اعشاری با همان مقدار (در محدوده دقت اعشاری پایتون) بازگردانده می شود. اگر " -"آرگومان خارج از محدوده یک عدد اعشاری پایتون باشد، یک :exc:`OverflowError` " -"ایجاد خواهد شد." +"آرگومان خارج از محدوده یک شناور پایتون باشد، یک :exc:`OverflowError` ایجاد " +"خواهد شد." #: ../../library/functions.rst:796 #, fuzzy @@ -1984,19 +1836,19 @@ msgid "" "``x.__float__()``. If :meth:`~object.__float__` is not defined then it " "falls back to :meth:`~object.__index__`." msgstr "" -"برای یک شیء عمومی پایتون ``x``، ``float(x)`` به ``x.__float__()`` واگذار می " -"شود. اگر :meth:`~object.__float__` تعریف نشده باشد، سپس به " -":meth:`~object.__index__` بازمی گردد." +"برای یک شیء عمومی پایتون ``x``، ``float(x)`` به ``x.__float__()`` ارجاع می " +"دهد. اگر :meth:`~object.__float__` تعریف نشده باشد، به " +":meth:`~object.__index__` باز می گردد." #: ../../library/functions.rst:800 #, fuzzy msgid "If no argument is given, ``0.0`` is returned." -msgstr "اگر هیچ آرگومانی داده نشود، ``0.0`` برگردانده می شود." +msgstr "اگر هیچ آرگومانی داده نشود، ``0.0`` بازگردانده می شود." #: ../../library/functions.rst:802 #, fuzzy msgid "The float type is described in :ref:`typesnumeric`." -msgstr "نوع float در :ref:`typesnumeric` توصیف شده است." +msgstr "نوع float در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:810 #, fuzzy @@ -2004,8 +1856,8 @@ msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." msgstr "" -"اگر :meth:`~object.__float__` تعریف نشده باشد، به :meth:`~object.__index__` " -"بازمی گردد." +"در صورتی که :meth:`~object.__float__` تعریف نشده باشد، به " +":meth:`~object.__index__` بازگشت می کند." #: ../../library/functions.rst:820 #, fuzzy @@ -2015,10 +1867,10 @@ msgid "" "of the *value* argument; however, there is a standard formatting syntax that" " is used by most built-in types: :ref:`formatspec`." msgstr "" -"تبدیل *value* به نمایشی \"قالب بندی شده\" که توسط *format_spec* کنترل می " -"شود. تفسیر *format_spec* به نوع آرگومان *value* بستگی دارد؛ با این حال، یک " -"دستور زبان قالب بندی استاندارد وجود دارد که توسط اکثر انواع داخلی استفاده می" -" شود: :ref:`formatspec`." +"تبدیل *value* به نمایشی \"قالب بندی شده\"، همان طور که توسط *format_spec* " +"کنترل می شود. تفسیر *format_spec* وابسته به نوع آرگومان *value* خواهد بود؛ " +"با این حال، یک نگارش استاندارد قالب بندی وجود دارد که توسط اکثر انواع داخلی " +"مورد استفاده قرار می گیرد: :ref:`formatspec`." #: ../../library/functions.rst:825 #, fuzzy @@ -2026,8 +1878,8 @@ msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." msgstr "" -"پیش فرض *format_spec* یک رشته خالی است که معمولاً همان تأثیر فراخوانی " -":func:`str(value) ` را دارد." +"پیش فرض *format_spec* یک رشته خالی است که معمولاً همان اثری را دارد که با " +"فراخوانی :func:`str(value) ` به دست می آید." #: ../../library/functions.rst:828 #, fuzzy @@ -2039,12 +1891,12 @@ msgid "" ":mod:`object` and the *format_spec* is non-empty, or if either the " "*format_spec* or the return value are not strings." msgstr "" -"زمانی که ``format(value, format_spec)`` فراخوانی می شود، به " -"``type(value).__format__(value, format_spec)`` ترجمه می شود که هنگام جستجوی " -"روش :meth:`~object.__format__` مقدار، دیکشنری نمونه را دور می زند. یک " -"استثنای :exc:`TypeError` اگر جستجوی روش به :mod:`object` برسد و " -"*format_spec* غیرخالی باشد، یا اگر هر یک از *format_spec* یا مقدار بازگشتی " -"رشته نباشند، داده می شود." +"فراخوانی به ``format(value, format_spec)`` به " +"``type(value).__format__(value, format_spec)`` ترجمه می شود که هنگام جست " +"وجوی روش :meth:`~object.__format__` مقدار، از دیکشنری نمونه عبور می کند. یک " +"استثنای :exc:`TypeError` در صورتی پرتاب می شود که جست وجوی روش به " +":mod:`object` برسد و *format_spec* غیرخالی باشد، یا اگر *format_spec* یا " +"مقدار بازگشتی رشته نباشند." #: ../../library/functions.rst:835 #, fuzzy @@ -2052,8 +1904,8 @@ msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." msgstr "" -"``object().__format__(format_spec)`` خطای :exc:`TypeError` را رخ می دهد اگر " -"*format_spec* یک رشته خالی نباشد." +"``object().__format__(format_spec)`` خطای :exc:`TypeError` را تولید می کند " +"اگر *format_spec* یک رشته خالی نباشد." #: ../../library/functions.rst:844 #, fuzzy @@ -2062,10 +1914,9 @@ msgid "" "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and " ":ref:`types-set` for documentation about this class." msgstr "" -"یک شیء جدید از نوع :class:`frozenset` بازگردانید که به صورت اختیاری می تواند" -" شامل عناصری از *iterable* باشد. ``frozenset`` یک کلاس داخلی است. برای " -"مستندات مربوط به این کلاس به :class:`frozenset` و :ref:`types-set` مراجعه " -"کنید." +"یک شیء جدید :class:`frozenset` برمی گرداند که اختیاری می تواند عناصری از " +"*iterable* داشته باشد. ``frozenset`` یک کلاس داخلی است. برای مستندات مربوط " +"به این کلاس به :class:`frozenset` و :ref:`types-set` مراجعه کنید." #: ../../library/functions.rst:848 #, fuzzy @@ -2074,8 +1925,8 @@ msgid "" ":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" " module." msgstr "" -"برای دیگر ظروف، به کلاس های داخلی :class:`set`، :class:`list`، " -":class:`tuple`، و :class:`dict`، همچنین به ماژول :mod:`collections` مراجعه " +"برای سایر کانتینرها به کلاس های داخلی :class:`set`، :class:`list`، " +":class:`tuple` و :class:`dict` و همچنین ماژول :mod:`collections` مراجعه " "کنید." #: ../../library/functions.rst:856 @@ -2088,12 +1939,12 @@ msgid "" "exist, *default* is returned if provided, otherwise :exc:`AttributeError` is" " raised. *name* need not be a Python identifier (see :func:`setattr`)." msgstr "" -"مقدار ویژگی نام گذاری شده *object* را برمی گرداند. *name* باید یک رشته باشد." -" اگر این رشته نام یکی از ویژگی های شیء باشد، نتیجه مقدار آن ویژگی است. به " -"عنوان مثال، ``getattr(x, 'foobar')`` معادل ``x.foobar`` است. اگر ویژگی نام " -"گذاری شده وجود نداشته باشد، *default* در صورت فراهم بودن برگردانده می شود، " -"در غیر این صورت :exc:`AttributeError` تولید می شود. نیازی نیست که *name* یک " -"شناسه پایتون باشد (به :func:`setattr` مراجعه کنید)." +"ارزش خصیصه ای به نام *object* را برمی گرداند. *name* باید یک رشته باشد. اگر " +"این رشته نام یکی از خصوصیات شیء باشد، نتیجه مقدار آن خصوصیت خواهد بود. به " +"عنوان مثال، ``getattr(x, 'foobar')`` معادل ``x.foobar`` است. اگر خصیصه مورد " +"نظر وجود نداشته باشد، *default* برگردانده می شود در صورتیکه ارائه شده باشد، " +"در غیر این صورت :exc:`AttributeError` خطا می دهد. *name* لازم نیست یک شناسه " +"پایتون باشد (به :func:`setattr` مراجعه کنید)." #: ../../library/functions.rst:865 #, fuzzy @@ -2103,9 +1954,9 @@ msgid "" " with two leading underscores) name in order to retrieve it with " ":func:`getattr`." msgstr "" -"از آنجا که :ref:`private name mangling ` در زمان " -"کامپایل رخ می دهد، باید به صورت دستی نام یک ویژگی خصوصی (ویژگی هایی با دو " -"زیرخط ابتدایی) را به منظور بازیابی آن با :func:`getattr` تغییر پیشوند دهید." +"از آنجایی که :ref:`private name mangling ` در زمان " +"کامپایل اتفاق می افتد، باید به صورت دستی نام یک ویژگی خصوصی (ویژگی هایی که " +"با دو خط تیره آغاز می شوند) را برای بازیابی با :func:`getattr` تغییر دهید." #: ../../library/functions.rst:873 #, fuzzy @@ -2114,9 +1965,9 @@ msgid "" "within functions, this is set when the function is defined and remains the " "same regardless of where the function is called." msgstr "" -"دایره المعارف (دیکشنری) که فضای نام ماژول جاری را پیاده سازی می کند، برمی " -"گرداند. برای کدهای درون توابع، این دیکشنری زمانی که تابع تعریف می شود تعیین " -"می شود و بدون توجه به محل فراخوانی تابع، به همان صورت باقی می ماند." +"دیکشنری ای را که فضای نام فعلی ماژول را پیاده سازی می کند، برگردانید. برای " +"کدی که درون توابع قرار دارد، این دیکشنری در زمان تعریف تابع تنظیم می شود و " +"بدون توجه به محلی که تابع فراخوانی می شود، ثابت می ماند." #: ../../library/functions.rst:880 #, fuzzy @@ -2126,10 +1977,10 @@ msgid "" "(This is implemented by calling ``getattr(object, name)`` and seeing whether" " it raises an :exc:`AttributeError` or not.)" msgstr "" -"آرگومان ها شامل یک آبجکت و یک رشته هستند. نتیجه ``True`` خواهد بود اگر رشته " -"نام یکی از ویژگی های آبجکت باشد، و ``False`` اگر نباشد. (این با فراخوانی " -"``getattr(object, name)`` و بررسی اینکه آیا :exc:`AttributeError` ایجاد می " -"شود یا نه پیاده سازی شده است.)" +"استدلال ها یک شیء و یک رشته هستند. نتیجه ``True`` است اگر رشته نام یکی از " +"ویژگی های شیء باشد، و ``False`` اگر نباشد. (این با فراخوانی " +"``getattr(object, name)`` پیاده سازی شده و بررسی می کند که آیا " +":exc:`AttributeError` ایجاد می شود یا خیر.)" #: ../../library/functions.rst:888 #, fuzzy @@ -2139,10 +1990,10 @@ msgid "" "dictionary lookup. Numeric values that compare equal have the same hash " "value (even if they are of different types, as is the case for 1 and 1.0)." msgstr "" -"مقدار هش آبجکت را برمی گرداند (اگر داشته باشد). مقادیر هش اعداد صحیح هستند. " -"آن ها برای مقایسه سریع کلیدهای دیکشنری در زمان جستجوی دیکشنری استفاده می " -"شوند. مقادیر عددی که برابر مقایسه می شوند، مقدار هش یکسانی دارند (حتی اگر از" -" نوع های مختلفی باشند, مانند 1 و 1.0)." +"بازگرداندن مقدار هش شیء (در صورتی که یکی داشته باشد). مقادیر هش اعداد صحیح " +"هستند. از آنها برای مقایسه سریع کلیدهای دیکشنری در هنگام جستجوی دیکشنری " +"استفاده می شود. مقادیر عددی که برابر مقایسه می شوند دارای مقدار هش یکسانی " +"هستند (حتی اگر از انواع مختلف باشند، مانند 1 و 1.0)." #: ../../library/functions.rst:895 #, fuzzy @@ -2151,9 +2002,9 @@ msgid "" ":func:`hash` truncates the return value based on the bit width of the host " "machine." msgstr "" -"برای اشیائی که دارای متدهای :meth:`~object.__hash__` سفارشی هستند، توجه کنید" -" که :func:`hash` مقدار بازگشتی را بر اساس پهنای بیتی ماشین میزبان کوتاه می " -"کند." +"برای اشیائی که دارای متدهای سفارشی :meth:`~object.__hash__` هستند، توجه " +"داشته باشید که :func:`hash` مقدار بازگشتی را بر اساس عرض بیت ماشین میزبان " +"کوتاه می کند." #: ../../library/functions.rst:902 #, fuzzy @@ -2166,12 +2017,12 @@ msgid "" "argument is any other kind of object, a help page on the object is " "generated." msgstr "" -"سامانه راهنمای داخلی را فراخوانی کنید. (این تابع برای استفاده تعاملی در نظر " -"گرفته شده است.) اگر هیچ آرگومانی داده نشود، سامانه راهنمای تعاملی بر روی " -"کنسول مفسر آغاز می شود. اگر آرگومان یک رشته باشد، آن رشته به عنوان نام یک " -"ماژول، تابع، کلاس، متد، کلمه کلیدی یا موضوع مستندات جستجو می شود و یک صفحه " -"راهنما بر روی کنسول چاپ می شود. اگر آرگومان هر نوع شیء دیگری باشد، صفحه " -"راهنمایی در مورد آن شیء ایجاد می شود." +"سیستم راهنمای داخلی را فراخوانی کنید. (این تابع برای استفاده تعاملی طراحی " +"شده است.) اگر هیچ آرگومانی داده نشود، سیستم راهنمای تعاملی روی کنسول مفسر " +"شروع می شود. اگر آرگومان یک رشته باشد، آن رشته به عنوان نام یک ماژول، تابع، " +"کلاس، متد، کلمه کلیدی یا موضوع مستندات جستجو می شود و یک صفحه راهنما بر روی " +"کنسول چاپ می شود. اگر آرگومان هر نوع شیء دیگری باشد، یک صفحه راهنما درباره " +"آن شیء تولید می شود." #: ../../library/functions.rst:909 #, fuzzy @@ -2181,10 +2032,10 @@ msgid "" "positional-only. For more info, see :ref:`the FAQ entry on positional-only " "parameters `." msgstr "" -"توجه داشته باشید که اگر یک اسلش (/) در لیست پارامترهای یک تابع زمانی که " -"`:func:`help`` فراخوانی می شود ظاهر شود، به این معنی است که پارامترهای قبل " -"از اسلش تنها موقعیتی هستند. برای اطلاعات بیشتر، `:ref:`the FAQ entry on " -"positional-only parameters `` را ببینید." +"توجه داشته باشید که اگر علامت اسلش (/) در لیست پارامترهای یک تابع هنگام " +"فراخوانی :func:`help` ظاهر شود، به این معنی است که پارامترهای قبل از اسلش " +"فقط موقعیتی هستند. برای اطلاعات بیشتر، به :ref:`the FAQ entry on positional-" +"only parameters ` مراجعه کنید." #: ../../library/functions.rst:914 #, fuzzy @@ -2198,8 +2049,8 @@ msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures" " for callables are now more comprehensive and consistent." msgstr "" -"تغییرات در :mod:`pydoc` و :mod:`inspect` به این معناست که امضاهای گزارش شده " -"برای callableها اکنون جامع تر و سازگارتر هستند." +"تغییرات به :mod:`pydoc` و :mod:`inspect` به این معناست که امضاهای گزارش شده " +"برای فراخوان ها اکنون جامع تر و سازگارتر هستند." #: ../../library/functions.rst:923 #, fuzzy @@ -2208,9 +2059,9 @@ msgid "" "\"0x\". If *x* is not a Python :class:`int` object, it has to define an " ":meth:`~object.__index__` method that returns an integer. Some examples:" msgstr "" -"یک عدد صحیح را به یک رشته ی شانزده شان عددی کوچک که با \"0x\" پیشوند دارد، " -"تبدیل کنید. اگر *x* یک شیء Python :class:`int` نیست، باید یک متد " -":meth:`~object.__index__` تعریف کند که یک عدد صحیح برگرداند. چند مثال:" +"تبدیل یک عدد صحیح به یک رشته هگزادسیمال با حروف کوچک که با \"0x\" شروع می " +"شود. اگر *x* یک شیء Python :class:`int` نباشد، باید یک متد " +":meth:`~object.__index__` تعریف کند که یک عدد صحیح را برگرداند. چند مثال:" #: ../../library/functions.rst:932 #, fuzzy @@ -2219,8 +2070,8 @@ msgid "" "hexadecimal string with prefix or not, you can use either of the following " "ways:" msgstr "" -"اگر می خواهید یک عدد صحیح را به رشته ی هگزادسیمال بزرگ یا کوچک با پیشوند یا " -"بدون آن تبدیل کنید، می توانید از یکی از روش های زیر استفاده کنید:" +"اگر می خواهید یک عدد صحیح را به یک رشته شانزده شانزدهی بزرگ یا کوچک با " +"پیشوند یا بدون آن تبدیل کنید، می توانید از روش های زیر استفاده کنید:" #: ../../library/functions.rst:944 #, fuzzy @@ -2228,8 +2079,8 @@ msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using" " a base of 16." msgstr "" -"همچنین به :func:`int` مراجعه کنید برای تبدیل یک رشته هگزادسیمال به عدد صحیح " -"با استفاده از مبنای 16." +"همچنین :func:`int` را ببینید برای تبدیل یک رشته هگزادسیمال به یک عدد صحیح با" +" استفاده از مبنای 16." #: ../../library/functions.rst:949 #, fuzzy @@ -2237,7 +2088,7 @@ msgid "" "To obtain a hexadecimal string representation for a float, use the " ":meth:`float.hex` method." msgstr "" -"برای به دست آوردن نمایش رشته ای هگزادسیمال برای یک عدد اعشاری، از متد " +"برای به دست آوردن یک نمایش رشته ای هگزادسیمال برای یک float، از روش " ":meth:`float.hex` استفاده کنید." #: ../../library/functions.rst:955 @@ -2248,9 +2099,9 @@ msgid "" "Two objects with non-overlapping lifetimes may have the same :func:`id` " "value." msgstr "" -"بازگرداندن \"شناسه\" یک شیء. این یک عدد صحیح است که تضمین می شود منحصر به " -"فرد و ثابت برای این شیء در طول عمر آن باشد. دو شیء با دوره های حیات غیر هم " -"پوشان ممکن است همان مقدار :func:`id` را داشته باشند." +"\"شناسه\" یک شیء را برمی گرداند. این یک عدد صحیح است که تضمین می شود در طول " +"عمر شیء، منحصر به فرد و ثابت باشد. دو شیء که دوره های عمرشان با هم تلاقی " +"ندارند ممکن است مقدار :func:`id` یکسانی داشته باشند." #: ../../library/functions.rst:960 #, fuzzy @@ -2263,8 +2114,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." msgstr "" -"یک :ref:`auditing event ` ``builtins.id`` با آرگومان ``id`` ایجاد " -"می کند." +"یک :ref:`auditing event ` ``builtins.id`` با آرگومان ``id`` برمی " +"گرداند." #: ../../library/functions.rst:968 #, fuzzy @@ -2274,10 +2125,10 @@ msgid "" "converts it to a string (stripping a trailing newline), and returns that. " "When EOF is read, :exc:`EOFError` is raised. Example::" msgstr "" -"اگر آرگومان *prompt* وجود داشته باشد، بدون یک خط جدید انتهایی به خروجی " -"استاندارد نوشته می شود. سپس تابع یک خط از ورودی را خوانده، آن را به یک رشته " -"تبدیل می کند (حذف یک خط جدید انتهایی) و آن را بازمی گرداند. زمانی که EOF " -"خوانده می شود، :exc:`EOFError` برانگیخته می شود. مثال::" +"اگر آرگومان *prompt* وجود داشته باشد، بدون یک خط جدید به خروجی استاندارد " +"نوشته می شود. سپس تابع یک خط از ورودی می خواند، آن را به رشته تبدیل می کند " +"(خط جدید انتهایی را حذف می کند)، و آن را برمی گرداند. وقتی EOF خوانده شد، " +":exc:`EOFError` تولید می شود. مثال::" #: ../../library/functions.rst:973 #, fuzzy @@ -2288,7 +2139,7 @@ msgid "" "\"Monty Python's Flying Circus\"" msgstr "" ">>> s = input('--> ')\n" -"--> مونتی پایتونز فلاینگ سیرک\n" +"--> Monty Python's Flying Circus\n" ">>> s\n" "\"Monty Python's Flying Circus\"" @@ -2298,8 +2149,8 @@ msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." msgstr "" -"اگر ماژول :mod:`readline` بارگذاری شده باشد، سپس :func:`input` از آن برای " -"ارائه ویژگی های ویرایش خط و تاریخچه پیشرفته استفاده خواهد کرد." +"اگر ماژول :mod:`readline` بارگذاری شده باشد، سپس :func:`input` از آن استفاده" +" خواهد کرد تا ویژگی های ویرایش خط و تاریخچه پیشرفته ای را فراهم کند." #: ../../library/functions.rst:981 ../../library/functions.rst:983 #, fuzzy @@ -2307,8 +2158,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" msgstr "" -"قبل از اینکه ورودی خوانده شود، یک :ref:`auditing event ` " -"``builtins.input`` با آرگومان ``prompt`` ایجاد می کند." +"قبل از خواندن ورودی، یک :ref:`auditing event ` ``builtins.input`` " +"با آرگومان ``prompt`` ایجاد می کند." #: ../../library/functions.rst:986 ../../library/functions.rst:988 #, fuzzy @@ -2316,8 +2167,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." msgstr "" -"پس از موفقیت در خواندن ورودی، یک :ref:`auditing event ` " -"``builtins.input/result`` با نتیجه ایجاد می کند." +"یک :ref:`auditing event ` ``builtins.input/result`` را با نتیجه پس" +" از خواندن موفقیت آمیز ورودی ایجاد می کند." #: ../../library/functions.rst:995 #, fuzzy @@ -2325,8 +2176,8 @@ msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." msgstr "" -"یک شیء عدد صحیح را که از یک شماره یا یک رشته ساخته شده است، برمی گرداند، یا " -"اگر هیچ آرگومان داده نشود، ``0`` را برمی گرداند." +"یک شیء عدد صحیح بازمی گرداند که از یک عدد یا یک رشته ساخته شده است، یا اگر " +"هیچ آرگومانی داده نشود، ``0`` را بازمی گرداند." #: ../../library/functions.rst:1000 #, fuzzy @@ -2366,11 +2217,11 @@ msgid "" ":meth:`~object.__trunc__`, it returns ``x.__trunc__()``. For floating-point " "numbers, this truncates towards zero." msgstr "" -"اگر آرگومان :meth:`~object.__int__` را تعریف کند، ``int(x)`` مقدار " -"``x.__int__()`` را بازمی گرداند. اگر آرگومان :meth:`~object.__index__` را " -"تعریف کند، مقدار ``x.__index__()`` را بازمی گرداند. اگر آرگومان " -":meth:`~object.__trunc__` را تعریف کند، مقدار ``x.__trunc__()`` را بازمی " -"گرداند. برای اعداد اعشاری، این به سمت صفر گرد می شود." +"اگر آرگومان :meth:`~object.__int__` را تعریف کند، ``int(x)`` ``x.__int__()``" +" را برمی گرداند. اگر آرگومان :meth:`~object.__index__` را تعریف کند، " +"``x.__index__()`` را برمی گرداند. اگر آرگومان :meth:`~object.__trunc__` را " +"تعریف کند، ``x.__trunc__()`` را برمی گرداند. برای اعداد اعشاری، این به سمت " +"صفر مدور می کند." #: ../../library/functions.rst:1021 #, fuzzy @@ -2381,11 +2232,11 @@ msgid "" " ``-`` (with no space in between), have leading zeros, be surrounded by " "whitespace, and have single underscores interspersed between digits." msgstr "" -"اگر آرگومان یک عدد نباشد یا اگر *base* داده شود، در این صورت باید یک رشته، " -"نمونه ای از :class:`bytes` یا :class:`bytearray` باشد که عددی در مبنای " -"*base* را نمایش می دهد. به طور اختیاری، این رشته می تواند با ``+`` یا ``-`` " -"(بدون فاصله بین آنها) شروع شود، صفرهای پیشرو داشته باشد، با فاصله سفید احاطه" -" شده باشد و بین ارقام خط فاصله دار داشته باشد." +"اگر آرگومان یک عدد نباشد یا *base* داده شود، در این صورت باید یک رشته، " +":class:`bytes`، یا نمونه :class:`bytearray` باشد که نمایانگر یک عدد صحیح در " +"مبنای *base* است. به صورت اختیاری، رشته می تواند با ``+`` یا ``-`` (بدون هیچ" +" فاصله ای بین آن ها) آغاز شود، دارای صفرهای ابتدایی باشد، با فاصله های خالی " +"احاطه شده باشد، و خط زیرین های تکی در بین ارقام داشته باشد." #: ../../library/functions.rst:1027 #, fuzzy @@ -2401,22 +2252,22 @@ msgid "" " prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not " "legal, while ``int('010')`` and ``int('010', 8)`` are." msgstr "" -"یک رشته عدد صحیح پایه-n شامل ارقامی است که هر کدام نماینده ی مقداری از 0 تا " -"n-1 هستند. مقادیر 0 تا 9 می توانند با هر رقم اعشاری یونیکد نمایش داده شوند. " -"مقادیر 10 تا 35 را می توان با ``a`` تا ``z`` (یا ``A`` تا ``Z``) نمایش داد. " -"*base* پیش فرض 10 است. پایه های مجاز 0 و 2 تا 36 هستند. رشته های پایه-2، " -"پایه-8 و پایه-16 می توانند به صورت اختیاری با ``0b``/``0B``، ``0o``/``0O`` " -"یا ``0x``/``0X`` همانند ثابت های عدد صحیح در کد، پیشوند داشته باشند. برای " -"پایه 0، رشته به روشی مشابه با :ref:`integer literal in code ` " -"تفسیر می شود، به این صورت که پایه واقعی با توجه به پیشوند 2، 8، 10 یا 16 " -"تعیین می شود. همچنین پایه 0 اعداد با صفر مقدم را مجاز نمی داند: ``int('010'," -" 0)`` قانونی نیست، در حالی که ``int('010')`` و ``int('010', 8)`` قانونی " -"هستند." +"یک رشته عدد صحیح مبنای-n شامل ارقامی است که هر یک مقداری از 0 تا n-1 را " +"نمایش می دهد. مقادیر 0--9 می توانند توسط هر رقم اعشاری یونیکد نمایش داده " +"شوند. مقادیر 10--35 می توانند با ``a`` تا ``z`` (یا ``A`` تا ``Z``) نمایش " +"داده شوند. مقدار پیش فرض *base*، 10 است. مبناهای مجاز 0 و 2--36 هستند. رشته " +"های مبنای-2، -8 و -16 می توانند به صورت اختیاری با ``0b``/``0B``، " +"``0o``/``0O``، یا ``0x``/``0X`` پیشوند شوند، مشابه با عبارت های عددی صحیح در" +" کد. برای مبنای 0، رشته به صورت مشابهی با یک :ref:`integer literal in code " +"` تفسیر می شود، به گونه ای که مبنای واقعی 2، 8، 10، یا 16 باشد که " +"توسط پیشوند مشخص می شود. مبنای 0 همچنین اجازه استفاده از صفرهای پیش رو را " +"نمی دهد: ``int('010', 0)`` قانونی نیست، در حالی که ``int('010')`` و " +"``int('010', 8)`` قانونی هستند." #: ../../library/functions.rst:1038 #, fuzzy msgid "The integer type is described in :ref:`typesnumeric`." -msgstr "نوع عدد صحیح در :ref:`typesnumeric` توضیح داده شده است." +msgstr "نوع عدد صحیح در :ref:`typesnumeric` توصیف شده است." #: ../../library/functions.rst:1040 #, fuzzy @@ -2426,16 +2277,16 @@ msgid "" "obtain an integer for the base. Previous versions used :meth:`base.__int__ " "` instead of :meth:`base.__index__ `." msgstr "" -"اگر *base* یک نمونه از :class:`int` نباشد و شیء *base* دارای متد " -":meth:`base.__index__ ` باشد، آن متد فراخوانی می شود تا یک" -" عدد صحیح برای پایه بدست آید. نسخه های قبلی به جای :meth:`base.__index__ " -"` از :meth:`base.__int__ ` استفاده می " -"کردند." +"اگر *base* یک نمونه از :class:`int` نباشد و شیء *base* یک متد " +":meth:`base.__index__ ` داشته باشد، آن متد برای به دست " +"آوردن یک عدد صحیح برای پایه فراخوانی می شود. نسخه های قبلی از " +":meth:`base.__int__ ` به جای :meth:`base.__index__ " +"` استفاده می کردند." #: ../../library/functions.rst:1050 #, fuzzy msgid "The first parameter is now positional-only." -msgstr "اولین پارامتر اکنون فقط مکانی است." +msgstr "اولین پارامتر اکنون فقط موقعیتی است." #: ../../library/functions.rst:1053 #, fuzzy @@ -2443,13 +2294,13 @@ msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " "defined." msgstr "" -"در صورتی که :meth:`~object.__int__` تعریف نشده باشد، به " -":meth:`~object.__index__` بازگشت انجام می دهد." +"اگر :meth:`~object.__int__` تعریف نشده باشد، به :meth:`~object.__index__` " +"بازمی گردد." #: ../../library/functions.rst:1056 #, fuzzy msgid "The delegation to :meth:`~object.__trunc__` is deprecated." -msgstr "تفویض به :meth:`~object.__trunc__` منسوخ شده است." +msgstr "واگذاری به :meth:`~object.__trunc__` منسوخ شده است." #: ../../library/functions.rst:1059 #, fuzzy @@ -2461,11 +2312,11 @@ msgid "" ":ref:`integer string conversion length limitation ` " "documentation." msgstr "" -"ورودی های رشته ای و نمایش های رشته می توانند برای جلوگیری از حملات انکار " -"سرویس محدود شوند. هنگامی که محدودیت در حین تبدیل یک رشته به یک :class:`int` " -"یا وقتی که تبدیل یک :class:`int` به یک رشته از حد تجاوز کند، یک " -":exc:`ValueError` ایجاد می شود. به مستندات :ref:`integer string conversion " -"length limitation ` مراجعه کنید." +"ورودی های رشته ای و نمایش های رشته ای می توانند محدود شوند تا به جلوگیری از " +"حملات انکار خدمات کمک کنند. زمانی که محدودیت در هنگام تبدیل یک رشته به یک " +":class:`int` یا هنگامی که تبدیل یک :class:`int` به رشته ای از محدودیت بیشتر " +"شود، یک :exc:`ValueError` برانگیخته می شود. به مستندات :ref:`integer string " +"conversion length limitation ` مراجعه کنید." #: ../../library/functions.rst:1069 #, fuzzy @@ -2480,15 +2331,15 @@ msgid "" ":exc:`TypeError` exception is raised. :exc:`TypeError` may not be raised for" " an invalid type if an earlier check succeeds." msgstr "" -"اگر آرگومان *object* یک نمونه از آرگومان *classinfo* باشد یا زیرکلاسی " -"(مستقیم, غیرمستقیم یا :term:`virtual `) از آن، ``True``" -" را برمی گرداند. اگر *object* یک شیء از نوع داده شده نباشد، تابع همیشه " -"``False`` برمی گردد. اگر *classinfo* یک تاپل از اشیاء نوع (یا بازگشتی, تاپل " -"های دیگر این چنینی) یا :ref:`types-union` از چندین نوع باشد، ``True`` را " -"برمی گرداند اگر *object* یک نمونه از هر یک از انواع باشد. اگر *classinfo* یک" -" نوع یا تاپل هایی از انواع و چنین تاپل هایی نباشد، استثنایی از نوع " -":exc:`TypeError` ایجاد می شود. ممکن است :exc:`TypeError` برای یک نوع نامعتبر" -" ایجاد نشود اگر یک بررسی قبلی موفق باشد." +"``True`` را بازگردانید اگر آرگومان *object* یک نمونه از آرگومان *classinfo* " +"باشد، یا یک زیرکلاس (مستقیم، غیرمستقیم یا :term:`virtual `) آن. اگر *object* شیءای از نوع داده شده نباشد، تابع همیشه ``False`` " +"را برمی گرداند. اگر *classinfo* یک تاپل از اشیاء نوع (یا به صورت بازگشتی، " +"تاپل های دیگر) یا یک :ref:`types-union` از انواع متعدد باشد، ``True`` را " +"بازگردانید اگر *object* یک نمونه از هر یک از انواع باشد. اگر *classinfo* یک " +"نوع یا تاپل از انواع و این گونه تاپل ها نباشد، یک استثنای :exc:`TypeError` " +"ایجاد می شود. :exc:`TypeError` ممکن است برای یک نوع نامعتبر ایجاد نشود اگر " +"بررسی زودتری موفق باشد." #: ../../library/functions.rst:1080 ../../library/functions.rst:1094 #, fuzzy @@ -2505,12 +2356,13 @@ msgid "" "return ``True`` if *class* is a subclass of any entry in *classinfo*. In " "any other case, a :exc:`TypeError` exception is raised." msgstr "" -"اگر *class* زیرکلاسی (مستقیم, غیرمستقیم یا :term:`virtual `) از *classinfo* باشد، ``True`` را برمی گرداند. یک کلاس به عنوان " -"زیرکلاس خودش نیز در نظر گرفته می شود. *classinfo* ممکن است یک تاپل از اشیا " -"کلاس (یا به طور بازگشتی, دیگر تاپل های مشابه) یا :ref:`types-union` باشد، که" -" در این حالت اگر *class* زیرکلاس هر ورودی در *classinfo* باشد، ``True`` را " -"برمی گرداند. در هر حالت دیگر، یک استثنای :exc:`TypeError` ایجاد می شود." +"زیرکلاس خودش نیز در نظر گرفته می شود. *classinfo* ممکن است یک جفت از اشیاء " +"کلاس ها (یا به صورت بازگشتی، سایر همچنین جفت ها) یا یک :ref:`types-union` " +"باشد، که در این صورت ``True`` را برمی گرداند، اگر *class* زیرکلاس هر ورودی " +"در *classinfo* باشد. در هر حالت دیگری، یک استثناء :exc:`TypeError` ایجاد می " +"شود." #: ../../library/functions.rst:1101 #, fuzzy @@ -2528,18 +2380,18 @@ msgid "" "*sentinel*, :exc:`StopIteration` will be raised, otherwise the value will be" " returned." msgstr "" -"شیء :term:`iterator` را باز می گرداند. آرگومان اول به صورت بسیار متفاوتی " -"بسته به حضور آرگومان دوم تفسیر می شود. بدون آرگومان دوم، *object* باید یک " -"شیء مجموعه ای باشد که از پروتکل :term:`iterable` (روش " -":meth:`~object.__iter__`) پشتیبانی کند، یا باید از پروتکل دنباله ای (روش " -":meth:`~object.__getitem__` با آرگومان های عدد صحیح که از ``0`` شروع می " -"شوند) پشتیبانی کند. اگر از هیچ یک از این پروتکل ها پشتیبانی نکند، " -":exc:`TypeError` تولید می شود. اگر آرگومان دوم، یعنی *sentinel*، ارائه شود، " -"آنگاه *object* باید یک شیء قابل فراخوانی باشد. در این حالت، تکرارگر ساخته " -"شده، برای هر بار فراخوانی روش :meth:`~iterator.__next__` خود، *object* را " -"بدون آرگومان فراخوانی می کند؛ اگر مقدار بازگشتی برابر با *sentinel* باشد، " -":exc:`StopIteration` تولید خواهد شد، در غیر این صورت مقدار بازگردانده می " -"شود." +"یک شیء :term:`iterator` بازگشت داده می شود. اولین آرگومان به طور کاملاً " +"متفاوتی بر اساس حضور دومین آرگومان تفسیر می شود. بدون حضور یک آرگومان دوم، " +"*object* باید یک شیء جمع آوری باشد که پروتکل :term:`iterable` (متد " +":meth:`~object.__iter__`) را پشتیبانی کند، یا باید پروتکل دنباله (متد " +":meth:`~object.__getitem__` با آرگومان های عدد صحیح که از ``0`` شروع می شود)" +" را پشتیبانی کند. اگر هیچ کدام از این پروتکل ها را پشتیبانی نکند، " +":exc:`TypeError` ایجاد می شود. اگر آرگومان دوم، *sentinel*، داده شود، آنگاه " +"*object* باید یک شیء قابل فراخوانی باشد. در این حالت، تکرارگر ایجاد شده " +"*object* را بدون هیچ آرگومانی برای هر بار فراخوانی متد " +":meth:`~iterator.__next__` خود فرا می خواند؛ اگر مقداری که بازگردانده می شود" +" برابر با *sentinel* باشد، :exc:`StopIteration` ایجاد خواهد شد، در غیر این " +"صورت مقدار بازگردانده خواهد شد." #: ../../library/functions.rst:1115 #, fuzzy @@ -2553,9 +2405,9 @@ msgid "" "block-reader. For example, reading fixed-width blocks from a binary database" " file until the end of file is reached::" msgstr "" -"یکی از کاربردهای مفید فرم دوم :func:`iter` ایجاد یک بلاک خوان است. به عنوان " -"مثال، خواندن بلاک های با عرض ثابت از یک فایل پایگاه داده باینری تا زمانی که " -"به انتهای فایل برسید::" +"یکی از کاربردهای مفید فرم دوم :func:`iter` ساخت یک بلاک خوان است. به عنوان " +"مثال، خواندن بلوک های با عرض ثابت از یک فایل پایگاه داده باینری تا زمانی که " +"به انتهای فایل برسید:" #: ../../library/functions.rst:1121 #, fuzzy @@ -2565,10 +2417,10 @@ msgid "" " for block in iter(partial(f.read, 64), b''):\n" " process_block(block)" msgstr "" -"from functools import partial\n" -"with open('mydata.db', 'rb') as f:\n" -" for block in iter(partial(f.read, 64), b''):\n" -" process_block(block)" +"از functools مواردی مانند partial را وارد کنید\n" +"با باز کردن 'mydata.db' به صورت 'rb' به عنوان f:\n" +" برای block در iter که با استفاده از partial و با مقدار 64 از f.read تا زمانی که b'' خالی برگرداند برابری نکند:\n" +" process_block را روی block فراخوانی کنید" #: ../../library/functions.rst:1129 #, fuzzy @@ -2577,9 +2429,9 @@ msgid "" " sequence (such as a string, bytes, tuple, list, or range) or a collection " "(such as a dictionary, set, or frozen set)." msgstr "" -"طول (تعداد آیتم ها) یک شیء را برمی گرداند. آرگومان می تواند یک توالی (مثل " -"رشته, بایت ها, تاپل, لیست, یا رنج) یا یک مجموعه (مثل دیکشنری, ست, یا مجموعه " -"ی منجمد) باشد." +"اندازه (تعداد آیتم ها) یک شیء را برمی گرداند. آرگومان می تواند یک توالی " +"(مانند string، bytes، tuple، list، یا range) یا یک مجموعه (مانند dictionary،" +" set، یا frozen set) باشد." #: ../../library/functions.rst:1135 #, fuzzy @@ -2587,8 +2439,8 @@ msgid "" "``len`` raises :exc:`OverflowError` on lengths larger than " ":data:`sys.maxsize`, such as :class:`range(2 ** 100) `." msgstr "" -"``len`` خطای :exc:`OverflowError` را روی طول های بزرگ تر از " -":data:`sys.maxsize` ایجاد می کند، مانند :class:`range(2 ** 100) `." +"``len`` خطای :exc:`OverflowError` را برای طول هایی بزرگتر از " +":data:`sys.maxsize`، مانند :class:`range(2 ** 100) `، ایجاد می کند." #: ../../library/functions.rst:1144 #, fuzzy @@ -2596,8 +2448,8 @@ msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." msgstr "" -"بجای اینکه یک تابع باشد، :class:`list` در واقع یک نوع توالی قابل تغییر است " -"که در :ref:`typesseq-list` و :ref:`typesseq` مستند شده است." +"به جای اینکه یک تابع باشد، :class:`list` در واقع یک نوع توالی تغییرپذیر است،" +" همان طور که در :ref:`typesseq-list` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1150 #, fuzzy @@ -2606,8 +2458,9 @@ msgid "" "variable names as the keys, and their currently bound references as the " "values." msgstr "" -"یک شیء نگاشتی که جدول نمادهای محلی جاری را نمایش می دهد، با نام متغیرها به " -"عنوان کلیدها و ارجاعات در حال حاضر به آنها به عنوان مقادیر، بازمی گرداند." +"یک شیء نقشه برداری که جدول نمادهای محلی فعلی را نشان می دهد بازگردانید. در " +"این شیء، نام متغیرها به عنوان کلید و مرجع های مرتبط فعلی آن ها به عنوان " +"مقدارها قرار داده شده اند." #: ../../library/functions.rst:1154 #, fuzzy @@ -2616,8 +2469,8 @@ msgid "" "single namespace, this function returns the same namespace as " ":func:`globals`." msgstr "" -"در سطح ماژول، همچنین هنگام استفاده از :func:`exec` یا :func:`eval` با یک " -"فضای نام، این تابع همان فضای نامی را که :func:`globals` بازمی گرداند." +"در سطح ماژول، و همچنین هنگام استفاده از :func:`exec` یا :func:`eval` با یک " +"فضای نام واحد، این تابع همان فضای نام :func:`globals` را برمی گرداند." #: ../../library/functions.rst:1158 #, fuzzy @@ -2625,8 +2478,7 @@ msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." msgstr "" -"در محدوده کلاس، فضای نامی را برمی گرداند که به سازنده متاکلاس ارسال خواهد " -"شد." +"در سطح کلاس، فضای نامی که به سازنده متاکلاس ارسال خواهد شد را برمی گرداند." #: ../../library/functions.rst:1161 #, fuzzy @@ -2634,8 +2486,8 @@ msgid "" "When using ``exec()`` or ``eval()`` with separate local and global " "arguments, it returns the local namespace passed in to the function call." msgstr "" -"هنگام استفاده از ``exec()`` یا ``eval()`` با آرگومان های محلی و سراسری " -"جداگانه، فضای نام محلی که به فراخوانی تابع ارسال شده است را برمی گرداند." +"هنگام استفاده از ``exec()`` یا ``eval()`` با آرگومان های محلی و جهانی " +"جداگانه، نام فضای محلی که در فراخوانی تابع ارسال شده است را برمی گرداند." #: ../../library/functions.rst:1164 #, fuzzy @@ -2647,12 +2499,11 @@ msgid "" "deleting local variables will immediately affect the contents of the " "returned mapping object." msgstr "" -"در تمامی موارد فوق، هر بار فراخوانی به ``locals()`` در یک چهارچوب اجرایی " -"معین، شیء نگاشت *same* را برمی گرداند. تغییراتی که از طریق شیء نگاشت " -"برگردانده شده از ``locals()`` صورت می گیرد، به عنوان متغیرهای محلی تخصیص " -"داده شده، مجدداً تخصیص داده شده یا حذف شده قابل مشاهده خواهند بود، و تخصیص، " -"باز تخصیص یا حذف متغیرهای محلی بلافاصله بر محتوای شیء نگاشت برگردانده شده " -"تاثیر می گذارد." +"در تمام موارد فوق، هر فراخوانی به ``locals()`` در یک فریم اجرای معین، شیء " +"نگاشت *same* را برمی گرداند. تغییراتی که از طریق شیء نگاشت بازگشت داده شده " +"از ``locals()`` انجام می شوند، به صورت تعیین، مجدد تعیین، یا حذف متغیرهای " +"محلی قابل مشاهده خواهد بود و تعیین، مجدد تعیین یا حذف متغیرهای محلی به " +"محتوای شیء نگاشت بازگشت داده شده فوراً تأثیر می گذارد." #: ../../library/functions.rst:1171 #, fuzzy @@ -2666,13 +2517,13 @@ msgid "" "variables and nonlocal cell references does *not* affect the contents of " "previously returned dictionaries." msgstr "" -"در یک :term:`optimized scope` (شامل توابع, ژنراتورها و کوروتین ها), هر بار " -"فراخوانی ``locals()`` یک دیکشنری جدید بازمی گرداند که شامل وابستگی های فعلی " -"متغیرهای محلی تابع و هرگونه ارجاع سلول غیرمحلی است. در این حالت، تغییرات " -"وابستگی نام که از طریق دیکشنری بازگردانی شده انجام می شود، *not* به متغیرهای" -" محلی یا ارجاعات سلول غیرمحلی مربوطه برگردانده می شوند، و تخصیص، بازتخصیص یا" -" حذف متغیرهای محلی و ارجاعات سلول غیرمحلی، *not* بر محتوای دیکشنری هایی که " -"قبلاً بازگردانده شده اند تأثیر ندارد." +"در یک :term:`optimized scope` (شامل توابع، مولدها، و کوروتین ها)، هر " +"فراخوانی به ``locals()`` به جای آن یک دیکشنری جدید که شامل بایندینگ های فعلی" +" متغیرهای محلی تابع و هرگونه ارجاع غیرمحلی سلول است بازمی گرداند. در این " +"حالت، تغییرات بایندینگ نام که از طریق دیکشنری برگشتی انجام می شوند به " +"متغیرهای محلی یا ارجاعات غیرمحلی سلول مربوطه *not* بازنویسی نمی شوند، و " +"تخصیص، انتصاب مجدد، یا حذف متغیرهای محلی و ارجاع های غیرمحلی سلول، بر محتوای" +" دیکشنری های بازگردانده شده قبلی *not* تأثیری نمی گذارد." #: ../../library/functions.rst:1180 #, fuzzy @@ -2683,11 +2534,11 @@ msgid "" "other scopes, it behaves as if the comprehension were running as a nested " "function." msgstr "" -"فراخوانی ``locals()`` به عنوان قسمتی از یک درک (comprehension) در یک تابع، " -"تولیدکننده(generator) یا coroutine، معادل فراخوانی آن در حوزه(containing " -"scope) است، با این تفاوت که متغیرهای ابتدای درک (comprehension) هم شامل می " -"شوند. در حوزه های دیگر، رفتار به گونه ای است که انگار درک (comprehension) به" -" عنوان یک تابع تو در تو اجرا می شود." +"فراخوانی ``locals()`` به عنوان بخشی از یک comprehension در یک تابع، ژنراتور " +"یا coroutine معادل با فراخوانی آن در حوزه ی محتوی است، به جز اینکه متغیرهای " +"مقداردهی اولیه شده ی comprehension نیز شامل می شوند. در حوزه های دیگر، رفتار" +" آن به گونه ای است که انگار comprehension به عنوان یک تابع تو در تو اجرا می " +"شود." #: ../../library/functions.rst:1186 #, fuzzy @@ -2695,8 +2546,8 @@ msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." msgstr "" -"خواندن ``locals()`` به عنوان بخشی از یک بیان ژنراتور معادل است با خواندن آن " -"در یک تابع ژنراتور تو در تو." +"فراخوانی ``locals()`` به عنوان بخشی از یک عبارات مولد برابر است با فراخوانی " +"آن در یک تابع مولد تو در تو." #: ../../library/functions.rst:1189 #, fuzzy @@ -2704,8 +2555,8 @@ msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." msgstr "" -"رفتار ``locals()`` در یک comprehension همانطور که در :pep:`709` توضیح داده " -"شده، به روزرسانی شده است." +"رفتار ``locals()`` در یک درک مطلب به روز شده است همانطور که در :pep:`709` " +"توضیح داده شده است." #: ../../library/functions.rst:1193 #, fuzzy @@ -2716,11 +2567,11 @@ msgid "" "from being defined, the behaviour in other scopes remains unchanged from " "previous versions." msgstr "" -"در بخشی از :pep:`667`، معنای تغییر دادن اشیای نقشه برداری که از این تابع " -"برگردانده می شود، اکنون تعریف شده است. رفتار در :term:`optimized scopes " -"` اکنون همان طور که در بالا توضیح داده شد، توصیف می شود. " -"علاوه بر تعریف شدن، رفتار در سایر حوزه ها نسبت به نسخه های قبلی بدون تغییر " -"باقی مانده است." +"به عنوان بخشی از :pep:`667`، معنای تغییر دادن آبجکت های نگاشت که از این تابع" +" بازگردانده می شوند، اکنون تعریف شده است. رفتار در :term:`optimized scopes " +"` اکنون همان طور که در بالا توصیف شد می باشد. به غیر از " +"اینکه تعریف شده است، رفتار در سایر حوزه ها همچنان مانند نسخه های قبلی باقی " +"مانده است." #: ../../library/functions.rst:1203 #, fuzzy @@ -2732,12 +2583,12 @@ msgid "" " the shortest iterable is exhausted. For cases where the function inputs " "are already arranged into argument tuples, see :func:`itertools.starmap`\\." msgstr "" -"یک iterator برمی گرداند که *function* را بر روی هر آیتم از *iterable* اعمال " -"می کند و نتایج را تولید می کند. اگر آرگومان های اضافی *iterables* داده شده " -"باشند، *function* باید به تعداد آن آرگومان ها باشد و به آیتم ها از تمامی " -"iteratorها به صورت موازی اعمال شود. با وجود چندین iterable، iterator زمانی " -"متوقف می شود که کوتاه ترین iterable به پایان برسد. برای مواردی که ورودی های " -"تابع از پیش به صورت بسته های آرگومان تنظیم شده اند، به " +"یک تکرارگر برمی گرداند که *function* را بر روی هر مورد از *iterable* اعمال " +"می کند و نتایج را ایجاد می کند. اگر آرگومان های اضافی *iterables* ارسال " +"شوند، *function* باید به همان تعداد آرگومان ها را بپذیرد و بر روی آیتم ها از" +" تمام iterable ها به صورت موازی اعمال شود. با وجود چندین iterable، تکرارگر " +"زمانی متوقف می شود که کوتاه ترین iterable به پایان برسد. در مواردی که ورودی " +"های تابع به طور خودکار در قالب های آرگومان مرتب شده اند، به " ":func:`itertools.starmap` مراجعه کنید." #: ../../library/functions.rst:1215 @@ -2746,8 +2597,8 @@ msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" -"بزرگ ترین آیتم در یک iterable یا بزرگ ترین آیتم در میان دو یا چند آرگومان را" -" برمی گرداند." +"بزرگ ترین عنصر در یک iterable یا بزرگ ترین در میان دو یا چند آرگومان را " +"بازمی گرداند." #: ../../library/functions.rst:1218 #, fuzzy @@ -2756,9 +2607,9 @@ msgid "" "The largest item in the iterable is returned. If two or more positional " "arguments are provided, the largest of the positional arguments is returned." msgstr "" -"اگر یک آرگومان موقعیتی ارائه شود، باید یک :term:`iterable` باشد. بزرگ ترین " -"آیتم در تکرارپذیر بازگردانده می شود. اگر دو یا چند آرگومان موقعیتی ارائه " -"شوند، بزرگترین در میان آرگومان های موقعیتی بازگردانده می شود." +"اگر یک آرگومان مکانی ارائه شود، باید :term:`iterable` باشد. بزرگترین آیتم در" +" iterable بازگردانده می شود. اگر دو یا چند آرگومان مکانی ارائه شوند، " +"بزرگترین آرگومان مکانی بازگردانده می شود." #: ../../library/functions.rst:1223 ../../library/functions.rst:1261 #, fuzzy @@ -2769,11 +2620,11 @@ msgid "" " empty. If the iterable is empty and *default* is not provided, a " ":exc:`ValueError` is raised." msgstr "" -"دو آرگومان انتخابی که فقط با استفاده از کلیدواژه قابل استفاده هستند وجود " -"دارد. آرگومان *key* یک تابع مرتب سازی یک پارامتری را مشخص می کند مانند آنچه " -"که برای :meth:`list.sort` استفاده می شود. آرگومان *default* شیء ای را مشخص " -"می کند که در صورتی که ورودی تهی باشد بازگردانده شود. اگر ورودی تهی باشد و " -"*default* ارائه نشده باشد، یک :exc:`ValueError` ایجاد می شود." +"دو آرگومان اختیاری فقط با کلیدواژه وجود دارد. آرگومان *key* یک تابع مرتب " +"سازی با یک آرگومان مشابه آنچه برای :meth:`list.sort` استفاده می شود را مشخص " +"می کند. آرگومان *default* یک شیء را برای بازگشت مشخص می کند اگر مجموعه ارائه" +" شده خالی باشد. اگر مجموعه خالی باشد و *default* فراهم نشده باشد، یک " +":exc:`ValueError` ایجاد می شود." #: ../../library/functions.rst:1229 #, fuzzy @@ -2783,20 +2634,20 @@ msgid "" "such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and " "``heapq.nlargest(1, iterable, key=keyfunc)``." msgstr "" -"اگر چندین آیتم حداکثر باشند، تابع اولین موردی که با آن مواجه می شود را برمی " -"گرداند. این رفتار با دیگر ابزارهای حفظ پایداری مرتب سازی مانند " +"اگر چندین مورد حداکثر باشند، تابع اولین موردی را که پیدا کند برمی گرداند. " +"این با دیگر ابزارهایی که پایداری مرتب سازی را حفظ می کنند، مانند " "``sorted(iterable, key=keyfunc, reverse=True)[0]`` و ``heapq.nlargest(1, " "iterable, key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1234 ../../library/functions.rst:1272 #, fuzzy msgid "Added the *default* keyword-only parameter." -msgstr "پارامتر فقط-کلیدواژه ای *default* اضافه شد." +msgstr "افزوده شدن پارامتر فقط-کلیدواژه *default*." #: ../../library/functions.rst:1237 ../../library/functions.rst:1275 #, fuzzy msgid "The *key* can be ``None``." -msgstr "*key* می تواند ``None`` باشد." +msgstr " *key* می تواند ``None`` باشد." #: ../../library/functions.rst:1245 #, fuzzy @@ -2804,7 +2655,7 @@ msgid "" "Return a \"memory view\" object created from the given argument. See " ":ref:`typememoryview` for more information." msgstr "" -"شیٔ \"دید حافظه\" که از آرگومان داده شده ایجاد می شود را برمی گرداند. برای " +"یک شیء \"نمای حافظه\" ایجاد شده از آرگومان داده شده را برگردانید. برای " "اطلاعات بیشتر به :ref:`typememoryview` مراجعه کنید." #: ../../library/functions.rst:1253 @@ -2813,8 +2664,7 @@ msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" -"کوچک ترین آیتم در یک iterable یا کوچک ترین از دو یا چند آرگومان را برمی " -"گرداند." +"کوچکترین مورد را در یک iterable یا کوچکترینِ دو یا چند آرگومان بازمی گرداند." #: ../../library/functions.rst:1256 #, fuzzy @@ -2824,9 +2674,9 @@ msgid "" "arguments are provided, the smallest of the positional arguments is " "returned." msgstr "" -"اگر یک آرگومان موقعیتی ارائه شود، باید یک :term:`iterable` باشد. کوچک ترین " -"آیتم در iterable بازگردانده می شود. اگر دو یا چند آرگومان موقعیتی ارائه شود،" -" کوچک ترین آرگومان موقعیتی بازگردانده می شود." +"اگر یک آرگومان موضعی فراهم شود، باید یک :term:`iterable` باشد. کوچک ترین " +"آیتم در iterable بازگردانده می شود. اگر دو یا چند آرگومان موضعی فراهم شوند، " +"کوچک ترین آرگومان موضعی بازگردانده می شود." #: ../../library/functions.rst:1267 #, fuzzy @@ -2836,10 +2686,10 @@ msgid "" "such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " "iterable, key=keyfunc)``." msgstr "" -"اگر چندین مورد حداقلی وجود داشته باشد، این تابع اولین موردی که با آن مواجه " -"می شود را برمی گرداند. این رفتار با سایر ابزارهایی که پایداری ترتیب را حفظ " -"می کنند مانند ``sorted(iterable, key=keyfunc)[0]`` و ``heapq.nsmallest(1, " -"iterable, key=keyfunc)`` سازگار است." +"اگر چندین مورد کوچکترین باشند، تابع اولین موردی را که با آن برخورد می کند " +"برمی گرداند. این با ابزارهای دیگری که پایداری مرتب سازی را حفظ می کنند، " +"مانند ``sorted(iterable, key=keyfunc)[0]`` و ``heapq.nsmallest(1, iterable, " +"key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1282 #, fuzzy @@ -2848,10 +2698,10 @@ msgid "" ":meth:`~iterator.__next__` method. If *default* is given, it is returned if" " the iterator is exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" -"گزینه ی بعدی را از :term:`iterator` با فراخوانی متد " -":meth:`~iterator.__next__` آن بازیابی کنید. اگر *default* داده شود و تکرارگر" -" پایان یافته باشد، آن بازگردانده می شود، در غیر این صورت " -":exc:`StopIteration` ایجاد می شود." +"بازیابی آیتم بعدی از :term:`iterator` با فراخوانی متد " +":meth:`~iterator.__next__` آن. اگر *default* داده شود، در صورت اینکه تکرارگر" +" تمام شده باشد، بازگردانده می شود، در غیر این صورت :exc:`StopIteration` " +"برافراشته می شود." #: ../../library/functions.rst:1289 #, fuzzy @@ -2861,10 +2711,9 @@ msgid "" "called, it returns a new featureless object. The constructor does not accept" " any arguments." msgstr "" -"این کلاس پایهٔ نهایی برای تمامی کلاس های دیگر است. این کلاس شامل متدهایی است" -" که در همهٔ نمونه های کلاس های پایتون مشترک هستند. زمانی که سازنده فراخوانی " -"می شود، یک شیء جدید و بدون ویژگی برمی گرداند. سازنده هیچ آرگومانی را نمی " -"پذیرد." +"این کلاس پایه نهایی تمام کلاس های دیگر است. روش هایی دارد که برای تمام نمونه" +" های کلاس های پایتون مشترک هستند. وقتی سازنده فراخوانی می شود، یک شیء جدید " +"بدون ویژگی برمی گرداند. سازنده هیچ آرگومانی را قبول نمی کند." #: ../../library/functions.rst:1296 #, fuzzy @@ -2873,7 +2722,7 @@ msgid "" " so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" "نمونه های :class:`object` دارای ویژگی های *not* نیستند، بنابراین نمی توانید " -"ویژگی های دلخواه را به نمونه ای از :class:`object` اختصاص دهید." +"ویژگی های دلخواه را به یک نمونه از :class:`object` اختصاص دهید." #: ../../library/functions.rst:1303 #, fuzzy @@ -2883,10 +2732,9 @@ msgid "" "object, it has to define an :meth:`~object.__index__` method that returns an" " integer. For example:" msgstr "" -"یک عدد صحیح را به یک رشته هشت هشتی که با \"0o\" پیشوند دارد تبدیل کنید. " -"نتیجه یک عبارت معتبر پایتون خواهد بود. اگر *x* یک شیء :class:`int` پایتون " -"نیست، باید یک متد :meth:`~object.__index__` تعریف کند که یک عدد صحیح " -"برگرداند. برای مثال:" +"تبدیل یک عدد صحیح به یک رشته اکتال که با \"0o\" پیشوند شده است. نتیجه یک " +"عبارت معتبر در Python است. اگر *x* یک شیء Python نباشد، باید یک متد " +":meth:`~object.__index__` تعریف کند که یک عدد صحیح را بازگرداند. برای مثال:" #: ../../library/functions.rst:1313 #, fuzzy @@ -2894,8 +2742,8 @@ msgid "" "If you want to convert an integer number to an octal string either with the " "prefix \"0o\" or not, you can use either of the following ways." msgstr "" -"اگر می خواهید یک عدد صحیح را به یک رشته هشت پایه تبدیل کنید، چه با پیشوند " -"\"0o\" و چه بدون آن، می توانید از هر یک از روش های زیر استفاده کنید." +"اگر می خواهید یک عدد صحیح را به رشته هشت هشتی با پیش وند \"0o\" یا بدون آن " +"تبدیل کنید، می توانید از یکی از روش های زیر استفاده کنید." #: ../../library/functions.rst:1330 #, fuzzy @@ -2904,9 +2752,9 @@ msgid "" "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more" " examples of how to use this function." msgstr "" -"باز کردن *file* و بازگرداندن یک :term:`file object` مربوطه. اگر فایل نتواند " -"باز شود، یک :exc:`OSError` ایجاد می شود. برای مثال های بیشتر از نحوه استفاده" -" از این تابع، به :ref:`tut-files` مراجعه کنید." +"*file* را باز کرده و :term:`file object` مربوطه را برگردانید. اگر فایل قابل " +"باز شدن نباشد، یک :exc:`OSError` مطرح می شود. برای مثال های بیشتر از نحوه " +"استفاده از این تابع، به :ref:`tut-files` مراجعه کنید." #: ../../library/functions.rst:1334 #, fuzzy @@ -2917,11 +2765,11 @@ msgid "" " given, it is closed when the returned I/O object is closed unless *closefd*" " is set to ``False``.)" msgstr "" -"*file* یک :term:`path-like object` است که مسیر فایل (مطلق یا نسبی نسبت به " -"دایرکتوری کاری فعلی) که قرار است باز شود یا یک توصیفگر فایل عدد صحیح از فایل" -" برای بسته بندی شده را ارائه می دهد. (اگر یک توصیفگر فایل داده شود, هنگامی " -"که شیء I/O بازگشتی بسته می شود, بسته می شود مگر اینکه *closefd* به ``False``" -" تنظیم شود.)" +"*file* یک :term:`path-like object` است که مسیر فایل (به صورت مطلق یا نسبی " +"نسبت به پوشه کاری فعلی) که باید باز شود را یا یک تشخیص گر فایل از نوع عدد " +"صحیح از فایل برای بسته بندی ارائه می دهد. (اگر یک تشخیص گر فایل ارائه شود، " +"وقتی شیء ورودی/خروجی بازگشتی بسته می شود، آن نیز بسته می شود مگر اینکه " +"*closefd* به ``False`` تنظیم شود.)" #: ../../library/functions.rst:1340 #, fuzzy @@ -2937,16 +2785,15 @@ msgid "" "(For reading and writing raw bytes use binary mode and leave *encoding* " "unspecified.) The available modes are:" msgstr "" -"*mode* یک رشته اختیاری است که نحوه باز شدن فایل را مشخص می کند. به صورت پیش " -"فرض، ``'r'`` است که به معنای باز کردن برای خواندن در حالت متنی است. سایر " -"مقادیر معمول شامل ``'w'`` برای نوشتن (که در صورت وجود, فایل را کوتاه می " -"کند)، ``'x'`` برای ایجاد انحصاری و ``'a'`` برای افزودن (که در سیستم های " -"*some* Unix به این معناست که *all* نوشتن به انتهای فایل اضافه می شود بدون " -"توجه به موقعیت کنونی جستجو). در حالت متنی، اگر *encoding* مشخص نشده باشد، " -"کدگذاری استفاده شده وابسته به پلتفرم است: :func:`locale.getencoding` " -"فراخوانی می شود تا کدگذاری محلی فعلی را دریافت کند. (برای خواندن و نوشتن " -"بایت های خام از حالت باینری استفاده کنید و *encoding* را مشخص نکنید.) حالت " -"های موجود عبارتند از:" +"*mode* یک رشته اختیاری است که حالت باز شدن فایل را مشخص می کند. به طور پیش " +"فرض، ``'r'`` است که به معنای باز کردن برای خواندن در حالت متنی است. مقادیر " +"رایج دیگر شامل ``'w'`` برای نوشتن (قطع فایل در صورت وجود قبلی)، ``'x'`` برای" +" ایجاد انحصاری، و ``'a'`` برای افزودن (که در سیستم های *some* یونیکس، به این" +" معناست که *all* نوشته ها را به انتهای فایل اضافه می کند، صرف نظر از موقعیت " +"فعلی جستجو). در حالت متنی، اگر *encoding* مشخص نشده باشد، انکودینگ استفاده " +"شده بستگی به پلتفرم دارد: :func:`locale.getencoding` فراخوانی می شود تا " +"انکودینگ محلی فعلی را به دست آورد. (برای خواندن و نوشتن بایت های خام از حالت" +" دودویی استفاده کنید و *encoding* را مشخص نکنید.) حالت های موجود عبارتند از:" #: ../../library/functions.rst:1357 #, fuzzy @@ -2961,40 +2808,34 @@ msgstr "معنی" #: ../../library/functions.rst:1359 #, fuzzy msgid "``'r'``" -msgstr "" -"متاسفانه متن ارسالی شما شامل کدی نیست که قابل ترجمه باشد. لطفاً متنی از " -"مستندات رسمی پایتون را ارسال کنید تا ترجمه شود." +msgstr "``'r'``" #: ../../library/functions.rst:1359 #, fuzzy msgid "open for reading (default)" -msgstr "باز کردن برای خواندن (پیش فرض)" +msgstr "باز برای خواندن (پیش فرض)" #: ../../library/functions.rst:1360 #, fuzzy msgid "``'w'``" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن مورد نظر برای ترجمه را فراهم کنید " -"تا بتوانم به شما کمک کنم." +msgstr "``'w'``" #: ../../library/functions.rst:1360 #, fuzzy msgid "open for writing, truncating the file first" -msgstr "باز کردن برای نوشتن، ابتدا فایل را خالی می کند" +msgstr "برای نوشتن، ابتدا فایل را کوتاه کنید." #: ../../library/functions.rst:1361 #, fuzzy msgid "``'x'``" -msgstr "" -"متنی برای ترجمه ارائه نشده است. لطفاً متنی که نیاز به ترجمه دارد را ارسال " -"کنید تا بتوانم به شما کمک کنم." +msgstr "متن مشخص نشده است برای ترجمه. لطفاً متن اصلی را برای ترجمه وارد کنید." #: ../../library/functions.rst:1361 #, fuzzy msgid "open for exclusive creation, failing if the file already exists" msgstr "" -"باز کردن برای ایجاد اختصاصی، در صورتی که فایل از قبل وجود داشته باشد، شکست " -"می خورد." +"برای ایجاد انحصاری باز کنید، اگر فایل از قبل وجود داشته باشد، عملیات ناموفق " +"خواهد بود." #: ../../library/functions.rst:1362 #, fuzzy @@ -3004,15 +2845,12 @@ msgstr "``'a'``" #: ../../library/functions.rst:1362 #, fuzzy msgid "open for writing, appending to the end of file if it exists" -msgstr "" -"باز کردن برای نوشتن، اضافه کردن به انتهای فایل در صورتی که وجود داشته باشد" +msgstr "باز کردن برای نوشتن، افزودن به انتهای فایل در صورت وجود فایل" #: ../../library/functions.rst:1363 #, fuzzy msgid "``'b'``" -msgstr "" -"متن ارائه شده برای ترجمه فاقد محتوا است، بنابراین ترجمه فارسی نمی تواند " -"ارائه شود. لطفاً محتوا یا متنی که می خواهید ترجمه شود را مشخص کنید." +msgstr "``'b'``" #: ../../library/functions.rst:1363 ../../library/functions.rst:1507 #, fuzzy @@ -3022,9 +2860,7 @@ msgstr "حالت دودویی" #: ../../library/functions.rst:1364 #, fuzzy msgid "``'t'``" -msgstr "" -"متن برای ترجمه ارائه نشد. لطفاً متن کامل خود را ارسال کنید تا به فارسی ترجمه" -" کنم." +msgstr "``'t'``" #: ../../library/functions.rst:1364 #, fuzzy @@ -3034,9 +2870,7 @@ msgstr "حالت متنی (پیش فرض)" #: ../../library/functions.rst:1365 #, fuzzy msgid "``'+'``" -msgstr "" -"متأسفم، متن مشخصی برای ترجمه ارائه نشده است. لطفاً متن اصلی را که مایلید به " -"فارسی ترجمه شود، ارسال کنید." +msgstr "``'+'``" #: ../../library/functions.rst:1365 #, fuzzy @@ -3050,9 +2884,9 @@ msgid "" "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and" " ``'r+b'`` open the file with no truncation." msgstr "" -"حالت پیش فرض ``'r'`` است (باز کردن برای خواندن متن, مترادف ``'rt'``). حالت " -"های ``'w+'`` و ``'w+b'`` فایل را باز و محتوای آن را حذف می کنند. حالت های " -"``'r+'`` و ``'r+b'`` فایل را بدون حذف کردن باز می کنند." +"حالت پیش فرض ``'r'`` است (باز کردن برای خواندن متن، مترادف ``'rt'``). حالت " +"های ``'w+'`` و ``'w+b'`` فایل را باز کرده و آن را کوتاه می کنند. حالت های " +"``'r+'`` و ``'r+b'`` فایل را بدون کوتاه کردن باز می کنند." #: ../../library/functions.rst:1372 #, fuzzy @@ -3065,14 +2899,13 @@ msgid "" "having been first decoded using a platform-dependent encoding or using the " "specified *encoding* if given." msgstr "" -"همانطور که در :ref:`io-overview` ذکر شد، پایتون بین I/O باینری و متنی تمایز " -"قائل می شود. فایل هایی که در حالت باینری باز می شوند (از جمله زمانی که " -"``'b'`` در آرگومان *mode* قرار دارد) محتویات را به صورت اشیاء :class:`bytes`" -" بدون هیچ فرایند کدگشایی برمی گردانند. در حالت متنی (که به صورت پیش فرض است " -"یا زمانی که ``'t'`` در آرگومان *mode* گنجانده شده است), محتویات فایل به صورت" -" :class:`str` برگردانده می شود؛ به شرطی که بایت ها ابتدا با استفاده از " -"کدگشایی وابسته به پلتفرم یا با استفاده از *encoding* مشخص شده (در صورت " -"تعیین) رمزگشایی شوند." +"همانطور که در :ref:`io-overview` ذکر شد، پایتون بین ورودی/خروجی باینری و " +"متنی تفاوت قائل می شود. فایل های باز شده در حالت باینری (شامل ``'b'`` در " +"آرگومان *mode*) محتوا را به صورت اشیاء :class:`bytes` بدون هیچ گونه رمزگشایی" +" بازمی گردانند. در حالت متنی (پیش فرض یا زمانی که ``'t'`` در آرگومان *mode* " +"قرار می گیرد)، محتوای فایل به صورت :class:`str` بازگردانده می شود، در حالی " +"که بایت ها ابتدا با استفاده از یک کدگذاری وابسته به پلتفرم یا با استفاده از " +"*encoding* مشخص شده، اگر داده شود، رمزگشایی شده اند." #: ../../library/functions.rst:1382 #, fuzzy @@ -3081,8 +2914,8 @@ msgid "" "files; all the processing is done by Python itself, and is therefore " "platform-independent." msgstr "" -"پایتون وابسته به مفهوم فایل های متنی سیستم عامل زیرین نیست؛ تمامی پردازش ها " -"توسط خود پایتون انجام می شود و به همین دلیل مستقل از پلتفرم است." +"پایتون به مفهوم فایل های متنی سیستم عامل زیربنایی وابسته نیست؛ تمام پردازش " +"ها توسط خود پایتون انجام می شود و بنابراین مستقل از پلتفرم است." #: ../../library/functions.rst:1386 #, fuzzy @@ -3098,16 +2931,16 @@ msgid "" "*buffering* argument is given, the default buffering policy works as " "follows:" msgstr "" -"*buffering* یک عدد صحیح اختیاری است که برای تنظیم سیاست بافر استفاده می شود." -" مقدار 0 را برای خاموش کردن بافر (فقط در حالت باینری مجاز است) و 1 برای " -"انتخاب بافر خط (فقط زمانی که در حالت متنی نوشتن انجام می شود قابل استفاده " -"است), و یک عدد صحیح > 1 را برای نشان دادن اندازه به بایت های یک بافر ثابت " -"استفاده کنید. توجه داشته باشید که تعیین اندازه بافر به این صورت برای I/O " -"بافر باینری اعمال می شود، اما ``TextIOWrapper`` (یعنی فایل هایی که با " -"``mode='r+'`` باز می شوند) بافر متفاوتی خواهد داشت. برای غیرفعال کردن بافر " -"در ``TextIOWrapper``، در نظر داشته باشید که از پرچم ``write_through`` برای " -":func:`io.TextIOWrapper.reconfigure` استفاده کنید. زمانی که هیچ آرگومان " -"*buffering* داده نمی شود، سیاست بافر به صورت پیش فرض به شکل زیر کار می کند:" +"*buffering* یک عدد صحیح اختیاری است که برای تنظیم سیاست بافرینگ استفاده می " +"شود. قرار دادن 0 به منظور خاموش کردن بافرینگ (فقط در حالت باینری مجاز است)، " +"1 برای انتخاب بافرینگ خط (فقط زمانی که در حالت نوشتار متنی است قابل استفاده " +"است)، و هر عدد صحیح بزرگتر از 1 برای نشان دادن اندازه به بایت های یک بافر " +"تکه ای با اندازه ثابت. توجه داشته باشید که مشخص کردن اندازه بافر به این روش " +"برای I/O بافر شده باینری اعمال می شود، اما ``TextIOWrapper`` (یعنی فایل هایی" +" که با ``mode='r+'`` باز شده اند) بافرینگ دیگری خواهند داشت. برای غیرفعال " +"کردن بافرینگ در ``TextIOWrapper``، استفاده از پرچم ``write_through`` برای " +":func:`io.TextIOWrapper.reconfigure` را در نظر بگیرید. وقتی هیچ آرگومان " +"*buffering* ارائه نشده، سیاست پیش فرض بافرینگ به صورت زیر کار می کند:" #: ../../library/functions.rst:1396 #, fuzzy @@ -3117,10 +2950,11 @@ msgid "" " size\" and falling back on :const:`io.DEFAULT_BUFFER_SIZE`. On many " "systems, the buffer will typically be 4096 or 8192 bytes long." msgstr "" -"فایل های باینری به صورت تکه های با اندازه ثابت بافر می شوند؛ اندازه بافر با " -"استفاده از یک روش حدسی انتخاب می شود که سعی در تعیین \"اندازه بلوک\" دستگاه " -"زیرین دارد و به :const:`io.DEFAULT_BUFFER_SIZE` بازمی گردد. در بسیاری از " -"سیستم ها، بافر معمولاً 4096 یا 8192 بایت طول دارد." +"فایل های باینری در بلوک هایی با اندازه ثابت بافر می شوند؛ اندازه بافر با " +"استفاده از یک ایده ی تخمینی انتخاب می شود که سعی دارد \"اندازه بلوک\" دستگاه" +" زیرین را تعیین کند و در صورت نیاز از :const:`io.DEFAULT_BUFFER_SIZE` " +"استفاده می کند. در بسیاری از سیستم ها، اندازه بافر معمولاً 4096 یا 8192 بایت" +" خواهد بود." #: ../../library/functions.rst:1401 #, fuzzy @@ -3129,9 +2963,9 @@ msgid "" "returns ``True``) use line buffering. Other text files use the policy " "described above for binary files." msgstr "" -"فایل های متنی \"تعامل پذیر\" (فایل هایی که :meth:`~io.IOBase.isatty` برگشت " -"``True`` دارند) از بافر خط استفاده می کنند. دیگر فایل های متنی از سیاست شرح " -"داده شده در بالا برای فایل های باینری استفاده می کنند." +"فایل های متنی \"تعاملی\" (فایل هایی که :meth:`~io.IOBase.isatty` برمی گرداند" +" ``True``) از بافر خطی استفاده می کنند. سایر فایل های متنی از سیاستی که در " +"بالا برای فایل های باینری توصیف شد، استفاده می کنند." #: ../../library/functions.rst:1405 #, fuzzy @@ -3143,10 +2977,10 @@ msgid "" " the list of supported encodings." msgstr "" "*encoding* نام کدگذاری است که برای رمزگشایی یا رمزگذاری فایل استفاده می شود." -" این باید فقط در حالت متنی به کار برده شود. کدگذاری پیش فرض بستگی به پلتفرم " -"دارد (هر چه :func:`locale.getencoding` برگرداند), اما هر :term:`text " -"encoding` که توسط پایتون پشتیبانی شود می تواند استفاده شود. فهرست کدگذاری " -"های پشتیبانی شده را در ماژول :mod:`codecs` ببینید." +" این فقط باید در حالت متنی استفاده شود. کدگذاری پیش فرض به پلتفرم بستگی دارد" +" (هر چه :func:`locale.getencoding` برمی گرداند)، اما هر :term:`text " +"encoding` که توسط پایتون پشتیبانی می شود، می تواند استفاده شود. برای لیست " +"کدگذاری های پشتیبانی شده به ماژول :mod:`codecs` مراجعه کنید." #: ../../library/functions.rst:1411 #, fuzzy @@ -3157,11 +2991,11 @@ msgid "" "though any error handling name that has been registered with " ":func:`codecs.register_error` is also valid. The standard names include:" msgstr "" -"*errors* یک رشته اختیاری است که مشخص می کند چگونه خطاهای کدگذاری و رمزگشایی " -"باید مدیریت شوند—این نمی تواند در حالت باینری استفاده شود. تعدادی از مدیریت " -"کننده های خطای استاندارد موجود هستند (در زیر :ref:`error-handlers` لیست شده " -"اند), اگرچه هر نام مدیریت خطایی که با :func:`codecs.register_error` ثبت شده " -"باشد نیز معتبر است. اسامی استاندارد شامل موارد زیر هستند:" +"*errors* یک رشته اختیاری است که مشخص می کند خطاهای رمزگذاری و رمزگشایی چگونه" +" باید مدیریت شوند—این نمی تواند در حالت باینری استفاده شود. یک مجموعه از " +"هندلرهای خطای استاندارد در دسترس هستند (فهرست شده تحت :ref:`error-" +"handlers`)، اگرچه هر نام مدیریت خطایی که با :func:`codecs.register_error` " +"ثبت شده نیز معتبر است. نام های استاندارد شامل:" #: ../../library/functions.rst:1419 #, fuzzy @@ -3169,8 +3003,8 @@ msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." msgstr "" -"برای ایجاد یک استثنای :exc:`ValueError` در صورت بروز خطای کدگذاری، از " -"``'strict'`` استفاده کنید. مقدار پیش فرض ``None`` تأثیر مشابهی دارد." +"``'strict'`` برای بالا بردن :exc:`ValueError` استثنا اگر یک خطای encoding " +"وجود داشته باشد. مقدار پیش فرض ``None`` همان اثر را دارد." #: ../../library/functions.rst:1423 #, fuzzy @@ -3179,7 +3013,7 @@ msgid "" " data loss." msgstr "" "``'ignore'`` خطاها را نادیده می گیرد. توجه داشته باشید که نادیده گرفتن " -"خطاهای رمزگذاری می تواند منجر به از دست رفتن داده ها شود." +"خطاهای رمزگذاری می تواند به از دست رفتن داده ها منجر شود." #: ../../library/functions.rst:1426 #, fuzzy @@ -3187,8 +3021,8 @@ msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." msgstr "" -"``'replace'`` باعث می شود که یک نشانگر جایگزین (مانند ``'?'``) در جایی که " -"داده های ناقص وجود دارد، درج شود." +"``'replace'`` باعث می شود یک نشانگر جایگزین (مانند ``'?'``) در جایی که داده " +"های ناقص وجود دارد، درج شود." #: ../../library/functions.rst:1429 #, fuzzy @@ -3199,10 +3033,10 @@ msgid "" "handler is used when writing data. This is useful for processing files in " "an unknown encoding." msgstr "" -"کد نادرست به عنوان واحدهای کد جانشینی پایین در محدوده U+DC80 تا U+DCFF نمایش" -" داده می شود. این واحدهای کد جانشینی سپس با استفاده از مدیریت خطای " -"``surrogateescape``، هنگام نوشتن داده ها دوباره به بایت های اصلی تبدیل می " -"شوند. این روش برای پردازش فایل ها با کدگذاری نامشخص مفید است." +"``'surrogateescape'`` نشان دهنده هر بایت نادرست به عنوان واحد کد جایگاه " +"پایینی از U+DC80 تا U+DCFF خواهد بود. این واحدهای کد جایگاه سپس به همان بایت" +" ها تبدیل خواهند شد زمانی که از خطایاب ``surrogateescape`` برای نوشتن داده " +"ها استفاده شود. این روش برای پردازش فایل ها در یک کدگذاری ناشناخته مفید است." #: ../../library/functions.rst:1436 #, fuzzy @@ -3211,9 +3045,9 @@ msgid "" " not supported by the encoding are replaced with the appropriate XML " "character reference :samp:`&#{nnn};`." msgstr "" -"``'xmlcharrefreplace'`` تنها زمانی پشتیبانی می شود که به یک فایل نوشته می " -"شود. کاراکترهایی که توسط انکودینگ پشتیبانی نمی شوند با مرجع کاراکتر XML " -"مناسب جایگزین می شوند :samp:`&#{nnn};`." +"``'xmlcharrefreplace'`` تنها زمانی که به یک فایل نوشته می شود پشتیبانی می " +"شود. کاراکترهایی که توسط کدگذاری پشتیبانی نمی شوند با مرجع کاراکتر XML مناسب" +" جایگزین می شوند :samp:`&#{nnn};`." #: ../../library/functions.rst:1440 #, fuzzy @@ -3221,7 +3055,7 @@ msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." msgstr "" -"``'backslashreplace'`` داده های مخدوش را با دنباله های فرار backslashed " +"``'backslashreplace'`` داده های نا درست را با دنباله های فرار پشت پشت شدهٔ " "پایتون جایگزین می کند." #: ../../library/functions.rst:1443 @@ -3230,9 +3064,8 @@ msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." msgstr "" -"با استفاده از ``'namereplace'``، شما می توانید کاراکترهایی که در محیط مورد نظر پشتیبانی نمی شوند را با توالی های گریز ``\\N{...}`` جایگزین کنید. این روش زمانی مفید است که بخواهید مطمئن شوید که تمام کاراکترها به درستی انتقال داده می شوند یا در زمانی که نیاز دارید تا کاراکترهای مشخصی را از طریق پروتکلی منتقل کنید که آن ها را پشتیبانی نمی کند. \n" -"\n" -"این کلیدواژه می تواند به شکل زیر استفاده شود::" +"``'namereplace'`` (تنها زمانی که نوشتن را پشتیبانی می کند) کاراکترهای " +"پشتیبانی نشده را با توالی فرار ``\\N{...}`` جایگزین می کند." #: ../../library/functions.rst:1451 #, fuzzy @@ -3241,9 +3074,9 @@ msgid "" " be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " "follows:" msgstr "" -"*newline* تعیین می کند که چگونه کاراکترهای خط جدید از جریان تجزیه شوند. می " -"تواند ``None``، ``''``، ``'\\n'``، ``'\\r'``، و ``'\\r\\n'`` باشد. به صورت " -"زیر کار می کند:" +"*newline* تعیین می کند که چگونه کاراکترهای خط جدید از جریان خوانده شوند. می " +"تواند ``None``، ``''``، ``'\\n'``، ``'\\r'`` و ``'\\r\\n'`` باشد. کارکرد آن " +"به صورت زیر است:" #: ../../library/functions.rst:1455 #, fuzzy @@ -3257,12 +3090,12 @@ msgid "" "given string, and the line ending is returned to the caller untranslated." msgstr "" "هنگام خواندن ورودی از جریان، اگر *newline* برابر با ``None`` باشد، حالت خطوط" -" جدید جهانی فعال می شود. خطوط در ورودی می توانند با ``'\\n'``، ``'\\r'``، یا" -" ``'\\r\\n'`` پایان یابند و این ها قبل از بازگرداندن به فراخواننده به " -"``'\\n'`` تبدیل می شوند. اگر ``''`` شود، حالت خطوط جدید جهانی فعال است، اما " -"پایان خطوط بدون ترجمه به فراخواننده بازگردانده می شود. اگر دارای هر یک از " -"مقادیر قانونی دیگر باشد، خطوط ورودی فقط با رشته داده شده خاتمه می یابند و " -"پایان خط بدون ترجمه به فراخواننده بازگردانده می شود." +" جدید جهانی فعال می شود. خطوط در ورودی می توانند با ``'\\n'``، ``'\\r'`` یا " +"``'\\r\\n'`` پایان یابند و این ها قبل از بازگشت به فراخوان، به ``'\\n'`` " +"تبدیل می شوند. اگر ``''`` باشد، حالت خطوط جدید جهانی فعال است، اما انتهای " +"خطوط بدون ترجمه به فراخوان بازگردانده می شود. اگر دارای هر یک از مقادیر " +"قانونی دیگر باشد، خطوط ورودی تنها با رشته داده شده خاتمه می یابند و انتهای " +"خط بدون ترجمه به فراخوان بازگردانده می شود." #: ../../library/functions.rst:1463 #, fuzzy @@ -3274,10 +3107,10 @@ msgid "" "characters written are translated to the given string." msgstr "" "هنگام نوشتن خروجی به جریان، اگر *newline* برابر با ``None`` باشد، هر کاراکتر" -" ``'\\n'`` که نوشته شود، به جداکننده خط پیش فرض سیستم، یعنی " -":data:`os.linesep`، تبدیل می شود. اگر *newline* برابر با ``''`` یا ``'\\n'``" -" باشد، هیچ تبدیلی صورت نمی گیرد. اگر *newline* هر یک از مقادیر قانونی دیگر " -"باشد، هر کاراکتر ``'\\n'`` که نوشته شود، به رشته داده شده تبدیل می شود." +" ``'\\n'`` نوشته شده به جداکننده خط پیش فرض سیستم، یعنی :data:`os.linesep`، " +"ترجمه می شود. اگر *newline* برابر با ``''`` یا ``'\\n'`` باشد، هیچ ترجمه ای " +"صورت نمی گیرد. اگر *newline* یکی از دیگر مقادیر قانونی باشد، هر کاراکتر " +"``'\\n'`` نوشته شده به رشته داده شده ترجمه می شود." #: ../../library/functions.rst:1469 #, fuzzy @@ -3287,10 +3120,10 @@ msgid "" "closed. If a filename is given *closefd* must be ``True`` (the default); " "otherwise, an error will be raised." msgstr "" -"اگر *closefd* برابر ``False`` باشد و به جای نام فایل یک توصیف گر فایل داده " -"شود، توصیف گر فایل زیرین زمانی که فایل بسته می شود باز نگه داشته خواهد شد. " -"اگر یک نام فایل داده شود، *closefd* باید برابر ``True`` (پیش فرض) باشد؛ در " -"غیر این صورت، خطا رخ خواهد داد." +"اگر *closefd* برابر با ``False`` باشد و به جای یک نام فایل، یک شناسه فایل " +"داده شده باشد، زمانی که فایل بسته می شود، شناسه فایل اصلی باز خواهد ماند. " +"اگر یک نام فایل داده شود، *closefd* باید برابر با ``True`` باشد (به صورت پیش" +" فرض)؛ در غیر این صورت، خطا ایجاد خواهد شد." #: ../../library/functions.rst:1474 #, fuzzy @@ -3301,11 +3134,11 @@ msgid "" "descriptor (passing :mod:`os.open` as *opener* results in functionality " "similar to passing ``None``)." msgstr "" -"یک بازکننده سفارشی می تواند با ارسال یک تابع قابل فراخوانی به عنوان *opener*" -" مورد استفاده قرار گیرد. شناسه فایل زیرین برای شیء فایل سپس با خواندن " -"*opener* با (*file*, *flags*) به دست می آید. *opener* باید یک شناسه فایل باز" -" را باز گرداند (فرستادن :mod:`os.open` به عنوان *opener* به معنای عملیاتی " -"مشابه با ارسال ``None`` است)." +"یک گشاینده سفارشی را می توان با ارسال یک callable به عنوان *opener* استفاده " +"کرد. سپس توصیف کننده فایل پایه برای شیء فایل با فراخوانی *opener* با " +"(*file*, *flags*) به دست می آید. *opener* باید یک توصیف کننده فایل باز را " +"برگرداند (ارسال :mod:`os.open` به عنوان *opener* منجر به عملکردی مشابه با " +"ارسال ``None`` می شود)." #: ../../library/functions.rst:1480 #, fuzzy @@ -3318,8 +3151,8 @@ msgid "" "The following example uses the :ref:`dir_fd ` parameter of the " ":func:`os.open` function to open a file relative to a given directory::" msgstr "" -"مثال زیر از پارامتر :ref:`dir_fd ` تابع :func:`os.open` استفاده می " -"کند تا فایلی را نسبت به یک دایرکتوری مشخص باز کند::" +"مثال زیر از پارامتر :ref:`dir_fd ` تابع :func:`os.open` برای باز " +"کردن یک فایل نسبت به یک دایرکتوری داده شده استفاده می کند::" #: ../../library/functions.rst:1485 #, fuzzy @@ -3340,9 +3173,9 @@ msgstr "" "... return os.open(path, flags, dir_fd=dir_fd)\n" "...\n" ">>> with open('spamspam.txt', 'w', opener=opener) as f:\n" -"... print('This will be written to somedir/spamspam.txt', file=f)\n" +"... print('این به somedir/spamspam.txt نوشته خواهد شد', file=f)\n" "...\n" -">>> os.close(dir_fd) # don't leak a file descriptor" +">>> os.close(dir_fd) # نگذارید یک فایل دیسکریپتور نشت کند" #: ../../library/functions.rst:1495 #, fuzzy @@ -3359,17 +3192,17 @@ msgid "" "is disabled, the raw stream, a subclass of :class:`io.RawIOBase`, " ":class:`io.FileIO`, is returned." msgstr "" -"نوع :term:`file object` که توسط تابع :func:`open` برگردانده می شود بستگی به " -"حالت دارد. وقتی :func:`open` برای باز کردن یک فایل در حالت متنی (``'w'``, " -"``'r'``, ``'wt'``, ``'rt'``, و غیره) استفاده می شود، یک زیرکلاس از " -":class:`io.TextIOBase` (به طور خاص :class:`io.TextIOWrapper`) را برمی " -"گرداند. وقتی برای باز کردن یک فایل در حالت باینری با بافرینگ استفاده می شود،" -" کلاس بازگشتی یک زیرکلاس از :class:`io.BufferedIOBase` است. کلاس دقیق متفاوت" -" است: در حالت خواندن باینری، یک :class:`io.BufferedReader` را برمی گرداند؛ " -"در حالت های نوشتن باینری و افزودن باینری، یک :class:`io.BufferedWriter` را " -"برمی گرداند و در حالت خواندن/نوشتن، یک :class:`io.BufferedRandom` را برمی " -"گرداند. وقتی بافرینگ غیرفعال است، جریان خام که یک زیرکلاس از " -":class:`io.RawIOBase`، :class:`io.FileIO` است، برگردانده می شود." +"نوع :term:`file object` که توسط تابع :func:`open` برگردانده می شود به حالت " +"بستگی دارد. هنگامی که :func:`open` برای باز کردن یک فایل در حالت متنی " +"(``'w'``، ``'r'``، ``'wt'``، ``'rt'`` و غیره) استفاده می شود، یک زیربخش از " +":class:`io.TextIOBase` (به طور خاص :class:`io.TextIOWrapper`) برمی گرداند. " +"هنگامی که برای باز کردن یک فایل در حالت دودویی با بافرینگ استفاده می شود، " +"کلاس برگردانده شده یک زیربخش از :class:`io.BufferedIOBase` است. کلاس دقیق " +"متغیر است: در حالت خواندن دودویی، یک :class:`io.BufferedReader` برمی گرداند؛" +" در حالت نوشتن دودویی و ضمیمه کردن دودویی، یک :class:`io.BufferedWriter` " +"برمی گرداند و در حالت خواندن/نوشتن، یک :class:`io.BufferedRandom` برمی " +"گرداند. وقتی که بافرینگ غیرفعال است، جریان خام، که زیرمجموعه ای از " +":class:`io.RawIOBase`، :class:`io.FileIO` است، بازگردانده می شود." #: ../../library/functions.rst:1516 #, fuzzy @@ -3378,9 +3211,9 @@ msgid "" "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, " ":mod:`tempfile`, and :mod:`shutil`." msgstr "" -"همچنین به ماژول های مدیریت فایل مانند :mod:`fileinput`، :mod:`io` (که در آن " -":func:`open` تعریف شده است)، :mod:`os`، :mod:`os.path`، :mod:`tempfile`، و " -":mod:`shutil` مراجعه کنید." +"همچنین به ماژول های مدیریت فایل مراجعه کنید، مانند :mod:`fileinput`، " +":mod:`io` (که در آن :func:`open` تعریف شده است)، :mod:`os`، :mod:`os.path`، " +":mod:`tempfile` و :mod:`shutil`." #: ../../library/functions.rst:1520 #, fuzzy @@ -3397,8 +3230,8 @@ msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from" " the original call." msgstr "" -"ممکن است آرگومان های ``mode`` و ``flags`` از تماس اصلی تغییر کرده یا استنباط" -" شده باشند." +"ممکن است آرگومان های ``mode`` و ``flags`` از فراخوانی اصلی تغییر کرده یا " +"استنباط شده باشند." #: ../../library/functions.rst:1527 #, fuzzy @@ -3414,9 +3247,7 @@ msgstr "حالت ``'x'`` اضافه شد." #, fuzzy msgid "" ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." -msgstr "" -"خطای :exc:`IOError` که قبلاً ایجاد می شد، اکنون به عنوان یک نام مستعار برای " -":exc:`OSError` است." +msgstr ":exc:`IOError` قبلاً مطرح می شد، اکنون معادل :exc:`OSError` است." #: ../../library/functions.rst:1530 #, fuzzy @@ -3424,8 +3255,8 @@ msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." msgstr "" -"اگر فایلی که در حالت ایجاد انحصاری (``'x'``) باز شده است قبلاً وجود داشته " -"باشد، خطای :exc:`FileExistsError` اکنون فراخوانی می شود." +"اگر فایلی که در حالت ایجاد انحصاری باز شده است (``'x'``) قبلاً وجود داشته " +"باشد، اکنون :exc:`FileExistsError` برانگیخته می شود." #: ../../library/functions.rst:1535 #, fuzzy @@ -3439,21 +3270,21 @@ msgid "" "exception, the function now retries the system call instead of raising an " ":exc:`InterruptedError` exception (see :pep:`475` for the rationale)." msgstr "" -"اگر فراخوانی سیستم قطع شود و کنترل کننده سیگنال استثنایی را ایجاد نکند، این " -"تابع اکنون فراخوانی سیستم را مجدداً تلاش می کند، به جای اینکه یک استثنای " -":exc:`InterruptedError` ایجاد کند (برای درک دلیل به :pep:`475` مراجعه کنید)." +"اگر فراخوانی سیستم قطع شود و مدیریت کننده سیگنال استثنایی ایجاد نکند، تابع " +"اکنون به جای ایجاد یک استثنای :exc:`InterruptedError` فراخوانی سیستم را " +"مجدداً امتحان می کند (برای دلایل مربوطه، به :pep:`475` مراجعه کنید)." #: ../../library/functions.rst:1542 #, fuzzy msgid "The ``'namereplace'`` error handler was added." -msgstr "مدیریت خطای ``'namereplace'`` اضافه شد." +msgstr "مدبر خطای ``'namereplace'`` اضافه شد." #: ../../library/functions.rst:1546 #, fuzzy msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" -"پشتیبانی از پذیرش اشیایی که پیاده سازی `:class:`os.PathLike`` را دارند اضافه" -" شد." +"پشتیبانی برای پذیرش اشیایی که :class:`os.PathLike` را پیاده سازی می کنند " +"اضافه شد." #: ../../library/functions.rst:1547 #, fuzzy @@ -3461,8 +3292,8 @@ msgid "" "On Windows, opening a console buffer may return a subclass of " ":class:`io.RawIOBase` other than :class:`io.FileIO`." msgstr "" -"در ویندوز، باز کردن یک بافر کنسول ممکن است زیربخشی از :class:`io.RawIOBase` " -"به جز :class:`io.FileIO` را برگرداند." +"در ویندوز، باز کردن یک بافر کنسول ممکن است زیرکلاسی از :class:`io.RawIOBase`" +" را به جای :class:`io.FileIO` برگرداند." #: ../../library/functions.rst:1550 #, fuzzy @@ -3477,10 +3308,10 @@ msgid "" "``ord('a')`` returns the integer ``97`` and ``ord('€')`` (Euro sign) returns" " ``8364``. This is the inverse of :func:`chr`." msgstr "" -"با توجه به یک رشته که نشان دهنده ی یک نویسه ی یونیکد است، یک عدد صحیح که " -"نشان دهنده ی کد پوینت یونیکد آن نویسه است را برمی گرداند. برای مثال، " -"``ord('a')`` عدد صحیح ``97`` را برمی گرداند و ``ord('€')`` (علامت یورو) عدد " -"``8364`` را برمی گرداند. این روش معکوس :func:`chr` است." +"با دریافت یک رشته که نشان دهنده ی یک نویسه ی یونیکد است، یک عدد صحیح که نشان" +" دهنده ی نقطه ی کد یونیکد آن نویسه است را برمی گرداند. به عنوان مثال، " +"``ord('a')`` عدد صحیح ``97`` را برمی گرداند و ``ord('€')`` (نماد یورو) عدد " +"``8364`` را برمی گرداند. این عملکرد عکس :func:`chr` است." #: ../../library/functions.rst:1563 #, fuzzy @@ -3490,10 +3321,10 @@ msgid "" " mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the" " power operator: ``base**exp``." msgstr "" -"*base* به توان *exp* برمی گرداند؛ اگر *mod* موجود باشد، *base* به توان *exp*" -" را برگردانده و سپس بر *mod* تقسیم می کند (به صورت کارآمدتر از ``pow(base, " -"exp) % mod`` محاسبه می شود). فرم دو آرگومانی ``pow(base, exp)`` معادل " -"استفاده از عملگر توان است: ``base**exp``." +"بازگرداندن *base* به توان *exp*؛ اگر *mod* موجود است، بازگرداندن *base* به " +"توان *exp*، مدول *mod* (که به طور موثرتری نسبت به ``pow(base, exp) % mod`` " +"محاسبه می شود). فرم دو آرگومانی ``pow(base, exp)`` معادل استفاده از عملگر " +"توان است: ``base**exp``." #: ../../library/functions.rst:1568 #, fuzzy @@ -3510,17 +3341,17 @@ msgid "" ":class:`float` with an integral exponent, a float result is delivered. For " "example, ``pow(-9, 2.0)`` returns ``81.0``." msgstr "" -"استدلال ها باید از نوع عددی باشند. با انواع عملوندهای مختلط، قوانین تبدیل " -"نوع برای عملگرهای حسابی دودویی اعمال می شود. برای عملوندهای :class:`int`، " -"نتیجه همان نوع عملوندها را دارد (پس از تبدیل نوع), مگر اینکه استدلال دوم " -"منفی باشد؛ در این صورت، تمام استدلال ها به float تبدیل می شوند و یک نتیجه " -"float ارائه می شود. به عنوان مثال، ``pow(10, 2)`` به ``100`` ختم می شود، اما" -" ``pow(10, -2)`` به ``0.01`` ختم می شود. برای یک پایه منفی از نوع " -":class:`int` یا :class:`float` و توان غیر صحیح، یک نتیجه مختلط ارائه می شود." -" به عنوان مثال، ``pow(-9, 0.5)`` به مقداری نزدیک به ``3j`` برمی گردد. در " -"حالی که، برای یک پایه منفی از نوع :class:`int` یا :class:`float` با توان " -"صحیح، یک نتیجه float ارائه می شود. برای مثال، ``pow(-9, 2.0)`` به ``81.0`` " -"ختم می شود." +"آرگومان ها باید دارای نوع عددی باشند. با انواع عملوند مخلوط، قوانین تبدیل " +"برای عملگرهای حسابی دودویی اعمال می شود. برای عملوندهای :class:`int`، نتیجه " +"دارای همان نوع عملوندها است (پس از تبدیل) مگر اینکه آرگومان دوم منفی باشد؛ " +"در این صورت، تمام آرگومان ها به float تبدیل می شوند و نتیجه ای از نوع float " +"ارائه می شود. به عنوان مثال، ``pow(10, 2)`` نتیجه ``100`` را برمی گرداند، " +"اما ``pow(10, -2)`` نتیجه ``0.01`` را برمی گرداند. برای پایه منفی از نوع " +":class:`int` یا :class:`float` و توان غیر صحیح، نتیجه ای از نوع عدد مختلط " +"ارائه می شود. به عنوان مثال، ``pow(-9, 0.5)`` مقداری نزدیک به ``3j`` برمی " +"گرداند. در حالی که، برای یک پایه منفی از نوع :class:`int` یا :class:`float` " +"با توان صحیح، نتیجه ای از نوع float ارائه می شود. برای مثال، ``pow(-9, " +"2.0)`` نتیجه ``81.0`` را برمی گرداند." #: ../../library/functions.rst:1580 #, fuzzy @@ -3531,17 +3362,17 @@ msgid "" "``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " "*base* modulo *mod*." msgstr "" -"برای عملوندهای :class:`int`، *base* و *exp*، اگر *mod* حضور داشته باشد، " -"*mod* نیز باید از نوع عدد صحیح باشد و *mod* نباید صفر باشد. اگر *mod* حضور " -"داشته باشد و *exp* منفی باشد، *base* باید نسبت به *mod* اول باشند. در این " -"صورت، ``pow(inv_base, -exp, mod)`` بازگردانده می شود، جایی که *inv_base* " -"معکوس *base* به پیمانه *mod* است." +"برای عملوندهای :class:`int` یعنی *base* و *exp*، اگر *mod* وجود داشته باشد، " +"*mod* نیز باید از نوع عدد صحیح باشد و *mod* نباید صفر باشد. اگر *mod* وجود " +"داشته باشد و *exp* منفی باشد، *base* باید نسبت به *mod* نسبتاً اول باشد. در " +"این صورت، ``pow(inv_base, -exp, mod)`` بازگردانده می شود، جایی که *inv_base*" +" معکوس *base* به پیمانه *mod* است." #: ../../library/functions.rst:1586 #, fuzzy msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" -"در اینجا مثالی از محاسبه معکوس برای ``38`` به پیمانه ``97`` آورده شده است::" +"در اینجا یک مثال از محاسبه معکوس برای ``38`` مدولوی ``97`` ارائه شده است::" #: ../../library/functions.rst:1588 #, fuzzy @@ -3562,8 +3393,8 @@ msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the" " second argument to be negative, permitting computation of modular inverses." msgstr "" -"برای عملوندهای :class:`int`، قالب سه پارامتری ``pow`` اکنون اجازه می دهد که " -"آرگومان دوم منفی باشد، که محاسبه معکوس های ماژولار را ممکن می سازد." +"برای عملگرهای :class:`int`، اکنون فرم سه آرگومانی ``pow`` اجازه می دهد که " +"آرگومان دوم منفی باشد، که این به محاسبه معکوس های مدولار کمک می کند." #: ../../library/functions.rst:1598 #, fuzzy @@ -3571,7 +3402,7 @@ msgid "" "Allow keyword arguments. Formerly, only positional arguments were " "supported." msgstr "" -"اجازه به استفاده از آرگومان های کلمه کلیدی. قبلاً فقط آرگومان های موقعیتی " +"اجازه دادن به آرگومان های کلیدواژه ای. قبلاً فقط آرگومان های موقعیتی " "پشتیبانی می شدند." #: ../../library/functions.rst:1605 @@ -3581,9 +3412,9 @@ msgid "" "by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " "keyword arguments." msgstr "" -"متن *objects* را به جریان متنی *file* چاپ کن، جدا شده توسط *sep* و به دنبال " -"آن *end*. *sep*, *end*, *file*, و *flush*، اگر موجود باشند، باید به عنوان " -"آرگومان های کلمه کلیدی داده شوند." +"*objects* را به جریان متنی *file* چاپ می کند، که توسط *sep* جدا شده و با " +"*end* دنبال می شود. *sep*, *end*, *file*, و *flush*، اگر موجود باشند، باید " +"به عنوان آرگومان های کلیدی ارائه شوند." #: ../../library/functions.rst:1609 #, fuzzy @@ -3594,11 +3425,11 @@ msgid "" "use the default values. If no *objects* are given, :func:`print` will just " "write *end*." msgstr "" -"تمام آرگومان های غیر کلیدی مانند :func:`str` به رشته ها تبدیل شده و به جریان" -" نوشته می شوند، که با *sep* از هم جدا شده و به دنبال آن *end* می آید. هر دو " -"*sep* و *end* باید رشته باشند؛ آنها می توانند همچنین ``None`` باشند، که به " -"معنای استفاده از مقادیر پیش فرض است. اگر هیچ *objects* داده نشود، " -":func:`print` تنها *end* را خواهد نوشت." +"همه آرگومان های غیرکلیدی به رشته ها تبدیل می شوند مانند :func:`str` و به " +"جریان نوشته می شوند، با *sep* از هم جدا شده و به دنبال *end* می آیند. هر دو " +"*sep* و *end* باید رشته باشند؛ آنها می توانند همچنین ``None`` باشند، به این " +"معنی که از مقادیر پیش فرض استفاده می شود. اگر هیچ *objects* داده نشده باشند،" +" :func:`print` فقط *end* را خواهد نوشت." #: ../../library/functions.rst:1615 #, fuzzy @@ -3608,11 +3439,11 @@ msgid "" " arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" -"آرگومان *file* بایستی یک شیء با متد ``write(string)`` باشد؛ اگر حضور نداشته " -"باشد یا ``None``، :data:`sys.stdout` استفاده خواهد شد. از آنجا که آرگومان " -"های چاپ شده به رشته های متنی تبدیل می شوند، :func:`print` نمی تواند با اشیاء" -" فایل در حالت باینری استفاده شود. برای این موارد، به جای آن از " -"``file.write(...)`` استفاده کنید." +"آرگومان *file* باید یک شیء با یک متد ``write(string)`` باشد؛ اگر حضور نداشته" +" باشد یا ``None`` باشد، از :data:`sys.stdout` استفاده خواهد شد. از آنجایی که" +" آرگومان های پرینت شده به رشته های متنی تبدیل می شوند، :func:`print` نمی " +"تواند با اشیای فایل در حالت باینری استفاده شود. برای این موارد، به جای آن از" +" ``file.write(...)`` استفاده کنید." #: ../../library/functions.rst:1620 #, fuzzy @@ -3620,18 +3451,18 @@ msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." msgstr "" -"بافرینگ خروجی معمولاً توسط *file* تعیین می شود. با این حال، اگر *flush* " -"برابر با true باشد، جریان به طور اجباری تخلیه می شود." +"بافر خروجی معمولاً توسط *file* تعیین می شود. با این حال، اگر *flush* صحیح " +"باشد، جریان به طور اجباری تخلیه می شود." #: ../../library/functions.rst:1624 #, fuzzy msgid "Added the *flush* keyword argument." -msgstr "کلیدواژه *flush* اضافه شد." +msgstr "آرگومان کلیدواژه *flush* اضافه شد." #: ../../library/functions.rst:1630 #, fuzzy msgid "Return a property attribute." -msgstr "یک ویژگی «property» را برمی گرداند." +msgstr "یک ویژگی property را بازمی گرداند." #: ../../library/functions.rst:1632 #, fuzzy @@ -3640,14 +3471,14 @@ msgid "" "for setting an attribute value. *fdel* is a function for deleting an " "attribute value. And *doc* creates a docstring for the attribute." msgstr "" -"تابع *fget* برای دریافت مقدار یک ویژگی است. تابع *fset* برای تنظیم مقدار یک " -"ویژگی است. تابع *fdel* برای حذف مقدار یک ویژگی است. و *doc* یک رشته مستندات " -"برای ویژگی ایجاد می کند." +"*fget* یک تابع برای دریافت مقدار یک ویژگی است. *fset* یک تابع برای تنظیم " +"مقدار یک ویژگی است. *fdel* یک تابع برای حذف مقدار یک ویژگی است. و *doc* یک " +"docstring برای ویژگی ایجاد می کند." #: ../../library/functions.rst:1636 #, fuzzy msgid "A typical use is to define a managed attribute ``x``::" -msgstr "استفاده معمول این است که یک ویژگی مدیریت شده ``x`` تعریف شود::" +msgstr "یک استفاده معمول این است که یک ویژگی مدیریت شده ``x`` تعریف کنید::" #: ../../library/functions.rst:1638 #, fuzzy @@ -3667,7 +3498,7 @@ msgid "" "\n" " x = property(getx, setx, delx, \"I'm the 'x' property.\")" msgstr "" -"class C:\n" +"کلاس C:\n" " def __init__(self):\n" " self._x = None\n" "\n" @@ -3680,7 +3511,7 @@ msgstr "" " def delx(self):\n" " del self._x\n" "\n" -" x = property(getx, setx, delx, \"I'm the 'x' property.\")" +" x = property(getx, setx, delx, \"من ویژگی 'x' هستم.\")" #: ../../library/functions.rst:1653 #, fuzzy @@ -3688,8 +3519,9 @@ msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." msgstr "" -"اگر *c* یک نمونه از *C* باشد، ``c.x`` فراخوانی گر getter، ``c.x = value`` " -"فراخوانی گر setter، و ``del c.x`` فراخوانی گر deleter خواهد بود." +"اگر *c* نمونه ای از *C* باشد، ``c.x`` فراخوانی کنندهٔ getter، ``c.x = " +"value`` فراخوانی کنندهٔ setter و ``del c.x`` فراخوانی کنندهٔ deleter خواهد " +"بود." #: ../../library/functions.rst:1656 #, fuzzy @@ -3699,11 +3531,10 @@ msgid "" "possible to create read-only properties easily using :func:`property` as a " ":term:`decorator`::" msgstr "" -"اگر *doc* داده شود، به عنوان توضیحات مختصر (docstring) ویژگی (property " -"attribute) استفاده خواهد شد. در غیر این صورت، ویژگی توضیحات مختصر *fget* را " -"کپی می کند (اگر موجود باشد). این امکان را فراهم می کند که با استفاده از " -":func:`property` به عنوان یک :term:`decorator` به راحتی ویژگی های فقط " -"خواندنی ایجاد کرد::" +"اگر ارائه شده باشد، *doc* به عنوان docstring ویژگی property خواهد بود. در " +"غیر این صورت، property docstring *fget* را (اگر وجود داشته باشد) کپی خواهد " +"کرد. این امکان را فراهم می کند تا به سادگی از :func:`property` به عنوان یک " +":term:`decorator` استفاده کنید و ویژگی های فقط خواندنی ایجاد نمایید::" #: ../../library/functions.rst:1660 #, fuzzy @@ -3717,13 +3548,13 @@ msgid "" " \"\"\"Get the current voltage.\"\"\"\n" " return self._voltage" msgstr "" -"class Parrot:\n" +"کلاس Parrot:\n" " def __init__(self):\n" " self._voltage = 100000\n" "\n" " @property\n" " def voltage(self):\n" -" \"\"\"Get the current voltage.\"\"\"\n" +" \"\"\"ولتاژ فعلی را دریافت کنید.\"\"\"\n" " return self._voltage" #: ../../library/functions.rst:1669 @@ -3733,9 +3564,9 @@ msgid "" "\"getter\" for a read-only attribute with the same name, and it sets the " "docstring for *voltage* to \"Get the current voltage.\"" msgstr "" -"دکوریتور ``@property`` متد :meth:`!voltage` را به یک \"getter\" برای یک " -"ویژگی فقط خواندنی با همان نام تبدیل می کند و مستندات (docstring) *voltage* " -"را به عبارت \"ولتاژ فعلی را بگیر\" تنظیم می کند." +"دکوراتور ``@property`` متد :meth:`!voltage` را به یک \"getter\" برای یک " +"ویژگی فقط خواندنی با همان نام تبدیل می کند و رشته داکیومنت برای *voltage* را" +" به \"Get the current voltage.\" تنظیم می کند." #: ../../library/functions.rst:1677 #, fuzzy @@ -3745,10 +3576,10 @@ msgid "" "accessor function set to the decorated function. This is best explained " "with an example:" msgstr "" -"یک شیء property دارای متدهای ``getter``، ``setter`` و ``deleter`` است که به " -"عنوان دکوریتورهایی استفاده می شوند و یک نسخه از property را با تابع دسترسی " -"دهنده مربوطه که به تابع دکوریت شده تنظیم شده است، ایجاد می کنند. این موضوع " -"با یک مثال بهتر توضیح داده می شود:" +"یک شیء property دارای متدهای ``getter``، ``setter``، و ``deleter`` است که به" +" عنوان تزئین کننده ها استفاده می شوند و یک کپی از property را با تابع دسترسی" +" مربوطه که به تابع تزئین شده تنظیم شده است، ایجاد می کنند. این موضوع با یک " +"مثال بهتر توضیح داده می شود:" #: ../../library/functions.rst:1682 #, fuzzy @@ -3776,7 +3607,7 @@ msgstr "" "\n" " @property\n" " def x(self):\n" -" \"\"\"I'm the 'x' property.\"\"\"\n" +" \"\"\"من ویژگی 'x' هستم.\"\"\"\n" " return self._x\n" "\n" " @x.setter\n" @@ -3794,8 +3625,8 @@ msgid "" "additional functions the same name as the original property (``x`` in this " "case.)" msgstr "" -"این کد دقیقاً معادل با مثال اول است. مطمئن شوید که به توابع اضافی همان نام " -"ویژگی اصلی (در این مورد ``x``) را بدهید." +"این کد دقیقا معادل با مثال اول است. مطمئن شوید که توابع اضافی همان نام ویژگی" +" اصلی (در اینجا ``x``) را داشته باشند." #: ../../library/functions.rst:1705 #, fuzzy @@ -3803,8 +3634,8 @@ msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and" " ``fdel`` corresponding to the constructor arguments." msgstr "" -"شیء ویژگی بازگشتی همچنین دارای خصوصیات ``fget``، ``fset``، و ``fdel`` می " -"باشد که با آرگومان های سازنده مطابقت دارند." +"شیء ویژگی برگردانده شده همچنین دارای خصوصیات ``fget``، ``fset`` و ``fdel`` " +"است که معادل با آرگومان های سازنده هستند." #: ../../library/functions.rst:1708 #, fuzzy @@ -3816,7 +3647,9 @@ msgstr "رشته های مستندات اشیاء ویژگی اکنون قابل msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." -msgstr "ویژگی نگهدارنده نام خاصیت. نام خاصیت می تواند در زمان اجرا تغییر کند." +msgstr "" +"ویژگی که نام ویژگی را نگه می دارد. نام ویژگی می تواند در زمان اجرای برنامه " +"تغییر کند." #: ../../library/functions.rst:1724 #, fuzzy @@ -3824,8 +3657,8 @@ msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." msgstr "" -"در واقع :class:`range` به جای اینکه یک تابع باشد، یک نوع دنباله تغییرناپذیر " -"است، همان طور که در :ref:`typesseq-range` و :ref:`typesseq` مستند شده است." +"به جای اینکه :class:`range` یک تابع باشد، در واقع یک نوع دنباله ثابت است، " +"همان طور که در :ref:`typesseq-range` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1730 #, fuzzy @@ -3840,14 +3673,14 @@ msgid "" "method. If :func:`sys.displayhook` is not accessible, this function will " "raise :exc:`RuntimeError`." msgstr "" -"یک رشته شامل نمایش قابل چاپ یک شیء را بازمی گرداند. برای بسیاری از انواع، " -"این تابع تلاش می کند رشته ای ارائه دهد که در صورتی که به :func:`eval` ارسال " -"شود، شیئی با همان مقدار ایجاد کند؛ در غیر این صورت، نمایش یک رشته ای است که " -"در داخل علامت های زاویه دار قرار گرفته و نام نوع شیء را به همراه اطلاعات " -"اضافی که اغلب شامل نام و آدرس شیء است، دارد. یک کلاس می تواند کنترل کند که " -"این تابع برای نمونه هایش چه چیزی را بازمی گرداند، با تعریف یک متد " +"یک رشته که نمایش قابل چاپ از یک شئ را در بر دارد، بر می گرداند. برای بسیاری " +"از انواع، این تابع سعی می کند رشته ای را برگرداند که به عنوان ورودی " +":func:`eval` یک شئ با همان مقدار را تولید کند؛ در غیر این صورت، نمایش به " +"صورت یک رشته داخل پرانتزهای زاویه دار است که نام نوع شئ به همراه اطلاعات " +"اضافی که معمولاً شامل نام و آدرس شئ است، می باشد. یک کلاس می تواند مشخص کند " +"که این تابع برای نمونه های خود چه چیزی بر می گرداند، با تعریف متد " ":meth:`~object.__repr__`. اگر :func:`sys.displayhook` قابل دسترسی نباشد، این" -" تابع :exc:`RuntimeError` را ایجاد خواهد کرد." +" تابع :exc:`RuntimeError` را ایجاد می کند." #: ../../library/functions.rst:1741 #, fuzzy @@ -3865,7 +3698,7 @@ msgid "" " def __repr__(self):\n" " return f\"Person('{self.name}', {self.age})\"" msgstr "" -"class Person:\n" +"کلاس Person:\n" " def __init__(self, name, age):\n" " self.name = name\n" " self.age = age\n" @@ -3881,10 +3714,10 @@ msgid "" ":meth:`~object.__len__` method and the :meth:`~object.__getitem__` method " "with integer arguments starting at ``0``)." msgstr "" -"یک :term:`iterator` معکوس برگردانید. *seq* باید شیئی باشد که یک متد " -":meth:`~object.__reversed__` داشته باشد یا از پروتکل توالی پشتیبانی کند (متد" -" :meth:`~object.__len__` و متد :meth:`~object.__getitem__` با آرگومان های " -"صحیح که از ``0`` شروع می شوند)." +"برمی گرداند یک :term:`iterator` معکوس. *seq* باید یک شی باشد که دارای یک متد" +" :meth:`~object.__reversed__` باشد یا از پروتکل توالی پشتیبانی کند (متد " +":meth:`~object.__len__` و متد :meth:`~object.__getitem__` با آرگومان های عدد" +" صحیح که از ``0`` شروع می شوند)." #: ../../library/functions.rst:1762 #, fuzzy @@ -3893,8 +3726,8 @@ msgid "" "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " "input." msgstr "" -"مقدار *number* را به دقت *ndigits* بعد از نقطه اعشار گرد کنید. اگر *ndigits*" -" حذف شود یا ``None`` باشد، نزدیک ترین عدد صحیح به ورودی خود را برمی گرداند." +"*number* را به دقت *ndigits* پس از نقطهٔ اعشار گرد می کند. اگر *ndigits* حذف" +" شود یا ``None`` باشد، نزدیک ترین عدد صحیح به ورودی بازگردانده می شود." #: ../../library/functions.rst:1766 #, fuzzy @@ -3908,12 +3741,12 @@ msgid "" "``None``. Otherwise, the return value has the same type as *number*." msgstr "" "برای انواع داخلی که از :func:`round` پشتیبانی می کنند، مقادیر به نزدیک ترین " -"مضرب 10 به توان منفی *ndigits* گرد می شوند؛ اگر دو مضرب به یک اندازه نزدیک " -"باشند، گرد کردن به سمت گزینه زوج انجام می شود (مثلاً هر دو ``round(0.5)`` و " -"``round(-0.5)`` به ``0`` گرد می شوند، و ``round(1.5)`` به ``2``). هر مقدار " -"صحیحی برای *ndigits* معتبر است (مثبت, صفر یا منفی). مقدار بازگشتی یک عدد " -"صحیح است اگر *ndigits* حذف شود یا ``None`` باشد. در غیر این صورت، مقدار " -"بازگشتی همان نوع *number* را دارد." +"مضرب 10 به توان منفی *ndigits* گرد می شوند؛ اگر دو مضرب به طور مساوی نزدیک " +"باشند، گرد کردن به سمت گزینه زوج انجام می شود (برای مثال، هر دو " +"``round(0.5)`` و ``round(-0.5)`` برابر با ``0`` هستند، و ``round(1.5)`` " +"برابر با ``2`` است). هر مقدار صحیح برای *ndigits* معتبر است (مثبت، صفر، یا " +"منفی). مقدار بازگشتی یک عدد صحیح است اگر *ndigits* حذف شود یا ``None`` باشد." +" در غیر این صورت، مقدار بازگشتی از همان نوع *number* خواهد بود." #: ../../library/functions.rst:1775 #, fuzzy @@ -3922,7 +3755,7 @@ msgid "" "``number.__round__``." msgstr "" "برای یک شیء عمومی پایتون ``number``، ``round`` به ``number.__round__`` " -"واگذار می کند." +"واگذار می شود." #: ../../library/functions.rst:1780 #, fuzzy @@ -3933,11 +3766,11 @@ msgid "" "represented exactly as a float. See :ref:`tut-fp-issues` for more " "information." msgstr "" -"رفتار :func:`round` برای اعداد اعشاری می تواند غیرمنتظره باشد: به عنوان " -"مثال، ``round(2.675, 2)`` نتیجه ``2.67`` را می دهد به جای نتیجه ی مورد " -"انتظار ``2.68``. این یک باگ نیست: این نتیجه ای از این واقعیت است که اکثر " -"کسرهای اعشاری نمی توانند به طور دقیق به صورت یک عدد اعشاری نمایش داده شوند. " -"برای اطلاعات بیشتر به :ref:`tut-fp-issues` مراجعه کنید." +"رفتار :func:`round` برای اعشار ممکن است تعجب آور باشد: به عنوان مثال، " +"``round(2.675, 2)`` به جای ``2.68`` مقدار ``2.67`` را می دهد. این یک اشکال " +"نیست: این به دلیل این واقعیت است که بیشتر کسرهای دهدهی نمی توانند به طور " +"دقیق به عنوان یک عدد اعشاری نشان داده شوند. برای اطلاعات بیشتر به :ref:`tut-" +"fp-issues` مراجعه کنید." #: ../../library/functions.rst:1792 #, fuzzy @@ -3946,9 +3779,9 @@ msgid "" "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" "set` for documentation about this class." msgstr "" -"یک شیء جدید :class:`set` برمی گرداند که به طور اختیاری شامل عناصر گرفته شده " -"از *iterable* است. ``set`` یک کلاس داخلی است. برای مستندات مربوط به این " -"کلاس، به :class:`set` و :ref:`types-set` مراجعه کنید." +"یک شیء جدید :class:`set` بازمی گرداند، در صورت نیاز با عناصری که از " +"*iterable* گرفته شده اند. ``set`` یک کلاس داخلی است. برای مستندسازی درباره " +"این کلاس به :class:`set` و :ref:`types-set` مراجعه کنید." #: ../../library/functions.rst:1796 #, fuzzy @@ -3957,9 +3790,9 @@ msgid "" ":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" " module." msgstr "" -"برای سایر کانتینرها به کلاس های داخلی :class:`frozenset`، :class:`list`، " -":class:`tuple` و :class:`dict` و همچنین ماژول :mod:`collections` مراجعه " -"کنید." +"برای سایر کانتینرها، به کلاس های داخلی :class:`frozenset`، :class:`list`، " +":class:`tuple`، و :class:`dict` مراجعه کنید، همچنین به ماژول " +":mod:`collections` مراجعه نمایید." #: ../../library/functions.rst:1803 #, fuzzy @@ -3970,11 +3803,11 @@ msgid "" "provided the object allows it. For example, ``setattr(x, 'foobar', 123)`` " "is equivalent to ``x.foobar = 123``." msgstr "" -"این متن معادل :func:`getattr` است. آرگومان ها شامل یک شیء، یک رشته و یک " -"مقدار دلخواه هستند. این رشته ممکن است به یک ویژگی موجود یا یک ویژگی جدید " -"اشاره کند. این تابع مقدار را به ویژگی اختصاص می دهد، به شرطی که شیء اجازه " -"دهد. به عنوان مثال، ``setattr(x, 'foobar', 123)`` معادل با ``x.foobar = " -"123`` است." +"این قسمت معادل :func:`getattr` است. آرگومان ها شامل یک شیء، یک رشته و یک " +"مقدار دلخواه هستند. رشته می تواند نام یک ویژگی موجود یا یک ویژگی جدید باشد. " +"این تابع مقدار را به ویژگی تخصیص می دهد، به شرطی که شیء اجازه این کار را " +"بدهد. برای مثال، ``setattr(x, 'foobar', 123)`` معادل با ``x.foobar = 123`` " +"است." #: ../../library/functions.rst:1809 #, fuzzy @@ -3985,12 +3818,12 @@ msgid "" "attribute whose name is not an identifier will not be accessible using the " "dot notation, but is accessible through :func:`getattr` etc.." msgstr "" -"نیازی نیست *name* یک شناسه Python باشد همانطور که در :ref:`identifiers` " -"تعریف شده است، مگر اینکه شیء بخواهد آن را اعمال کند، برای مثال در یک " -":meth:`~object.__getattribute__` سفارشی یا از طریق " -":attr:`~object.__slots__`. یک ویژگی که نام آن یک شناسه نباشد با استفاده از " -"نشانه گذاری نقطه ای قابل دسترسی نیست، اما از طریق :func:`getattr` و غیره " -"قابل دسترسی است." +"*name* نیازی نیست که یک شناسه پایتون باشد همانطور که در :ref:`identifiers` " +"تعریف شده است، مگر اینکه شیء تصمیم بگیرد آن را اعمال کند، به عنوان مثال در " +"یک :meth:`~object.__getattribute__` سفارشی یا از طریق " +":attr:`~object.__slots__`. ویژگی ای که نامش شناسه نیست از طریق نشانه گذاری " +"نقطه قابل دسترسی نخواهد بود، اما از طریق :func:`getattr` و غیره قابل دسترسی " +"است." #: ../../library/functions.rst:1817 #, fuzzy @@ -4000,9 +3833,9 @@ msgid "" " with two leading underscores) name in order to set it with :func:`setattr`." msgstr "" "از آنجا که :ref:`private name mangling ` در زمان " -"کامپایل اتفاق می افتد، برای تنظیم یک ویژگی خصوصی (ویژگی هایی با دو زیرخط " -"پیشرو), باید به صورت دستی نام آن را تغییر دهید تا با :func:`setattr` تنظیم " -"شود." +"کامپایل رخ می دهد، لازم است که نام یک ویژگی خصوصی (ویژگی هایی با دو خط تیره " +"در ابتدا) را به صورت دستی تغییر دهید تا بتوانید آن را با :func:`setattr` " +"تنظیم کنید." #: ../../library/functions.rst:1826 #, fuzzy @@ -4011,9 +3844,9 @@ msgid "" "``range(start, stop, step)``. The *start* and *step* arguments default to " "``None``." msgstr "" -"یک شیء :term:`slice` بازگردانید که مجموعه ای از شاخص ها را که توسط " -"``range(start, stop, step)`` مشخص شده اند نشان می دهد. آرگومان های *start* و" -" *step* به طور پیش فرض ``None`` هستند." +"یک شیء :term:`slice` را بازگردانید که مجموعه ای از شاخص های مشخص شده توسط " +"``range(start, stop, step)`` را نشان می دهد. آرگومان های *start* و *step* به" +" صورت پیش فرض به ``None`` تنظیم شده اند." #: ../../library/functions.rst:1834 #, fuzzy @@ -4023,10 +3856,10 @@ msgid "" "default). They have no other explicit functionality; however, they are used" " by NumPy and other third-party packages." msgstr "" -"اشیاء برش دارای ویژگی های داده ای تنها خواندنی :attr:`!start`، :attr:`!stop`" -" و :attr:`!step` هستند که صرفاً مقادیر آرگومان ها (یا مقدار پیش فرض آن ها) " -"را برمی گردانند. آن ها هیچ ویژگی عملیاتی دیگری ندارند؛ با این حال، توسط " -"NumPy و سایر بسته های شخص ثالث استفاده می شوند." +"اشیاء Slice دارای ویژگی های داده ای فقط خواندنی :attr:`!start`، " +":attr:`!stop`، و :attr:`!step` هستند که صرفاً مقادیر آرگومان ها (یا مقدار " +"پیش فرض آن ها) را برمی گردانند. آن ها هیچ کارکرد صریح دیگری ندارند؛ با این " +"حال، توسط NumPy و سایر بسته های شخص ثالث استفاده می شوند." #: ../../library/functions.rst:1839 #, fuzzy @@ -4036,10 +3869,10 @@ msgid "" ":func:`itertools.islice` for an alternate version that returns an " ":term:`iterator`." msgstr "" -"اشیاء Slice همچنین زمانی تولید می شوند که از سینتکس اندیس گذاری گسترده " -"استفاده می شود. برای مثال: ``a[start:stop:step]`` یا ``a[start:stop, i]``. " -"به :func:`itertools.islice` مراجعه کنید برای نسخه جایگزینی که یک " -":term:`iterator` برمی گرداند." +"همچنین وقتی از نگارش گسترش یافته ی ایندکس گذاری استفاده می شود، اشیاء برش " +"تولید می شوند. به عنوان مثال: ``a[start:stop:step]`` یا ``a[start:stop, " +"i]``. برای نسخه ای جایگزین که یک :term:`iterator` برمی گرداند، به " +":func:`itertools.islice` مراجعه کنید." #: ../../library/functions.rst:1844 #, fuzzy @@ -4047,21 +3880,20 @@ msgid "" "Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, " ":attr:`~slice.stop`, and :attr:`~slice.step` are hashable)." msgstr "" -"اشیای Slice اکنون :term:`hashable` هستند (با فرض اینکه :attr:`~slice.start`," -" :attr:`~slice.stop` و :attr:`~slice.step` قابل هش هستند)." +"اشیای Slice اکنون :term:`hashable` هستند (به شرطی که :attr:`~slice.start`، " +":attr:`~slice.stop` و :attr:`~slice.step` قابل هَش باشند)." #: ../../library/functions.rst:1850 #, fuzzy msgid "Return a new sorted list from the items in *iterable*." -msgstr "بازگرداندن یک لیست مرتب جدید از آیتم های موجود در *iterable*." +msgstr "یک لیست جدید مرتب شده از آیتم های موجود در *iterable* بازگردانید." #: ../../library/functions.rst:1852 #, fuzzy msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" -"دارای دو آرگومان اختیاری است که باید به صورت آرگومان های کلمه کلیدی مشخص " -"شوند." +"دارای دو آرگومان اختیاری است که باید به صورت آرگومان های کلیدی تعیین شوند." #: ../../library/functions.rst:1854 #, fuzzy @@ -4071,8 +3903,8 @@ msgid "" "``key=str.lower``). The default value is ``None`` (compare the elements " "directly)." msgstr "" -"تابع *key* یک آرگومان را مشخص می کند که از هر عنصر در *iterable* برای " -"استخراج یک کلید مقایسه استفاده می شود (برای مثال, ``key=str.lower``). مقدار " +"*key* یک تابع با یک آرگومان را مشخص می کند که برای استخراج یک کلید مقایسه از" +" هر عنصر در *iterable* استفاده می شود (برای مثال، ``key=str.lower``). مقدار " "پیش فرض ``None`` است (عناصر را مستقیماً مقایسه کنید)." #: ../../library/functions.rst:1858 @@ -4081,8 +3913,8 @@ msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." msgstr "" -"مقدار *reverse* یک مقدار بولی است. اگر بر روی ``True`` تنظیم شود، عناصر لیست" -" به صورتی مرتب می شوند که انگار هر مقایسه ای معکوس شده است." +"*reverse* یک مقدار بولین است. اگر به ``True`` تنظیم شود، عناصر لیست به گونه " +"ای مرتب می شوند که گویی هر مقایسه معکوس شده است." #: ../../library/functions.rst:1861 #, fuzzy @@ -4090,8 +3922,8 @@ msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a" " *key* function." msgstr "" -"از :func:`functools.cmp_to_key` برای تبدیل یک تابع *cmp* به تابع *key* " -"استفاده کنید." +"از :func:`functools.cmp_to_key` استفاده کنید تا یک تابع *cmp* قدیمی را به یک" +" تابع *key* تبدیل کنید." #: ../../library/functions.rst:1864 #, fuzzy @@ -4101,10 +3933,10 @@ msgid "" "compare equal --- this is helpful for sorting in multiple passes (for " "example, sort by department, then by salary grade)." msgstr "" -"تابع داخلی :func:`sorted` تضمین می شود که پایدار باشد. یک مرتب سازی زمانی " -"پایدار است که اطمینان دهد ترتیب نسبی عناصر برابر را تغییر نمی دهد --- این " -"امر برای مرتب سازی در چندین مرحله مفید است (به عنوان مثال, ابتدا بر اساس " -"دپارتمان, سپس بر اساس درجه حقوق مرتب سازی کنید)." +"تابع داخلی :func:`sorted` تضمین شده که پایدار است. یک مرتب سازی زمانی پایدار" +" است که تضمین کند ترتیب نسبی عناصر با مقادیر برابر را تغییر ندهد --- این " +"ویژگی در مرتب سازی در چند مرحله مفید است (برای مثال، ابتدا بر اساس دپارتمان " +"و سپس بر اساس درجه حقوق مرتب سازی شود)." #: ../../library/functions.rst:1869 #, fuzzy @@ -4118,27 +3950,27 @@ msgid "" "mixed type comparisons which can call reflected the :meth:`~object.__gt__` " "method." msgstr "" -"الگوریتم مرتب سازی تنها از مقایسه های ``<`` بین آیتم ها استفاده می کند. " -"درحالی که تعریف یک متد :meth:`~object.__lt__` برای مرتب سازی کافی است، " -":PEP:`8` توصیه می کند که هر شش مقایسه :ref:`rich comparisons ` " -"پیاده سازی شوند. این کار به جلوگیری از بروز باگ ها در هنگام استفاده از همان " -"داده ها با ابزارهای دیگر مرتب سازی مانند :func:`max` که به یک روش زیرین " -"متفاوت وابسته هستند، کمک می کند. پیاده سازی هر شش مقایسه همچنین به جلوگیری " -"از سردرگمی در مقایسه های نوع های مختلط که می توانند متد " -":meth:`~object.__gt__` منعکس شده را فراخوانی کنند، کمک می کند." +"الگوریتم مرتب سازی فقط از مقایسه های ``<`` بین آیتم ها استفاده می کند. در " +"حالی که تعریف یک روش :meth:`~object.__lt__` برای مرتب سازی کافی است، " +":PEP:`8` توصیه می کند که هر شش :ref:`rich comparisons ` پیاده " +"سازی شوند. این امر به جلوگیری از باگ ها هنگامی که از همان داده ها با " +"ابزارهای ترتیب دهی دیگر که وابسته به یک روش زیرین متفاوت مانند :func:`max` " +"هستند، کمک می کند. پیاده سازی هر شش مقایسه همچنین به جلوگیری از سردرگمی در " +"مقایسه های نوع مختلط که می توانند روش منعکس شده :meth:`~object.__gt__` را " +"فراخوانی کنند، کمک می کند." #: ../../library/functions.rst:1878 #, fuzzy msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" -"برای مثال های مرتب سازی و یک آموزش کوتاه مرتب سازی، به :ref:`sortinghowto` " +"برای مثال های مرتب سازی و یک آموزش مختصر مرتب سازی، به :ref:`sortinghowto` " "مراجعه کنید." #: ../../library/functions.rst:1882 #, fuzzy msgid "Transform a method into a static method." -msgstr "یک متد را به یک متد استاتیک تبدیل کنید." +msgstr "تبدیل یک متد به یک متد ایستا." #: ../../library/functions.rst:1884 #, fuzzy @@ -4146,8 +3978,8 @@ msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" msgstr "" -"یک متد استاتیک، اولین آرگومان را به طور ضمنی دریافت نمی کند. برای اعلام یک " -"متد استاتیک از این روش استفاده کنید::" +"یک متد استاتیک، آرگومان اول اولیه را به صورت ضمنی دریافت نمی کند. برای تعریف" +" یک متد استاتیک از این روش استفاده کنید::" #: ../../library/functions.rst:1887 #, fuzzy @@ -4156,7 +3988,7 @@ msgid "" " @staticmethod\n" " def f(arg1, arg2, argN): ..." msgstr "" -"class C:\n" +"کلاس C:\n" " @staticmethod\n" " def f(arg1, arg2, argN): ..." @@ -4177,10 +4009,10 @@ msgid "" ":term:`descriptor` is also callable, so it can be used in the class " "definition (such as ``f()``)." msgstr "" -"یک متد ایستا می تواند یا روی کلاس (مانند ``C.f()``) یا روی یک نمونه (مانند " -"``C().f()``) فراخوانی شود. علاوه بر این، متد ایستا :term:`descriptor` نیز " -"قابل فراخوانی است، بنابراین می توان در تعریف کلاس (مانند ``f()``) از آن " -"استفاده کرد." +"یک متد استاتیک می تواند یا بر روی کلاس (مانند ``C.f()``) یا بر روی یک نمونه " +"(مانند ``C().f()``) فراخوانی شود. علاوه بر این، متد استاتیک " +":term:`descriptor` نیز قابل فراخوانی است، بنابراین می تواند در تعریف کلاس " +"(مانند ``f()``) استفاده شود." #: ../../library/functions.rst:1899 #, fuzzy @@ -4189,9 +4021,9 @@ msgid "" "see :func:`classmethod` for a variant that is useful for creating alternate " "class constructors." msgstr "" -"متدهای استاتیک در پایتون مشابه آن هایی هستند که در جاوا یا C++ یافت می شوند." -" همچنین، :func:`classmethod` را ببینید که یک واریانت مفید برای ایجاد سازنده " -"های کلاس جایگزین است." +"متدهای استاتیک در پایتون شبیه به آن هایی هستند که در جاوا یا C++ یافت می " +"شوند. همچنین، :func:`classmethod` را برای نوعی ببینید که برای ایجاد سازنده " +"های کلاس جایگزین مفید است." #: ../../library/functions.rst:1903 #, fuzzy @@ -4202,11 +4034,10 @@ msgid "" "want to avoid the automatic transformation to instance method. For these " "cases, use this idiom::" msgstr "" -"مانند تمام دکوراتورها، این امکان نیز وجود دارد که ``staticmethod`` را به " -"عنوان یک تابع عادی فراخوانی کنید و کاری با نتیجه آن انجام دهید. این در برخی " -"موارد لازم است که به ارجاعی به یک تابع از بدنه کلاس نیاز دارید و می خواهید " -"از تبدیل خودکار به متد نمونه جلوگیری کنید. برای این موارد، از این عبارت " -"استفاده کنید::" +"مانند تمام دکوراتورها، این امکان وجود دارد که ``staticmethod`` را به عنوان " +"یک تابع معمولی فراخوانی کرده و کاری با نتیجه آن انجام دهید. این در مواردی که" +" نیاز به مرجع یک تابع از بدنه یک کلاس دارید و می خواهید از تبدیل خودکار به " +"متد نمونه جلوگیری کنید، لازم است. برای این موارد، از این روش استفاده کنید::" #: ../../library/functions.rst:1909 #, fuzzy @@ -4217,17 +4048,16 @@ msgid "" "class C:\n" " method = staticmethod(regular_function)" msgstr "" -"def regular_function():\n" +"تعریف تابع عادی:\n" " ...\n" "\n" -"class C:\n" +"کلاس C:\n" " method = staticmethod(regular_function)" #: ../../library/functions.rst:1915 #, fuzzy msgid "For more information on static methods, see :ref:`types`." -msgstr "" -"برای اطلاعات بیشتر در مورد متدهای استاتیک، به :ref:`types` مراجعه کنید." +msgstr "برای اطلاعات بیشتر در مورد متدهای ایستا، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:1917 #, fuzzy @@ -4238,8 +4068,8 @@ msgid "" ":attr:`~function.__annotations__`), have a new ``__wrapped__`` attribute, " "and are now callable as regular functions." msgstr "" -"متدهای ایستا اکنون ویژگی های متد (:attr:`~function.__module__`, " -":attr:`~function.__name__`, :attr:`~function.__qualname__`, " +"متدهای استاتیک اکنون ویژگی های متدها (:attr:`~function.__module__`، " +":attr:`~function.__name__`، :attr:`~function.__qualname__`، " ":attr:`~function.__doc__` و :attr:`~function.__annotations__`) را به ارث می " "برند، یک ویژگی جدید به نام ``__wrapped__`` دارند و اکنون به عنوان توابع " "معمولی قابل فراخوانی هستند." @@ -4249,8 +4079,7 @@ msgstr "" msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" -"نسخه :class:`str` از *object* را برگردانید. برای جزئیات، به :func:`str` " -"مراجعه کنید." +"نسخه ای از *object* برگشت دهید. برای جزئیات به :func:`str` مراجعه کنید." #: ../../library/functions.rst:1935 #, fuzzy @@ -4258,8 +4087,8 @@ msgid "" "``str`` is the built-in string :term:`class`. For general information about" " strings, see :ref:`textseq`." msgstr "" -"``str`` رشته ی داخلی :term:`class` است. برای اطلاعات عمومی درباره رشته ها، " -"به :ref:`textseq` مراجعه کنید." +"``str`` رشته ای داخلی است :term:`class`. برای اطلاعات کلی درباره رشته ها، به" +" :ref:`textseq` مراجعه کنید." #: ../../library/functions.rst:1941 #, fuzzy @@ -4268,9 +4097,9 @@ msgid "" "the total. The *iterable*'s items are normally numbers, and the start value" " is not allowed to be a string." msgstr "" -"مجموعه *start* و اقلام یک *iterable* از چپ به راست جمع بندی شده و کل مقدار " -"را بازمی گرداند. اقلام *iterable* به صورت معمول اعداد هستند و مقدار شروع نمی" -" تواند یک رشته باشد." +"مجموع *start* و آیتم های یک *iterable* را از چپ به راست محاسبه کرده و حاصل " +"را برمی گرداند. آیتم های *iterable* معمولاً اعداد هستند و مقدار شروع نمی " +"تواند یک رشته باشد." #: ../../library/functions.rst:1945 #, fuzzy @@ -4281,16 +4110,16 @@ msgid "" "precision, see :func:`math.fsum`\\. To concatenate a series of iterables, " "consider using :func:`itertools.chain`." msgstr "" -"برای برخی از موارد استفاده، جایگزین های مناسبی برای :func:`sum` وجود دارد. " -"روش ترجیحی و سریع برای اتصال یک دنباله از رشته ها، فراخوانی " -"``''.join(sequence)`` است. برای افزودن مقادیر اعشاری با دقت بالا، به " -":func:`math.fsum` مراجعه کنید. برای اتصال یک سری از تکرارپذیرها، استفاده از " -":func:`itertools.chain` را در نظر بگیرید." +"برای برخی موارد استفاده، جایگزین های خوبی برای :func:`sum` وجود دارد. روش " +"سریع و ترجیحی برای متصل کردن دنباله ای از رشته ها، فراخوانی " +"``''.join(sequence)`` است. برای جمع کردن مقادیر شناور با دقت بیشتر، به " +":func:`math.fsum` مراجعه کنید. برای متصل کردن رشته ای از iterable ها، در نظر" +" داشته باشید که از :func:`itertools.chain` استفاده کنید." #: ../../library/functions.rst:1951 #, fuzzy msgid "The *start* parameter can be specified as a keyword argument." -msgstr "می توان پارامتر *start* را به عنوان یک آرگومان کلیدی مشخص کرد." +msgstr "پارامتر *start* می تواند به عنوان یک آرگومان کلیدواژه مشخص شود." #: ../../library/functions.rst:1954 #, fuzzy @@ -4298,8 +4127,8 @@ msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." msgstr "" -"جمع اعداد اعشاری به الگوریتمی تغییر یافت که در اکثر بیلدها دقت بالاتر و " -"جابجایی بهتری دارد." +"مجموع اعداد اعشاری به الگوریتمی تبدیل شد که دقت بیشتری دارد و در بیشتر ساخت " +"ها قابلیت جایگشت بهتری ارائه می دهد." #: ../../library/functions.rst:1961 #, fuzzy @@ -4308,9 +4137,9 @@ msgid "" "class of *type*. This is useful for accessing inherited methods that have " "been overridden in a class." msgstr "" -"یک شی نماینده برگردانید که فراخوانی های متد را به کلاس والد یا هم سطح *type*" -" واگذار می کند. این برای دسترسی به متدهای به ارث رسیده که در یک کلاس نادیده " -"گرفته شده اند، مفید است." +"یک شیء نماینده را بازمی گرداند که فراخوانی متدها را به یک کلاس والد یا هم " +"سطح از *type* واگذار می کند. این کار برای دستیابی به متدهای به ارث برده شده " +"که در یک کلاس بازنویسی شده اند مفید است." #: ../../library/functions.rst:1965 #, fuzzy @@ -4318,8 +4147,8 @@ msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." msgstr "" -"*object_or_type* تعیین می کند که :term:`method resolution order` جستجو شود. " -"جستجو از کلاسی که درست بعد از *type* است شروع می شود." +"*object_or_type* عامل تعیین کننده :term:`method resolution order` برای جستجو" +" است. جستجو از کلاسی که بلافاصله پس از *type* قرار دارد شروع می شود." #: ../../library/functions.rst:1969 #, fuzzy @@ -4328,9 +4157,9 @@ msgid "" "-> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" -"به عنوان مثال، اگر :attr:`~type.__mro__` از *object_or_type*، ``D -> B -> C " -"-> A -> object`` باشد و مقدار *type* برابر با ``B`` باشد، سپس :func:`super` " -"به جستجوی ``C -> A -> object`` می پردازد." +"به عنوان مثال، اگر :attr:`~type.__mro__` از *object_or_type* برابر با ``D ->" +" B -> C -> A -> object`` باشد و مقدار *type* برابر ``B`` باشد، سپس " +":func:`super` به دنبال ``C -> A -> object`` می گردد." #: ../../library/functions.rst:1973 #, fuzzy @@ -4341,9 +4170,9 @@ msgid "" "whenever the inheritance hierarchy is updated." msgstr "" "ویژگی :attr:`~type.__mro__` کلاس مربوط به *object_or_type*، ترتیب جستجوی حل " -"روش را که توسط هر دو :func:`getattr` و :func:`super` استفاده می شود، فهرست " -"می کند. این ویژگی پویا است و هر زمان که سلسله مراتب وراثت به روزرسانی شود، " -"می تواند تغییر کند." +"روش را که توسط :func:`getattr` و :func:`super` استفاده می شود، فهرست می کند." +" این ویژگی دینامیک است و هر زمان که سلسله مراتب وراثت به روزرسانی شود، می " +"تواند تغییر کند." #: ../../library/functions.rst:1978 #, fuzzy @@ -4353,10 +4182,10 @@ msgid "" "If the second argument is a type, ``issubclass(type2, type)`` must be true " "(this is useful for classmethods)." msgstr "" -"اگر آرگومان دوم حذف شود، شیء `super` بازگشتی بدون باند خواهد بود. اگر " -"آرگومان دوم یک شیء باشد، باید ``isinstance(obj, type)`` صحیح باشد. اگر " -"آرگومان دوم یک نوع باشد، باید ``issubclass(type2, type)`` صحیح باشد (این " -"برای متدهای کلاسی مفید است)." +"اگر آرگومان دوم حذف شود، شیء super برگردانده شده بدون محدودیت خواهد بود. " +"اگر آرگومان دوم یک شیء باشد، ``isinstance(obj, type)`` باید درست باشد. اگر " +"آرگومان دوم یک نوع باشد، ``issubclass(type2, type)`` باید درست باشد (این " +"برای classmethods مفید است)." #: ../../library/functions.rst:1983 #, fuzzy @@ -4368,12 +4197,12 @@ msgid "" "argument :func:`!super` will not work as expected within nested functions, " "including generator expressions, which implicitly create nested functions.)" msgstr "" -"هنگامی که مستقیماً در یک متد عادی یک کلاس فراخوانی می شود، هر دو آرگومان " +"هنگامی که مستقیماً در یک متد معمولی از یک کلاس فراخوانی شود، هر دو آرگومان " "ممکن است حذف شوند (\":func:`!super` بدون آرگومان\"). در این حالت، *type* " -"کلاس محصور کننده و *obj* اولین آرگومان تابع محصور کننده بلافاصله (معمولاً " -"``self``) خواهد بود. (این بدان معناست که استفاده از :func:`!super` بدون " -"آرگومان در توابع تو در تو, از جمله عبارات تولید کننده که به طور ضمنی توابع " -"تو در تو ایجاد می کنند, مطابق انتظار کار نخواهد کرد.)" +"کلاس محصورکننده خواهد بود، و *obj* اولین آرگومان تابع بلافاصله محصورکننده " +"(معمولاً ``self``) خواهد بود. (این بدان معناست که :func:`!super` بدون " +"آرگومان در توابع تو در تو، از جمله عبارت های مولد، که به طور ضمنی توابع تو " +"در تو ایجاد می کنند، به درستی کار نخواهد کرد.)" #: ../../library/functions.rst:1990 #, fuzzy @@ -4383,10 +4212,10 @@ msgid "" "naming them explicitly, thus making the code more maintainable. This use " "closely parallels the use of *super* in other programming languages." msgstr "" -"دو کاربرد معمول برای *super* وجود دارد. در یک سلسله مراتب کلاسی با وراثت " -"یگانه، می توان از *super* برای اشاره به کلاس های والد بدون نام گذاری صریح آن" -" ها استفاده کرد، که به این ترتیب کد قابل نگهداری تر می شود. این کاربرد به " -"شدت مشابه استفاده از *super* در دیگر زبان های برنامه نویسی است." +"دو کاربرد معمول برای *super* وجود دارد. در سلسله مراتب کلاس با وراثت تک " +"گانه، *super* می تواند برای ارجاع به کلاس های والد بدون نام گذاری صریح آن ها" +" استفاده شود، و به این ترتیب کد قابل نگهداری تر می شود. این استفاده به طور " +"نزدیک با استفاده از *super* در زبان های برنامه نویسی دیگر مشابه است." #: ../../library/functions.rst:1995 #, fuzzy @@ -4401,21 +4230,21 @@ msgid "" "that order adapts to changes in the class hierarchy, and because that order " "can include sibling classes that are unknown prior to runtime)." msgstr "" -"مورد استفاده دوم پشتیبانی از ارث بری چندگانه تعاونی در محیط اجرایی پویا است." -" این مورد استفاده مختص پایتون است و در زبان های کامپایل شده استاتیک یا زبان " -"هایی که تنها از ارث بری تکی پشتیبانی می کنند، یافت نمی شود. این امکان وجود " -"دارد تا \"نمودارهای الماس\" را پیاده سازی کرد جایی که چندین کلاس پایه همان " -"متد را پیاده سازی می کنند. طراحی خوب ایجاب می کند که چنین پیاده سازی هایی در" -" هر مورد دارای امضای فراخوانی مشابه باشند (زیرا ترتیب فراخوانی ها در زمان " -"اجرا تعیین می شود, زیرا این ترتیب به تغییرات در سلسله مراتب کلاس ها سازگار " -"است, و زیرا این ترتیب می تواند شامل کلاس های هم سطحی باشد که پیش از زمان " -"اجرا ناشناخته هستند)." +"مورد استفاده دوم برای پشتیبانی از ارث بری چندگانه تعاونی در یک محیط اجرای " +"پویا است. این مورد استفاده به طور منحصر به فرد به پایتون تعلق دارد و در زبان" +" های که به صورت ایستا کامپایل می شوند یا تنها از ارث بری تکی پشتیبانی می " +"کنند، یافت نمی شود. این امکان را فراهم می کند تا \"نمودارهای الماس\" پیاده " +"سازی شود، جایی که کلاس های پایه متعدد یک روش یکسان را پیاده سازی می کنند. " +"طراحی خوب ایجاب می کند که چنین پیاده سازی هایی در هر مورد امضای یکسانی برای " +"فراخوانی داشته باشند (زیرا ترتیب فراخوانی ها در زمان اجرا تعیین می شود، زیرا" +" آن ترتیب با تغییرات در سلسله مراتب کلاس تطابق می یابد، و زیرا آن ترتیب می " +"تواند شامل کلاس های هم رده ای باشد که قبل از زمان اجرا ناشناخته هستند)." #: ../../library/functions.rst:2005 #, fuzzy msgid "For both use cases, a typical superclass call looks like this::" msgstr "" -"برای هر دو مورد استفاده، یک فراخوانی به کلاس پایه معمولاً به این شکل است::" +"برای هر دو مورد استفاده، یک فراخوانی معمولی به ابرکلاس به این صورت است::" #: ../../library/functions.rst:2007 #, fuzzy @@ -4425,9 +4254,9 @@ msgid "" " super().method(arg) # This does the same thing as:\n" " # super(C, self).method(arg)" msgstr "" -"class C(B):\n" +"کلاس C(B):\n" " def method(self, arg):\n" -" super().method(arg) # This does the same thing as:\n" +" super().method(arg) # این همان کاری را انجام می دهد که:\n" " # super(C, self).method(arg)" #: ../../library/functions.rst:2012 @@ -4437,9 +4266,9 @@ msgid "" "lookups. One possible use case for this is calling :term:`descriptors " "` in a parent or sibling class." msgstr "" -"علاوه بر جستجوهای متد، :func:`super` برای جستجوی ویژگی ها نیز کار می کند. " -"یکی از موارد ممکن استفاده از این، فراخوانی :term:`descriptors ` " -"در یک کلاس والد یا هم سطح است." +"علاوه بر جستجوی متد، :func:`super` همچنین برای جستجوی ویژگی ها نیز کار می " +"کند. یکی از موارد استفاده ممکن برای این کاربرد، فراخوانی :term:`descriptors " +"` در یک کلاس والد یا خواهر و برادر است." #: ../../library/functions.rst:2016 #, fuzzy @@ -4451,13 +4280,12 @@ msgid "" "inheritance. Accordingly, :func:`super` is undefined for implicit lookups " "using statements or operators such as ``super()[name]``." msgstr "" -"توجه داشته باشید که :func:`super` به عنوان بخشی از فرآیند بایندینگ برای " -"جستجوهای صریح صفت های نقطه دار مانند ``super().__getitem__(name)`` پیاده " -"سازی شده است. این کار را با پیاده سازی متد :meth:`~object.__getattribute__` " -"خود برای جستجو در کلاس ها به ترتیبی قابل پیش بینی که از ارث بری چندگانه " -"تعاونی پشتیبانی می کند انجام می دهد. بنابراین، :func:`super` برای جستجوهای " -"ضمنی با استفاده از عبارات یا عملگرهایی مانند ``super()[name]`` تعریف نشده " -"است." +"توجه داشته باشید که :func:`super` به عنوان بخشی از فرآیند اتصال برای جستجوی " +"صریح ویژگی های نقطه گذاری شده، مانند ``super().__getitem__(name)``، پیاده " +"سازی شده است. این کار را با پیاده سازی روش :meth:`~object.__getattribute__` " +"خود برای جستجوی کلاس ها به روشی قابل پیش بینی که از وراثت چندگانه تعاونی " +"پشتیبانی می کند، انجام می دهد. بر این اساس، :func:`super` برای جستجوهای ضمنی" +" با استفاده از عبارات یا عملگرهایی مانند ``super()[name]`` تعریف نشده است." #: ../../library/functions.rst:2024 #, fuzzy @@ -4469,11 +4297,11 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" -"توجه داشته باشید که، به جز شکل بدون آرگومان، `:func:`super`` محدود به " -"استفاده در داخل متدها نیست. شکل دو آرگومانی، آرگومان ها را به طور دقیق مشخص " -"می کند و ارجاعات مناسب را می سازد. شکل بدون آرگومان فقط در داخل تعریف کلاس " -"کار می کند، زیرا کامپایلر جزئیات لازم را برای بازیابی صحیح کلاس در حال تعریف" -" و همچنین دسترسی به نمونه فعلی برای متدهای عادی پر می کند." +"همچنین توجه داشته باشید که به غیر از حالت بدون آرگومان، :func:`super` محدود " +"به استفاده درون متدها نیست. حالت دو آرگومانی دقیقاً آرگومان ها را مشخص کرده " +"و ارجاعات مناسب را انجام می دهد. فرم بدون آرگومان تنها درون تعریف کلاس کار " +"می کند، چرا که کامپایلر جزئیات لازم را برای بازیابی صحیح کلاس تعریف شده و " +"همچنین دسترسی به نمونه فعلی برای متدهای معمولی کامل می کند." #: ../../library/functions.rst:2031 #, fuzzy @@ -4482,7 +4310,7 @@ msgid "" ":func:`super`, see `guide to using super() " "`_." msgstr "" -"برای پیشنهادات عملی درباره چگونگی طراحی کلاس های همکاری با استفاده از " +"برای پیشنهادهای عملی در مورد نحوه طراحی کلاس های همکار با استفاده از " ":func:`super`، به `guide to using super() " "`_ " "مراجعه کنید." @@ -4493,9 +4321,9 @@ msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." msgstr "" -"در حقیقت، به جای اینکه یک تابع باشد، :class:`tuple` در واقع یک نوع دنبالهٔ " -"تغییرناپذیر است، همان طور که در :ref:`typesseq-tuple` و :ref:`typesseq` " -"مستند شده است." +"به جای اینکه یک تابع باشد، :class:`tuple` در واقع یک نوع دنباله غیرقابل " +"تغییر است، همان طور که در :ref:`typesseq-tuple` و :ref:`typesseq` مستند شده " +"است." #: ../../library/functions.rst:2050 #, fuzzy @@ -4504,9 +4332,9 @@ msgid "" "type object and generally the same object as returned by " ":attr:`object.__class__`." msgstr "" -"با یک آرگومان، نوع یک *object* را برمی گرداند. مقدار بازگشتی یک شیء نوع است " -"و به طور کلی همان شیء ای است که توسط :attr:`object.__class__` برگشت داده می " -"شود." +"با یک آرگومان، نوع یک *object* را برمی گرداند. مقدار بازگشتی یک شیء از نوع " +"است و به طور عمومی همان شیء است که توسط :attr:`object.__class__` برگردانده " +"می شود." #: ../../library/functions.rst:2054 #, fuzzy @@ -4514,7 +4342,7 @@ msgid "" "The :func:`isinstance` built-in function is recommended for testing the type" " of an object, because it takes subclasses into account." msgstr "" -"عملکرد توکار :func:`isinstance` برای آزمودن نوع یک شی توصیه می شود، زیرا " +"تابع داخلی :func:`isinstance` برای آزمایش نوع یک شی توصیه می شود، زیرا " "زیرکلاس ها را نیز در نظر می گیرد." #: ../../library/functions.rst:2057 @@ -4530,13 +4358,13 @@ msgid "" ":attr:`~type.__dict__` attribute. The following two statements create " "identical :class:`!type` objects:" msgstr "" -"با سه آرگومان، یک شیء نوع جدید برمی گرداند. این اساساً یک فرم پویا از دستور " -":keyword:`class` است. رشته *name* نام کلاس است و به ویژگی " -":attr:`~type.__name__` تبدیل می شود. تاپل *bases* شامل کلاس های پایه است و " -"به ویژگی :attr:`~type.__bases__` تبدیل می شود؛ اگر خالی باشد، " -":class:`object`، پایگاه نهایی همه کلاس ها، اضافه می شود. دیکشنری *dict* شامل" -" تعاریف ویژگی ها و روش ها برای بدنه کلاس است؛ ممکن است قبل از تبدیل به ویژگی" -" :attr:`~type.__dict__` کپی شود یا بسته بندی شود. دو دستور زیر اشیاء " +"با سه آرگومان، یک شیء نوع جدید برمی گرداند. این در واقع یک فرم پویا از بیان " +":keyword:`class` است. رشته *name* نام کلاس است و به عنوان ویژگی " +":attr:`~type.__name__` می شود. *bases* یک تاپل شامل کلاس های پایه است و به " +"عنوان ویژگی :attr:`~type.__bases__` می شود؛ اگر خالی باشد، :class:`object`، " +"که پایه نهایت تمام کلاس ها است، اضافه می شود. دیکشنری *dict* شامل تعاریف " +"ویژگی ها و متدها برای بدنه کلاس است؛ ممکن است قبل از اینکه به ویژگی " +":attr:`~type.__dict__` تبدیل شود، کپی یا پیچیده شود. دو جمله زیر اشیاء " ":class:`!type` یکسانی ایجاد می کنند:" #: ../../library/functions.rst:2072 @@ -4556,9 +4384,7 @@ msgstr "" #: ../../library/functions.rst:2075 #, fuzzy msgid ":ref:`bltin-type-objects`" -msgstr "" -"متن شما شامل بخشی برای ترجمه نبود. لطفاً متن اصلی که نیاز به ترجمه دارد را " -"ارسال کنید تا به فارسی ترجمه شود." +msgstr ":ref:`bltin-type-objects`" #: ../../library/functions.rst:2077 #, fuzzy @@ -4568,14 +4394,15 @@ msgid "" "in the same way that keywords in a class definition (besides *metaclass*) " "would." msgstr "" -"استدلالات کلیدی که به فرم سه آرگومان داده می شوند، به مکانیزم متاکلاس مناسب " -"(معمولاً :meth:`~object.__init_subclass__`) به همان روشی که کلمات کلیدی در " -"تعریف کلاس (به جز *metaclass*) داده می شوند، ارسال می گردند." +"آرگومان های کلیدی که به فرم سه آرگومانی ارائه می شوند، به ماشین مرتبط با " +"فرامتناظر مناسب (معمولاً :meth:`~object.__init_subclass__`) به همان صورتی که" +" کلمات کلیدی در تعریف یک کلاس (به جز *metaclass*) منتقل می شوند، پاس داده می" +" شوند." #: ../../library/functions.rst:2082 #, fuzzy msgid "See also :ref:`class-customization`." -msgstr "همچنین نگاه کنید به :ref:`class-customization`." +msgstr "همچنین ببینید :ref:`class-customization`." #: ../../library/functions.rst:2084 #, fuzzy @@ -4583,9 +4410,8 @@ msgid "" "Subclasses of :class:`!type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." msgstr "" -"زیرکلاس های :class:`!type` که ``type.__new__`` را بازتعریف نمی کنند، ممکن " -"است دیگر نتوانند از قالب یک آرگومانی برای بدست آوردن نوع یک شیء استفاده " -"کنند." +"زیرکلاس های :class:`!type` که ``type.__new__`` را تغییر نمی دهند ممکن است " +"دیگر نتوانند از فرم یک پارامتری برای گرفتن نوع یک شیء استفاده کنند." #: ../../library/functions.rst:2091 #, fuzzy @@ -4593,8 +4419,8 @@ msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance," " or any other object with a :attr:`!__dict__` attribute." msgstr "" -"صفت :attr:`~object.__dict__` را برای یک ماژول، کلاس، نمونه یا هر شیء دیگری " -"که دارای صفت :attr:`!__dict__` است، برگردانید." +"ویژگی :attr:`~object.__dict__` را برای یک ماژول، کلاس، نمونه، یا هر شیء " +"دیگری که ویژگی :attr:`!__dict__` را دارد، بازگردانید." #: ../../library/functions.rst:2094 #, fuzzy @@ -4604,16 +4430,16 @@ msgid "" "restrictions on their :attr:`!__dict__` attributes (for example, classes use" " a :class:`types.MappingProxyType` to prevent direct dictionary updates)." msgstr "" -"اشیایی مانند ماژول ها و نمونه ها دارای یک ویژگی قابل به روزرسانی " -":attr:`~object.__dict__` هستند؛ اما، دیگر اشیا ممکن است محدودیت هایی برای " -"نوشتن بر روی ویژگی های :attr:`!__dict__` خود داشته باشند (به عنوان مثال, " -"کلاس ها از یک :class:`types.MappingProxyType` برای جلوگیری از به روزرسانی " -"مستقیم دیکشنری استفاده می کنند)." +"اشیایی مانند ماژول ها و نمونه ها دارای خاصیت :attr:`~object.__dict__` قابل " +"به روزرسانی هستند؛ با این حال، ممکن است سایر اشیا محدودیت های نوشتن بر روی " +"ویژگی های :attr:`!__dict__` خود داشته باشند (به عنوان مثال، کلاس ها از یک " +":class:`types.MappingProxyType` استفاده می کنند تا از به روزرسانی مستقیم " +"دیکشنری جلوگیری کنند)." #: ../../library/functions.rst:2099 #, fuzzy msgid "Without an argument, :func:`vars` acts like :func:`locals`." -msgstr "بدون هیچ آرگومانی، :func:`vars` مانند :func:`locals` عمل می کند." +msgstr "بدون آرگومان، :func:`vars` به صورت :func:`locals` عمل می کند." #: ../../library/functions.rst:2101 #, fuzzy @@ -4622,9 +4448,9 @@ msgid "" "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class" " defines the :attr:`~object.__slots__` attribute)." msgstr "" -"اگر یک شیء مشخص شود ولی صفت :attr:`~object.__dict__` نداشته باشد، یک استثنا " -"از نوع :exc:`TypeError` ایجاد می شود (برای مثال, اگر کلاس آن صفت " -":attr:`~object.__slots__` را تعریف کرده باشد)." +"اگر شیء مشخص شود اما ویژگی :attr:`~object.__dict__` نداشته باشد (به عنوان " +"مثال، اگر کلاس آن ویژگی :attr:`~object.__slots__` را تعریف کرده باشد)، یک " +"استثناء :exc:`TypeError` برانگیخته می شود." #: ../../library/functions.rst:2107 #, fuzzy @@ -4632,8 +4458,8 @@ msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." msgstr "" -"نتیجه ی فراخوانی این تابع بدون آرگومان به روزرسانی شده است، همان طور که برای" -" توکار :func:`locals` توضیح داده شده است." +"نتیجه فراخوانی این تابع بدون آرگومان به روزرسانی شده است همان طور که برای " +":func:`locals` builtin توصیف شد." #: ../../library/functions.rst:2113 #, fuzzy @@ -4641,8 +4467,8 @@ msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." msgstr "" -"از چند iterable به صورت موازی عبور کنید و تاپل هایی با یک آیتم از هر کدام " -"تولید کنید." +"برای تکرار بر روی چندین iterable به صورت موازی و تولید تاپل هایی که شامل " +"آیتمی از هر یک از آن ها باشد." #: ../../library/functions.rst:2116 #, fuzzy @@ -4659,8 +4485,8 @@ msgid "" "(2, 'spice')\n" "(3, 'everything nice')" msgstr "" -">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" -"... print(item)\n" +">>> برای آیتم در zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" +"... print(آیتم)\n" "...\n" "(1, 'sugar')\n" "(2, 'spice')\n" @@ -4672,8 +4498,8 @@ msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." msgstr "" -"به طور رسمی تر: :func:`zip` یک iterator از tuple ها را برمی گرداند، که در آن" -" *i*-امین tuple شامل *i*-امین عنصر از هر یک از iterable های آرگومان است." +"به طور رسمی تر: :func:`zip` یک پیماینده از زوج مرتب ها برمی گرداند، که زوج " +"مرتب *i* شامل عنصر *i* از هر یک از پیمایش پذیرهای آرگومان ها است." #: ../../library/functions.rst:2128 #, fuzzy @@ -4682,8 +4508,8 @@ msgid "" "columns into rows. This is similar to `transposing a matrix " "`_." msgstr "" -"راه دیگری برای درک :func:`zip` این است که سطرها را به ستون ها و ستون ها را " -"به سطرها تبدیل می کند. این شبیه به `transposing a matrix " +"راه دیگری برای فکر کردن به :func:`zip` این است که سطرها را به ستون ها و ستون" +" ها را به سطرها تبدیل می کند. این مشابه `transposing a matrix " "`_ است." #: ../../library/functions.rst:2132 @@ -4693,9 +4519,9 @@ msgid "" "iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a " ":class:`list`." msgstr "" -":func:`zip` تنبل است: عناصر پردازش نخواهند شد تا زمانی که به روی آی ترابل " -"iteration انجام شود، به عنوان مثال توسط یک حلقه :keyword:`!for` یا با بسته " -"بندی در یک :class:`list`." +":func:`zip` تنبل است: عناصر تا زمانی که روی iterable تکرار نشود پردازش نمی " +"شوند، به عنوان مثال توسط یک :keyword:`!for` loop یا با قرار دادن در یک " +":class:`list`." #: ../../library/functions.rst:2136 #, fuzzy @@ -4705,10 +4531,10 @@ msgid "" "the code that prepared these iterables. Python offers three different " "approaches to dealing with this issue:" msgstr "" -"یک نکته ای که باید در نظر گرفت این است که ممکن است قابل تکرارهایی که به " -"`:func:`zip`` داده می شوند طول های متفاوتی داشته باشند؛ گاهی به دلیل طراحی و" -" گاهی به خاطر یک باگ در کدی که این قابل تکرارها را آماده کرده است. پایتون سه" -" رویکرد متفاوت برای مقابله با این مشکل ارائه می دهد:" +"نکته ای که باید در نظر داشته باشید این است که تکرارشونده هایی که به " +":func:`zip` ارسال می شوند ممکن است طول های متفاوتی داشته باشند؛ گاهی به دلیل" +" طراحی و گاهی به علت وجود اشکالی در کدی که این تکرارشونده ها را آماده کرده " +"است. پایتون سه روش مختلف برای مقابله با این مسئله ارائه می دهد:" #: ../../library/functions.rst:2141 #, fuzzy @@ -4717,9 +4543,9 @@ msgid "" "will ignore the remaining items in the longer iterables, cutting off the " "result to the length of the shortest iterable::" msgstr "" -"به طور پیش فرض، :func:`zip` زمانی که کوتاه ترین تکرارپذیر به پایان می رسد، " -"متوقف می شود. این تابع آیتم های باقی مانده در تکرارپذیرهای طولانی تر را " -"نادیده می گیرد و نتیجه را به طول کوتاه ترین تکرارپذیر محدود می کند::" +"به طور پیش فرض، :func:`zip` زمانی متوقف می شود که کوتاه ترین iterable به " +"پایان برسد. آیتم های باقی مانده در iterables بلندتر را نادیده می گیرد و " +"نتیجه را به طول کوتاه ترین iterable محدود می کند::" #: ../../library/functions.rst:2145 #, fuzzy @@ -4737,9 +4563,9 @@ msgid "" "equal length. In such cases, it's recommended to use the ``strict=True`` " "option. Its output is the same as regular :func:`zip`::" msgstr "" -":func:`zip` معمولاً در مواردی استفاده می شود که فرض بر این است که iterableها" -" دارای طول یکسانی هستند. در چنین مواردی، توصیه می شود از گزینه " -"``strict=True`` استفاده شود. خروجی آن مشابه :func:`zip` معمولی است::" +"اغلباً از :func:`zip` در مواردی استفاده می شود که فرض بر این است که " +"تکرارگرها برابر طول هستند. در چنین مواردی، توصیه می شود از گزینه " +"``strict=True`` استفاده کنید. خروجی آن همانند :func:`zip` معمولی می باشد::" #: ../../library/functions.rst:2152 #, fuzzy @@ -4756,7 +4582,7 @@ msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " "is exhausted before the others:" msgstr "" -"برخلاف رفتار پیش فرض، اگر یکی از iterable ها قبل از بقیه به اتمام برسد، یک " +"برخلاف رفتار پیش فرض، اگر یکی از iterableها پیش از دیگری تمام شود، یک " ":exc:`ValueError` ایجاد می کند:" #: ../../library/functions.rst:2173 @@ -4766,9 +4592,9 @@ msgid "" "different lengths will be silenced, possibly manifesting as a hard-to-find " "bug in another part of the program." msgstr "" -"بدون آرگومان ``strict=True``، هر باگی که منجر به طول های متفاوت در تکرار " -"شونده ها شود نادیده گرفته می شود و ممکن است به عنوان یک باگ سخت در بخش دیگری" -" از برنامه ظاهر شود." +"بدون آرگومان ``strict=True``، هر باگی که منجر به طول های مختلف در iterable " +"ها شود بدون اعلان باقی می ماند و ممکن است به صورت باگی که سخت پیدا می شود در" +" بخش دیگری از برنامه ظاهر شود." #: ../../library/functions.rst:2177 #, fuzzy @@ -4777,9 +4603,8 @@ msgid "" "iterables have the same length. This is done by " ":func:`itertools.zip_longest`." msgstr "" -"به منظور اینکه تمامی اشیاء قابل تکرار طول یکسانی داشته باشند، می توان اشیاء " -"قابل تکرار کوتاه تر را با یک مقدار ثابت تکمیل کرد. این کار با استفاده از " -":func:`itertools.zip_longest` انجام می شود." +"می توان برای کوتاه ترهای قابل تکرار از مقدار ثابت استفاده کرد تا همه ی آن ها" +" به طول یکسان برسند. این کار با :func:`itertools.zip_longest` انجام می شود." #: ../../library/functions.rst:2181 #, fuzzy @@ -4787,8 +4612,8 @@ msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator" " of 1-tuples. With no arguments, it returns an empty iterator." msgstr "" -"موارد خاص: با یک آرگومان قابل تکرار، :func:`zip` یک تکرارگر از 1-تایی ها را " -"بازمی گرداند. بدون هیچ آرگومانی، یک تکرارگر خالی را بازمی گرداند." +"موارد خاص: با یک آرگومان قابل تکرار، :func:`zip` یک تکرارگر از ۱-تاپل ها را " +"بازمی گرداند. بدون هیچ آرگومانی، یک تکرارگر خالی را برمی گرداند." #: ../../library/functions.rst:2184 #, fuzzy @@ -4804,12 +4629,11 @@ msgid "" "``n`` times so that each output tuple has the result of ``n`` calls to the " "iterator. This has the effect of dividing the input into n-length chunks." msgstr "" -"ترتیب ارزیابی از چپ به راست برای iterableها تضمین شده است. این امر امکان " -"استفاده از یک اصطلاح برای خوشه بندی یک سری داده به گروه های با طول n را با " -"استفاده از ``zip(*[iter(s)]*n, strict=True)`` فراهم می کند. این کار، تکرار " -"کننده *same* را ``n`` بار تکرار می کند به طوری که هر tuple خروجی نتیجه ``n``" -" بار فراخوانی تکرارکننده را در بر دارد. این تاثیر تقسیم ورودی به بخش های با " -"طول n را دارد." +"ترتیب ارزیابی از چپ به راست برای قابل تکرارها تضمین شده است. این امکان یک " +"رویکرد برای گروه بندی یک سری داده به گروه های n تایی را با استفاده از " +"``zip(*[iter(s)]*n, strict=True)`` فراهم می کند. این فرآیند، تکرارگر *same* " +"را ``n`` بار تکرار می کند تا هر زوج خروجی نتیجه ``n`` فراخوانی از تکرارگر را" +" داشته باشد. این کار اثر تقسیم ورودی به قطعات n تایی را دارد." #: ../../library/functions.rst:2192 #, fuzzy @@ -4817,8 +4641,7 @@ msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" msgstr "" -":func:`zip` به همراه عملگر ``*`` می تواند برای باز کردن یک لیست استفاده " -"شود::" +":func:`zip` همراه با عملگر ``*`` می تواند برای استخراج لیست استفاده شود::" #: ../../library/functions.rst:2195 #, fuzzy @@ -4842,7 +4665,7 @@ msgstr "" #: ../../library/functions.rst:2203 #, fuzzy msgid "Added the ``strict`` argument." -msgstr "افزودن آرگومان ``strict``." +msgstr "آرگومان ``strict`` اضافه شد." #: ../../library/functions.rst:2215 #, fuzzy @@ -4851,7 +4674,7 @@ msgid "" "programming, unlike :func:`importlib.import_module`." msgstr "" "این یک تابع پیشرفته است که برخلاف :func:`importlib.import_module` در برنامه " -"نویسی روزمره پایتون مورد نیاز نیست." +"نویسی روزمره پایتون نیازی به آن نیست." #: ../../library/functions.rst:2218 #, fuzzy @@ -4865,13 +4688,13 @@ msgid "" "implementation is in use. Direct use of :func:`__import__` is also " "discouraged in favor of :func:`importlib.import_module`." msgstr "" -"این تابع توسط عبارت :keyword:`import` فراخوانی می شود. برای تغییر معنای " -"عبارت :keyword:`!import` می توان آن را (با وارد کردن ماژول :mod:`builtins` و" -" اختصاص به ``builtins.__import__``) جایگزین کرد، اما این کار به شدت " -"**strongly** توصیه نمی شود زیرا به طور معمول استفاده از قلاب های واردات (به " -":pep:`302` مراجعه کنید) برای دستیابی به همان اهداف ساده تر است و مشکلاتی با " -"کدی که فرض می کند پیاده سازی واردات پیش فرض در حال استفاده است، ایجاد نمی " -"کند. استفاده مستقیم از :func:`__import__` نیز به نفع " +"این تابع توسط دستور :keyword:`import` فراخوانی می شود. می توان آن را با وارد" +" کردن ماژول :mod:`builtins` و اختصاص دادن به ``builtins.__import__`` جایگزین" +" کرد تا تغییراتی در معناشناسی دستور :keyword:`!import` ایجاد شود، اما انجام " +"این کار به شدت **strongly** توصیه نمی شود زیرا معمولاً استفاده از قلاب های " +"ورود (به :pep:`302` مراجعه کنید) برای دستیابی به همان اهداف ساده تر است و " +"مشکلاتی با کدهایی که فرض می کنند پیاده سازی پیش فرض واردات در حال استفاده " +"است، ایجاد نمی کند. استفاده مستقیم از :func:`__import__` نیز به نفع " ":func:`importlib.import_module` توصیه نمی شود." #: ../../library/functions.rst:2227 @@ -4884,12 +4707,12 @@ msgid "" "does not use its *locals* argument at all and uses its *globals* only to " "determine the package context of the :keyword:`import` statement." msgstr "" -"این تابع ماژول *name* را ایمپورت می کند، و ممکن است از *globals* و *locals* " -"داده شده برای تعیین نحوه تفسیر نام در یک زمینه بسته استفاده کند. *fromlist* " -"نام اشیاء یا زیرماژول هایی را می دهد که باید از ماژولی که توسط *name* داده " -"شده است، ایمپورت شوند. پیاده سازی استاندارد از آرگومان *locals* خود به هیچ " -"وجه استفاده نمی کند و از *globals* خود تنها برای تعیین زمینه بسته عبارت " -":keyword:`import` استفاده می کند." +"تابع ماژول *name* را وارد می کند و احتمالاً از *globals* و *locals* داده شده" +" برای تعیین نحوه تفسیر نام در یک زمینه بسته استفاده می کند. *fromlist* نام " +"اشیاء یا زیرماژول هایی را که باید از ماژول *name* وارد شوند، ارائه می دهد. " +"پیاده سازی استاندارد به هیچ وجه از آرگومان *locals* استفاده نمی کند و تنها " +"برای تعیین زمینه بسته عبارت :keyword:`import` از *globals* خود استفاده می " +"کند." #: ../../library/functions.rst:2234 #, fuzzy @@ -4900,11 +4723,11 @@ msgid "" "directory of the module calling :func:`__import__` (see :pep:`328` for the " "details)." msgstr "" -"*level* مشخص می کند که آیا از واردات مطلق یا نسبی استفاده شود. ``0`` (پیش " -"فرض) به معنی انجام فقط واردات مطلق است. مقادیر مثبت برای *level* تعداد " -"دایرکتوری های پدر را که نسبت به دایرکتوری ماژولی که :func:`__import__` را " -"فراخوانی می کند جستجو می شوند، نشان می دهد (برای جزئیات به :pep:`328` مراجعه" -" کنید)." +"*level* مشخص می کند که آیا از ایمپورت های مطلق یا نسبی استفاده شود. ``0`` " +"(به طور پیش فرض) به معنای این است که فقط ایمپورت های مطلق انجام شود. مقادیر " +"مثبت برای *level* نشان دهنده تعداد دایرکتوری های والد است که باید نسبت به " +"دایرکتوری ماژولی که :func:`__import__` را فراخوانی می کند جستجو انجام شود " +"(برای جزئیات به :pep:`328` مراجعه کنید)." #: ../../library/functions.rst:2240 #, fuzzy @@ -4914,10 +4737,10 @@ msgid "" "module named by *name*. However, when a non-empty *fromlist* argument is " "given, the module named by *name* is returned." msgstr "" -"هنگامی که متغیر *name* به شکل ``package.module`` باشد، معمولاً بسته سطح بالا" -" (نام تا اولین نقطه) برگشت داده می شود، *not* ماژول نام گذاری شده توسط " -"*name*. با این حال، هنگامی که یک آرگومان غیرخالی *fromlist* داده می شود، " -"ماژول نام گذاری شده توسط *name* برگشت داده می شود." +"هنگامی که متغیر *name* به فرم ``package.module`` باشد، معمولاً بسته سطح بالا" +" (نام تا اولین نقطه) بازگردانده می شود، *not* ماژولی که با *name* نامگذاری " +"شده است. با این حال، هنگامی که یک آرگومان *fromlist* غیر خالی داده شود، " +"ماژول با نام *name* بازگردانده می شود." #: ../../library/functions.rst:2245 #, fuzzy @@ -4925,8 +4748,8 @@ msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" msgstr "" -"به عنوان مثال، عبارت ``import spam`` به بایت کدی شبیه به کد زیر منجر می " -"شود::" +"به عنوان مثال، عبارت ``import spam`` منجر به بایت کدی می شود که مشابه کد زیر" +" است:" #: ../../library/functions.rst:2248 #, fuzzy @@ -4950,7 +4773,7 @@ msgid "" " the object that is bound to a name by the :keyword:`import` statement." msgstr "" "توجه کنید که :func:`__import__` در اینجا ماژول سطح بالا را برمی گرداند زیرا " -"این شیء است که با عبارت :keyword:`import` به نامی متصل شده است." +"این همان شی ء است که توسط عبارت :keyword:`import` به یک نام متصل شده است." #: ../../library/functions.rst:2257 #, fuzzy @@ -4958,8 +4781,8 @@ msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" -"از طرف دیگر، عبارت ``from spam.ham import eggs, sausage as saus`` به نتیجه " -"می رسد در ::" +"از طرف دیگر، دستور ``from spam.ham import eggs, sausage as saus`` به نتیجه " +"می رسد به ::" #: ../../library/functions.rst:2260 #, fuzzy @@ -4979,8 +4802,8 @@ msgid "" "this object, the names to import are retrieved and assigned to their " "respective names." msgstr "" -"در اینجا، ماژول ``spam.ham`` از :func:`__import__` برگردانده می شود. از این " -"شیء، نام هایی که باید وارد شوند بازیابی شده و به نام های مربوطه خود اختصاص " +"در اینجا، ماژول ``spam.ham`` از :func:`__import__` بازگردانده می شود. از این" +" شیء، نام هایی که باید وارد شوند جستجو شده و به نام های مربوطه خود اختصاص " "داده می شوند." #: ../../library/functions.rst:2268 @@ -4989,8 +4812,8 @@ msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." msgstr "" -"اگر به سادگی می خواهید یک ماژول (احتمالاً درون یک بسته) را با نام وارد کنید،" -" از :func:`importlib.import_module` استفاده کنید." +"اگر می خواهید تنها یک ماژول (احتمالاً درون یک بسته) را با نام وارد کنید، از " +":func:`importlib.import_module` استفاده کنید." #: ../../library/functions.rst:2271 #, fuzzy @@ -4998,7 +4821,7 @@ msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." msgstr "" -"دیگر مقادیر منفی برای *level* پشتیبانی نمی شوند (که همچنین مقدار پیش فرض را " +"مقادیر منفی برای *level* دیگر پشتیبانی نمی شوند (که همچنین مقدار پیش فرض را " "به 0 تغییر می دهد)." #: ../../library/functions.rst:2275 @@ -5008,7 +4831,7 @@ msgid "" "the environment variable :envvar:`PYTHONCASEOK` is now ignored." msgstr "" "زمانی که گزینه های خط فرمان :option:`-E` یا :option:`-I` استفاده می شوند، " -"متغیر محیطی :envvar:`PYTHONCASEOK` در حال حاضر نادیده گرفته می شود." +"متغیر محیطی :envvar:`PYTHONCASEOK` دیگر نادیده گرفته می شود." #: ../../library/functions.rst:2280 #, fuzzy @@ -5022,9 +4845,9 @@ msgid "" "you are reading the code from a file, make sure to use newline conversion " "mode to convert Windows or Mac-style newlines." msgstr "" -"توجه داشته باشید که تجزیه گر تنها سبک پایان خط یونیکس را می پذیرد. اگر کد را" -" از یک فایل می خوانید، اطمینان حاصل کنید که حالت تبدیل خط جدید را برای تبدیل" -" پایان خط های ویندوز یا مک استفاده کنید." +"توجه داشته باشید که مفسر فقط کنوانسیون پایان خط به سبک یونیکس را می پذیرد. " +"اگر کد را از یک فایل می خوانید، مطمئن شوید که از حالت تبدیل خط جدید برای " +"تبدیل خط های جدید به سبک ویندوز یا مک استفاده کنید." #: ../../library/functions.rst:154 #, fuzzy @@ -5049,7 +4872,7 @@ msgstr "اجرا کردن" #: ../../library/functions.rst:746 #, fuzzy msgid "NaN" -msgstr "نا عدد (NaN)" +msgstr "NaN" #: ../../library/functions.rst:746 #, fuzzy @@ -5059,7 +4882,7 @@ msgstr "بی نهایت" #: ../../library/functions.rst:814 #, fuzzy msgid "__format__" -msgstr "__format__" +msgstr "__فرمت__" #: ../../library/functions.rst:814 ../../library/functions.rst:1925 #, fuzzy @@ -5069,12 +4892,12 @@ msgstr "رشته" #: ../../library/functions.rst:814 #, fuzzy msgid "format() (built-in function)" -msgstr "()format (تابع توکار)" +msgstr "تابع format() (توکار)" #: ../../library/functions.rst:1325 #, fuzzy msgid "file object" -msgstr "شیء فایل" +msgstr "شیء پرونده" #: ../../library/functions.rst:1325 ../../library/functions.rst:1446 #, fuzzy @@ -5089,17 +4912,17 @@ msgstr "فایل" #: ../../library/functions.rst:1353 #, fuzzy msgid "modes" -msgstr "حالت ها" +msgstr "مدها" #: ../../library/functions.rst:1446 #, fuzzy msgid "universal newlines" -msgstr "خطوط جدید جهانی (universal newlines)" +msgstr "خطوط جدید جهانی" #: ../../library/functions.rst:1507 #, fuzzy msgid "line-buffered I/O" -msgstr "ورودی/خروجی با اندازه بافر خطی" +msgstr "ورودی/خروجی بافر خطی" #: ../../library/functions.rst:1507 #, fuzzy @@ -5124,7 +4947,7 @@ msgstr "بافرینگ" #: ../../library/functions.rst:1507 #, fuzzy msgid "text mode" -msgstr "حالت متن" +msgstr "حالت متنی" #: ../../library/functions.rst:1507 ../../library/functions.rst:2209 #, fuzzy @@ -5139,12 +4962,12 @@ msgstr "سیستم" #: ../../library/functions.rst:1925 #, fuzzy msgid "str() (built-in function)" -msgstr "تابع داخلی `str()`" +msgstr "تابع (built-in function) str()" #: ../../library/functions.rst:2048 #, fuzzy msgid "object" -msgstr "شی:" +msgstr "شیء" #: ../../library/functions.rst:2209 #, fuzzy diff --git a/tutorial/classes.po b/tutorial/classes.po index 228c385af..8cf83a608 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -35,12 +35,11 @@ msgid "" "attributes attached to it for maintaining its state. Class instances can " "also have methods (defined by its class) for modifying its state." msgstr "" -"کلاس ها روشی برای بسته بندی داده ها و عملکردها به صورت یکجا ارائه می دهند. " -"ایجاد یک کلاس جدید، نوع جدیدی از شیء را ایجاد می کند که امکان ایجاد نمونه " -"های جدید از آن نوع را فراهم می سازد. هر نمونه از کلاس می تواند دارای ویژگی " -"هایی باشد که برای نگهداری وضعیت آن به آن وصل می شود. نمونه های کلاس همچنین " -"می توانند متدهایی (که توسط کلاس تعریف شده اند) برای تغییر وضعیت خود داشته " -"باشند." +"کلاس ها وسیله ای را برای باندل کردن داده و عملکرد با هم فراهم می کنند. ایجاد" +" یک کلاس جدید، نوع جدیدی از *type* ایجاد می کند که اجازه می دهد *instances* " +"جدیدی از آن نوع ساخته شود. هر نمونه از کلاس می تواند صفاتی داشته باشد که به " +"آن متصل شده اند تا وضعیت آن را حفظ کنند. نمونه های کلاس می توانند همچنین " +"متدهایی (که توسط کلاس تعریف شده اند) داشته باشند تا وضعیت آن را تغییر دهند." #: ../../tutorial/classes.rst:13 #, fuzzy @@ -56,16 +55,16 @@ msgid "" "nature of Python: they are created at runtime, and can be modified further " "after creation." msgstr "" -"در مقایسه با زبان های برنامه نویسی دیگر، مکانیزم کلاس در پایتون با حداقل نحو" -" و معناشناسی جدید، کلاس ها را اضافه می کند. این مکانیزم ترکیبی از مکانیزم " -"کلاس های موجود در C++ و Modula-3 است. کلاس های پایتون تمامی ویژگی های " -"استاندارد برنامه نویسی شیءگرا را فراهم می کنند: مکانیزم ارث بری کلاس به شما " -"امکان می دهد چندین کلاس پایه داشته باشید، یک کلاس مشتق شده می تواند هر متدی " -"از کلاس یا کلاس های پایه اش را بازنویسی کند و یک متد می تواند متد همنام از " -"کلاس پایه را فراخوانی کند. اشیاء می توانند مقادیر و انواع داده های دلخواهی " -"را در بر داشته باشند. همانطور که برای ماژول ها صادق است، کلاس ها نیز از " -"طبیعت پویا در پایتون بهره می برند: آنها در زمان اجرا ایجاد می شوند و پس از " -"ایجاد شدن می توانند بیشتر اصلاح شوند." +"در مقایسه با دیگر زبان های برنامه نویسی، مکانیزم کلاس در پایتون کلاس ها را " +"با حداقل قواعد و معناشناسی جدید اضافه می کند. این مکانیزم ترکیبی از مکانیزم " +"های کلاسی است که در C++ و Modula-3 یافت می شود. کلاس های پایتون تمام ویژگی " +"های استاندارد برنامه نویسی شی گرا را فراهم می کنند: مکانیزم ارث بری کلاس ها " +"اجازه می دهد کلاس های پایه متعددی داشته باشید، یک کلاس مشتق می تواند هر یک " +"از متدهای کلاس های پایه خود را بازنویسی کند و یک متد می تواند متدی از کلاس " +"پایه با همان نام را فراخوانی کند. اشیاء می توانند حاوی مقادیر و انواع داده " +"ای دلخواه باشند. همان طور که برای ماژول ها صادق است، کلاس ها نیز از طبیعت " +"پویا در پایتون برخوردارند: آن ها در زمان اجرا ایجاد می شوند و می توانند پس " +"از ایجاد بیشتر تغییر داده شوند." #: ../../tutorial/classes.rst:23 #, fuzzy @@ -82,15 +81,16 @@ msgid "" "(arithmetic operators, subscripting etc.) can be redefined for class " "instances." msgstr "" -"در اصطلاحات C++، به طور معمول اعضای کلاس (از جمله اعضای داده) *public* هستند" -" (به جز موارد زیر :ref:`tut-private`), و تمام توابع عضو *virtual* هستند. " -"مانند Modula-3، هیچ میانبری برای ارجاع به اعضای شی از روش های آن وجود ندارد:" -" تابع روش با یک آرگومان اول صریح که نمایانگر شی است اعلام می شود، که به طور " -"ضمنی توسط فراخوانی ارائه می شود. مانند Smalltalk، خود کلاس ها اشیاء هستند. " -"این امر معناشناسی برای واردات و تغییر نام را فراهم می کند. برخلاف C++ و " -"Modula-3، انواع داخلی می توانند به عنوان کلاس های پایه برای توسعه توسط کاربر" -" استفاده شوند. همچنین، مانند C++، بیشتر عملگرهای داخلی با نحو خاص (عملگرهای " -"محاسباتی, زیرنویسی و غیره) می توانند برای نمونه های کلاس بازتعریف شوند." +"در اصطلاحات C++، معمولاً اعضای کلاس (از جمله اعضای داده) *public* هستند (به " +"جز موردی که در پایین :ref:`tut-private` ذکر شده است)، و تمامی توابع عضو " +"*virtual* هستند. همان طور که در Modula-3، هیچ میانبرهایی برای ارجاع به اعضای" +" شیء از متدهای آن وجود ندارد: تابع متد با یک آرگومان اول صریح که نمایانگر " +"شیء است، اعلام می شود که این آرگومان به صورت ضمنی توسط فراخوانی فراهم می " +"شود. همان طور که در Smalltalk، خود کلاس ها اشیاء هستند. این ویژگی معناشناسی " +"برای وارد کردن و تغییر نام را فراهم می آورد. برخلاف C++ و Modula-3، نوع های " +"داخلی می توانند به عنوان کلاس های پایه برای توسعه توسط کاربر استفاده شوند. " +"همچنین، مانند C++، بیشتر عملگرهای داخلی با نحوی خاص (عملگرهای ریاضی، " +"زیرنویسی و غیره) می توانند برای نمونه های کلاس بازتعریف شوند." #: ../../tutorial/classes.rst:34 #, fuzzy @@ -100,16 +100,15 @@ msgid "" "since its object-oriented semantics are closer to those of Python than C++, " "but I expect that few readers have heard of it.)" msgstr "" -"(به دلیل عدم وجود اصطلاحات پذیرفته شده جهانی برای صحبت در مورد کلاس ها, به " -"صورت گهگاه از اصطلاحات Smalltalk و C++ استفاده خواهم کرد. ترجیح می دادم از " -"اصطلاحات Modula-3 استفاده کنم, زیرا معنای شیءگرایی آن به معنای شیءگرایی " -"پایتون نزدیک تر است تا C++, اما انتظار دارم که خوانندگان کمی از آن آگاهی " -"داشته باشند.)" +"چون ترمینولوژی جهانی پذیرفته شده ای برای صحبت در مورد کلاس ها وجود ندارد، " +"گاهی از اصطلاحات Smalltalk و C++ استفاده می کنم. ترجیح می دادم از اصطلاحات " +"Modula-3 استفاده کنم، زیرا معناشناسی شی گرا آن به پایتون نزدیک تر از C++ " +"است، ولی انتظار دارم که تعداد کمی از خوانندگان با آن آشنا باشند." #: ../../tutorial/classes.rst:43 #, fuzzy msgid "A Word About Names and Objects" -msgstr "یک کلمه درباره ی نام ها و اشیاء" +msgstr "یک کلمه درباره نام ها و اشیاء" #: ../../tutorial/classes.rst:45 #, fuzzy @@ -127,23 +126,23 @@ msgid "" "the caller will see the change --- this eliminates the need for two " "different argument passing mechanisms as in Pascal." msgstr "" -"اشیا هویت خاص خود را دارند و چندین نام (در حوزه های مختلف) می توانند به یک " -"شیء واحد متصل شوند. این در زبان های دیگر به عنوان «علیاسینگ» شناخته می شود. " -"این موضوع معمولاً در نگاه اول به پایتون نادیده گرفته می شود و می توان آن را " -"هنگام کار با نوع های پایه غیر قابل تغییر (اعداد, رشته ها, تاپل ها) با " -"اطمینان نادیده گرفت. اما، «علیاسینگ» تأثیر بالقوه ای غیرمنتظره بر معنی کدهای" -" پایتون دارد که شامل اشیای قابل تغییر مانند لیست ها، دیکشنری ها و اکثر انواع" -" دیگر می شود. این مسئله معمولاً به نفع برنامه استفاده می شود، زیرا علیاس ها " -"در برخی جنبه ها مانند اشاره گرها عمل می کنند. به عنوان مثال، ارسال یک شیء " -"بسیار به صرفه است زیرا تنها یک اشاره گر ارسال می شود؛ و اگر تابعی شیء ارسال " -"شده به عنوان آرگومان را تغییر دهد، فراخواننده ی تابع آن تغییر را مشاهده " -"خواهد کرد — این مسئله نیاز به دو مکانیسم مختلف برای ارسال آرگومان مانند " -"پاسکال را از بین می برد." +"اشیا دارای هویت فردی هستند و چندین نام (در محدوده های مختلف) می توانند به یک" +" شیء متصل شوند. این مفهوم در زبان های دیگر به عنوان \"aliasing\" شناخته می " +"شود. این موضوع در نگاه اول در پایتون معمولاً قابل توجه نیست و می توان آن را " +"نادیده گرفت وقتی که با نوع های غیرقابل تغییر پایه ای (اعداد، رشته ها، " +"tupleها) سر و کار داریم. با این حال، aliasing می تواند تأثیرات شگفت آوری بر " +"معنای کدهای پایتون که شامل اشیای قابل تغییر مانند لیست ها، دیکشنری ها و " +"بیشتر انواع دیگر است، داشته باشد. این مسئله معمولاً به نفع برنامه استفاده می" +" شود، چرا که aliasها از برخی جنبه ها مانند اشاره گرها رفتار می کنند. برای " +"مثال، ارسال یک شیء ارزان است چون فقط یک اشاره گر توسط پیاده سازی ارسال می " +"شود؛ و اگر یک تابع شیء ارسالی به عنوان آرگومان را تغییر دهد، فراخواننده " +"تغییر را مشاهده خواهد کرد --- این موضوع نیاز به دو مکانیزم متفاوت برای ارسال" +" آرگومان ها را همانطور که در پاسکال وجود دارد، حذف می کند." #: ../../tutorial/classes.rst:61 #, fuzzy msgid "Python Scopes and Namespaces" -msgstr "حوزه ها و فضای نام در پایتون" +msgstr "محدوده ها و فضای نام ها در پایتون" #: ../../tutorial/classes.rst:63 #, fuzzy @@ -154,11 +153,11 @@ msgid "" "understand what's going on. Incidentally, knowledge about this subject is " "useful for any advanced Python programmer." msgstr "" -"قبل از معرفی کلاس ها، ابتدا باید در مورد قوانین حوزه در پایتون به شما " -"بگویم. تعریف کلاس ها در فضای نام برخی ترفندهای جالب به کار می برند و برای " -"درک کامل اینکه چه اتفاقی می افتد، باید با چگونگی عملکرد حوزه ها و فضای نام " -"آشنا باشید. به طور اتفاقی، دانش در این موضوع برای هر برنامه نویس پیشرفته ی " -"پایتون مفید است." +"قبل از معرفی کلاس ها، ابتدا باید چیزی درباره قوانین حوزه در پایتون به شما " +"بگویم. تعریف کلاس ها چند ترفند جالب با فضاهای نام انجام می دهد و برای اینکه " +"به طور کامل متوجه شوید چه می گذرد، باید بدانید که حوزه ها و فضاهای نام چگونه" +" کار می کنند. ضمناً، آگاهی از این موضوع برای هر برنامه نویس پیشرفته پایتون " +"مفید است." #: ../../tutorial/classes.rst:69 #, fuzzy @@ -180,16 +179,16 @@ msgid "" "may both define a function ``maximize`` without confusion --- users of the " "modules must prefix it with the module name." msgstr "" -"یک *namespace* نگاشت نام ها به اشیاء است. بیشتر فضاهای نام در حال حاضر به " -"صورت دیکشنری های پایتون پیاده سازی شده اند، اما این معمولاً به هیچ وجه قابل " -"مشاهده نیست (به جز از نظر عملکردی) و ممکن است در آینده تغییر کند. مثال هایی " -"از فضاهای نام عبارت اند از: مجموعه ای از نام های داخلی (که حاوی توابعی مانند" -" :func:`abs` و نام های استثناء داخلی اند)؛ نام های جهانی در یک ماژول؛ و نام " -"های محلی در فراخوانی یک تابع. به یک معنا، مجموعه ای از ویژگی های یک شیء نیز " -"یک فضای نام تشکیل می دهند. نکته مهم درباره فضاهای نام این است که هیچ رابطه " -"ای بین نام ها در فضاهای نام مختلف وجود ندارد؛ برای مثال، دو ماژول مختلف ممکن" -" است هر دو تابعی به نام ``maximize`` تعریف کنند بدون ایجاد سردرگمی — کاربران" -" این ماژول ها باید آن را با نام ماژول پیشوند کنند." +"یک *namespace* نقشه ای از نام ها به اشیاء است. بیشتر فضاهای نام در حال حاضر " +"به عنوان دیکشنری های پایتون پیاده سازی شده اند، اما این معمولاً به هیچ وجه " +"قابل مشاهده نیست (به جز از نظر کارایی)، و ممکن است در آینده تغییر کند. مثال " +"هایی از فضاهای نام عبارتند از: مجموعه نام های داخلی (شامل توابعی مانند " +":func:`abs` و نام های استثناء داخلی)؛ نام های جهانی در یک ماژول؛ و نام های " +"محلی در اجرای یک تابع. به نوعی، مجموعه ویژگی های یک شیء نیز یک فضای نام " +"تشکیل می دهند. نکته مهمی که درباره فضاهای نام باید بدانید این است که بین نام" +" ها در فضاهای نام مختلف هیچ رابطه ای وجود ندارد؛ برای مثال، دو ماژول مختلف " +"ممکن است هر دو یک تابع به نام ``maximize`` تعریف کنند بدون ایجاد سردرگمی ---" +" کاربران ماژول ها باید آن را با نام ماژول مقدمه کنند." #: ../../tutorial/classes.rst:82 #, fuzzy @@ -203,13 +202,13 @@ msgid "" " the global names defined in the module: they share the same namespace! " "[#]_" msgstr "" -"در ضمن، من از واژهٔ *attribute* برای هر نامی که پس از نقطه می آید استفاده می" -" کنم --- برای مثال، در عبارت ``z.real``، ``real`` یک ویژگی از شیء ``z`` است." -" به طور دقیق بگوییم، ارجاع به نام ها در ماژول ها ارجاعات ویژگی هستند: در " -"عبارت ``modname.funcname``، ``modname`` یک شیء ماژول است و ``funcname`` یک " -"ویژگی از آن است. در این مورد، یک نگاشت مستقیم بین ویژگی های ماژول و نام های " -"سراسری تعریف شده در ماژول وجود دارد: آن ها فضای نام یکسانی را به اشتراک می " -"گذارند!" +"به هر حال، من از کلمه *attribute* برای هر نامی که بعد از یک نقطه می آید " +"استفاده می کنم --- برای مثال، در عبارت ``z.real``، ``real`` یک ویژگی از شیء " +"``z`` است. به طور دقیق، ارجاعات به نام ها در ماژول ها ارجاع به ویژگی ها " +"هستند: در عبارت ``modname.funcname``، ``modname`` یک شیء ماژول است و " +"``funcname`` یک ویژگی از آن است. در این مورد، بین ویژگی های ماژول و نام های " +"جهانی تعریف شده در ماژول، یک نگاشت مستقیم وجود دارد: آن ها فضای نام مشترکی " +"دارند!" #: ../../tutorial/classes.rst:90 #, fuzzy @@ -221,12 +220,12 @@ msgid "" "remove the attribute :attr:`!the_answer` from the object named by " "``modname``." msgstr "" -"ویژگی ها می توانند فقط خواندنی یا قابل نوشتن باشند. در حالت دوم، می توان به " -"ویژگی ها مقدار داد. ویژگی های ماژول قابل نوشتن هستند: شما می توانید " -"``modname.the_answer = 42`` را بنویسید. ویژگی های قابل نوشتن همچنین می " -"توانند با دستور :keyword:`del` حذف شوند. برای مثال، ``del " -"modname.the_answer`` ویژگی :attr:`!the_answer` را از شیء نام گذاری شده توسط " -"``modname`` حذف خواهد کرد." +"ویژگی ها ممکن است فقط خواندنی یا قابل نوشتن باشند. در حالت دوم، اختصاص دادن " +"به ویژگی ها ممکن است. ویژگی های ماژول قابل نوشتن هستند: می توانید " +"``modname.the_answer = 42`` را بنویسید. ویژگی های قابل نوشتن را می توان با " +"دستور :keyword:`del` نیز حذف کرد. به عنوان مثال، ``del modname.the_answer`` " +"ویژگی :attr:`!the_answer` را از شیئی که توسط ``modname`` نامگذاری شده است " +"حذف خواهد کرد." #: ../../tutorial/classes.rst:96 #, fuzzy @@ -241,15 +240,15 @@ msgid "" ":mod:`__main__`, so they have their own global namespace. (The built-in " "names actually also live in a module; this is called :mod:`builtins`.)" msgstr "" -"فضاهای نام در لحظات مختلفی ایجاد می شوند و طول عمر متفاوتی دارند. فضای نام " -"حاوی نام های داخلی وقتی که مفسر پایتون شروع به کار می کند، ایجاد می شود و " -"هرگز حذف نمی شود. فضای نام جهانی برای یک ماژول وقتی که تعریف ماژول خوانده می" -" شود، ایجاد می گردد؛ به طور معمول، فضاهای نام ماژول نیز تا زمانی که مفسر " -"خاتمه یابد، باقی می مانند. دستوراتی که توسط فراخوانی سطح بالای مفسر اجرا می " -"شوند، چه از یک فایل اسکریپت خوانده شوند یا به صورت تعاملی، به عنوان بخشی از " -"یک ماژول به نام :mod:`__main__` در نظر گرفته می شوند، بنابراین فضای نام " -"جهانی خود را دارند. (نام های داخلی در واقع در یک ماژول نیز قرار دارند؛ این " -"ماژول به نام :mod:`builtins` است.)" +"فضاهای نام در لحظات مختلف ایجاد می شوند و دارای طول عمرهای متفاوتی هستند. " +"فضای نام که شامل نام های داخلی است، زمانی که مفسر پایتون شروع به کار می کند " +"ایجاد می شود و هرگز حذف نمی شود. فضای نام عمومی برای یک ماژول زمانی که تعریف" +" ماژول خوانده می شود ایجاد می گردد؛ به طور معمول، فضاهای نام ماژول نیز تا " +"زمانی که مفسر پایان یابد باقی می مانند. دستوراتی که توسط اجرای سطح بالای " +"مفسر، یا از فایل اسکریپت خوانده شده یا به طور تعاملی اجرا می شوند، به عنوان " +"بخشی از ماژولی به نام :mod:`__main__` در نظر گرفته می شوند، بنابراین آن ها " +"فضای نام عمومی خود را دارند. (نام های داخلی در واقع همچنین در ماژول زندگی می" +" کنند؛ این ماژول :mod:`builtins` نامیده می شود.)" #: ../../tutorial/classes.rst:106 #, fuzzy @@ -261,9 +260,9 @@ msgid "" "have their own local namespace." msgstr "" "فضای نام محلی برای یک تابع زمانی ایجاد می شود که تابع فراخوانی شود و زمانی " -"که تابع بازگردد یا یک استثنایی رخ دهد که در داخل تابع مدیریت نمی شود، حذف می" -" شود. (در واقع, فراموش کردن راه بهتری برای توصیف چیزی است که واقعاً اتفاق می" -" افتد.) البته، هر فراخوانی بازگشتی فضای نام محلی خاص خود را دارد." +"که تابع برگردد یا استثنایی که در داخل تابع رسیدگی نشده باشد، حذف می شود. (در" +" واقع، فراموش کردن راه بهتری برای توصیف چیزی است که واقعاً اتفاق می افتد.) " +"البته، هر فراخوانی بازگشتی فضای نام محلی خود را دارد." #: ../../tutorial/classes.rst:112 #, fuzzy @@ -272,10 +271,10 @@ msgid "" "directly accessible. \"Directly accessible\" here means that an unqualified" " reference to a name attempts to find the name in the namespace." msgstr "" -"ناحیه \"*scope*\" بخشی متنی از یک برنامه پایتون است که در آن یک فضای نام به " -"طور مستقیم قابل دسترسی است. \"به طور مستقیم قابل دسترسی\" به این معنی است که" -" در ارجاعی بدون پیشوند به یک نام، تلاش می شود تا آن نام در فضای نام پیدا " -"شود." +"یک *scope* یک ناحیه متنی از یک برنامه پایتون است که در آن یک فضای نام به طور" +" مستقیم قابل دستیابی است. \"به طور مستقیم قابل دستیابی\" در اینجا به این " +"معنی است که یک ارجاع بدون صلاحیت به یک نام تلاش می کند تا نام را در فضای نام" +" پیدا کند." #: ../../tutorial/classes.rst:116 #, fuzzy @@ -284,14 +283,14 @@ msgid "" " time during execution, there are 3 or 4 nested scopes whose namespaces are " "directly accessible:" msgstr "" -"اگرچه حوزه ها به صورت ایستا تعیین می شوند، اما به صورت پویا استفاده می شوند." -" در هر زمانی در طول اجرا، ۳ یا ۴ حوزه تو در تو وجود دارد که فضای نام هایشان " -"به طور مستقیم قابل دسترسی است:" +"اگرچه حوزه ها به صورت ایستا تعیین می شوند، اما به صورت پویا مورد استفاده " +"قرار می گیرند. در هر لحظه ای از اجرای برنامه، ۳ یا ۴ حوزه ی تودرتو وجود " +"دارند که فضای نام های آنها به طور مستقیم قابل دسترسی است:" #: ../../tutorial/classes.rst:120 #, fuzzy msgid "the innermost scope, which is searched first, contains the local names" -msgstr "کوچک ترین محدوده که ابتدا جستجو می شود، شامل نام های محلی است." +msgstr "درونی ترین حوزه، که ابتدا جستجو می شود، شامل نام های محلی است" #: ../../tutorial/classes.rst:121 #, fuzzy @@ -299,13 +298,13 @@ msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" msgstr "" -"دایره های توابع محصورکننده، که جستجو از نزدیک ترین دایره محصورکننده شروع می " -"شود، شامل نام هایی هستند که نه محلی اند و نه سراسری." +"حوزه های هر تابع محاطی که جستجو از نزدیک ترین حوزه محاطی شروع می شود، شامل " +"نام هایی است که نه محلی هستند و نه سراسری." #: ../../tutorial/classes.rst:123 #, fuzzy msgid "the next-to-last scope contains the current module's global names" -msgstr "قلمرو ماقبل آخر شامل نام های سراسری ماژول فعلی است." +msgstr "حوزه قبل از آخر شامل نام های جهانی ماژول جاری است." #: ../../tutorial/classes.rst:124 #, fuzzy @@ -313,8 +312,8 @@ msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" msgstr "" -"بیرونی ترین حوزه (که در پایان جستجو می شود) فضایی از نام ها است که شامل نام " -"های داخلی می باشد." +"بیرونی ترین حوزه (که در نهایت جستجو می شود) نام فضایی است که شامل نام های " +"داخلی است." #: ../../tutorial/classes.rst:126 #, fuzzy @@ -327,13 +326,13 @@ msgid "" "create a *new* local variable in the innermost scope, leaving the " "identically named outer variable unchanged)." msgstr "" -"اگر نامی به صورت ``global`` اعلام شود، تمام ارجاعات و تخصیص ها به صورت " -"مستقیم به آخرین محدوده ای که شامل نام های سراسری ماژول است، می روند. برای " -"تغییر مقدار متغیرهایی که خارج از محدوده داخلی ترین قرار دارند، می توان از " -"عبارت ``nonlocal`` استفاده کرد؛ اگر به صورت ``nonlocal`` اعلام نشوند، آن " -"متغیرها فقط خواندنی خواهند بود (تلاش برای نوشتن در چنین متغیری به سادگی یک " -"متغیر محلی با نام ``*new*`` را در داخلی ترین محدوده ایجاد می کند و متغیر " -"خارجی با همان نام بدون تغییر باقی می ماند)." +"اگر یک نام به صورت global اعلام شود، تمام ارجاعات و تخصیص ها مستقیماً به " +"آخرین حوزه ماقبل، که شامل نام های سراسری ماژول است، می روند. برای انتساب " +"مجدد متغیرهایی که خارج از داخلی ترین حوزه یافت می شوند، می توان از عبارت " +":keyword:`nonlocal` استفاده کرد؛ اگر به صورت nonlocal اعلام نشده باشند، آن " +"متغیرها فقط قابل خواندن خواهند بود (تلاش برای نوشتن به چنین متغیری به سادگی " +"یک متغیر محلی *new* را در داخلی ترین حوزه ایجاد می کند و متغیر هم نام بیرونی" +" را بدون تغییر باقی می گذارد)." #: ../../tutorial/classes.rst:133 #, fuzzy @@ -343,10 +342,10 @@ msgid "" "namespace as the global scope: the module's namespace. Class definitions " "place yet another namespace in the local scope." msgstr "" -"به طور معمول، حوزه محلی به نام های محلی تابع (از نظر متنی) جاری اشاره می " -"کند. خارج از توابع، حوزه محلی به همان فضای نامی که حوزه سراسری اشاره دارد، " -"اشاره می کند: فضای نام ماژول. تعریف کلاس ها فضای نام دیگری را در حوزه محلی " -"قرار می دهد." +"معمولاً، حوزه محلی به نام های محلی تابع (متنی) جاری اشاره می کند. خارج از " +"توابع، حوزه محلی به همان فضای نامی که حوزه سراسری را تشکیل می دهد اشاره می " +"کند: فضای نام ماژول. تعریف های کلاس، فضای نام دیگری را در حوزه محلی قرار می " +"دهند." #: ../../tutorial/classes.rst:138 #, fuzzy @@ -359,13 +358,13 @@ msgid "" " at \"compile\" time, so don't rely on dynamic name resolution! (In fact, " "local variables are already determined statically.)" msgstr "" -"متناظرهای متغیرها به صورت متنی تعیین می شوند: گستره جهانی تابعی که در یک " -"ماژول تعریف شده است، فضای نام آن ماژول است، بدون توجه به اینکه تابع از کجا " -"یا با چه نام مستعاری فراخوانی می شود. از طرف دیگر، جستجوی واقعی برای نام ها " -"به صورت پویا انجام می شود، یعنی در زمان اجرا --- با این حال، تعریف زبان در " -"حال حرکت به سمت حل نام ها به صورت ایستا، در زمان \"کامپایل\" است، بنابراین " -"به حل نام ها به صورت پویا وابسته نباشید! (در واقع, متغیرهای محلی در حال حاضر" -" به صورت ایستا تعیین می شوند.)" +"مهم است که متوجه شویم حوزه ها به صورت متنی تعیین می شوند: حوزه ی سراسری یک " +"تابع که در یک ماژول تعریف شده است، فضای نام آن ماژول است، بدون توجه به اینکه" +" از کجا یا با چه نام مستعاری آن تابع فراخوانی می شود. از طرف دیگر، جستجوی " +"واقعی برای نام ها به صورت پویا و در زمان اجرا انجام می شود --- با این حال، " +"تعریف زبان در حال حرکت به سمت حل نام ها به صورت ایستا، در زمان \"کامپایل\" " +"است، بنابراین به حل نام به صورت پویا اتکا نکنید! (در واقع، متغیرهای محلی از " +"قبل به صورت ایستا تعیین می شوند.)" #: ../../tutorial/classes.rst:146 #, fuzzy @@ -379,15 +378,14 @@ msgid "" "scope: in particular, :keyword:`import` statements and function definitions " "bind the module or function name in the local scope." msgstr "" -"یکی از ویژگی های خاص پایتون این است که اگر هیچ بیانیه ای از نوع " -":keyword:`global` یا :keyword:`nonlocal` وجود نداشته باشد، اختصاص دادن به " -"نام ها همیشه درون محدودترین دامنه اتفاق می افتد. اختصاص دادن ها داده ها را " -"کپی نمی کند --- آنها فقط نام ها را به اشیاء متصل می کنند. همین موضوع درباره " -"ی حذف ها نیز صدق می کند: بیانیه ی ``del x`` اتصال ``x`` را از فضای نامی که " -"توسط دامنه ی محلی ارجاع داده شده است، حذف می کند. در واقع، تمام عملیاتی که " -"نام های جدیدی معرفی می کنند از دامنه ی محلی استفاده می کنند: به ویژه، بیانیه" -" های :keyword:`import` و تعاریف تابع نام ماژول یا تابع را در دامنه ی محلی " -"متصل می کنند." +"یکی از ویژگی های خاص پایتون این است که اگر هیچ بیانیه :keyword:`global` یا " +":keyword:`nonlocal` در حال اجرا نباشد، اختصاص نام ها همیشه در حیطه داخلی " +"ترین صورت می گیرد. اختصاص نام ها داده ها را کپی نمی کند، بلکه فقط نام ها را " +"به اشیاء متصل می کند. این موضوع در مورد حذف نیز صدق می کند: بیانیه ``del x``" +" اتصال ``x`` را از فضای نام ارجاع شده توسط حیطه محلی حذف می کند. در واقع، " +"تمام عملیات هایی که نام های جدیدی معرفی می کنند از حیطه محلی استفاده می " +"کنند: به خصوص، بیانیه های :keyword:`import` و تعریف تابع نام ماژول یا تابع " +"را در حیطه محلی متصل می کنند." #: ../../tutorial/classes.rst:154 #, fuzzy @@ -397,15 +395,15 @@ msgid "" ":keyword:`nonlocal` statement indicates that particular variables live in an" " enclosing scope and should be rebound there." msgstr "" -"عبارت :keyword:`global` می تواند برای نشان دادن این نکته استفاده شود که " -"متغیرهای خاصی در دامنهٔ جهانی قرار دارند و باید در آنجا دوباره به مقدار " -"دیگری متصل شوند؛ عبارت :keyword:`nonlocal` نشان می دهد که متغیرهای خاصی در " -"یک دامنهٔ محصور قرار دارند و باید در آنجا دوباره به مقدار دیگری متصل شوند." +"بیانیه :keyword:`global` می تواند برای نشان دادن اینکه متغیرهای خاصی در حوزه" +" جهانی هستند و باید در آنجا بازبسته شوند، استفاده شود؛ بیانیه " +":keyword:`nonlocal` نشان می دهد که متغیرهای خاصی در یک حوزه محاط کننده قرار " +"دارند و باید در آنجا بازبسته شوند." #: ../../tutorial/classes.rst:162 #, fuzzy msgid "Scopes and Namespaces Example" -msgstr "مثال هایی از حوزه ها و نام فضاها" +msgstr "مثال محدوده ها و فضاهای نام" #: ../../tutorial/classes.rst:164 #, fuzzy @@ -414,8 +412,8 @@ msgid "" "namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " "variable binding::" msgstr "" -"این یک مثال است که نشان می دهد چگونه به حوزه ها و فضای نام های مختلف ارجاع " -"داده می شود و چگونه :keyword:`global` و :keyword:`nonlocal` بر پیوند متغیر " +"این یک مثال است که نشان می دهد چگونه به حوزه ها و نام فضاهای مختلف ارجاع " +"دهید، و چگونه :keyword:`global` و :keyword:`nonlocal` بر بایندینگ متغیر " "تأثیر می گذارند::" #: ../../tutorial/classes.rst:168 @@ -444,28 +442,28 @@ msgid "" "scope_test()\n" "print(\"In global scope:\", spam)" msgstr "" -"def scope_test():\n" -" def do_local():\n" -" spam = \"local spam\"\n" -"\n" -" def do_nonlocal():\n" -" nonlocal spam\n" -" spam = \"nonlocal spam\"\n" -"\n" -" def do_global():\n" -" global spam\n" -" spam = \"global spam\"\n" -"\n" -" spam = \"test spam\"\n" -" do_local()\n" -" print(\"After local assignment:\", spam)\n" -" do_nonlocal()\n" -" print(\"After nonlocal assignment:\", spam)\n" -" do_global()\n" -" print(\"After global assignment:\", spam)\n" -"\n" -"scope_test()\n" -"print(\"In global scope:\", spam)" +"def scope_test(): \n" +" def do_local(): \n" +" spam = \"local spam\" \n" +" \n" +" def do_nonlocal(): \n" +" nonlocal spam \n" +" spam = \"nonlocal spam\" \n" +" \n" +" def do_global(): \n" +" global spam \n" +" spam = \"global spam\" \n" +" \n" +" spam = \"test spam\" \n" +" do_local() \n" +" print(\"پس از انتساب محلی:\", spam) \n" +" do_nonlocal() \n" +" print(\"پس از انتساب غیرمحلی:\", spam) \n" +" do_global() \n" +" print(\"پس از انتساب سراسری:\", spam) \n" +" \n" +"scope_test() \n" +"print(\"در محدوده جهانی:\", spam)" #: ../../tutorial/classes.rst:191 #, fuzzy @@ -480,10 +478,10 @@ msgid "" "After global assignment: nonlocal spam\n" "In global scope: global spam" msgstr "" -"پس از انتساب محلی: test spam \n" -"پس از انتساب nonlocal: nonlocal spam \n" -"پس از انتساب جهانی: nonlocal spam \n" -"در دامنه سراسری: global spam " +"بعد از تخصیص محلی: test spam\n" +"بعد از تخصیص nonlocal: nonlocal spam\n" +"بعد از تخصیص global: nonlocal spam\n" +"در فضای سراسری: global spam" #: ../../tutorial/classes.rst:200 #, fuzzy @@ -493,10 +491,10 @@ msgid "" "changed *scope_test*\\'s binding of *spam*, and the :keyword:`global` " "assignment changed the module-level binding." msgstr "" -"توجه کنید که انتساب *local* (که پیش فرض است) پیوند *scope_test* مربوط به " -"*spam* را تغییر نداد. انتساب :keyword:`nonlocal` پیوند *scope_test* مربوط به" -" *spam* را تغییر داد و انتساب :keyword:`global` پیوند در سطح ماژول را تغییر " -"داد." +"توجه کنید که انتساب *local* (که به صورت پیش فرض است) تغییر در ارتباط " +"*scope_test* با *spam* ایجاد نکرد. انتساب :keyword:`nonlocal` ارتباط " +"*scope_test* با *spam* را تغییر داد و انتساب :keyword:`global` ارتباط در سطح" +" ماژول را تغییر داد." #: ../../tutorial/classes.rst:205 #, fuzzy @@ -504,7 +502,7 @@ msgid "" "You can also see that there was no previous binding for *spam* before the " ":keyword:`global` assignment." msgstr "" -"همچنین می توانید ببینید که هیچ پیوند قبلی برای *spam* قبل از تخصیص " +"همچنین می توانید ببینید که هیچ اتصال قبلی برای *spam* قبل از انتساب " ":keyword:`global` وجود نداشت." #: ../../tutorial/classes.rst:212 @@ -518,13 +516,13 @@ msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." msgstr "" -"کلاس ها مقدار کمی نحو جدید، سه نوع شیء جدید و برخی معناشناسی های جدید را " -"معرفی می کنند." +"کلاس ها اندکی سینتکس جدید، سه نوع شئ جدید و برخی مفاهیم معنایی جدید معرفی می" +" کنند." #: ../../tutorial/classes.rst:221 #, fuzzy msgid "Class Definition Syntax" -msgstr "نحوه تعریف کلاس" +msgstr "قواعد تعریف کلاس" #: ../../tutorial/classes.rst:223 #, fuzzy @@ -541,15 +539,12 @@ msgid "" " .\n" " " msgstr "" -"کلاس با نام `ClassName`:\n" -" \n" -"````\n" -"<بیانیه-۱>\n" -".\n" -".\n" -".\n" -"<بیانیه-N>\n" -"````" +"کلاس ClassName:\n" +" \n" +" .\n" +" .\n" +" .\n" +" " #: ../../tutorial/classes.rst:232 #, fuzzy @@ -559,9 +554,10 @@ msgid "" "a class definition in a branch of an :keyword:`if` statement, or inside a " "function.)" msgstr "" -"تعاریف کلاس، مانند تعاریف تابع (عبارت های :keyword:`def`) باید قبل از اینکه " -"تأثیری داشته باشند اجرا شوند. (ممکن است بتوانید تعریف یک کلاس را در شاخه ای " -"از یک عبارت :keyword:`if` یا داخل یک تابع قرار دهید.)" +"تعاریف کلاس، مانند تعاریف تابع (:keyword:`def` statements)، باید قبل از " +"اینکه تأثیری داشته باشند اجرا شوند. (می توانید تعریف یک کلاس را به طور قابل " +"تصوری در یکی از شاخه های یک :keyword:`if` statement یا داخل یک تابع قرار " +"دهید.)" #: ../../tutorial/classes.rst:236 #, fuzzy @@ -572,11 +568,11 @@ msgid "" " normally have a peculiar form of argument list, dictated by the calling " "conventions for methods --- again, this is explained later." msgstr "" -"در عمل، بیانیه های درون یک تعریف کلاس معمولاً تعریف توابع هستند، اما سایر " -"بیانیه ها نیز مجاز بوده و گاهی مفید هستند --- به این موضوع بعداً خواهیم " -"پرداخت. تعریف توابع درون یک کلاس معمولاً نوع خاصی از فهرست آرگومان ها را " -"دارند که توسط الگوهای فراخوانی برای متدها تعیین می شود --- این موضوع نیز در " -"ادامه توضیح داده خواهد شد." +"در عمل، دستورات داخل تعریف یک کلاس معمولاً شامل تعریف توابع خواهد بود، اما " +"استفاده از دستورات دیگر مجاز است و گاهی اوقات مفید است — بعدها به این موضوع " +"باز خواهیم گشت. تعریف توابع داخل یک کلاس معمولاً شکل خاصی از لیست آرگومان ها" +" دارد که توسط قراردادهای فراخوانی برای متدها تعیین می شود — باز هم، این " +"موضوع بعداً توضیح داده خواهد شد." #: ../../tutorial/classes.rst:242 #, fuzzy @@ -586,10 +582,10 @@ msgid "" "new namespace. In particular, function definitions bind the name of the new" " function here." msgstr "" -"زمانی که یک تعریف کلاس وارد می شود، یک فضای نام جدید ایجاد می شود و به عنوان" -" حوزه محلی استفاده می شود — بنابراین، تمامی انتساب ها به متغیرهای محلی به " -"این فضای نام جدید وارد می شوند. به ویژه، تعریف توابع، نام تابع جدید را در " -"اینجا پیوند می کند." +"هنگامی که یک تعریف کلاس وارد می شود، یک فضای نام جدید ایجاد می شود و به " +"عنوان محدوده محلی استفاده می شود --- بنابراین، تمامی انتساب ها به متغیر های " +"محلی وارد این فضای نام جدید می شوند. به طور خاص، تعاریف تابع، نام تابع جدید " +"را در اینجا متصل می کنند." #: ../../tutorial/classes.rst:247 #, fuzzy @@ -602,17 +598,17 @@ msgid "" "here to the class name given in the class definition header " "(:class:`!ClassName` in the example)." msgstr "" -"زمانی که تعریف یک کلاس به طور عادی (با رسیدن به انتها) خاتمه می یابد، یک " -"*class object* ایجاد می شود. این در واقع یک پوششی پیرامون محتوای فضای نام " -"ایجادشده توسط تعریف کلاس است. ما در بخش بعدی بیشتر درباره اشیاء کلاس خواهیم " -"آموخت. محدوده محلی اصلی (همان که درست قبل از وارد شدن به تعریف کلاس در اثر " -"بود) دوباره برقرار می شود و شیء کلاس در اینجا به نام کلاسی که در سرآیند " -"تعریف کلاس داده شده است (در مثال :class:`!ClassName`) متصل می شود." +"هنگامی که تعریف یک کلاس به صورت طبیعی (از طریق پایان) به پایان می رسد، یک " +"*class object* ایجاد می شود. این در واقع یک پوشش است بر محتوای فضای نامی که " +"توسط تعریف کلاس ایجاد شده است؛ در بخش بعدی بیشتر درباره اشیاء کلاس یاد " +"خواهیم گرفت. حوزه محلی اولیه (همان که قبل از ورود به تعریف کلاس وجود داشت) " +"دوباره فعال می شود و شیء کلاس به نامی که در سربرگ تعریف کلاس داده شده است " +"(:class:`!ClassName` در مثال) متصل می شود." #: ../../tutorial/classes.rst:259 #, fuzzy msgid "Class Objects" -msgstr "اشیاء کلاس ها" +msgstr "اشیاء کلاس" #: ../../tutorial/classes.rst:261 #, fuzzy @@ -620,7 +616,7 @@ msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." msgstr "" -"اشیای کلاس از دو نوع عملیات پشتیبانی می کنند: ارجاعات به ویژگی ها و نمونه " +"شیءهای کلاس از دو نوع عملیات پشتیبانی می کنند: ارجاع به ویژگی ها و نمونه " "سازی." #: ../../tutorial/classes.rst:264 @@ -631,10 +627,10 @@ msgid "" " that were in the class's namespace when the class object was created. So, " "if the class definition looked like this::" msgstr "" -"*Attribute references* از نحو استاندارد استفاده کنید که برای همه ارجاعات به " -"ویژگی ها در پایتون استفاده می شود: ``obj.name``. نام های معتبر ویژگی تمام " -"نام هایی هستند که در فضای نام کلاس در زمانی که شی کلاس ایجاد شد وجود داشتند." -" بنابراین، اگر تعریف کلاس به این صورت بود:" +"برای استفاده از *Attribute references* از نحو استانداردی استفاده کنید که " +"برای تمامی مرجع های ویژگی در پایتون به کار می رود: ``obj.name``. نام های " +"ویژگی معتبر شامل تمامی نام هایی هستند که در فضای نام کلاس در هنگام ایجاد شیء" +" کلاس بودند. بنابراین، اگر تعریف کلاس به این صورت باشد:" #: ../../tutorial/classes.rst:269 #, fuzzy @@ -646,8 +642,8 @@ msgid "" " def f(self):\n" " return 'hello world'" msgstr "" -"class MyClass:\n" -" \"\"\"A simple example class\"\"\"\n" +"کلاس MyClass:\n" +" \"\"\"یک کلاس مثال ساده\"\"\"\n" " i = 12345\n" "\n" " def f(self):\n" @@ -662,11 +658,11 @@ msgid "" "assignment. :attr:`~type.__doc__` is also a valid attribute, returning the " "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" -"در این صورت، ``MyClass.i`` و ``MyClass.f`` ارجاعات معتبر به ویژگی ها هستند " -"که به ترتیب یک عدد صحیح و یک شیء تابع را برمی گردانند. ویژگی های کلاس نیز می" -" توانند به آنها مقدار داده شود، بنابراین می توانید مقدار ``MyClass.i`` را با" -" اختصاص دادن تغییر دهید. :attr:`~type.__doc__` نیز یک ویژگی معتبر است که " -"رشته توضیحی مربوط به کلاس را برمی گرداند: ``\"A simple example class\"``." +"سپس ``MyClass.i`` و ``MyClass.f`` به عنوان ارجاعات معتبر به ویژگی قابل " +"استفاده هستند که به ترتیب یک عدد صحیح و یک شیء تابع را ارائه می دهند. ویژگی " +"های کلاس نیز می توانند مقداردهی شوند، بنابراین می توانید مقدار ``MyClass.i``" +" را با تخصیص تغییر دهید. :attr:`~type.__doc__` نیز یک ویژگی معتبر است که داک" +" استرینگ مربوط به کلاس را برمی گرداند: ``\"A simple example class\"``." #: ../../tutorial/classes.rst:282 #, fuzzy @@ -675,9 +671,9 @@ msgid "" "object is a parameterless function that returns a new instance of the class." " For example (assuming the above class)::" msgstr "" -"کلاس *instantiation* از نماد تابع استفاده می کند. فرض کنید که شیء کلاس یک " -"تابع بدون پارامتر است که یک نمونه جدید از کلاس بازمی گرداند. به عنوان مثال " -"(با فرض کلاس فوق):" +"کلاس *instantiation* از نماد تابعی استفاده می کند. فقط فرض کنید که شیء کلاس " +"یک تابع بدون پارامتر است که نمونه جدیدی از کلاس را برمی گرداند. برای مثال " +"(با فرض وجود کلاس فوق):" #: ../../tutorial/classes.rst:286 ../../tutorial/classes.rst:303 #, fuzzy @@ -690,7 +686,7 @@ msgid "" "creates a new *instance* of the class and assigns this object to the local " "variable ``x``." msgstr "" -"یک *instance* جدید از کلاس ایجاد می کند و این شیء را به متغیر محلی ``x`` " +"شیء جدیدی از کلاس *instance* ایجاد کرده و این شیء را به متغیر محلی ``x`` " "اختصاص می دهد." #: ../../tutorial/classes.rst:291 @@ -701,10 +697,10 @@ msgid "" "specific initial state. Therefore a class may define a special method named " ":meth:`~object.__init__`, like this::" msgstr "" -"عملیات نمونه سازی (پراخوانی یک شیء کلاس) یک شیء خالی ایجاد می کند. بسیاری از" -" کلاس ها علاقه دارند تا اشیاء با نمونه هایی که به یک حالت اولیه خاص سفارشی " -"شده اند، ایجاد شوند. بنابراین یک کلاس می تواند یک متد ویژه به نام " -":meth:`~object.__init__` تعریف کند، به این صورت:" +"عملیات نمونه سازی (برای مثال \"صدا زدن\" یک شیء کلاس) یک شیء خالی ایجاد می " +"کند. بسیاری از کلاس ها تمایل دارند اشیائی با نمونه های شخصی سازی شده به یک " +"حالت اولیه خاص ایجاد کنند. به همین دلیل یک کلاس ممکن است یک متد ویژه به نام " +":meth:`~object.__init__` تعریف کند، مانند این:" #: ../../tutorial/classes.rst:296 #, fuzzy @@ -723,10 +719,10 @@ msgid "" "instance. So in this example, a new, initialized instance can be obtained " "by::" msgstr "" -"وقتی یک کلاس متد :meth:`~object.__init__` را تعریف می کند، ایجاد یک نمونه از" -" کلاس به صورت خودکار :meth:`!__init__` را برای نمونه ی تازه ایجاد شده " -"فراخوانی می کند. بنابراین در این مثال، یک نمونه ی جدید و مقداردهی شده به این" -" صورت می تواند به دست بیاید::" +"وقتی یک کلاس متدی با نام :meth:`~object.__init__` را تعریف می کند، ایجاد یک " +"نمونه از کلاس به صورت خودکار :meth:`!__init__` را برای نمونه تازه ساخته شده " +"فراخوانی می کند. بنابراین، در این مثال، یک نمونه جدید و مقداردهی اولیه شده " +"را می توان به این صورت به دست آورد:" #: ../../tutorial/classes.rst:305 #, fuzzy @@ -735,9 +731,9 @@ msgid "" "greater flexibility. In that case, arguments given to the class " "instantiation operator are passed on to :meth:`!__init__`. For example, ::" msgstr "" -"البته، متد :meth:`~object.__init__` ممکن است برای انعطاف پذیری بیشتر دارای " -"آرگومان هایی باشد. در این صورت، آرگومان های داده شده به عملگر ایجاد کلاس به " -":meth:`!__init__` منتقل می شوند. به عنوان مثال: ::" +"البته، متد :meth:`~object.__init__` می تواند برای انعطاف پذیری بیشتر دارای " +"آرگومان باشد. در این صورت، آرگومان هایی که به عملگر ایجاد کلاس داده می شوند " +"به :meth:`!__init__` منتقل می شوند. برای مثال: :" #: ../../tutorial/classes.rst:309 #, fuzzy @@ -751,7 +747,7 @@ msgid "" ">>> x.r, x.i\n" "(3.0, -4.5)" msgstr "" -">>> class Complex:\n" +">>> کلاس Complex:\n" "... def __init__(self, realpart, imagpart):\n" "... self.r = realpart\n" "... self.i = imagpart\n" @@ -763,7 +759,7 @@ msgstr "" #: ../../tutorial/classes.rst:322 #, fuzzy msgid "Instance Objects" -msgstr "اشیای نمونه" +msgstr "شیء های نمونه" #: ../../tutorial/classes.rst:324 #, fuzzy @@ -772,9 +768,9 @@ msgid "" " instance objects are attribute references. There are two kinds of valid " "attribute names: data attributes and methods." msgstr "" -"حالا با اشیاء نمونه چه کاری می توانیم انجام دهیم؟ تنها عملیاتی که توسط اشیاء" -" نمونه قابل فهم است، ارجاعات به ویژگی ها است. دو نوع نام ویژگی معتبر وجود " -"دارد: ویژگی های داده ای و متدها." +"اکنون با اشیاء نمونه چه کاری می توانیم انجام دهیم؟ تنها عملیاتی که توسط " +"اشیاء نمونه قابل درک است، ارجاع به ویژگی ها است. دو نوع نام ویژگی معتبر وجود" +" دارد: ویژگی های داده و متدها." #: ../../tutorial/classes.rst:328 #, fuzzy @@ -786,12 +782,12 @@ msgid "" "following piece of code will print the value ``16``, without leaving a " "trace::" msgstr "" -"*data attributes* معادل \"متغیرهای نمونه\" در Smalltalk و \"اعضای داده\" در " -"C++ می باشد. ویژگی های داده نیازی به اعلام شدن ندارند؛ درست مانند متغیرهای " -"محلی، هنگامی که برای اولین بار به آنها مقدار اختصاص داده می شود، وجود می " -"یابند. به عنوان مثال، اگر ``x`` نمونه ای از :class:`!MyClass` است که در بالا" -" ایجاد شده، قطعه کد زیر مقدار ``16`` را چاپ خواهد کرد، بدون آنکه هیچ اثری " -"بگذارد::" +"*data attributes* در Smalltalk به \"متغیرهای نمونه\" و در C++ به \"اعضای " +"داده\" اشاره دارد. ویژگی های داده نیازی به اعلام ندارند؛ مانند متغیرهای " +"محلی، آن ها زمانی که برای اولین بار به آن ها مقداری تخصیص داده می شود، به " +"وجود می آیند. برای مثال، اگر ``x`` نمونه ای از :class:`!MyClass` باشد که در " +"بالا ایجاد شده است، تکه کد زیر مقدار ``16`` را چاپ خواهد کرد، بدون اینکه " +"اثری باقی بگذارد::" #: ../../tutorial/classes.rst:334 #, fuzzy @@ -814,8 +810,8 @@ msgid "" "The other kind of instance attribute reference is a *method*. A method is a " "function that \"belongs to\" an object." msgstr "" -"نوع دیگری از ارجاع به صفت شیء، «*method*» است. یک متد تابعی است که به یک شیء" -" \"تعلق دارد\"." +"نوع دیگر ارجاع به ویژگی نمونه، *method* است. یک متد، تابعی است که \"متعلق " +"به\" یک آبجکت است." #: ../../tutorial/classes.rst:345 #, fuzzy @@ -827,22 +823,22 @@ msgid "" "not, since ``MyClass.i`` is not. But ``x.f`` is not the same thing as " "``MyClass.f`` --- it is a *method object*, not a function object." msgstr "" -"نام های معتبر متد در یک شیء نمونه به کلاس آن بستگی دارد. بر اساس تعریف، تمام" -" ویژگی های یک کلاس که اشیای تابع هستند، متدهای متناظر با نمونه های آن را " -"تعریف می کنند. بنابراین در مثال ما، ``x.f`` یک ارجاع معتبر به متد است، زیرا " -"``MyClass.f`` یک تابع است، اما ``x.i`` معتبر نیست، زیرا ``MyClass.i`` یک " -"تابع نیست. اما ``x.f`` با ``MyClass.f`` یکسان نیست --- این یک *method " -"object* است، نه یک شیء تابع." +"نام های معتبر برای متدهای یک شیء نمونه به کلاس آن بستگی دارد. به طور تعریف " +"شده، تمام ویژگی های یک کلاس که اشیاء تابع باشند، متدهای متناظر نمونه های آن " +"کلاس را تعریف می کنند. بنابراین در مثال ما، ``x.f`` یک مرجع متد معتبر است، " +"چون ``MyClass.f`` یک تابع است، اما ``x.i`` نیست، چون ``MyClass.i`` نیست. با " +"این حال، ``x.f`` معادل ``MyClass.f`` نیست --- این یک *method object* است، نه" +" یک شیء تابع." #: ../../tutorial/classes.rst:356 #, fuzzy msgid "Method Objects" -msgstr "اشیاء متد" +msgstr "اشیای متد" #: ../../tutorial/classes.rst:358 #, fuzzy msgid "Usually, a method is called right after it is bound::" -msgstr "معمولاً یک متد بلافاصله پس از این که متصل می شود فراخوانی می شود::" +msgstr "معمولاً یک متد بلافاصله بعد از اینکه مرتبط شد فراخوانی می شود::" #: ../../tutorial/classes.rst:360 #, fuzzy @@ -857,9 +853,9 @@ msgid "" "is a method object, and can be stored away and called at a later time. For " "example::" msgstr "" -"در مثال :class:`!MyClass`، این کد رشته ``'hello world'`` را برمی گرداند. با " -"این حال، لازم نیست یک متد را بلافاصله فراخوانی کنید: ``x.f`` یک شیء متد است " -"و می تواند ذخیره شده و در زمانی دیگر فراخوانی شود. برای مثال::" +"در مثال :class:`!MyClass` این رشته را برمی گرداند ``'hello world'``. با این " +"حال، لازم نیست که بلافاصله یک متد را فراخوانی کنید: ``x.f`` یک شیء متد است و" +" می تواند ذخیره شود و در زمان دیگری فراخوانی شود. به عنوان مثال::" #: ../../tutorial/classes.rst:366 #, fuzzy @@ -887,11 +883,12 @@ msgid "" " argument is called without any --- even if the argument isn't actually " "used..." msgstr "" -"وقتی یک متد فراخوانی می شود دقیقاً چه اتفاقی می افتد؟ شما ممکن است متوجه شده" -" باشید که ``x.f()`` در بالا بدون آرگومان فراخوانی شد، حتی اگر تعریف تابع " -":meth:`!f` یک آرگومان را مشخص کرده بود. چه اتفاقی برای آرگومان افتاد؟ قطعاً " -"پایتون یک استثنا ایجاد می کند زمانی که تابعی که به آرگومان نیاز دارد بدون " -"هیچ آرگومانی فراخوانی شود --- حتی اگر آن آرگومان واقعاً استفاده نشود..." +"دقیقاً چه اتفاقی می افتد وقتی که یک متد فراخوانی می شود؟ شاید متوجه شده " +"باشید که ``x.f()`` بدون آرگومان فراخوانی شد، حتی با این که تعریف تابع برای " +":meth:`!f` یک آرگومان مشخص کرده است. چه بر سر آرگومان آمد؟ به احتمال زیاد " +"پایتون یک استثناء مطرح می کند وقتی که تابعی که نیازمند یک آرگومان است، بدون " +"هیچ آرگومانی فراخوانی شود --- حتی اگر آرگومان به طور واقعی مورد استفاده قرار" +" نگیرد..." #: ../../tutorial/classes.rst:378 #, fuzzy @@ -904,11 +901,11 @@ msgid "" "that is created by inserting the method's instance object before the first " "argument." msgstr "" -"در واقع، ممکن است پاسخ را حدس زده باشید: نکته خاص در مورد متدها این است که " -"شیء نمونه به عنوان اولین آرگومان تابع ارسال می شود. در مثال ما، فراخوانی " -"``x.f()`` دقیقا معادل ``MyClass.f(x)`` است. به طور کلی، فراخوانی یک متد با " -"لیستی از آرگومان های *n* معادل فراخوانی تابع مربوطه با لیستی از آرگومان ها " -"است که با وارد کردن شیء نمونه متد قبل از اولین آرگومان ایجاد می شود." +"در واقع، شاید پاسخ را حدس زده باشید: ویژگی خاص متدها این است که شیء نمونه به" +" عنوان اولین آرگومان به تابع ارسال می شود. در مثال ما، فراخوانی ``x.f()`` " +"دقیقا معادل ``MyClass.f(x)`` است. به طور کلی، فراخوانی یک متد با لیستی از " +"آرگومان ها *n* معادل فراخوانی تابع متناظر با یک لیست آرگومان است که با وارد " +"کردن شیء نمونه متد قبل از اولین آرگومان ایجاد می شود." #: ../../tutorial/classes.rst:385 #, fuzzy @@ -921,18 +918,17 @@ msgid "" "argument list is constructed from the instance object and the argument list," " and the function object is called with this new argument list." msgstr "" -"به طور کلی، روش ها به صورت زیر عمل می کنند. وقتی یک ویژگی غیر داده ای از یک " -"نمونه مورد ارجاع قرار می گیرد، کلاس مربوط به آن نمونه جستجو می شود. اگر نام " -"ویژگی نشان دهنده یک ویژگی معتبر کلاس باشد که یک آبجکت تابع است، ارجاعات به " -"هر دو، آبجکت نمونه و آبجکت تابع، در یک آبجکت متدی بسته بندی می شوند. وقتی که" -" آبجکت متد با یک لیست از آرگومان ها فراخوانی می شود، یک لیست جدید از آرگومان" -" ها از آبجکت نمونه و لیست آرگومان ها ساخته شده و آبجکت تابع با این لیست جدید" -" آرگومان ها فراخوانی می شود." +"به طور کلی، متدها به صورت زیر عمل می کنند. وقتی یک ویژگی غیر داده ای از یک " +"نمونه ارجاع داده می شود، کلاس نمونه جستجو می شود. اگر نام نشان دهنده یک " +"ویژگی معتبر کلاس باشد که یک شیء تابع است، ارجاعات به هر دو شیء نمونه و شیء " +"تابع در یک شیء متد بسته بندی می شوند. هنگامی که شیء متد با یک فهرست آرگومان " +"فراخوانی می شود، یک فهرست آرگومان جدید از شیء نمونه و فهرست آرگومان ساخته می" +" شود، و شیء تابع با این فهرست آرگومان جدید فراخوانی می شود." #: ../../tutorial/classes.rst:398 #, fuzzy msgid "Class and Instance Variables" -msgstr "متغیرهای کلاس و نمونه" +msgstr "کلاس و متغیرهای نمونه" #: ../../tutorial/classes.rst:400 #, fuzzy @@ -941,9 +937,9 @@ msgid "" "and class variables are for attributes and methods shared by all instances " "of the class::" msgstr "" -"به طور کلی، متغیرهای نمونه برای داده هایی که به هر نمونه خاص تعلق دارند، " -"استفاده می شوند و متغیرهای کلاس برای ویژگی ها و متدهایی که توسط تمام نمونه " -"های آن کلاس به اشتراک گذاشته می شوند، به کار می روند::" +"به طور کلی، متغیر های نمونه برای داده های منحصر به فرد هر نمونه و متغیر های " +"کلاسی برای خصوصیات و روش هایی استفاده می شوند که توسط تمام نمونه های کلاس به" +" اشتراک گذاشته می شوند::" #: ../../tutorial/classes.rst:404 #, fuzzy @@ -966,22 +962,22 @@ msgid "" ">>> e.name # unique to e\n" "'Buddy'" msgstr "" -"class Dog:\n" +"کلاس Dog:\n" "\n" -" kind = 'canine' # class variable shared by all instances\n" +" kind = 'canine' # متغیر کلاسی که بین تمام نمونه ها به اشتراک گذاشته می شود\n" "\n" " def __init__(self, name):\n" -" self.name = name # instance variable unique to each instance\n" +" self.name = name # متغیر نمونه که برای هر نمونه منحصر به فرد است\n" "\n" ">>> d = Dog('Fido')\n" ">>> e = Dog('Buddy')\n" -">>> d.kind # shared by all dogs\n" +">>> d.kind # مشترک بین تمام سگ ها\n" "'canine'\n" -">>> e.kind # shared by all dogs\n" +">>> e.kind # مشترک بین تمام سگ ها\n" "'canine'\n" -">>> d.name # unique to d\n" +">>> d.name # منحصر به فرد برای d\n" "'Fido'\n" -">>> e.name # unique to e\n" +">>> e.name # منحصر به فرد برای e\n" "'Buddy'" #: ../../tutorial/classes.rst:422 @@ -993,11 +989,11 @@ msgid "" "not be used as a class variable because just a single list would be shared " "by all *Dog* instances::" msgstr "" -"همانطور که در :ref:`tut-object` مورد بحث قرار گرفت، داده های مشترک می توانند" -" اثرات شگفت آوری با درگیر کردن اشیاء :term:`mutable` مانند لیست ها و دیکشنری" -" ها داشته باشند. به عنوان مثال، لیست *tricks* در کد زیر نباید به عنوان یک " -"متغیر کلاس استفاده شود زیرا تنها یک لیست توسط تمام نمونه های *Dog* به اشتراک" -" گذاشته می شود::" +"همانطور که در :ref:`tut-object` بحث شد، داده های مشترک می توانند تأثیرات " +"شگفت آوری در گیر کردن اشیاء :term:`mutable` مانند لیست ها و دیکشنری ها داشته" +" باشند. به عنوان مثال، لیست *tricks* در کد زیر نباید به عنوان یک متغیر کلاس " +"استفاده شود زیرا تنها یک لیست توسط تمام نمونه های *Dog* به اشتراک گذاشته می " +"شود::" #: ../../tutorial/classes.rst:428 #, fuzzy @@ -1019,9 +1015,9 @@ msgid "" ">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" msgstr "" -"class Dog:\n" +"کلاس Dog:\n" "\n" -" tricks = [] # mistaken use of a class variable\n" +" tricks = [] # استفاده اشتباه از یک متغیر کلاسی\n" "\n" " def __init__(self, name):\n" " self.name = name\n" @@ -1033,7 +1029,7 @@ msgstr "" ">>> e = Dog('Buddy')\n" ">>> d.add_trick('roll over')\n" ">>> e.add_trick('play dead')\n" -">>> d.tricks # unexpectedly shared by all dogs\n" +">>> d.tricks # به طور غیرمنتظره بین تمام سگ ها مشترک است\n" "['roll over', 'play dead']" #: ../../tutorial/classes.rst:445 @@ -1062,11 +1058,11 @@ msgid "" ">>> e.tricks\n" "['play dead']" msgstr "" -"class Dog:\n" +"کلاس Dog:\n" "\n" " def __init__(self, name):\n" " self.name = name\n" -" self.tricks = [] # creates a new empty list for each dog\n" +" self.tricks = [] # برای هر سگ یک لیست خالی جدید ایجاد می کند\n" "\n" " def add_trick(self, trick):\n" " self.tricks.append(trick)\n" @@ -1091,8 +1087,8 @@ msgid "" "If the same attribute name occurs in both an instance and in a class, then " "attribute lookup prioritizes the instance::" msgstr "" -"اگر نام صفتی هم در یک نمونه و هم در یک کلاس تکرار شود، جستجوی صفت ابتدا " -"نمونه را در اولویت قرار می دهد::" +"اگر یک نام ویژگی هم در یک نمونه و هم در یک کلاس وجود داشته باشد، جستجوی " +"ویژگی به نمونه اولویت می دهد::" #: ../../tutorial/classes.rst:476 #, fuzzy @@ -1109,19 +1105,17 @@ msgid "" ">>> print(w2.purpose, w2.region)\n" "storage east" msgstr "" -"```پایتون\n" ">>> class Warehouse:\n" -"... purpose = 'storage'\n" -"... region = 'west'\n" +"... purpose = 'انبار داری'\n" +"... region = 'غرب'\n" "...\n" ">>> w1 = Warehouse()\n" ">>> print(w1.purpose, w1.region)\n" "storage west\n" ">>> w2 = Warehouse()\n" -">>> w2.region = 'east'\n" +">>> w2.region = 'شرق'\n" ">>> print(w2.purpose, w2.region)\n" -"storage east\n" -"```" +"storage east" #: ../../tutorial/classes.rst:488 #, fuzzy @@ -1134,13 +1128,13 @@ msgid "" " implementation details and control access to an object if necessary; this " "can be used by extensions to Python written in C.)" msgstr "" -"ویژگی های داده می توانند توسط متدها و همچنین کاربران عادی (\"کلاینت ها\") یک" -" شیء مورد اشاره قرار گیرند. به عبارت دیگر، کلاس ها قابل استفاده برای پیاده " -"سازی انواع داده های کاملاً انتزاعی نیستند. در واقع، هیچ چیزی در پایتون وجود " -"ندارد که امکان پنهان سازی داده ها را به صورت اجباری فراهم کند --- این موضوع " -"کاملاً بر اساس قرارداد است. (از سوی دیگر, پیاده سازی پایتون که به زبان C " -"نوشته شده, می تواند جزئیات پیاده سازی را به طور کامل پنهان کند و در صورت " -"لزوم دسترسی به یک شیء را کنترل نماید؛ این قابلیت می تواند توسط افزونه های " +"ویژگی های داده ها ممکن است هم توسط متدها و هم توسط کاربران عادی " +"(\"مشتریان\") یک شیء مورد استفاده قرار گیرند. به عبارت دیگر، کلاس ها برای " +"پیاده سازی انواع داده های انتزاعی ناب قابل استفاده نیستند. در واقع، هیچ چیزی" +" در پایتون امکان پنهان سازی داده ها را به طور کامل فراهم نمی کند --- همه چیز" +" بر اساس قرارداد انجام می شود. (از طرف دیگر، پیاده سازی پایتون که به زبان C " +"نوشته شده است، می تواند جزئیات پیاده سازی را به طور کامل پنهان کند و در صورت" +" نیاز دسترسی به یک شیء را کنترل نماید؛ این قابلیت می تواند توسط افزونه های " "نوشته شده به زبان C برای پایتون استفاده شود.)" #: ../../tutorial/classes.rst:496 @@ -1152,12 +1146,12 @@ msgid "" " without affecting the validity of the methods, as long as name conflicts " "are avoided --- again, a naming convention can save a lot of headaches here." msgstr "" -"مشتری ها باید با احتیاط از ویژگی های داده استفاده کنند --- مشتری ها ممکن است" -" با تغییر دادن ویژگی های داده ای، قوانین ثابتی که توسط متدها حفظ می شوند را " -"خراب کنند. توجه داشته باشید که مشتری ها می توانند بدون تحت تأثیر قرار دادن " -"اعتبار متدها، ویژگی های داده ای خود را به یک شیء نمونه اضافه کنند، مادامی که" -" از تداخل اسامی جلوگیری شود --- باز هم، یک قرارداد نام گذاری می تواند بسیاری" -" از مشکلات را در اینجا برطرف کند." +"مشتریان باید با دقت از ویژگی های داده استفاده کنند --- ممکن است مشتریان با " +"تداخل در ویژگی های داده خود، ناپایداری هایی که توسط متدها حفظ می شود را به " +"هم بزنند. توجه داشته باشید که مشتریان ممکن است ویژگی های داده خود را بدون " +"تأثیر بر اعتبار متدها به یک شیء مثال اضافه کنند، به شرط اینکه از تداخل نام " +"ها جلوگیری شود --- مجدد، یک کنوانسیون نام گذاری می تواند بسیاری از مشکلات را" +" در اینجا حل کند." #: ../../tutorial/classes.rst:502 #, fuzzy @@ -1167,10 +1161,10 @@ msgid "" " methods: there is no chance of confusing local variables and instance " "variables when glancing through a method." msgstr "" -"هیچ روش کوتاه تری برای ارجاع به ویژگی های داده ها (یا روش های دیگر!) از داخل" -" متدها وجود ندارد. من معتقدم که این موضوع در واقع خوانایی متدها را افزایش می" -" دهد: هنگامی که نگاهی سریع به یک متد می کنیم، هیچ احتمالی برای اشتباه گرفتن " -"متغیرهای محلی و متغیرهای نمونه وجود ندارد." +"هیچ روش کوتاهی برای ارجاع به ویژگی های داده (یا روش های دیگر!) از درون متدها" +" وجود ندارد. من معتقدم که این در واقع خوانایی متدها را افزایش می دهد: هیچ " +"احتمالی برای اشتباه گرفتن متغیرهای محلی و متغیرهای نمونه در هنگام مرور سریع " +"یک متد وجود ندارد." #: ../../tutorial/classes.rst:507 #, fuzzy @@ -1182,11 +1176,11 @@ msgid "" " that a *class browser* program might be written that relies upon such a " "convention." msgstr "" -"اغلباً، اولین آرگومان یک متد ``self`` نامیده می شود. این موضوع چیزی جز یک " -"عرف نیست: نام ``self`` به هیچ عنوان برای پایتون معنای خاصی ندارد. اما توجه " -"داشته باشید که با رعایت نکردن این عرف، کد شما ممکن است برای دیگر برنامه " -"نویسان پایتون کمتر قابل خواندن باشد و همچنین ممکن است یک برنامه *class " -"browser* نوشته شود که به چنین عُرفی وابسته باشد." +"اغلباً، اولین آرگومان یک متد ``self`` نامیده می شود. این تنها یک قرارداد " +"است: نام ``self`` هیچ معنای خاصی برای پایتون ندارد. اما توجه داشته باشید که " +"با رعایت نکردن این قرارداد، امکان دارد کد شما برای دیگر برنامه نویسان پایتون" +" کمتر قابل خواندن باشد و همچنین ممکن است یک برنامه *class browser* نوشته شود" +" که به چنین قراردادی وابسته باشد." #: ../../tutorial/classes.rst:513 #, fuzzy @@ -1196,10 +1190,9 @@ msgid "" "textually enclosed in the class definition: assigning a function object to a" " local variable in the class is also ok. For example::" msgstr "" -"هر شیء تابع که یک ویژگی کلاس باشد، یک متد برای نمونه های آن کلاس تعریف می " -"کند. ضروری نیست که تعریف تابع به صورت متنی در تعریف کلاس قرار داشته باشد: " -"اختصاص دادن یک شیء تابع به یک متغیر محلی در کلاس نیز مجاز است. به عنوان " -"مثال::" +"هر شیء تابع ای که یک ویژگی کلاس باشد، یک متد برای نمونه های آن کلاس تعریف می" +" کند. ضروری نیست که تعریف تابع به طور متنی در تعریف کلاس قرار بگیرد: تخصیص " +"یک شیء تابع به یک متغیر محلی در کلاس نیز قابل قبول است. برای مثال:" #: ../../tutorial/classes.rst:518 #, fuzzy @@ -1216,7 +1209,7 @@ msgid "" "\n" " h = g" msgstr "" -"# Function defined outside the class\n" +"# تابعی که در خارج از کلاس تعریف شده است\n" "def f1(self, x, y):\n" " return min(x, x+y)\n" "\n" @@ -1236,10 +1229,10 @@ msgid "" "instances of :class:`!C` --- ``h`` being exactly equivalent to ``g``. Note " "that this practice usually only serves to confuse the reader of a program." msgstr "" -"اکنون ``f``، ``g`` و ``h`` همگی ویژگی های کلاس :class:`!C` هستند که به اشیاء" -" تابع اشاره می کنند و در نتیجه همگی روش ها (متدها)ی نمونه های :class:`!C` " -"هستند --- و ``h`` کاملاً معادل ``g`` است. توجه داشته باشید که این رویکرد " -"معمولاً فقط برای خواننده برنامه گیج کننده است." +"اکنون ``f``، ``g`` و ``h`` همگی خصوصیاتی از کلاس :class:`!C` هستند که به " +"اشیاء تابع اشاره دارند و به تبع آن، همگی متدهای نمونه های :class:`!C` هستند " +"--- ``h`` دقیقاً معادل ``g`` است. توجه داشته باشید که این رویکرد معمولاً " +"تنها باعث سردرگمی خواننده یک برنامه می شود." #: ../../tutorial/classes.rst:535 #, fuzzy @@ -1247,8 +1240,8 @@ msgid "" "Methods may call other methods by using method attributes of the ``self`` " "argument::" msgstr "" -"روش ها می توانند با استفاده از ویژگی های متدی از آرگومان ``self``، متدهای " -"دیگر را فراخوانی کنند::" +"متدها می توانند با استفاده از ویژگی های متد آرگومان ``self``، متدهای دیگر را" +" فراخوانی کنند:" #: ../../tutorial/classes.rst:538 #, fuzzy @@ -1264,7 +1257,7 @@ msgid "" " self.add(x)\n" " self.add(x)" msgstr "" -"class Bag:\n" +"کلاس Bag:\n" " def __init__(self):\n" " self.data = []\n" "\n" @@ -1288,16 +1281,16 @@ msgid "" "itself defined in this global scope, and in the next section we'll find some" " good reasons why a method would want to reference its own class." msgstr "" -"متدها می توانند به همان شیوه ای که توابع عادی به نام های سراسری ارجاع می " -"دهند، به نام های سراسری دسترسی داشته باشند. دامنه سراسری مرتبط با یک متد، " -"ماژولی است که تعریف آن را در بر دارد. (یک کلاس هرگز به عنوان دامنه سراسری " -"استفاده نمی شود.) اگرچه بندرت دلیلی خوب برای استفاده از داده های سراسری در " -"یک متد وجود دارد، اما استفاده های موجه فراوانی برای دامنه سراسری وجود دارد: " -"به عنوان مثال، توابع و ماژول هایی که در دامنه سراسری وارد شده اند، می توانند" -" توسط متدها، و همچنین توابع و کلاس های تعریف شده در آن استفاده شوند. به طور " -"معمول، کلاسی که متد را در خود دارد، خود در این دامنه سراسری تعریف شده است و " -"در بخش بعدی، دلایل خوبی خواهیم یافت که چرا یک متد ممکن است بخواهد به کلاس " -"خودش ارجاع دهد." +"متدها می توانند به همان شکلی که توابع عادی به نام های عمومی ارجاع می دهند، " +"به نام های عمومی دسترسی داشته باشند. دامنه عمومی مرتبط با یک متد، ماژولی است" +" که تعریف آن را در بر می گیرد. (یک کلاس هرگز به عنوان یک دامنه عمومی استفاده" +" نمی شود.) در حالی که به ندرت دلایل خوبی برای استفاده از داده های عمومی در " +"یک متد دیده می شود، استفاده زیادی از دامنه عمومی وجود دارد: برای مثال، توابع" +" و ماژول هایی که به دامنه عمومی وارد شده اند، می توانند توسط متدها و همچنین " +"توابع و کلاس هایی که در آن تعریف شده اند، استفاده شوند. به طور معمول، کلاسی " +"که حاوی متد است، به خودی خود در این دامنه عمومی تعریف می شود و در بخش بعدی " +"به دلایل خوبی خواهیم پرداخت که چرا یک متد ممکن است بخواهد به کلاس خودش ارجاع" +" دهد." #: ../../tutorial/classes.rst:559 #, fuzzy @@ -1305,8 +1298,8 @@ msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." msgstr "" -"هر مقدار یک شیء است و به همین دلیل دارای یک *class* (که به آن *type* نیز " -"گفته می شود) است. این مقدار به صورت ``object.__class__`` ذخیره می شود." +"هر مقدار یک شیء است، و بنابراین دارای *class* (که همچنین به عنوان *type* " +"نامیده می شود) است. این به صورت ``object.__class__`` ذخیره می شود." #: ../../tutorial/classes.rst:566 #, fuzzy @@ -1320,8 +1313,8 @@ msgid "" "without supporting inheritance. The syntax for a derived class definition " "looks like this::" msgstr "" -"البته، یک ویژگی زبان بدون پشتیبانی از ارث بری شایسته نام \"کلاس\" نخواهد " -"بود. سینتکس تعریف یک کلاس مشتق شده به این شکل است::" +"البته، یک ویژگی زبانی بدون پشتیبانی از ارث بری شایسته ی نام \"کلاس\" نخواهد " +"بود. نحو تعریف یک کلاس مشتق به این شکل است::" #: ../../tutorial/classes.rst:572 #, fuzzy @@ -1333,12 +1326,12 @@ msgid "" " .\n" " " msgstr "" -"کلاس `DerivedClassName` که از `BaseClassName` ارث بری می کند:\n" -" <بیانیه-۱>\n" +"کلاس DerivedClassName(BaseClassName):\n" +" \n" " .\n" " .\n" " .\n" -" <بیانیه-N>" +" " #: ../../tutorial/classes.rst:579 #, fuzzy @@ -1349,14 +1342,14 @@ msgid "" "useful, for example, when the base class is defined in another module::" msgstr "" "نام :class:`!BaseClassName` باید در یک فضای نام که از حوزه ای که تعریف کلاس " -"مشتق را شامل می شود، قابل دسترسی باشد. به جای نام کلاس پایه، سایر عبارات " -"دلخواه نیز مجاز هستند. به عنوان مثال، این مورد می تواند زمانی مفید باشد که " -"کلاس پایه در ماژول دیگری تعریف شده باشد:" +"مشتق شده است قابل دسترسی باشد، تعریف شود. به جای نام یک کلاس پایه، تعابیر " +"دلخواه دیگر نیز مجاز هستند. این ویژگی می تواند برای مثال، زمانی که کلاس پایه" +" در یک ماژول دیگر تعریف شده است، مفید باشد:" #: ../../tutorial/classes.rst:585 #, fuzzy msgid "class DerivedClassName(modname.BaseClassName):" -msgstr "کلاس `DerivedClassName(modname.BaseClassName):`" +msgstr "کلاس DerivedClassName(modname.BaseClassName):" #: ../../tutorial/classes.rst:587 #, fuzzy @@ -1368,11 +1361,11 @@ msgid "" "This rule is applied recursively if the base class itself is derived from " "some other class." msgstr "" -"اجرای تعریف یک کلاس مشتق شده به همان روشی که برای یک کلاس پایه انجام می شود،" -" پیش می رود. هنگامی که شیء کلاس ساخته می شود، کلاس پایه در حافظه نگه داشته " -"می شود. این موضوع برای حل ارجاعات ویژگی ها استفاده می شود: اگر یک ویژگی " -"درخواست شده در کلاس یافت نشود، جست وجو به کلاس پایه منتقل می شود. این قاعده " -"به صورت بازگشتی اعمال می شود اگر خود کلاس پایه از کلاس دیگری مشتق شده باشد." +"اجرای تعریف یک کلاس مشتق شده به همان صورتی که برای یک کلاس پایه انجام می " +"شود، پیش می رود. وقتی شیء کلاس ساخته می شود، کلاس پایه به خاطر سپرده می شود." +" این برای حل مرجع های ویژگی استفاده می شود: اگر یک ویژگی درخواست شده در کلاس" +" پیدا نشود، جستجو به کلاس پایه ادامه می یابد. این قاعده به صورت بازگشتی " +"اعمال می شود اگر کلاس پایه خود از کلاس دیگری مشتق شده باشد." #: ../../tutorial/classes.rst:593 #, fuzzy @@ -1383,11 +1376,11 @@ msgid "" "searched, descending down the chain of base classes if necessary, and the " "method reference is valid if this yields a function object." msgstr "" -"در نمونه سازی از کلاس های مشتق گرفته شده هیچ چیز ویژه ای وجود ندارد: با " -"``DerivedClassName()`` یک نمونه جدید از کلاس ایجاد می شود. ارجاع به متدها به" -" صورت زیر حل می شوند: ابتدا ویژگی کلاس مربوطه جستجو می شود، و در صورت لزوم " -"به سمت پایین زنجیره کلاس های پایه می رود، و ارجاع به متد معتبر است اگر در " -"نهایت یک شیء تابع به دست آید." +"چیزی خاصی درباره ایجاد نمونه از کلاس های مشتق شده وجود ندارد: " +"``DerivedClassName()`` یک نمونه جدید از کلاس را ایجاد می کند. به روش های " +"ارجاع به این صورت پرداخته می شود: ویژگی کلاس متناظر جستجو می شود، و در صورت " +"لزوم به سمت پایین زنجیره کلاس های پایه حرکت کرده و اگر این جستجو یک شیء تابع" +" را برگرداند، ارجاع به روش معتبر است." #: ../../tutorial/classes.rst:599 #, fuzzy @@ -1399,11 +1392,11 @@ msgid "" "(For C++ programmers: all methods in Python are effectively ``virtual``.)" msgstr "" "کلاس های مشتق شده ممکن است متدهای کلاس های پایه خود را بازنویسی کنند. از " -"آنجایی که متدها هنگام فراخوانی سایر متدها از همان شیء هیچ گونه امتیاز ویژه " -"ای ندارند، متدی از یک کلاس پایه که متد دیگری را که در همان کلاس پایه تعریف " -"شده است فراخوانی می کند ممکن است در نهایت یک متدی از کلاس مشتق شده که آن را " -"بازنویسی کرده است فراخوانی کند. (برای برنامه نویسان C++: تمام متدها در " -"پایتون به صورت ``virtual`` عمل می کنند.)" +"آنجایی که متدها هنگام فراخوانی سایر متدهای همان شیء هیچ امتیاز ویژه ای " +"ندارند، یک متد از کلاس پایه که متد دیگری را که در همان کلاس پایه تعریف شده " +"فراخوانی می کند ممکن است در نهایت متدی از یک کلاس مشتق شده را که آن را " +"بازنویسی کرده است، فراخوانی کند. (برای برنامه نویسان C++: تمام متدها در " +"پایتون به طور مؤثر ``virtual`` هستند.)" #: ../../tutorial/classes.rst:605 #, fuzzy @@ -1415,18 +1408,17 @@ msgid "" "to clients as well. (Note that this only works if the base class is " "accessible as ``BaseClassName`` in the global scope.)" msgstr "" -"ممکن است یک متد بازنویسی شده در یک کلاس مشتق بخواهد که به جای اینکه فقط متد " -"کلاس پایه با همان نام را جایگزین کند، آن را گسترش دهد. یک روش ساده برای " -"فراخوانی مستقیم متد کلاس پایه وجود دارد: تنها کافی است " +"در یک کلاس مشتق شده، یک متد جایگزین می تواند بخواهد به جای اینکه صرفاً متد " +"کلاس پایه با همان نام را جایگزین کند، آن را گسترش دهد. یک راه ساده برای " +"فراخوانی مستقیم متد کلاس پایه وجود دارد: فقط " "``BaseClassName.methodname(self, arguments)`` را فراخوانی کنید. این روش گاهی" -" اوقات برای کاربران نیز مفید است. (توجه داشته باشید که این فقط در صورتی کار " -"می کند که کلاس پایه به عنوان ``BaseClassName`` در دامنه ی جهانی قابل دسترسی " -"باشد.)" +" برای کاربران نیز مفید است. (توجه داشته باشید که این تنها زمانی کار می کند " +"که کلاس پایه به عنوان ``BaseClassName`` در حوزهٔ جهانی در دسترس باشد.)" #: ../../tutorial/classes.rst:612 #, fuzzy msgid "Python has two built-in functions that work with inheritance:" -msgstr "پایتون دارای دو تابع داخلی است که با وراثت کار می کنند:" +msgstr "پایتون دو تابع داخلی دارد که با ارث بری کار می کنند:" #: ../../tutorial/classes.rst:614 #, fuzzy @@ -1436,8 +1428,8 @@ msgid "" "derived from :class:`int`." msgstr "" "از :func:`isinstance` برای بررسی نوع یک نمونه استفاده کنید: " -"``isinstance(obj, int)`` تنها زمانی ``True`` خواهد بود که ``obj.__class__`` " -"برابر با :class:`int` یا یک کلاس مشتق شده از :class:`int` باشد." +"``isinstance(obj, int)`` فقط زمانی ``True`` خواهد بود که ``obj.__class__`` " +"برابر با :class:`int` یا کلاسی که از :class:`int` مشتق شده است باشد." #: ../../tutorial/classes.rst:618 #, fuzzy @@ -1447,10 +1439,10 @@ msgid "" "``issubclass(float, int)`` is ``False`` since :class:`float` is not a " "subclass of :class:`int`." msgstr "" -"برای بررسی وراثت کلاس از :func:`issubclass` استفاده کنید: ``issubclass(bool," -" int)`` یک ``True`` است زیرا :class:`bool` زیرکلاسی از :class:`int` است. " -"اما، ``issubclass(float, int)`` یک ``False`` نیست زیرا :class:`float` " -"زیرکلاسی از :class:`int` نیست." +"از :func:`issubclass` برای بررسی وراثت کلاس ها استفاده کنید: " +"``issubclass(bool, int)`` از ``True`` است چونکه :class:`bool` یک زیرکلاس از " +":class:`int` است. با این حال، ``issubclass(float, int)`` از ``False`` نیست " +"چونکه :class:`float` یک زیرکلاس از :class:`int` نیست." #: ../../tutorial/classes.rst:628 #, fuzzy @@ -1463,8 +1455,8 @@ msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" msgstr "" -"پایتون از یک نوع وراثت چندگانه نیز پشتیبانی می کند. تعریف یک کلاس با چند " -"کلاس پایه به این صورت است::" +"پایتون از نوعی از وراثت چندگانه نیز پشتیبانی می کند. تعریف یک کلاس با چندین " +"کلاس پایه به این شکل است::" #: ../../tutorial/classes.rst:633 #, fuzzy @@ -1476,12 +1468,12 @@ msgid "" " .\n" " " msgstr "" -"کلاس `DerivedClassName` (پایه1, پایه2, پایه3):\n" -" <دستورا لعمل-۱>\n" +"کلاس DerivedClassName(Base1, Base2, Base3):\n" +" \n" " .\n" " .\n" " .\n" -" <دستورا لعمل-N>" +" " #: ../../tutorial/classes.rst:640 #, fuzzy @@ -1494,13 +1486,13 @@ msgid "" "classes of :class:`!Base1`, and if it was not found there, it was searched " "for in :class:`!Base2`, and so on." msgstr "" -"برای اکثر اهداف، در ساده ترین حالت ها، می توانید جستجو برای ویژگی هایی که از" -" یک کلاس والد به ارث می رسند را به صورت عمق-اول، از چپ به راست در نظر " -"بگیرید، به طوری که در همان کلاسی که در سلسله مراتب همپوشانی وجود دارد، دوبار" -" جستجو نمی شود. بنابراین، اگر یک ویژگی در `:class:`!DerivedClassName`` پیدا " -"نشود، در `:class:`!Base1`` جستجو می شود، سپس (به صورت بازگشتی) در کلاس های " -"پایه `:class:`!Base1`` و اگر در آنجا پیدا نشد، در `:class:`!Base2`` و به " -"همین ترتیب جستجو می شود." +"برای بیشتر مقاصد، در ساده ترین موارد، می توانید جستجوی ویژگی های به ارث برده" +" شده از یک کلاس والد را به صورت عمق اول، از چپ به راست در نظر بگیرید، به " +"طوری که در جایی که در سلسله مراتب هم پوشانی وجود دارد، در یک کلاس دوبار " +"جستجو نشود. بنابراین، اگر یک ویژگی در :class:`!DerivedClassName` پیدا نشد، " +"در :class:`!Base1` جستجو می شود، سپس (به صورت بازگشتی) در کلاس های پایه " +":class:`!Base1` جستجو می شود، و اگر در آنجا یافت نشد، در :class:`!Base2` " +"جستجو می شود، و به همین ترتیب ادامه دارد." #: ../../tutorial/classes.rst:647 #, fuzzy @@ -1511,11 +1503,10 @@ msgid "" "method and is more powerful than the super call found in single-inheritance " "languages." msgstr "" -"در واقع، این موضوع کمی پیچیده تر از این است؛ ترتیب اولویت روش ها به صورت " -"پویا تغییر می کند تا از فراخوانی های هماهنگ به `:func:`super`` پشتیبانی کند." -" این رویکرد در برخی زبان های با ارث بری چندگانه به عنوان call-next-method " -"شناخته می شود و از فراخوانی super که در زبان های با ارث بری تکگانه یافت می " -"شود، قدرتمندتر است." +"در واقع، این کمی پیچیده تر از آن است؛ ترتیب حل روش به صورت دینامیکی تغییر می" +" کند تا از فراخوانی های تعاونی برای :func:`super` پشتیبانی کند. این رویکرد " +"در برخی زبان های چند-ارث بری دیگر به عنوان call-next-method شناخته می شود و " +"قدرتمندتر از فراخوانی super که در زبان های ارث بری منفرد یافت می شود، است." #: ../../tutorial/classes.rst:653 #, fuzzy @@ -1533,17 +1524,18 @@ msgid "" "properties make it possible to design reliable and extensible classes with " "multiple inheritance. For more detail, see :ref:`python_2.3_mro`." msgstr "" -"ترتیب دهی پویا ضروری است زیرا همه موارد وراثت چندگانه یک یا چند رابطه الماسی" -" را نشان می دهند (که در آن حداقل یکی از کلاس های والد می تواند از طریق " -"مسیرهای متعدد از کلاس پایین تر دسترسی پیدا کند). به عنوان مثال، همه کلاس ها " -"از `:class:`object`` ارث می برند، بنابراین هر مورد از وراثت چندگانه بیش از " -"یک مسیر برای رسیدن به `:class:`object`` فراهم می کند. برای جلوگیری از دسترسی" -" به کلاس های پایه بیش از یک بار، الگوریتم پویا ترتیب جستجو را به صورت خطی و " -"به گونه ای تنظیم می کند که ترتیب چپ به راست مشخص شده در هر کلاس را حفظ کند، " -"هر والد را تنها یک بار صدا بزند و یکنواخت باشد (به این معنی که یک کلاس می " -"تواند بدون تأثیر بر ترتیب اولویت والدین زیرکلاس شود). با هم، این ویژگی ها " -"امکان طراحی کلاس های قابل اعتماد و قابل توسعه با وراثت چندگانه را فراهم می " -"سازند. برای جزئیات بیشتر، به `:ref:`python_2.3_mro`` مراجعه کنید." +"ترتیب دهی پویا لازم است زیرا در تمامی موارد وراثت چندگانه، یک یا چند رابطه " +"الماسی وجود دارد (که در آن حداقل یکی از کلاس های والد می تواند از طریق " +"مسیرهای مختلف از کلاس پایینی دسترسی پیدا کند). برای مثال، همه کلاس ها از " +":class:`object` مشتق می شوند، بنابراین هر مورد از وراثت چندگانه مسیرهای " +"متعددی برای رسیدن به :class:`object` ارائه می دهد. برای جلوگیری از دسترسی به" +" کلاس های پایه بیش از یک بار، الگوریتم پویا ترتیب جستجو را به شکل خطی " +"درآورده که ترتیب چپ به راست مشخص شده در هر کلاس را حفظ می کند، هر والد را " +"فقط یک بار فراخوانی می کند، و یکنواخت است (به این معنا که یک کلاس می تواند " +"زیرکلاس شود، بدون اینکه ترتیب اولویت والدین آن تحت تأثیر قرار گیرد). این " +"ویژگی ها به طور کلی امکان طراحی کلاس های قابل اعتماد و قابل توسعه با وراثت " +"چندگانه را فراهم می کند. برای جزئیات بیشتر، به :ref:`python_2.3_mro` مراجعه " +"کنید." #: ../../tutorial/classes.rst:670 #, fuzzy @@ -1560,12 +1552,12 @@ msgid "" "a function, a method or a data member). It should be considered an " "implementation detail and subject to change without notice." msgstr "" -"در پایتون، متغیرهای نمونه «خصوصی» که نمی توان به آنها دسترسی داشت مگر از " -"داخل یک شی، وجود ندارند. با این حال، یک قاعده وجود دارد که بیشتر کدهای " -"پایتون از آن پیروی می کنند: نامی که با یک زیرخط (مانند ``_spam``) شروع می " -"شود، باید به عنوان بخشی غیرعمومی از API در نظر گرفته شود (چه این نام یک " -"تابع, یک روش یا یک عضو داده باشد). این باید به عنوان جزئیات پیاده سازی در " -"نظر گرفته شود و ممکن است بدون اطلاع قبلی تغییر کند." +"متغیرهای نمونه \"خصوصی\" که نمی توان به جز از داخل یک شیء به آن ها دسترسی " +"داشت در پایتون وجود ندارند. با این حال، یک قرارداد وجود دارد که توسط بیشتر " +"کدهای پایتون رعایت می شود: یک نام که با یک آندرلاین پیشوند شده است (برای " +"مثال ``_spam``) باید به عنوان بخشی غیرعمومی از API در نظر گرفته شود (چه " +"کاربرد یک تابع، یک روش یا یک عضو داده باشد). باید به عنوان یک جزئیات پیاده " +"سازی تلقی شود و ممکن است بدون هشدار قبلی تغییر کند." #: ../../tutorial/classes.rst:682 #, fuzzy @@ -1579,14 +1571,13 @@ msgid "" " This mangling is done without regard to the syntactic position of the " "identifier, as long as it occurs within the definition of a class." msgstr "" -"از آنجایی که کاربرد معتبری برای اعضای خصوصی کلاس وجود دارد (یعنی جلوگیری از " -"تداخل نام ها با نام هایی که توسط زیرکلاس ها تعریف می شوند), پشتیبانی محدودی " -"برای این مکانیزم، که به آن :dfn:`تغییر نام` گفته می شود، وجود دارد. هر شناسه" -" ای از فرم ``__spam`` (که حداقل شامل دو زیرخط در ابتدا و حداکثر یک زیرخط در " -"انتها باشد) به صورت متنی با ``_classname__spam`` جایگزین می شود، که در اینجا" -" ``classname`` نام کلاس جاری با حذف زیرخط های ابتدایی است. این تغییر نام " -"بدون توجه به موقعیت نحوی شناسه انجام می شود، تا زمانی که در تعریف یک کلاس " -"ظاهر شود." +"از آنجا که استفاده موجه ای برای اعضای خصوصی کلاس وجود دارد (یعنی به منظور " +"جلوگیری از تداخل نام ها با نام هایی که توسط زیرکلاس ها تعریف شده اند)، " +"پشتیبانی محدودی برای چنین مکانیزمی به نام :dfn:`تغییر نام` وجود دارد. هر " +"شناسه ای به فرم ``__spam`` (حداقل با دو زیرخط ابتدایی و حداکثر یک زیرخط " +"انتهایی) به صورت متنی با ``_classname__spam`` جایگزین می شود، که در آن " +"``classname`` نام کلاس جاری است با حذف زیرخط های اولیه. این تغییر نام بدون " +"توجه به موقعیت نحوی شناسه انجام می شود، تا زمانی که در تعریف یک کلاس رخ دهد." #: ../../tutorial/classes.rst:693 #, fuzzy @@ -1603,8 +1594,8 @@ msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" msgstr "" -"نام گذاری مبهم برای این مفید است که به زیرکلاس ها اجازه دهد تا متدها را بدون" -" خراب کردن فراخوانی های متد داخل کلاس، بازنویسی کنند. برای مثال:" +"نام گذاری مخفی برای اجازه دادن به زیربخش ها برای نادیده گرفتن روش ها بدون " +"شکستن فراخوانی های روش درون کلاسی مفید است. به عنوان مثال:" #: ../../tutorial/classes.rst:699 #, fuzzy @@ -1628,7 +1619,7 @@ msgid "" " for item in zip(keys, values):\n" " self.items_list.append(item)" msgstr "" -"class Mapping:\n" +"کلاس Mapping:\n" " def __init__(self, iterable):\n" " self.items_list = []\n" " self.__update(iterable)\n" @@ -1637,13 +1628,13 @@ msgstr "" " for item in iterable:\n" " self.items_list.append(item)\n" "\n" -" __update = update # private copy of original update() method\n" +" __update = update # کپی خصوصی از متد اصلی update()\n" "\n" -"class MappingSubclass(Mapping):\n" +"کلاس MappingSubclass(Mapping):\n" "\n" " def update(self, keys, values):\n" -" # provides new signature for update()\n" -" # but does not break __init__()\n" +" # امضای جدیدی برای update() فراهم می کند\n" +" # اما __init__() را نمی شکند\n" " for item in zip(keys, values):\n" " self.items_list.append(item)" @@ -1655,10 +1646,9 @@ msgid "" "the ``Mapping`` class and ``_MappingSubclass__update`` in the " "``MappingSubclass`` class respectively." msgstr "" -"نمونه ی بالا حتی اگر ``MappingSubclass`` یک شناسه ی ``__update`` معرفی کند " -"نیز کار خواهد کرد، زیرا به ترتیب در کلاس ``Mapping`` با ``_Mapping__update``" -" و در کلاس ``MappingSubclass`` با ``_MappingSubclass__update`` جایگزین می " -"شود." +"مثال بالا حتی اگر ``MappingSubclass`` یک شناسه ``__update`` معرفی کند نیز " +"کار خواهد کرد زیرا در کلاس ``Mapping`` با ``_Mapping__update`` و در کلاس " +"``MappingSubclass`` با ``_MappingSubclass__update`` جایگزین می شود." #: ../../tutorial/classes.rst:723 #, fuzzy @@ -1667,10 +1657,10 @@ msgid "" "still is possible to access or modify a variable that is considered private." " This can even be useful in special circumstances, such as in the debugger." msgstr "" -"توجه داشته باشید که قوانین \"mangling\" عمدتاً برای جلوگیری از تصادفات طراحی" -" شده اند؛ همچنان ممکن است که بتوان به یک متغیر که خصوصی در نظر گرفته شده است" -" دسترسی پیدا کرد یا آن را تغییر داد. این مورد می تواند در شرایط خاص، مثل " -"مواقعی که به دیباگر نیاز است، مفید باشد." +"توجه داشته باشید که قوانین مبهم سازی عمدتاً برای جلوگیری از تصادفات طراحی " +"شده اند؛ همچنان ممکن است به یک متغیر که خصوصی محسوب می شود دسترسی پیدا کرده " +"یا آن را تغییر دهید. این امر حتی می تواند در شرایط خاص، مانند درون دیباگر " +"مفید باشد." #: ../../tutorial/classes.rst:727 #, fuzzy @@ -1682,17 +1672,17 @@ msgid "" "applies to ``getattr()``, ``setattr()`` and ``delattr()``, as well as when " "referencing ``__dict__`` directly." msgstr "" -"توجه داشته باشید که کدی که به ```exec()``` یا ```eval()``` ارسال می شود، " -"classname کلاس فراخوانی را به عنوان کلاس جاری در نظر نمی گیرد؛ این مشابه اثر" -" دستور ```global``` است که اثر آن نیز به کدی محدود می شود که به صورت بایت " -"کامپایل شده با هم است. همین محدودیت برای ```getattr()```، ```setattr()``` و " -"```delattr()``` نیز اعمال می شود، و همچنین وقتی که مستقیم به ```__dict__``` " -"ارجاع داده می شود." +"توجه داشته باشید که کدی که به ``exec()`` یا ``eval()`` ارسال می شود، " +"classname کلاس فراخوانی شده را به عنوان کلاس فعلی در نظر نمی گیرد؛ این مشابه" +" تأثیر جمله ``global`` است که اثر آن نیز به کدی محدود می شود که با هم byte-" +"compiled شده اند. همین محدودیت برای ``getattr()``، ``setattr()`` و " +"``delattr()`` نیز اعمال می شود، همچنین زمانی که به طور مستقیم به " +"``__dict__`` ارجاع داده می شود." #: ../../tutorial/classes.rst:738 #, fuzzy msgid "Odds and Ends" -msgstr "Odds and Ends" +msgstr "موارد متفرقه و نکات نهایی" #: ../../tutorial/classes.rst:740 #, fuzzy @@ -1701,9 +1691,10 @@ msgid "" "or C \"struct\", bundling together a few named data items. The idiomatic " "approach is to use :mod:`dataclasses` for this purpose::" msgstr "" -"گاهی اوقات مفید است که یک نوع داده ای مشابه با \"record\" در زبان پاسکال یا " -"\"struct\" در زبان C داشته باشیم که چندین مورد داده نام گذاری شده را با هم " -"گروه بندی کند. روش ایدئال استفاده از :mod:`dataclasses` برای این منظور است::" +"گاهی اوقات داشتن یک نوع داده مشابه به \"record\" در زبان Pascal یا " +"\"struct\" در زبان C، که چند آیتم داده ای با نام های مشخص را با هم جمع می " +"کند، مفید است. روش ایدیوماتیک برای این منظور استفاده از :mod:`dataclasses` " +"است::" #: ../../tutorial/classes.rst:744 #, fuzzy @@ -1716,7 +1707,7 @@ msgid "" " dept: str\n" " salary: int" msgstr "" -"from dataclasses import dataclass\n" +"از dataclasses وارد کنید import کنید\n" "\n" "@dataclass\n" "class Employee:\n" @@ -1749,12 +1740,12 @@ msgid "" ":meth:`~io.TextIOBase.readline` that get the data from a string buffer " "instead, and pass it as an argument." msgstr "" -"یک قطعه کد پایتون که انتظار یک نوع داده انتزاعی خاصی را دارد، اغلب می تواند " -"به جای آن از یک کلاس که متدهای آن نوع داده را شبیه سازی می کند، استفاده کند." -" به عنوان مثال، اگر تابعی دارید که برخی از داده ها را از یک شی فایل قالب " -"بندی می کند، می توانید کلاسی با متدهای :meth:`~io.TextIOBase.read` و " -":meth:`~io.TextIOBase.readline` تعریف کنید که داده ها را به جای آن از یک " -"بافر رشته ای دریافت کند و آن را به عنوان یک آرگومان ارسال کند." +"وقتی که یک قطعه کد Python نیاز به یک نوع داده انتزاعی خاص دارد، اغلب می توان" +" بجای آن یک کلاسی که روش های آن نوع داده را شبیه سازی می کند، پاس کرد. به " +"عنوان مثال، اگر تابعی دارید که داده هایی را از یک شیء فایل فرمت می کند، می " +"توانید کلاسی با روش های :meth:`~io.TextIOBase.read` و " +":meth:`~io.TextIOBase.readline` تعریف کنید که داده ها را از یک بافر رشته ای " +"دریافت کند و آن را به عنوان یک آرگومان پاس کنید." #: ../../tutorial/classes.rst:772 #, fuzzy @@ -1765,14 +1756,14 @@ msgid "" "object ` corresponding to the method." msgstr "" ":ref:`Instance method objects ` نیز ویژگی هایی دارند: " -":attr:`m.__self__ ` شیء نمونه به همراه متد :meth:`!m` است و" -" :attr:`m.__func__ ` برابر است با :ref:`function object " -"` مربوط به آن متد." +":attr:`m.__self__ ` شیء نمونه با متد :meth:`!m` است و " +":attr:`m.__func__ ` همان :ref:`function object ` مربوط به متد است." #: ../../tutorial/classes.rst:782 #, fuzzy msgid "Iterators" -msgstr "ایتریتورها" +msgstr "ترتیب دهنده ها" #: ../../tutorial/classes.rst:784 #, fuzzy @@ -1780,8 +1771,8 @@ msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" msgstr "" -"احتمالاً تا به حال متوجه شده اید که اکثر اشیاء کانتینر را می توان با استفاده" -" از عبارت `for` مرور کرد:" +"احتمالاً تا حالا متوجه شده اید که اکثر اشیاء ظرفی می توانند با استفاده از یک" +" عبارت :keyword:`for` حلقه زده شوند::" #: ../../tutorial/classes.rst:787 #, fuzzy @@ -1797,15 +1788,15 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end='')" msgstr "" -"for element in [1, 2, 3]:\n" +"برای عنصر در [1, 2, 3]:\n" " print(element)\n" -"for element in (1, 2, 3):\n" +"برای عنصر در (1, 2, 3):\n" " print(element)\n" -"for key in {'one':1, 'two':2}:\n" +"برای کلید در {'one':1, 'two':2}:\n" " print(key)\n" -"for char in \"123\":\n" +"برای کاراکتر در \"123\":\n" " print(char)\n" -"for line in open(\"myfile.txt\"):\n" +"برای خط در open(\"myfile.txt\"):\n" " print(line, end='')" #: ../../tutorial/classes.rst:798 @@ -1821,15 +1812,15 @@ msgid "" "terminate. You can call the :meth:`~iterator.__next__` method using the " ":func:`next` built-in function; this example shows how it all works::" msgstr "" -"این سبک دسترسی واضح، مختصر و راحت است. استفاده از تکرارگرها در پایتون گسترده" -" و یکپارچه است. در پشت صحنه، دستور :keyword:`for`، :func:`iter` را روی شیء " -"کانتینر فراخوانی می کند. این تابع یک شیء تکرارگر را برمی گرداند که متد " -":meth:`~iterator.__next__` را تعریف می کند و عناصر درون کانتینر را یکی یکی " -"دسترسی می دهد. زمانی که دیگر عنصری باقی نمانده باشد، " -":meth:`~iterator.__next__` یک استثنای :exc:`StopIteration` را مطرح می کند که" -" به حلقه :keyword:`!for` می گوید پایان یابد. شما می توانید متد " -":meth:`~iterator.__next__` را با استفاده از تابع ساخته شده :func:`next` " -"فراخوانی کنید؛ این مثال نشان می دهد که چگونه همه ی اینها کار می کند::" +"این سبک دسترسی واضح، مختصر و راحت است. استفاده از پیمانه ها در سراسر Python " +"گسترده و یگانه است. در پشت صحنه، عبارت :keyword:`for` تابع :func:`iter` را " +"بر روی شیء ظرف فراخوانی می کند. این تابع شیء پیمانه ای را برمی گرداند که متد" +" :meth:`~iterator.__next__` را تعریف می کند که عناصر را در ظرف یکی یکی " +"دسترسی می دهد. زمانی که دیگر هیچ عنصری باقی نیست، :meth:`~iterator.__next__`" +" یک استثنای :exc:`StopIteration` را برمی انگیزد که به حلقه ی :keyword:`!for`" +" می گوید که متوقف شود. شما می توانید متد :meth:`~iterator.__next__` را با " +"استفاده از تابع داخلی :func:`next` فراخوانی کنید؛ این مثال نشان می دهد که " +"همه این کارها چگونه انجام می شود:" #: ../../tutorial/classes.rst:807 #, fuzzy @@ -1850,7 +1841,6 @@ msgid "" " next(it)\n" "StopIteration" msgstr "" -"```python\n" ">>> s = 'abc'\n" ">>> it = iter(s)\n" ">>> it\n" @@ -1865,8 +1855,7 @@ msgstr "" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" " next(it)\n" -"StopIteration\n" -"```" +"StopIteration" #: ../../tutorial/classes.rst:823 #, fuzzy @@ -1877,11 +1866,10 @@ msgid "" " the class defines :meth:`!__next__`, then :meth:`!__iter__` can just return" " ``self``::" msgstr "" -"اکنون که با مکانیزم های پشت پروتکل iterator آشنا شده اید، افزودن رفتار " -"iterator به کلاس هایتان آسان است. یک متد :meth:`~container.__iter__` تعریف " -"کنید که یک شیء با متد :meth:`~iterator.__next__` برگرداند. اگر کلاس " -":meth:`!__next__` را تعریف کند، در آن صورت :meth:`!__iter__` می تواند تنها " -"``self`` را برگرداند::" +"با مشاهده مکانیزم های پشت پروتکل تکرارگر، افزودن رفتار تکرارگر به کلاس " +"هایتان آسان است. یک متد :meth:`~container.__iter__` تعریف کنید که یک شیء با " +"متد :meth:`~iterator.__next__` را بازگشت دهد. اگر کلاس :meth:`!__next__` را " +"تعریف کند، آنگاه :meth:`!__iter__` می تواند فقط ``self`` را بازگرداند::" #: ../../tutorial/classes.rst:828 #, fuzzy @@ -1901,8 +1889,8 @@ msgid "" " self.index = self.index - 1\n" " return self.data[self.index]" msgstr "" -"class Reverse:\n" -" \"\"\"Iterator for looping over a sequence backwards.\"\"\"\n" +"کلاس Reverse:\n" +" \"\"\" پیماینده برای مرور بر روی یک دنباله به صورت معکوس.\"\"\"\n" " def __init__(self, data):\n" " self.data = data\n" " self.index = len(data)\n" @@ -1944,7 +1932,7 @@ msgstr "" #: ../../tutorial/classes.rst:860 #, fuzzy msgid "Generators" -msgstr "مولدها" +msgstr "تولیدکننده ها" #: ../../tutorial/classes.rst:862 #, fuzzy @@ -1956,13 +1944,13 @@ msgid "" "remembers all the data values and which statement was last executed). An " "example shows that generators can be trivially easy to create::" msgstr "" -":term:`Generators ` ابزاری ساده و قدرتمند برای ایجاد iterator ها " -"هستند. آن ها مثل توابع معمولی نوشته می شوند اما هر زمان که بخواهند داده ای " -"بازگردانند، از دستور :keyword:`yield` استفاده می کنند. هر بار که " -":func:`next` روی آن فراخوانی می شود، generator از جایی که متوقف شده بود " -"ادامه می دهد (تمام مقادیر داده و این که کدام دستور آخرین بار اجرا شده را به " -"خاطر می سپارد). یک مثال نشان می دهد که generator ها می توانند به راحتی ساخته" -" شوند::" +":term:`Generators ` یک ابزار ساده و قدرتمند برای ایجاد " +"اینتراتورها هستند. آنها مانند توابع عادی نوشته می شوند اما هر زمان که می " +"خواهند داده ای را بازگردانند از دستور :keyword:`yield` استفاده می کنند. هر " +"بار که :func:`next` بر روی آن فراخوانی می شود، مولد از جایی که متوقف شده " +"ادامه می یابد (تمام مقادیر داده ها و اینکه آخرین دستور اجرا شده چه بوده را " +"به خاطر می آورد). یک مثال نشان می دهد که ایجاد مولدها می تواند به طرز " +"باورنکردنی ساده باشد::" #: ../../tutorial/classes.rst:869 #, fuzzy @@ -1986,7 +1974,7 @@ msgid "" "o\n" "g" msgstr "" -">>> for char in reverse('golf'):\n" +">>> برای کاراکتر در reverse('golf'):\n" "... print(char)\n" "...\n" "f\n" @@ -2002,11 +1990,11 @@ msgid "" "compact is that the :meth:`~iterator.__iter__` and " ":meth:`~generator.__next__` methods are created automatically." msgstr "" -"هر چیزی که بتوان با تولیدکننده ها انجام داد، می توان با استفاده از " -"تکرارگرهای مبتنی بر کلاس که در بخش قبلی توضیح داده شد، نیز انجام داد. آنچه " -"که تولیدکننده ها را این چنین فشرده می کند این است که متدهای " -"``:meth:`~iterator.__iter__``` و ``:meth:`~generator.__next__``` به صورت " -"خودکار ایجاد می شوند." +"هر چیزی که با تولیدکننده ها (generators) قابل انجام است، می تواند با استفاده" +" از تکرارگرهای مبتنی بر کلاس نیز انجام شود، همانطور که در بخش قبلی توضیح " +"داده شد. آنچه تولیدکننده ها را فشرده می کند، این است که روش های " +":meth:`~iterator.__iter__` و :meth:`~generator.__next__` به طور خودکار ایجاد" +" می شوند." #: ../../tutorial/classes.rst:888 #, fuzzy @@ -2016,10 +2004,10 @@ msgid "" "and much more clear than an approach using instance variables like " "``self.index`` and ``self.data``." msgstr "" -"ویژگی کلیدی دیگر این است که متغیرهای محلی و وضعیت اجرای برنامه به صورت " -"خودکار بین فراخوانی ها ذخیره می شوند. این امر نوشتن تابع را ساده تر و بسیار " -"واضح تر از رویکردی با استفاده از متغیرهای نمونه ای مانند ``self.index`` و " -"``self.data`` می کند." +"یکی دیگر از ویژگی های کلیدی این است که متغیرهای محلی و وضعیت اجرا به طور " +"خودکار بین فراخوانی ها ذخیره می شوند. این امر نوشتن تابع را آسان تر و خیلی " +"واضح تر از رویکردی که از متغیرهای نمونه ای مانند ``self.index`` و " +"``self.data`` استفاده می کند، کرده است." #: ../../tutorial/classes.rst:893 #, fuzzy @@ -2029,15 +2017,18 @@ msgid "" "combination, these features make it easy to create iterators with no more " "effort than writing a regular function." msgstr "" -"علاوه بر ایجاد خودکار روش ها و ذخیره وضعیت برنامه، هنگامی که ژنراتورها خاتمه" -" می یابند، به طور خودکار `:exc:`StopIteration`` را به وجود می آورند. این " -"ویژگی ها در کنار هم، ایجاد پیمایش گرها را به همان اندازه ساده می سازند که یک" -" تابع معمولی را می نویسید." +"علاوه بر ایجاد خودکار متدها و ذخیره سازی وضعیت برنامه، زمانی که جنراتورها " +"خاتمه می یابند، به طور خودکار :exc:`StopIteration` را ایجاد می کنند. این " +"ویژگی ها به صورت ترکیبی، ساختن تکرارگرها را به همان سادگی نوشتن یک تابع عادی" +" امکان پذیر می سازند." #: ../../tutorial/classes.rst:902 #, fuzzy msgid "Generator Expressions" -msgstr "تعبیرات مولد" +msgstr "" +"Generator Expressions\n" +"\n" +"تعبیرات مولد شبیه به لیست comprehensions هستند ولی به جای تولید یک لیست کامل، یک مولد ایجاد می کنند که مقادیر را به تدریج تولید می کند. این می تواند باعث بهینه سازی حافظه شود و برای پردازش داده های بزرگ مفید باشد. تعبیرات مولد به کمک پرانتز دور نتیجه نوشته می شوند، در حالی که لیست comprehensions از براکت ها استفاده می کنند." #: ../../tutorial/classes.rst:904 #, fuzzy @@ -2049,12 +2040,12 @@ msgid "" " compact but less versatile than full generator definitions and tend to be " "more memory friendly than equivalent list comprehensions." msgstr "" -"برخی تولیدکننده های ساده را می توان به صورت عبارت هایی مختصر با استفاده از " -"نحوی مشابه comprehension لیست ها ولی با پرانتز به جای کروشه ها نوشت. این " -"عبارت ها برای موقعیت هایی طراحی شده اند که تولیدکننده بلافاصله توسط یک تابع " -"محصور مورد استفاده قرار می گیرد. عبارت های تولیدکننده از نظر نوشتاری جمع " -"وجورتر هستند ولی تنوع کمتری نسبت به تعریف کامل تولیدکننده ها دارند و معمولاً" -" از نظر حافظه بهینه تر از لیست comprehensionهای معادل عمل می کنند." +"برخی از مولدهای ساده را می توان به صورت مختصر به عنوان عباراتی با استفاده از" +" یک نحو مشابه با درک لیست ها اما با پرانتز به جای کروشه کد کرد. این عبارات " +"برای موقعیت هایی طراحی شده اند که در آن مولد بلافاصله توسط یک تابع فراگیر " +"استفاده می شود. عبارات مولد فشرده تر اما کمتر انعطاف پذیر از تعاریف کامل " +"مولد هستند و به طور معمول نسبت به درک لیست های معادل، حافظه بیشتری را صرفه " +"جویی می کنند." #: ../../tutorial/classes.rst:911 #, fuzzy @@ -2085,21 +2076,21 @@ msgstr "" "\n" ">>> xvec = [10, 20, 30]\n" ">>> yvec = [7, 5, 3]\n" -">>> sum(x*y for x,y in zip(xvec, yvec)) # dot product\n" +">>> sum(x*y for x,y in zip(xvec, yvec)) # حاصل ضرب داخلی\n" "260\n" "\n" -">>> unique_words = set(word for line in page for word in line.split())\n" +">>> unique_words = set(word for line in page for word in line.split()) # یافتن کلمات منحصر به فرد\n" "\n" -">>> valedictorian = max((student.gpa, student.name) for student in graduates)\n" +">>> valedictorian = max((student.gpa, student.name) for student in graduates) # پیدا کردن بهترین فارغ التحصیل\n" "\n" ">>> data = 'golf'\n" -">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" +">>> list(data[i] for i in range(len(data)-1, -1, -1)) # برعکس کردن رشته\n" "['f', 'l', 'o', 'g']" #: ../../tutorial/classes.rst:932 #, fuzzy msgid "Footnotes" -msgstr "یادداشت ها" +msgstr "پاورقی ها" #: ../../tutorial/classes.rst:933 #, fuzzy @@ -2111,11 +2102,11 @@ msgid "" "namespace implementation, and should be restricted to things like post-" "mortem debuggers." msgstr "" -"به جز یک مورد. اشیاء ماژول دارای یک ویژگی مخفی و فقط خواندنی به نام " -":attr:`~object.__dict__` هستند که دیکشنری استفاده شده برای پیاده سازی فضای " -"نام ماژول را بازمی گرداند؛ نام ``__dict__`` یک ویژگی است اما یک نام سراسری " -"نیست. مشخص است که استفاده از این ویژگی نقض انتزاع پیاده سازی فضای نام است و " -"باید به مواردی مانند اشکال زدایی پس از مرگ محدود شود." +"با یک استثنا. اشیای ماژول دارای یک ویژگی مخفی و فقط خواندنی به نام " +":attr:`~object.__dict__` هستند که دیکشنری مورد استفاده برای پیاده سازی فضای " +"نام ماژول را برمی گرداند؛ نام ``__dict__`` یک ویژگی است اما یک نام جهانی " +"نیست. بدیهی است که استفاده از این ویژگی نقض انتزاع پیاده سازی فضای نام است و" +" باید محدود به مواردی مانند دیباگرهای پس از مرگ برنامه باشد." #: ../../tutorial/classes.rst:343 #, fuzzy diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 77325e4e7..6d6dae2ad 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -32,21 +32,20 @@ msgid "" "As well as the :keyword:`while` statement just introduced, Python uses a few" " more that we will encounter in this chapter." msgstr "" -"همچنین علاوه بر دستور :keyword:`while` که تازه معرفی شد، پایتون از چند دستور" -" دیگر نیز استفاده می کند که در این فصل با آنها روبرو خواهیم شد." +"همچنین به علاوه دستور :keyword:`while` که به تازگی معرفی شد، پایتون از چند " +"دستور دیگر نیز استفاده می کند که در این فصل با آن ها مواجه خواهیم شد." #: ../../tutorial/controlflow.rst:14 #, fuzzy msgid ":keyword:`!if` Statements" -msgstr ":keyword:`!if` عبارات" +msgstr "عبارات :keyword:`!if`" #: ../../tutorial/controlflow.rst:16 #, fuzzy msgid "" "Perhaps the most well-known statement type is the :keyword:`if` statement. " "For example::" -msgstr "" -"شاید شناخته شده ترین نوع دستورات، دستور :keyword:`if` باشد. به عنوان مثال::" +msgstr "شاید شناخته شده ترین نوع دستور، دستور :keyword:`if` باشد. برای مثال:" #: ../../tutorial/controlflow.rst:19 #, fuzzy @@ -65,19 +64,19 @@ msgid "" "...\n" "More" msgstr "" -">>> x = int(input(\"Please enter an integer: \"))\n" -"Please enter an integer: 42\n" +">>> x = int(input(\"لطفاً یک عدد صحیح وارد کنید: \"))\n" +"لطفاً یک عدد صحیح وارد کنید: 42\n" ">>> if x < 0:\n" "... x = 0\n" -"... print('Negative changed to zero')\n" +"... print('منفی به صفر تغییر یافت')\n" "... elif x == 0:\n" -"... print('Zero')\n" +"... print('صفر')\n" "... elif x == 1:\n" -"... print('Single')\n" +"... print('تک')\n" "... else:\n" -"... print('More')\n" +"... print('بیشتر')\n" "...\n" -"More" +"بیشتر" #: ../../tutorial/controlflow.rst:33 #, fuzzy @@ -88,11 +87,12 @@ msgid "" ":keyword:`!elif` ... :keyword:`!elif` ... sequence is a substitute for the " "``switch`` or ``case`` statements found in other languages." msgstr "" -"ممکن است هیچ یا تعداد بیشتری از بخش های :keyword:`elif` وجود داشته باشد، و " -"بخش :keyword:`else` اختیاری است. کلمه کلیدی ':keyword:`!elif`' کوتاه شده " -"برای 'else if' است و برای جلوگیری از تو رفتگی بیش از حد مفید است. توالی " -":keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... جایگزینی برای " -"دستورات ``switch`` یا ``case`` است که در زبان های دیگر یافت می شود." +"می تواند صفر یا بیشتر از بخش های :keyword:`elif` وجود داشته باشد، و بخش " +":keyword:`else` اختیاری است. کلمه کلیدی ':keyword:`!elif`' به عنوان کوتاه " +"شده 'else if' استفاده می شود و برای جلوگیری از تو رفتگی بیش از حد مفید است. " +"دنباله ای :keyword:`!if` ... :keyword:`!elif` ... :keyword:`!elif` ... به " +"عنوان جایگزینی برای عبارات ``switch`` یا ``case`` که در دیگر زبان ها یافت می" +" شود، به کار می رود." #: ../../tutorial/controlflow.rst:39 #, fuzzy @@ -101,14 +101,14 @@ msgid "" "specific types or attributes, you may also find the :keyword:`!match` " "statement useful. For more details see :ref:`tut-match`." msgstr "" -"اگر در حال مقایسه یک مقدار با چند ثابت هستید، یا نوع ها یا ویژگی های خاصی را" -" بررسی می کنید، ممکن است بیانیه ی :keyword:`!match` را نیز مفید بیابید. برای" -" جزئیات بیشتر به :ref:`tut-match` مراجعه کنید." +"اگر در حال مقایسه یک مقدار با چندین ثابت هستید، یا بررسی نوع های خاص یا " +"ویژگی ها را انجام می دهید، ممکن است دستور :keyword:`!match` برای شما مفید " +"باشد. برای جزئیات بیشتر به :ref:`tut-match` مراجعه کنید." #: ../../tutorial/controlflow.rst:46 #, fuzzy msgid ":keyword:`!for` Statements" -msgstr "دستورات :keyword:`!for`" +msgstr ":keyword:`!for` اظهارات" #: ../../tutorial/controlflow.rst:51 #, fuzzy @@ -121,12 +121,11 @@ msgid "" " a string), in the order that they appear in the sequence. For example (no " "pun intended):" msgstr "" -"بیانیه :keyword:`for` در پایتون کمی با آنچه ممکن است در C یا Pascal به آن " -"عادت کرده باشید متفاوت است. به جای آنکه همیشه بر روی یک پیشرفت عددی حسابی " -"حرکت کند (مثل Pascal), یا امکان تعریف گام تکرار و شرط توقف را برای کاربر " -"فراهم کند (مثل C), بیانیه :keyword:`!for` در پایتون بر روی آیتم های هر توالی" -" (مثل یک لیست یا رشته) به ترتیبی که در توالی ظاهر می شوند، تکرار می کند. " -"برای مثال:" +"بیانیه :keyword:`for` در پایتون کمی با آنچه که ممکن است در C یا Pascal به آن" +" عادت داشته باشید تفاوت دارد. به جای تکرار همیشگی از یک دنباله حسابی از " +"اعداد (مانند Pascal)، یا اجازه دادن به کاربر برای تعریف گام تکرار و شرط توقف" +" (مانند C)، بیانیه :keyword:`!for` در پایتون بر روی آیتم های هر دنباله ای " +"(لیست یا رشته) به ترتیب ظاهر شدن آنها در دنباله، تکرار می کند. برای مثال:" #: ../../tutorial/controlflow.rst:63 #, fuzzy @@ -140,7 +139,7 @@ msgid "" "window 6\n" "defenestrate 12" msgstr "" -">>> # اندازه گیری چند رشته:\n" +">>> # چند رشته را اندازه گیری کنید:\n" ">>> words = ['cat', 'window', 'defenestrate']\n" ">>> for w in words:\n" "... print(w, len(w))\n" @@ -156,9 +155,9 @@ msgid "" "can be tricky to get right. Instead, it is usually more straight-forward to" " loop over a copy of the collection or to create a new collection::" msgstr "" -"هنگامی که کدی مجموعه ای را در حالی که بر روی همان مجموعه تکرار می کند، تغییر" -" می دهد، ممکن است دچار پیچیدگی شود. به جای آن، معمولاً راحت تر است که بر روی" -" یک کپی از مجموعه عمل کنید یا یک مجموعه جدید ایجاد کنید::" +"زمانی که کدی مجموعه ای را در حین پیمایش آن مجموعه تغییر می دهد، ممکن است " +"خطاهایی رخ دهد. به جای این روش، معمولاً ساده تر این است که یا بر روی یک نسخه" +" کپی از مجموعه حلقه بزنید یا یک مجموعه جدید ایجاد کنید::" #: ../../tutorial/controlflow.rst:76 #, fuzzy @@ -177,15 +176,15 @@ msgid "" " if status == 'active':\n" " active_users[user] = status" msgstr "" -"# Create a sample collection\n" +"# ایجاد یک مجموعه نمونه\n" "users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" "\n" -"# Strategy: Iterate over a copy\n" +"# استراتژی: تکرار روی یک کپی\n" "for user, status in users.copy().items():\n" " if status == 'inactive':\n" " del users[user]\n" "\n" -"# Strategy: Create a new collection\n" +"# استراتژی: ایجاد یک مجموعه جدید\n" "active_users = {}\n" "for user, status in users.items():\n" " if status == 'active':\n" @@ -202,8 +201,8 @@ msgid "" "If you do need to iterate over a sequence of numbers, the built-in function " ":func:`range` comes in handy. It generates arithmetic progressions::" msgstr "" -"اگر نیاز دارید روی یک دنباله از اعداد تکرار انجام دهید، تابع داخلی " -":func:`range` بسیار کارآمد است. این تابع دنباله های حسابی تولید می کند::" +"اگر نیاز دارید بر روی دنباله ای از اعداد تکرار کنید، تابع داخلی " +":func:`range` کارآمد است. این تابع، پیشرفت های حسابی تولید می کند::" #: ../../tutorial/controlflow.rst:99 #, fuzzy @@ -234,10 +233,11 @@ msgid "" " It is possible to let the range start at another number, or to specify a " "different increment (even negative; sometimes this is called the 'step')::" msgstr "" -"نقطه انتهایی هرگز بخشی از دنباله تولیدشده نیست؛ ```range(10)``` ده مقدار " -"تولید می کند که شاخص های مجاز برای آیتم های یک دنباله با طول ۱۰ هستند. این " -"امکان وجود دارد که محدوده شروع از عدد دیگری باشد یا یک افزایش (حتی منفی؛ که " -"گاهی اوقات به آن «گام» گفته می شود) متفاوت را مشخص کنید::" +"نقطه پایانی که داده شده است هیچ وقت بخشی از دنباله تولید شده نیست؛ " +"``range(10)`` تعداد 10 مقدار تولید می کند، شاخص های قانونی برای اعضای یک " +"دنباله با طول 10. امکان شروع بازه از عدد دیگری وجود دارد یا می توان یک " +"افزایش دهنده (حتی منفی؛ گاهی اوقات این را 'گام' می نامند) متفاوت را مشخص " +"کرد:" #: ../../tutorial/controlflow.rst:113 #, fuzzy @@ -266,8 +266,8 @@ msgid "" "To iterate over the indices of a sequence, you can combine :func:`range` and" " :func:`len` as follows::" msgstr "" -"برای پیمایش در شاخص های یک دنباله، می توانید :func:`range` و :func:`len` را " -"به صورت زیر ترکیب کنید::" +"برای پیمایش بر روی شاخص های یک دنباله، می توانید :func:`range` و :func:`len`" +" را به صورت زیر ترکیب کنید::" #: ../../tutorial/controlflow.rst:125 #, fuzzy @@ -298,13 +298,13 @@ msgid "" "In most such cases, however, it is convenient to use the :func:`enumerate` " "function, see :ref:`tut-loopidioms`." msgstr "" -"در بیشتر چنین مواردی، با این حال، استفاده از تابع :func:`enumerate` راحت تر " -"است، به :ref:`tut-loopidioms` مراجعه کنید." +"در بسیاری از این موارد، با این حال، استفاده از تابع :func:`enumerate` راحت " +"است، رجوع کنید به :ref:`tut-loopidioms`." #: ../../tutorial/controlflow.rst:138 #, fuzzy msgid "A strange thing happens if you just print a range::" -msgstr "اگر فقط یک محدوده (range) را چاپ کنید، یک اتفاق عجیب رخ می دهد::" +msgstr "اگر شما فقط یک range را چاپ کنید، اتفاق عجیبی رخ می دهد:" #: ../../tutorial/controlflow.rst:140 #, fuzzy @@ -323,10 +323,10 @@ msgid "" "items of the desired sequence when you iterate over it, but it doesn't " "really make the list, thus saving space." msgstr "" -"از بسیاری جهات، شیء بازگشتی توسط :func:`range` به گونه ای رفتار می کند که " -"گویی لیست است، اما در واقع این گونه نیست. این شیء ای است که هنگام مرور به " -"دنبال آن، آیتم های متوالی از دنباله مورد نظر را برمی گرداند، اما واقعاً لیست" -" را ایجاد نمی کند، بنابراین در مصرف فضا صرفه جویی می کند." +"به بسیاری از جهات، شیء بازگشتی توسط :func:`range` رفتار می کند انگار که یک " +"لیست است، اما در واقع این طور نیست. این یک شیء است که آیتم های متوالی از " +"دنباله ی مورد نظر را زمانی که بر روی آن تکرار می کنید، بازمی گرداند، اما در " +"حقیقت لیست را نمی سازد و بدین ترتیب فضای ذخیره سازی را حفظ می کند." #: ../../tutorial/controlflow.rst:148 #, fuzzy @@ -337,11 +337,11 @@ msgid "" ":keyword:`for` statement is such a construct, while an example of a function" " that takes an iterable is :func:`sum`::" msgstr "" -"ما به چنین شیء که :term:`iterable` نامیده می شود، اشاره می کنیم. این به " -"معنای مناسب بودن به عنوان هدف برای توابع و ساختارهایی است که انتظار دارند تا" -" زمانی که منابع تمام نشده است، موارد متوالی را بتوانند بدست آورند. ما دیده " -"ایم که عبارت :keyword:`for` چنین ساختاری است، در حالی که مثالی از تابعی که " -"یک iterable را می پذیرد، :func:`sum` است::" +"ما به چنین شیء :term:`iterable` می گوییم، به این معنی که برای استفاده در " +"توابع و ساختارهایی مناسب است که انتظار دارند چیزی داشته باشند که بتوانند از " +"آن به ترتیب آیتم هایی را دریافت کنند تا وقتی که منابع به پایان برسد. ما " +"دیده ایم که عبارت :keyword:`for` ساختاری از این قبیل است، در حالی که مثالی " +"از یک تابع که یک iterable می گیرد :func:`sum` است::" #: ../../tutorial/controlflow.rst:154 #, fuzzy @@ -359,14 +359,14 @@ msgid "" " arguments. In chapter :ref:`tut-structures`, we will discuss in more " "detail about :func:`list`." msgstr "" -"بعداً به توابع بیشتری خواهیم پرداخت که مقادیر قابل تکرار بازمی گردانند و به " -"عنوان آرگومان مقادیر قابل تکرار را می پذیرند. در فصل :ref:`tut-structures`، " -"درباره :func:`list` با جزئیات بیشتری بحث خواهیم کرد." +"در ادامه، توابع بیشتری را خواهیم دید که تکرارشونده ها را برمی گردانند و " +"تکرارشونده ها را به عنوان آرگومان می پذیرند. در فصل :ref:`tut-structures`، " +"درباره :func:`list` به تفصیل بیشتری صحبت خواهیم کرد." #: ../../tutorial/controlflow.rst:164 #, fuzzy msgid ":keyword:`!break` and :keyword:`!continue` Statements" -msgstr ":keyword:`!break` و :keyword:`!continue` دستورات" +msgstr ":keyword:`!break` و :keyword:`!continue` گزاره ها" #: ../../tutorial/controlflow.rst:166 #, fuzzy @@ -374,8 +374,8 @@ msgid "" "The :keyword:`break` statement breaks out of the innermost enclosing " ":keyword:`for` or :keyword:`while` loop::" msgstr "" -"عبارت :keyword:`break` از درون حلقه :keyword:`for` یا :keyword:`while` که " -"نزدیک ترین حلقه محصورکننده است، خارج می شود::" +"دستور :keyword:`break` از درونی ترین حلقه های :keyword:`for` یا " +":keyword:`while` خارج می شود::" #: ../../tutorial/controlflow.rst:169 #, fuzzy @@ -391,8 +391,8 @@ msgid "" "8 equals 2 * 4\n" "9 equals 3 * 3" msgstr "" -">>> برای n در بازه 2 تا 10:\n" -"... برای x در بازه 2 تا n:\n" +">>> برای n در range(2, 10):\n" +"... برای x در range(2, n):\n" "... اگر n % x == 0:\n" "... print(f\"{n} برابر است با {x} ضربدر {n//x}\")\n" "... break\n" @@ -404,7 +404,7 @@ msgstr "" msgid "" "The :keyword:`continue` statement continues with the next iteration of the " "loop::" -msgstr "عبارت :keyword:`continue` به اجرای تکرار بعدی حلقه ادامه می دهد::" +msgstr "بیانیه :keyword:`continue` با تکرار بعدی حلقه ادامه می یابد." #: ../../tutorial/controlflow.rst:183 #, fuzzy @@ -424,25 +424,25 @@ msgid "" "Found an even number 8\n" "Found an odd number 9" msgstr "" -">>> for num in range(2, 10):\n" -"... if num % 2 == 0:\n" -"... print(f\"Found an even number {num}\")\n" -"... continue\n" -"... print(f\"Found an odd number {num}\")\n" -"...\n" -"Found an even number 2\n" -"Found an odd number 3\n" -"Found an even number 4\n" -"Found an odd number 5\n" -"Found an even number 6\n" -"Found an odd number 7\n" -"Found an even number 8\n" -"Found an odd number 9" +"برای num در بازه ی 2 تا 10:\n" +" اگر num % 2 == 0:\n" +" چاپ کن(f\"عدد زوج پیدا شد {num}\")\n" +" ادامه بده\n" +" چاپ کن(f\"عدد فرد پیدا شد {num}\")\n" +"\n" +"عدد زوج پیدا شد 2\n" +"عدد فرد پیدا شد 3\n" +"عدد زوج پیدا شد 4\n" +"عدد فرد پیدا شد 5\n" +"عدد زوج پیدا شد 6\n" +"عدد فرد پیدا شد 7\n" +"عدد زوج پیدا شد 8\n" +"عدد فرد پیدا شد 9" #: ../../tutorial/controlflow.rst:202 #, fuzzy msgid ":keyword:`!else` Clauses on Loops" -msgstr ":keyword:`!else` گزاره ها در حلقه ها" +msgstr ":keyword:`!else` بندهایی درباره حلقه ها" #: ../../tutorial/controlflow.rst:204 #, fuzzy @@ -453,8 +453,8 @@ msgid "" "clause executes." msgstr "" "در یک حلقه :keyword:`!for` یا :keyword:`!while`، دستور :keyword:`!break` " -"ممکن است با یک بند :keyword:`!else` جفت شود. اگر حلقه بدون اجرای " -":keyword:`!break` به پایان برسد، بند :keyword:`!else` اجرا می شود." +"ممکن است با یک شرط :keyword:`!else` جفت شود. اگر حلقه بدون اجرای " +":keyword:`!break` به پایان برسد، شرط :keyword:`!else` اجرا می شود." #: ../../tutorial/controlflow.rst:208 #, fuzzy @@ -462,8 +462,8 @@ msgid "" "In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " "loop finishes its final iteration, that is, if no break occurred." msgstr "" -"در یک حلقه :keyword:`for`، عبارت :keyword:`!else` بعد از اتمام آخرین تکرار " -"حلقه اجرا می شود، یعنی اگر هیچ وقفه ای رخ نداده باشد." +"در یک حلقه :keyword:`for`، عبارت :keyword:`!else` پس از پایان یافتن آخرین " +"تکرار حلقه اجرا می شود، یعنی اگر هیچ توقفی رخ نداده باشد." #: ../../tutorial/controlflow.rst:211 #, fuzzy @@ -471,7 +471,7 @@ msgid "" "In a :keyword:`while` loop, it's executed after the loop's condition becomes" " false." msgstr "" -"در یک حلقه :keyword:`while`، این دستور زمانی اجرا می شود که شرط حلقه غلط " +"در یک حلقه :keyword:`while`، این پس از آن اجرا می شود که شرط حلقه نادرست می " "شود." #: ../../tutorial/controlflow.rst:213 @@ -482,10 +482,10 @@ msgid "" "ending the loop early, such as a :keyword:`return` or a raised exception, " "will also skip execution of the :keyword:`else` clause." msgstr "" -"در هر نوع حلقه، بند :keyword:`!else` زمانی اجرا می شود که حلقه توسط " -":keyword:`break` خاتمه یافته باشد. البته، سایر راه های پایان دادن زود هنگام " -"حلقه، مانند :keyword:`return` یا بروز یک استثنا، نیز باعث می شوند که اجرای " -"بند :keyword:`else` نادیده گرفته شود." +"در هر دو نوع حلقه، بخش :keyword:`!else` تنها زمانی **not** اجرا می شود که " +"حلقه توسط یک :keyword:`break` خاتمه یافته باشد. البته، روش های دیگری برای " +"پایان دادن به حلقه به صورت زودهنگام، مانند یک :keyword:`return` یا ایجاد " +"استثنا، نیز باعث می شوند که اجرای بخش :keyword:`else` نادیده گرفته شود." #: ../../tutorial/controlflow.rst:218 #, fuzzy @@ -493,8 +493,8 @@ msgid "" "This is exemplified in the following :keyword:`!for` loop, which searches " "for prime numbers::" msgstr "" -"این مورد در حلقه :keyword:`!for` زیر، که به دنبال اعداد اول می گردد، نشان " -"داده شده است::" +"این در حلقه :keyword:`!for` زیر که به دنبال اعداد اول می گردد، نشان داده شده" +" است::" #: ../../tutorial/controlflow.rst:221 #, fuzzy @@ -517,13 +517,23 @@ msgid "" "8 equals 2 * 4\n" "9 equals 3 * 3" msgstr "" -">>> for n in range(2, 10):\n" -"... for x in range(2, n):\n" -"... if n % x == 0:\n" -"... print(n, 'مساوی است با', x, '*', n//x)\n" +">>> برای n در بازه(2, 10):\n" +"... برای x در بازه(2, n):\n" +"... اگر n % x == 0:\n" +"... print(n, 'equals', x, '*', n//x)\n" "... break\n" "... else:\n" -"... print(n, 'یک عدد اول است')" +"... # loop fell through without finding a factor\n" +"... print(n, 'is a prime number')\n" +"...\n" +"2 is a prime number\n" +"3 is a prime number\n" +"4 equals 2 * 2\n" +"5 یک عدد اول است\n" +"6 برابر است با 2 * 3\n" +"7 is a prime number\n" +"8 equals 2 * 4\n" +"9 برابر است با 3 * 3" #: ../../tutorial/controlflow.rst:239 #, fuzzy @@ -531,8 +541,8 @@ msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the ``for`` loop, **not** the ``if`` statement.)" msgstr "" -"(بله, این کد درست است. با دقت نگاه کنید: قسمت ``else`` به حلقه ``for`` تعلق " -"دارد, **not** به عبارت ``if``.)" +"(بله، این کد درست است. با دقت نگاه کنید: قید ``else`` به حلقه ``for`` تعلق " +"دارد، **not** به عبارت ``if``.)" #: ../../tutorial/controlflow.rst:242 #, fuzzy @@ -543,11 +553,11 @@ msgid "" " If the condition is ever true, a ``break`` will happen. If the condition is" " never true, the ``else`` clause outside the loop will execute." msgstr "" -"راهی برای فکر کردن به عبارت else این است که آن را با ``if`` درون حلقه تصور " -"کنیم. زمانی که حلقه اجرا می شود، یک دنباله مانند if/if/if/else را اجرا خواهد" -" کرد. ``if`` درون حلقه است و چندین بار با آن مواجه می شود. اگر شرطی درست " -"باشد، یک ``break`` رخ خواهد داد. اگر شرط هرگز درست نباشد، عبارت ``else`` " -"خارج از حلقه اجرا خواهد شد." +"یک راه برای فکر کردن به گزاره else این است که آن را با ``if`` داخل حلقه تصور" +" کنید. هنگامی که حلقه اجرا می شود، اجرا به صورت if/if/if/else خواهد بود. " +"``if`` داخل حلقه، چندین بار برخورد می شود. اگر شرطی صحیح باشد، یک ``break`` " +"اتفاق خواهد افتاد. اگر هیچ گاه شرطی صحیح نباشد، گزاره ``else`` خارج از حلقه " +"اجرا خواهد شد." #: ../../tutorial/controlflow.rst:248 #, fuzzy @@ -560,16 +570,15 @@ msgid "" "handling`." msgstr "" "هنگامی که با یک حلقه استفاده می شود، عبارت ``else`` بیشتر با عبارت ``else`` " -"از یک دستور :keyword:`try` مشترک است تا با آن از دستورات ``if``: بند " -"``else`` از یک دستور ``try`` زمانی اجرا می شود که هیچ استثنائی رخ نمی دهد، و" -" بند ``else`` یک حلقه زمانی اجرا می شود که هیچ ``break`` رخ نمی دهد. برای " -"اطلاعات بیشتر درباره دستور ``try`` و استثنائات، به :ref:`tut-handling` " -"مراجعه کنید." +"در یک دستور :keyword:`try` شباهت دارد تا با عبارت دستورهای ``if``: عبارت " +"``else`` در یک دستور ``try`` زمانی اجرا می شود که استثنایی رخ ندهد، و عبارت " +"``else`` در یک حلقه زمانی اجرا می شود که ``break`` رخ ندهد. برای اطلاعات " +"بیشتر درباره دستور ``try`` و استثناها، به :ref:`tut-handling` مراجعه کنید." #: ../../tutorial/controlflow.rst:257 #, fuzzy msgid ":keyword:`!pass` Statements" -msgstr "عبارات :keyword:`!pass`" +msgstr ":keyword:`!pass` دستورات" #: ../../tutorial/controlflow.rst:259 #, fuzzy @@ -577,9 +586,9 @@ msgid "" "The :keyword:`pass` statement does nothing. It can be used when a statement " "is required syntactically but the program requires no action. For example::" msgstr "" -"عبارت :keyword:`pass` هیچ کاری انجام نمی دهد. می تواند زمانی استفاده شود که " -"از لحاظ نحوی یک عبارت لازم است اما برنامه نیازی به عمل خاصی ندارد. برای " -"مثال::" +"عبارت :keyword:`pass` هیچ کاری انجام نمی دهد. این عبارت می تواند زمانی " +"استفاده شود که به صورت نحوی یک عبارت لازم است اما برنامه به هیچ عملی نیازی " +"ندارد. برای مثال::" #: ../../tutorial/controlflow.rst:262 #, fuzzy @@ -588,8 +597,8 @@ msgid "" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." msgstr "" -">>> while True:\n" -"... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" +">>> در حالی که True:\n" +"... pass # انتظار مشغول برای قطع کیبورد (Ctrl+C)\n" "..." #: ../../tutorial/controlflow.rst:266 @@ -604,7 +613,7 @@ msgid "" "... pass\n" "..." msgstr "" -">>> class MyEmptyClass:\n" +">>> کلاس MyEmptyClass:\n" "... pass\n" "..." @@ -616,10 +625,10 @@ msgid "" "to keep thinking at a more abstract level. The :keyword:`!pass` is silently" " ignored::" msgstr "" -"محل دیگری که :keyword:`pass` می تواند استفاده شود، به عنوان جایگزین برای " -"بدنه یک تابع یا بخش شرطی است وقتی که شما در حال کار بر روی کد جدید هستید. " -"این کار به شما این امکان را می دهد که همچنان در سطحی انتزاعی تر فکر کنید. " -":keyword:`!pass` به صورت خاموشی نادیده گرفته می شود::" +"جای دیگری که :keyword:`pass` می تواند استفاده شود به عنوان یک جای نگه دار " +"برای بدنه یک تابع یا شرطی زمانی است که شما در حال کار روی کد جدیدی هستید، که" +" به شما اجازه می دهد تا به تفکر در سطحی انتزاعی تر ادامه دهید. " +":keyword:`!pass` به صورت خاموش نادیده گرفته می شود::" #: ../../tutorial/controlflow.rst:276 #, fuzzy @@ -629,13 +638,13 @@ msgid "" "..." msgstr "" ">>> def initlog(*args):\n" -"... pass # Remember to implement this!\n" +"... pass # به یاد داشته باشید که این را پیاده سازی کنید!\n" "..." #: ../../tutorial/controlflow.rst:284 #, fuzzy msgid ":keyword:`!match` Statements" -msgstr "دستورات :keyword:`!match`" +msgstr ":keyword:`!match` دستورات" #: ../../tutorial/controlflow.rst:286 #, fuzzy @@ -648,13 +657,12 @@ msgid "" "also extract components (sequence elements or object attributes) from the " "value into variables." msgstr "" -"یک گزاره :keyword:`match` یک عبارت را گرفته و مقدار آن را با الگوهای متوالی " -"که به صورت یک یا چند بلوک `case` ارائه شده اند مقایسه می کند. این از نظر " -"ظاهری شبیه به گزاره `switch` در C، جاوا یا جاوااسکریپت (و بسیاری از زبان های" -" دیگر) است، اما به تطابق الگو در زبان هایی مانند Rust یا Haskell شباهت " -"بیشتری دارد. فقط اولین الگوی که مطابقت دارد اجرا می شود و همچنین می تواند " -"مؤلفه هایی (عناصر توالی یا ویژگی های شی) را از مقدار استخراج کرده و به " -"متغیرها اختصاص دهد." +"یک دستور :keyword:`match` یک عبارت را می گیرد و مقدار آن را با الگوهای " +"متوالی مقایسه می کند که به صورت یک یا چند بلوک case ارائه شده اند. این به " +"طور سطحی شبیه به یک دستور switch در زبان های C، Java یا JavaScript (و بسیاری" +" زبان های دیگر) است، اما بیشتر شبیه به تطابق الگو در زبان هایی مانند Rust یا" +" Haskell است. فقط اولین الگویی که مطابقت دارد اجرا می شود و همچنین می تواند " +"اجزا (عناصر دنباله یا ویژگی های شیء) را از مقدار درون متغیرها استخراج کند." #: ../../tutorial/controlflow.rst:294 #, fuzzy @@ -680,13 +688,13 @@ msgstr "" "def http_error(status):\n" " match status:\n" " case 400:\n" -" return \"Bad request\"\n" +" return \"درخواست نامعتبر\"\n" " case 404:\n" -" return \"Not found\"\n" +" return \"یافت نشد\"\n" " case 418:\n" -" return \"I'm a teapot\"\n" +" return \"من یک قوری هستم\"\n" " case _:\n" -" return \"Something's wrong with the internet\"" +" return \"مشکلی در اینترنت وجود دارد\"" #: ../../tutorial/controlflow.rst:307 #, fuzzy @@ -694,16 +702,16 @@ msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." msgstr "" -"به آخرین بلوک توجه کنید: \"نام متغیر\" ``_`` به عنوان یک *wildcard* عمل می " -"کند و هرگز در تطابق شکست نمی خورد. اگر هیچ موردی تطابق نداشته باشد، هیچ یک " -"از شاخه ها اجرا نمی شوند." +"توجه داشته باشید که در آخرین بلوک: \"نام متغیر\" ``_`` به عنوان یک " +"*wildcard* عمل می کند و هرگز در تطابق شکست نمی خورد. اگر هیچ موردی مطابقت " +"نداشته باشد، هیچ کدام از شاخه ها اجرا نمی شوند." #: ../../tutorial/controlflow.rst:310 #, fuzzy msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" -"می توانید چندین مقدار ثابت را با استفاده از ``|`` (\"یا\") در یک الگوی واحد " +"شما می توانید چندین مقدار مشخص را در یک الگو با استفاده از ``|`` (\"یا\") " "ترکیب کنید::" #: ../../tutorial/controlflow.rst:312 @@ -712,8 +720,8 @@ msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" msgstr "" -"مورد 401 | 403 | 404:\n" -" بازگشت \"مجاز نیست\"" +"مورد ۴۰۱ | ۴۰۳ | ۴۰۴:\n" +" return \"اجازه داده نمی شود\"" #: ../../tutorial/controlflow.rst:315 #, fuzzy @@ -721,8 +729,8 @@ msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" msgstr "" -"الگوها می توانند شبیه به تخصیص های باز کردن بسته ها باشند و می توانند برای " -"بستن متغیرها استفاده شوند::" +"الگوها می توانند شبیه به تخصیص های باز کردن باشند و می توانند برای بستن " +"متغیرها استفاده شوند::" #: ../../tutorial/controlflow.rst:318 #, fuzzy @@ -740,7 +748,7 @@ msgid "" " case _:\n" " raise ValueError(\"Not a point\")" msgstr "" -"# point is an (x, y) tuple\n" +"# point یک زوج ترتیبی (x, y) است\n" "match point:\n" " case (0, 0):\n" " print(\"Origin\")\n" @@ -763,11 +771,12 @@ msgid "" " which makes it conceptually similar to the unpacking assignment ``(x, y) = " "point``." msgstr "" -"این مورد را به دقت مطالعه کنید! الگوی اول دارای دو مقدار ثابت است و می تواند" -" به عنوان توسعه ای از الگوی ثابت نشان داده شده در بالا در نظر گرفته شود. اما" -" دو الگوی بعدی یک مقدار ثابت و یک متغیر را ترکیب می کنند و متغیر *binds* " -"مقداری از موضوع (``point``) می گیرد. الگوی چهارم دو مقدار را می گیرد که از " -"نظر مفهومی شبیه تخصیص بازکردن ``(x, y) = point`` است." +"به دقت این را مطالعه کنید! الگوی اول دو مقدار ثابت دارد و می توان آن را به " +"عنوان یک گسترش از الگوی مقدار ثابت نشان داده شده در بالا در نظر گرفت. اما، " +"دو الگوی بعدی یک مقدار ثابت و یک متغیر را ترکیب می کنند و متغیر *binds* یک " +"مقدار از موضوع (``point``) را می گیرد. الگوی چهارم دو مقدار را ضبط می کند که" +" این باعث می شود از نظر مفهومی به تخصیص بازکردن ``(x, y) = point`` شبیه " +"باشد." #: ../../tutorial/controlflow.rst:338 #, fuzzy @@ -776,9 +785,9 @@ msgid "" "followed by an argument list resembling a constructor, but with the ability " "to capture attributes into variables::" msgstr "" -"اگر از کلاس ها برای ساختاردهی داده های خود استفاده می کنید، می توانید از نام" -" کلاس همراه با لیست آرگومان ها که شبیه به یک سازنده است استفاده کنید، اما با" -" قابلیت ذخیره سازی ویژگی ها در متغیرها::" +"اگر از کلاس ها برای ساختاردهی داده ها استفاده می کنید، می توانید از نام کلاس" +" به همراه یک لیست از آرگومان ها استفاده کنید که شبیه به یک سازنده عمل می " +"کند، اما با این قابلیت که ویژگی ها را در متغیرها ذخیره کنید::" #: ../../tutorial/controlflow.rst:342 #, fuzzy @@ -801,7 +810,7 @@ msgid "" " case _:\n" " print(\"Not a point\")" msgstr "" -"class Point:\n" +"کلاس Point:\n" " def __init__(self, x, y):\n" " self.x = x\n" " self.y = y\n" @@ -809,15 +818,15 @@ msgstr "" "def where_is(point):\n" " match point:\n" " case Point(x=0, y=0):\n" -" print(\"Origin\")\n" +" print(\"مبدا\")\n" " case Point(x=0, y=y):\n" " print(f\"Y={y}\")\n" " case Point(x=x, y=0):\n" " print(f\"X={x}\")\n" " case Point():\n" -" print(\"Somewhere else\")\n" +" print(\"جای دیگری\")\n" " case _:\n" -" print(\"Not a point\")" +" print(\"یک نقطه نیست\")" #: ../../tutorial/controlflow.rst:360 #, fuzzy @@ -829,12 +838,12 @@ msgid "" " \"y\"), the following patterns are all equivalent (and all bind the ``y`` " "attribute to the ``var`` variable)::" msgstr "" -"شما می توانید از پارامترهای جایگاهی با برخی کلاس های داخلی که برای ویژگی " -"هایشان ترتیب ارائه می دهند (مانند dataclasses) استفاده کنید. شما همچنین می " -"توانید موقعیت خاصی برای ویژگی ها در الگوها تعیین کنید با تنظیم ویژگی خاص " -"``__match_args__`` در کلاس های خود. اگر این ویژگی به صورت (\"x\", \"y\") " -"تنظیم شود، الگوهای زیر همگی معادل هستند (و همه ویژگی ``y`` را به متغیر " -"``var`` متصل می کنند)::" +"شما می توانید از پارامترهای موقعیتی با برخی کلاس های داخلی که یک ترتیب دهی " +"برای ویژگی هایشان ارائه می دهند (مانند dataclasses) استفاده کنید. شما همچنین" +" می توانید موقعیت خاصی را برای ویژگی ها در الگوها با تنظیم ویژگی خاص " +"``__match_args__`` در کلاس های خود تعریف کنید. اگر روی (\"x\", \"y\") تنظیم " +"شود، الگوهای زیر همگی معادل هستند (و همگی ویژگی ``y`` را به متغیر ``var`` " +"متصل می کنند):" #: ../../tutorial/controlflow.rst:366 #, fuzzy @@ -844,9 +853,9 @@ msgid "" "Point(x=1, y=var)\n" "Point(y=var, x=1)" msgstr "" -"Point(1, var)\n" -"Point(1, y=var)\n" -"Point(x=1, y=var)\n" +"Point(1, var) \n" +"Point(1, y=var) \n" +"Point(x=1, y=var) \n" "Point(y=var, x=1)" #: ../../tutorial/controlflow.rst:371 @@ -860,13 +869,12 @@ msgid "" "(recognized by the \"(...)\" next to them like ``Point`` above) are never " "assigned to." msgstr "" -"یک روش پیشنهادی برای خواندن الگوها این است که به آن ها به عنوان یک فرم گسترش" -" یافته از چیزی که در سمت چپ یک انتساب قرار می دهید نگاه کنید، تا بفهمید کدام" -" متغیرها به چه چیزی تنظیم خواهند شد. تنها نام های مستقل (مانند ``var`` در " -"بالا) توسط یک عبارت مطابقت تخصیص داده می شوند. نام های نقطه دار (مانند " -"``foo.bar``), نام های خصوصیت (``x=`` و ``y=`` در بالا) یا نام های کلاس (که " -"با \"(...)\" در کنار آنها شناخته می شوند، مانند ``Point`` در بالا) هرگز " -"تخصیص داده نمی شوند." +"روش توصیه شده برای خواندن الگوها این است که به آنها به عنوان شکلی گسترش " +"یافته از چیزی که در سمت چپ یک تخصیص قرار می دهید نگاه کنید، تا بفهمید کدام " +"متغیرها به چه چیزی تنظیم می شوند. تنها نام های مستقل (مثل ``var`` بالا) توسط" +" یک عبارت match تخصیص داده می شوند. نام های نقطه دار (مثل ``foo.bar``)، نام " +"های ویژگی (``x=`` و ``y=`` بالا) یا نام های کلاس (که با \"(...)\" کنارشان " +"شناخته می شوند مثل ``Point`` بالا) هرگز تخصیص داده نمی شوند." #: ../../tutorial/controlflow.rst:378 #, fuzzy @@ -874,9 +882,9 @@ msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of" " Points, with ``__match_args__`` added, we could match it like this::" msgstr "" -"الگوها می توانند به صورت دلخواه تو در تو باشند. برای مثال، اگر یک لیست کوتاه" -" از نقاط داشته باشیم که ``__match_args__`` به آن اضافه شده باشد، می توانیم " -"به این شکل آن را تطبیق دهیم::" +"الگوها می توانند به صورت دلخواه تو در تو قرار گیرند. به عنوان مثال، اگر یک " +"لیست کوتاه از Points داشته باشیم که ``__match_args__`` به آن اضافه شده باشد،" +" می توانیم به این صورت آن را تطبیق دهیم::" #: ../../tutorial/controlflow.rst:381 #, fuzzy @@ -899,7 +907,7 @@ msgid "" " case _:\n" " print(\"Something else\")" msgstr "" -"class Point:\n" +"کلاس Point:\n" " __match_args__ = ('x', 'y')\n" " def __init__(self, x, y):\n" " self.x = x\n" @@ -907,15 +915,15 @@ msgstr "" "\n" "match points:\n" " case []:\n" -" print(\"No points\")\n" +" print(\"هیچ نقطه ای نیست\")\n" " case [Point(0, 0)]:\n" -" print(\"The origin\")\n" +" print(\"مبدا\")\n" " case [Point(x, y)]:\n" -" print(f\"Single point {x}, {y}\")\n" +" print(f\"نقطه واحد {x}, {y}\")\n" " case [Point(0, y1), Point(0, y2)]:\n" -" print(f\"Two on the Y axis at {y1}, {y2}\")\n" +" print(f\"دو نقطه روی محور Y در {y1}, {y2}\")\n" " case _:\n" -" print(\"Something else\")" +" print(\"چیز دیگری\")" #: ../../tutorial/controlflow.rst:399 #, fuzzy @@ -924,10 +932,9 @@ msgid "" "guard is false, ``match`` goes on to try the next case block. Note that " "value capture happens before the guard is evaluated::" msgstr "" -"ما می توانیم به یک الگو یک عبارت ``if`` اضافه کنیم که به عنوان \"نگهبان\" " -"شناخته می شود. اگر نگهبان نادرست باشد، ``match`` به تلاش برای بلوک مورد بعدی" -" ادامه می دهد. توجه داشته باشید که دریافت مقدار قبل از ارزیابی نگهبان اتفاق " -"می افتد::" +"ما می توانیم یک بند ``if`` به یک الگو اضافه کنیم، که به عنوان \"محافظ\" " +"شناخته می شود. اگر محافظ نادرست باشد، ``match`` به بلوک بعدی می رود. توجه " +"داشته باشید که جذب مقدار قبل از ارزیابی محافظ رخ می دهد::" #: ../../tutorial/controlflow.rst:403 #, fuzzy @@ -938,7 +945,7 @@ msgid "" " case Point(x, y):\n" " print(f\"Not on the diagonal\")" msgstr "" -"match point:\n" +"انتخاب نقطه:\n" " case Point(x, y) if x == y:\n" " print(f\"Y=X at {x}\")\n" " case Point(x, y):\n" @@ -947,7 +954,7 @@ msgstr "" #: ../../tutorial/controlflow.rst:409 #, fuzzy msgid "Several other key features of this statement:" -msgstr "چند ویژگی کلیدی دیگر از این عبارت:" +msgstr "چند ویژگی کلیدی دیگر این عبارت:" #: ../../tutorial/controlflow.rst:411 #, fuzzy @@ -956,9 +963,9 @@ msgid "" "meaning and actually match arbitrary sequences. An important exception is " "that they don't match iterators or strings." msgstr "" -"الگوهای تاپل و لیست دقیقاً همان معنی تخصیص های بازگشایی را دارند و در واقع " -"با توالی های دلخواه مطابقت دارند. یک استثنای مهم این است که با «iterator»ها " -"یا رشته ها مطابقت ندارند." +"مانند تخصیص های بازکردن بسته، الگوهای تاپل و لیست دقیقا همان معنا را دارند و" +" در واقع با توالی های دلخواه تطابق دارند. یک استثنای مهم این است که آنها با " +"iteratorها یا رشته ها مطابقت ندارند." #: ../../tutorial/controlflow.rst:415 #, fuzzy @@ -968,10 +975,10 @@ msgid "" "also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items " "without binding the remaining items." msgstr "" -"الگوهای دنباله از باز کردن گسترده پشتیبانی می کنند: ``[x, y, *rest]`` و " -"``(x, y, *rest)`` مشابه اختصاص های باز کردن عمل می کنند. نام پس از ``*`` نیز" -" می تواند ``_`` باشد، بنابراین ``(x, y, *_)`` با دنباله ای که حداقل دو آیتم " -"دارد، بدون اینکه آیتم های باقی مانده را مقید کند، مطابقت دارد." +"الگوهای دنباله ای از باز کردن توسعه یافته پشتیبانی می کنند: ``[x, y, " +"*rest]`` و ``(x, y, *rest)`` به صورت مشابه با اختصاص باز کردن کار می کنند. " +"نام بعد از ``*`` ممکن است ``_`` باشد، بنابراین ``(x, y, *_)`` با دنباله ای " +"از حداقل دو آیتم مطابقت دارد بدون اینکه آیتم ها ی باقی مانده را متصل کند." #: ../../tutorial/controlflow.rst:420 #, fuzzy @@ -983,19 +990,18 @@ msgid "" msgstr "" "الگوهای نگاشت: ``{\"bandwidth\": b, \"latency\": l}`` مقادیر " "``\"bandwidth\"`` و ``\"latency\"`` را از یک دیکشنری استخراج می کند. بر خلاف" -" الگوهای ترتیبی، کلیدهای اضافی نادیده گرفته می شوند. یک استخراج مانند " -"``**rest`` نیز پشتیبانی می شود. (اما ``**_`` اضافی خواهد بود, بنابراین مجاز " -"نیست.)" +" الگوهای دنباله ای، کلیدهای اضافی نادیده گرفته می شوند. مشابه ``**rest`` نیز" +" پشتیبانی می شود. (اما ``**_`` زائد خواهد بود، بنابراین مجاز نیست.)" #: ../../tutorial/controlflow.rst:425 #, fuzzy msgid "Subpatterns may be captured using the ``as`` keyword::" -msgstr "زیر الگوها ممکن است با استفاده از کلیدواژه ``as`` ثبت شوند::" +msgstr "می توان الگوهای جزئی را با استفاده از کلیدواژه ``as`` ضبط کرد::" #: ../../tutorial/controlflow.rst:427 #, fuzzy msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." -msgstr "در حالت (Point(x1, y1), Point(x2, y2) به عنوان p2): ..." +msgstr "case (Point(x1, y1), Point(x2, y2) as p2): ..." #: ../../tutorial/controlflow.rst:429 #, fuzzy @@ -1003,7 +1009,7 @@ msgid "" "will capture the second element of the input as ``p2`` (as long as the input" " is a sequence of two points)" msgstr "" -"عنصر دوم ورودی را به عنوان ``p2`` دریافت خواهد کرد (به شرطی که ورودی یک " +"عنصر دوم ورودی را به عنوان ``p2`` در نظر می گیرد (تا زمانی که ورودی یک " "دنباله از دو نقطه باشد)" #: ../../tutorial/controlflow.rst:432 @@ -1012,8 +1018,8 @@ msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." msgstr "" -"بیشتر لیترال ها از طریق برابری مقایسه می شوند، اما سینگلتون های ``True``، " -"``False`` و ``None`` از طریق هویت مقایسه می شوند." +"بیشتر لیترال ها بر اساس برابری مقایسه می شوند، اما تک تایی ها ``True``، " +"``False`` و ``None`` بر اساس هویت مقایسه می شوند." #: ../../tutorial/controlflow.rst:435 #, fuzzy @@ -1021,9 +1027,9 @@ msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" msgstr "" -"الگوها می توانند از ثابت های نام گذاری شده استفاده کنند. این نام ها باید به " -"صورت نقطه گذاری شده باشند تا از تفسیر آن ها به عنوان متغیرهای دستگیر جلوگیری" -" شود::" +"الگوها ممکن است از ثابت های نام گذاری شده استفاده کنند. این ها باید به صورت " +"نام های نقطه دار باشند تا از تفسیر آن ها به عنوان متغیر قابل ضبط جلوگیری " +"شود::" #: ../../tutorial/controlflow.rst:438 #, fuzzy @@ -1044,21 +1050,21 @@ msgid "" " case Color.BLUE:\n" " print(\"I'm feeling the blues :(\")" msgstr "" -"from enum import Enum\n" -"class Color(Enum):\n" +"از enum import Enum\n" +"کلاس Color(Enum):\n" " RED = 'red'\n" " GREEN = 'green'\n" " BLUE = 'blue'\n" "\n" -"color = Color(input(\"Enter your choice of 'red', 'blue' or 'green': \"))\n" +"color = Color(input(\"یکی از مقادیر 'red', 'blue' یا 'green' را وارد کنید: \"))\n" "\n" "match color:\n" " case Color.RED:\n" -" print(\"I see red!\")\n" +" print(\"من قرمز می بینم!\")\n" " case Color.GREEN:\n" -" print(\"Grass is green\")\n" +" print(\"چمن سبز است\")\n" " case Color.BLUE:\n" -" print(\"I'm feeling the blues :(\")" +" print(\"احساس افسردگی می کنم :(\")" #: ../../tutorial/controlflow.rst:454 #, fuzzy @@ -1066,8 +1072,8 @@ msgid "" "For a more detailed explanation and additional examples, you can look into " ":pep:`636` which is written in a tutorial format." msgstr "" -"برای توضیح کامل تر و مثال های اضافی، می توانید به :pep:`636` که به صورت " -"آموزشی نوشته شده است، مراجعه کنید." +"برای توضیح بیشتر و مثال های اضافی، می توانید به :pep:`636` که به صورت یک " +"آموزش نوشته شده است، مراجعه کنید." #: ../../tutorial/controlflow.rst:460 #, fuzzy @@ -1097,15 +1103,15 @@ msgid "" ">>> fib(2000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" msgstr "" -">>> def fib(n): # نوشتن دنباله فیبوناچی کمتر از n\n" -"... \"\"\"چاپ دنباله فیبوناچی کمتر از n.\"\"\"\n" +">>> def fib(n): # نوشتن سری فیبوناچی کمتر از n\n" +"... \"\"\"سری فیبوناچی کمتر از n را چاپ کنید.\"\"\"\n" "... a, b = 0, 1\n" "... while a < n:\n" "... print(a, end=' ')\n" "... a, b = b, a+b\n" "... print()\n" "...\n" -">>> # حالا تابعی که تعریف کرده ایم را صدا می زنیم:\n" +">>> # اکنون تابعی که تعریف کردیم را فراخوانی کنید:\n" ">>> fib(2000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" @@ -1117,10 +1123,9 @@ msgid "" "parameters. The statements that form the body of the function start at the " "next line, and must be indented." msgstr "" -"کلیدواژه :keyword:`def` یک تابع به نام *definition* معرفی می کند. این " -"کلیدواژه باید با نام تابع و لیستی از پارامترهای رسمی که در پرانتز قرار " -"دارند، دنبال شود. دستورات تشکیل دهنده بدنه تابع از خط بعد شروع می شوند و " -"باید تورفتگی داشته باشند." +"کلمه کلیدی :keyword:`def` یک تابع *definition* را معرفی می کند. این کلمه " +"باید با نام تابع و لیست پرانتزی پارامترهای رسمی بیاید. دستوراتی که بدنه تابع" +" را تشکیل می دهند باید در خط بعد شروع شوند و تورفتگی داشته باشند." #: ../../tutorial/controlflow.rst:487 #, fuzzy @@ -1133,13 +1138,13 @@ msgid "" "interactively browse through code; it's good practice to include docstrings " "in code that you write, so make a habit of it." msgstr "" -"اولین دستور در بدنه تابع می تواند به انتخاب شما یک عبارت رشته ای باشد؛ این " -"عبارت رشته ای، رشته مستندات تابع یا :dfn:`docstring` است. (اطلاعات بیشتر " -"درباره docstring ها را می توانید در بخش :ref:`tut-docstrings` بیابید.) " -"ابزارهایی وجود دارند که از docstring ها برای تولید خودکار مستندات آنلاین یا " -"چاپی استفاده می کنند، یا به کاربر اجازه می دهند به صورت تعاملی به مرور کد " -"بپردازند؛ بهتر است در کدی که می نویسید docstring ها را اضافه کنید و از آن به" -" عنوان یک عادت استفاده نمایید." +"اولین عبارت از بدنه تابع می تواند به صورت اختیاری یک رشته متنی باشد؛ این " +"رشته متنی، رشته مستندات تابع یا :dfn:`docstring` نامیده می شود. (اطلاعات " +"بیشتر درباره docstrings را می توانید در بخش :ref:`tut-docstrings` پیدا " +"کنید.) ابزارهایی وجود دارند که از docstrings استفاده می کنند تا به صورت " +"خودکار مستندات آنلاین یا چاپی تولید کنند یا به کاربر اجازه دهند تا به صورت " +"تعاملی بین کد بگردد؛ بنابراین قراردادن docstrings در کدی که می نویسید، تمرین" +" خوبی است و این کار را به صورت عادت انجام دهید." #: ../../tutorial/controlflow.rst:494 #, fuzzy @@ -1155,15 +1160,15 @@ msgid "" "for variables of enclosing functions, named in a :keyword:`nonlocal` " "statement), although they may be referenced." msgstr "" -"*execution* یک تابع یک جدول نماد جدید برای متغیرهای محلی تابع معرفی می کند. " -"به طور دقیق تر، تمامی انتساب های متغیر در یک تابع، مقدار را در جدول نماد " -"محلی ذخیره می کنند؛ در حالی که ارجاعات متغیر ابتدا در جدول نماد محلی جستجو " -"می شوند، سپس در جدول نماد محلی توابع محیطی، سپس در جدول نماد جهانی، و در " -"نهایت در جدول نام های داخلی. بنابراین، متغیرهای جهانی و متغیرهای توابع محیطی" -" نمی توانند به صورت مستقیم یک مقدار را در یک تابع دریافت کنند (مگر اینکه " -"برای متغیرهای جهانی, در یک عبارت :keyword:`global` نام گذاری شده باشند, یا " -"برای متغیرهای توابع محیطی, در یک عبارت :keyword:`nonlocal` نام گذاری شده " -"باشند), اگرچه می توان به آنها ارجاع داد." +"*execution* یک تابع یک جدول نماد جدید معرفی می کند که برای متغیرهای محلی " +"تابع استفاده می شود. به طور دقیق تر، تمام انتساب های متغیر در یک تابع، مقدار" +" را در جدول نماد محلی ذخیره می کنند؛ در حالی که مراجع متغیر ابتدا در جدول " +"نماد محلی جستجو می شوند، سپس در جداول نماد محلی توابع محصورکننده، سپس در " +"جدول نمادهای جهانی، و در نهایت در جدول نام های توکار. بنابراین، به متغیرهای " +"جهانی و متغیرهای توابع محصورکننده نمی توان به طور مستقیم یک مقدار درون تابع " +"اختصاص داد (مگر این که برای متغیرهای جهانی، در یک عبارت :keyword:`global` " +"نام گذاری شوند، یا برای متغیرهای توابع محصورکننده، در یک عبارت " +":keyword:`nonlocal` نام گذاری شوند)، هرچند ممکن است به آن ها اشاره شود." #: ../../tutorial/controlflow.rst:505 #, fuzzy @@ -1175,11 +1180,12 @@ msgid "" "another function, or calls itself recursively, a new local symbol table is " "created for that call." msgstr "" -"پارامترهای واقعی (آرگومان ها) در یک فراخوانی تابع در جدول نمادهای محلی تابع " -"فراخوانی شده معرفی می شوند؛ بنابراین، آرگومان ها به صورت *call by value* (که" -" *value* همیشه یک شیء *reference* است, نه مقدار شیء) منتقل می شوند. [#]_ " -"زمانی که تابعی، تابع دیگری را فراخوانی می کند یا به صورت بازگشتی خود را صدا " -"می زند، یک جدول نماد محلی جدید برای آن فراخوانی ایجاد می شود." +"پارامترهای واقعی (آرگومان ها) در یک فراخوانی تابع هنگام فراخوانی به جدول " +"نماد محلی تابع فراخوانده شده معرفی می شوند؛ بنابراین، آرگومان ها با استفاده " +"از *call by value* منتقل می شوند (که در آن *value* همیشه یک شیء *reference* " +"است، نه مقدار شیء). [#]_ هنگامی که یک تابع، تابع دیگری را فرا می خواند یا " +"خودش را به صورت بازگشتی فراخوانی می کند، یک جدول نماد محلی جدید برای آن " +"فراخوانی ایجاد می شود." #: ../../tutorial/controlflow.rst:512 #, fuzzy @@ -1189,10 +1195,10 @@ msgid "" "to by that name as a user-defined function. Other names can also point to " "that same function object and can also be used to access the function::" msgstr "" -"تعریف یک تابع، نام تابع را با شیء تابع در جدول نمادهای جاری مرتبط می کند. " -"مفسر، شیء اشاره شده توسط آن نام را به عنوان یک تابع تعریف شده توسط کاربر " -"تشخیص می دهد. نام های دیگر نیز می توانند به همان شیء تابع اشاره کنند و برای " -"دسترسی به تابع استفاده شوند::" +"تعریف تابع، نام تابع را با شیء تابع در جدول نماد جاری مرتبط می کند. مفسر، " +"شیء اشاره شده توسط آن نام را به عنوان یک تابع تعریف شده توسط کاربر شناسایی " +"می کند. نام های دیگر نیز می توانند به همان شیء تابع اشاره کنند و می توانند " +"برای دسترسی به تابع استفاده شوند:" #: ../../tutorial/controlflow.rst:517 #, fuzzy @@ -1220,13 +1226,13 @@ msgid "" "the only value written. You can see it if you really want to using " ":func:`print`::" msgstr "" -"اگر از زبان های دیگر به Python آمده باشید، ممکن است بگویید که ``fib`` یک " -"تابع نیست بلکه یک دستور است زیرا مقداری را برنمی گرداند. در واقع، حتی توابعی" -" که دستور :keyword:`return` را ندارند هم مقداری را برمی گردانند، اگرچه یک " -"مقدار کاملاً خسته کننده. این مقدار ``None`` نامیده می شود (این یک نام داخلی " -"است). نوشتن مقدار ``None`` معمولاً توسط مفسر پنهان می شود اگر که تنها مقداری" -" باشد که نوشته می شود. اگر بخواهید واقعاً آن را ببینید، می توانید از " -":func:`print` استفاده کنید::" +"هنگام انتقال از زبان های دیگر، ممکن است با این موضوع مخالفت کنید که ``fib`` " +"یک تابع نیست بلکه یک رویه است زیرا مقداری بر نمی گرداند. در واقع، حتی توابعی" +" که هیچ عبارت :keyword:`return` ندارند نیز مقداری بر می گردانند، اگرچه " +"مقداری نسبتاً کسل کننده است. این مقدار ``None`` نامیده می شود (این یک نام " +"داخلی است). نوشتن مقدار ``None`` معمولاً توسط مفسر زمانی که تنها مقدار نوشته" +" شده باشد، نادیده گرفته می شود. اگر واقعاً بخواهید، می توانید با استفاده از " +":func:`print` آن را ببینید." #: ../../tutorial/controlflow.rst:530 #, fuzzy @@ -1245,7 +1251,7 @@ msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" msgstr "" -"نوشتن یک تابع که به جای چاپ کردن، یک لیست از اعداد سری فیبوناچی را بازمی " +"نوشتن یک تابع که به جای چاپ کردن، فهرستی از اعداد سری فیبوناچی را برمی " "گرداند، ساده است::" #: ../../tutorial/controlflow.rst:537 @@ -1264,23 +1270,23 @@ msgid "" ">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" msgstr "" -">>> def fib2(n): # return Fibonacci series up to n\n" -"... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" +">>> def fib2(n): # بازگرداندن سری فیبوناچی تا n\n" +"... \"\"\"بازگرداندن لیستی شامل سری فیبوناچی تا n.\"\"\"\n" "... result = []\n" "... a, b = 0, 1\n" "... while a < n:\n" -"... result.append(a) # see below\n" +"... result.append(a) # به پایین نگاه کنید\n" "... a, b = b, a+b\n" "... return result\n" "...\n" -">>> f100 = fib2(100) # call it\n" -">>> f100 # write the result\n" +">>> f100 = fib2(100) # صدا زدن آن\n" +">>> f100 # نوشتن نتیجه\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" #: ../../tutorial/controlflow.rst:550 #, fuzzy msgid "This example, as usual, demonstrates some new Python features:" -msgstr "این مثال، طبق معمول، برخی از ویژگی های جدید پایتون را نشان می دهد:" +msgstr "این مثال، طبق معمول، برخی ویژگی های جدید Python را نمایش می دهد:" #: ../../tutorial/controlflow.rst:552 #, fuzzy @@ -1289,9 +1295,9 @@ msgid "" ":keyword:`!return` without an expression argument returns ``None``. Falling " "off the end of a function also returns ``None``." msgstr "" -"دستور :keyword:`return` مقداری را از یک تابع بازمی گرداند. " -":keyword:`!return` بدون آرگومان عبارت ``None`` را بازمی گرداند. با رسیدن به " -"انتهای یک تابع نیز ``None`` بازگردانده می شود." +"دستور :keyword:`return` یک مقدار از یک تابع برمی گرداند. :keyword:`!return` " +"بدون یک آرگومان عبارت، ``None`` را برمی گرداند. یعنی خروج از انتهای تابع نیز" +" ``None`` را برمی گرداند." #: ../../tutorial/controlflow.rst:556 #, fuzzy @@ -1308,16 +1314,16 @@ msgid "" "this example it is equivalent to ``result = result + [a]``, but more " "efficient." msgstr "" -"دستور ``result.append(a)`` یک *method* از شی لیست ``result`` را فراخوانی می " -"کند. یک متد، تابعی است که به یک شی 'تعلق' دارد و به صورت ``obj.methodname`` " -"نامیده می شود، که در آن ``obj`` یک شی (که می تواند یک عبارت باشد) و " -"``methodname`` نام متدی است که توسط نوع آن شی تعریف شده است. انواع مختلف، " -"متدهای مختلفی را تعریف می کنند. متدهای انواع مختلف ممکن است نام یکسانی داشته" -" باشند بدون این که ابهامی ایجاد کنند. (این امکان وجود دارد که نوع اشیا و " -"متدهای خود را با استفاده از *classes* تعریف کنید, به :ref:`tut-classes` " -"مراجعه کنید) متد :meth:`!append` که در مثال نشان داده شده برای اشیای لیست " -"تعریف شده است؛ این متد یک عنصر جدید را به انتهای لیست اضافه می کند. در این " -"مثال معادل ``result = result + [a]`` است، اما کارآمدتر." +"عبارت ``result.append(a)`` یک *method* از شیء لیست ``result`` را فراخوانی می" +" کند. متد یک تابع است که به یک شیء \"تعلق دارد\" و به نام ``obj.methodname``" +" نامیده می شود، که در آن ``obj`` برخی اشیاء هستند (که ممکن است یک عبارت " +"باشد) و ``methodname`` نام یک متد است که توسط نوع شیء تعریف می شود. انواع " +"مختلف متدهای متفاوتی تعریف می کنند. متدهای انواع مختلف ممکن است نام مشابهی " +"داشته باشند بدون اینکه باعث ابهام شوند. (این امکان وجود دارد که انواع اشیاء " +"و متدهای خود را با استفاده از *classes* تعریف کنید، به :ref:`tut-classes` " +"مراجعه کنید) متد :meth:`!append` که در مثال نشان داده شده است برای اشیاء " +"لیست تعریف شده است؛ این متد یک عنصر جدید در انتهای لیست اضافه می کند. در این" +" مثال معادل ``result = result + [a]`` است، اما کارآمدتر." #: ../../tutorial/controlflow.rst:571 #, fuzzy @@ -1330,13 +1336,13 @@ msgid "" "It is also possible to define functions with a variable number of arguments." " There are three forms, which can be combined." msgstr "" -"همچنین تعریف توابع با تعداد متغیری از آرگومان ها ممکن است. سه فرم وجود دارد " -"که می توان آن ها را با هم ترکیب کرد." +"همچنین امکان تعریف توابع با تعداد متغیری از آرگومان ها وجود دارد. سه فرم " +"وجود دارد که می توانند با هم ترکیب شوند." #: ../../tutorial/controlflow.rst:580 #, fuzzy msgid "Default Argument Values" -msgstr "مقادیر پیش فرض برای آرگومان ها" +msgstr "مقادیر پیش فرض آرگومان ها" #: ../../tutorial/controlflow.rst:582 #, fuzzy @@ -1345,9 +1351,9 @@ msgid "" "arguments. This creates a function that can be called with fewer arguments " "than it is defined to allow. For example::" msgstr "" -"مفیدترین شکل این است که مقدار پیش فرضی برای یک یا چند آرگومان مشخص شود. این " -"باعث می شود که یک تابع قابل فراخوانی با آرگومان های کمتر از آنچه که تعریف " -"شده است باشد. برای مثال::" +"مفیدترین حالت، مشخص کردن یک مقدار پیش فرض برای یک یا چند آرگومان است. این " +"کار تابعی ایجاد می کند که می توان آن را با تعداد آرگومان های کمتری نسبت به " +"آنچه که تعریف شده فراخوانی کرد. به عنوان مثال:" #: ../../tutorial/controlflow.rst:586 #, fuzzy @@ -1379,15 +1385,14 @@ msgstr "" #: ../../tutorial/controlflow.rst:598 #, fuzzy msgid "This function can be called in several ways:" -msgstr "این تابع می تواند به چندین روش فراخوانی شود:" +msgstr "این تابع می تواند به روش های مختلفی فراخوانی شود:" #: ../../tutorial/controlflow.rst:600 #, fuzzy msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to " "quit?')``" -msgstr "" -"تنها آرگومان اجباری داده شده: ``ask_ok('Do you really want to quit?')``" +msgstr "فقط آرگومان اجباری را دادن: ``ask_ok('Do you really want to quit?')``" #: ../../tutorial/controlflow.rst:602 #, fuzzy @@ -1395,8 +1400,8 @@ msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" msgstr "" -"استفاده از یکی از آرگومان های اختیاری: ``ask_ok('OK to overwrite the file?'," -" 2)``" +"با ارائه یکی از آرگومان های اختیاری: ``ask_ok('OK to overwrite the file?', " +"2)``" #: ../../tutorial/controlflow.rst:604 #, fuzzy @@ -1404,8 +1409,8 @@ msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come" " on, only yes or no!')``" msgstr "" -"یا حتی با وارد کردن همه آرگومان ها: ``ask_ok('OK to overwrite the file?', 2," -" 'Come on, only yes or no!')``" +"یا حتی با دادن تمام آرگومان ها: ``ask_ok('OK to overwrite the file?', 2, " +"'Come on, only yes or no!')``" #: ../../tutorial/controlflow.rst:607 #, fuzzy @@ -1413,8 +1418,8 @@ msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." msgstr "" -"این مثال همچنین کلمه کلیدی :keyword:`in` را معرفی می کند. این کلمه بررسی می " -"کند که آیا یک دنباله شامل یک مقدار خاص است یا نه." +"این مثال همچنین کلمه کلیدی :keyword:`in` را معرفی می کند. این مورد بررسی می " +"کند که آیا یک دنباله شامل یک مقدار خاص است یا خیر." #: ../../tutorial/controlflow.rst:610 #, fuzzy @@ -1422,8 +1427,8 @@ msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" msgstr "" -"مقادیر پیش فرض در لحظه تعریف تابع در دامنه *defining* ارزیابی می شوند، به " -"طوری که::" +"مقادیر پیش فرض در نقطه تعریف تابع در دامنه *defining* ارزیابی می شوند، به " +"طوری که ::" #: ../../tutorial/controlflow.rst:613 #, fuzzy @@ -1457,10 +1462,10 @@ msgid "" "dictionary, or instances of most classes. For example, the following " "function accumulates the arguments passed to it on subsequent calls::" msgstr "" -"مقدار پیش فرض تنها یک بار ارزیابی می شود. این موضوع هنگامی که پیش فرض یک شیء" -" قابل تغییر مانند یک لیست، دیکشنری، یا نمونه هایی از اکثر کلاس ها باشد، " -"تفاوت ایجاد می کند. به عنوان مثال، تابع زیر آرگومان هایی که به آن ارسال شده " -"اند را در فراخوانی های بعدی جمع آوری می کند::" +"**Important warning:** مقدار پیش فرض تنها یک بار ارزیابی می شود. این موضوع " +"زمانی اهمیت پیدا می کند که مقدار پیش فرض یک شیء قابل تغییر مانند یک فهرست، " +"فرهنگ، یا نمونه هایی از بیشتر کلاس ها باشد. برای مثال، تابع زیر، آرگومان " +"هایی که در فراخوانی های بعدی به آن ارسال می شوند را جمع آوری می کند::" #: ../../tutorial/controlflow.rst:628 #, fuzzy @@ -1473,13 +1478,9 @@ msgid "" "print(f(2))\n" "print(f(3))" msgstr "" -"def f(a, L=[]):\n" -" L.append(a)\n" -" return L\n" +"تابع f دو آرگومان ورودی دریافت می کند: a و L که به طور پیش فرض یک لیست خالی است. درون تابع، مقدار a به لیست L اضافه می شود و سپس لیست L برگردانده می شود.\n" "\n" -"print(f(1))\n" -"print(f(2))\n" -"print(f(3))" +"در هنگام اجرای خط print(f(1))، مقدار 1 به لیست پیش فرض L اضافه می شود، بنابراین نتیجه [1] خواهد بود. در خط بعدی print(f(2))، مقدار 2 به همان لیست اضافه می شود که نتیجه [1, 2] خواهد بود. مشابه این روند در چاپ سوم باعث می شود نتیجه [1, 2, 3] باشد. دلیل این رفتار نگهداری وضعیت لیست L به عنوان یک پارامتر پیش فرض است که تنها یک بار ساخته می شود و در سراسر اجراهای تابع مشترک است." #: ../../tutorial/controlflow.rst:636 #, fuzzy @@ -1516,15 +1517,15 @@ msgid "" " return L" msgstr "" "def f(a, L=None):\n" -" if L is None:\n" +" اگر L برابر None باشد:\n" " L = []\n" " L.append(a)\n" -" return L" +" بازگرداندن L" #: ../../tutorial/controlflow.rst:655 #, fuzzy msgid "Keyword Arguments" -msgstr "آرگومان های کلیدی" +msgstr "آرگومان های کلیدواژه ای" #: ../../tutorial/controlflow.rst:657 #, fuzzy @@ -1533,8 +1534,8 @@ msgid "" "argument>` of the form ``kwarg=value``. For instance, the following " "function::" msgstr "" -"تابع ها می توانند با استفاده از :term:`keyword arguments `" -" به فرم ``kwarg=value`` نیز فراخوانی شوند. به عنوان مثال، تابع زیر::" +"تابع ها همچنین می توانند با استفاده از :term:`keyword arguments ` به فرم ``kwarg=value`` فراخوانی شوند. برای مثال، تابع زیر::" #: ../../tutorial/controlflow.rst:660 #, fuzzy @@ -1546,10 +1547,10 @@ msgid "" " print(\"-- It's\", state, \"!\")" msgstr "" "def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" -" print(\"-- This parrot wouldn't\", action, end=' ')\n" -" print(\"if you put\", voltage, \"volts through it.\")\n" -" print(\"-- Lovely plumage, the\", type)\n" -" print(\"-- It's\", state, \"!\")" +" print(\"-- این طوطی نمی خواهد\", action, end=' ')\n" +" print(\"اگر شما\", voltage, \"ولت از آن عبور دهید.\")\n" +" print(\"-- پرهای زیبا،\", type)\n" +" print(\"-- این\", state, \"!\")" #: ../../tutorial/controlflow.rst:666 #, fuzzy @@ -1558,8 +1559,8 @@ msgid "" "(``state``, ``action``, and ``type``). This function can be called in any " "of the following ways::" msgstr "" -"یک آرگومان ضروری (``voltage``) و سه آرگومان اختیاری (``state``, ``action`` و" -" ``type``) را می پذیرد. این تابع می تواند به هر یک از روش های زیر فراخوانی " +"یک آرگومان اجباری (``voltage``) و سه آرگومان اختیاری (``state``، ``action`` " +"و ``type``) را می پذیرد. این تابع می تواند به یکی از روش های زیر فراخوانی " "شود::" #: ../../tutorial/controlflow.rst:670 @@ -1572,12 +1573,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) # 1 positional argument\n" -"parrot(voltage=1000) # 1 keyword argument\n" -"parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments\n" -"parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments\n" -"parrot('a million', 'bereft of life', 'jump') # 3 positional arguments\n" -"parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword" +"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') # ١ موقعیت، ١ کلیدی" #: ../../tutorial/controlflow.rst:677 #, fuzzy @@ -1592,9 +1593,9 @@ msgid "" "parrot(110, voltage=220) # duplicate value for the same argument\n" "parrot(actor='John Cleese') # unknown keyword argument" msgstr "" -"parrot() # آرگومان مورد نیاز وارد نشده است\n" +"parrot() # آرگومان ضروری وجود ندارد\n" "parrot(voltage=5.0, 'dead') # آرگومان غیر کلیدی بعد از آرگومان کلیدی\n" -"parrot(110, voltage=220) # مقدار تکراری برای یک آرگومان\n" +"parrot(110, voltage=220) # مقدار تکراری برای همان آرگومان\n" "parrot(actor='John Cleese') # آرگومان کلیدی ناشناخته" #: ../../tutorial/controlflow.rst:684 @@ -1608,13 +1609,13 @@ msgid "" " may receive a value more than once. Here's an example that fails due to " "this restriction::" msgstr "" -"در یک فراخوانی تابع، آرگومان های کلیدی باید پس از آرگومان های موضعی بیایند. " -"همه آرگومان های کلیدی که ارسال می شوند باید با یکی از آرگومان های پذیرفته " -"شده توسط تابع مطابقت داشته باشند (برای مثال ``actor`` یک آرگومان معتبر برای " -"تابع ``parrot`` نیست), و ترتیب آنها اهمیتی ندارد. این شامل آرگومان های غیر " -"اختیاری نیز می باشد (برای مثال ``parrot(voltage=1000)`` هم معتبر است). هیچ " -"آرگومانی نباید بیش از یک بار مقداری بگیرد. در اینجا مثالی آورده شده که به " -"دلیل این محدودیت شکست می خورد::" +"در یک فراخوانی تابع، آرگومان های کلیدی باید پس از آرگومان های موقعیتی " +"بیایند. تمام آرگومان های کلیدی که ارسال می شوند باید با یکی از آرگومان هایی " +"که تابع قبول می کند، مطابقت داشته باشند (به عنوان مثال ``actor`` آرگومان " +"معتبری برای تابع ``parrot`` نیست)، و ترتیب آنها مهم نیست. این مورد شامل " +"آرگومان های غیر اختیاری نیز می شود (به عنوان مثال ``parrot(voltage=1000)`` " +"نیز معتبر است). هیچ آرگومانی نمی تواند بیش از یک بار مقدار بگیرد. در اینجا " +"یک مثال آورده شده که به دلیل این محدودیت شکست می خورد:" #: ../../tutorial/controlflow.rst:692 #, fuzzy @@ -1646,13 +1647,13 @@ msgid "" "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`` بیاید.) برای " -"مثال، اگر ما یک تابع شبیه به این تعریف کنیم::" +"هنگامی که یک پارامتر رسمی نهایی به صورت ``**name`` وجود دارد، یک دیکشنری (به" +" :ref:`typesmapping` مراجعه کنید) دریافت می کند که شامل تمام آرگومان های " +"کلیدواژه ای به جز آن هایی که با یک پارامتر رسمی مطابقت دارند، می باشد. این " +"می تواند با یک پارامتر رسمی به شکل ``*name`` (که در زیر بخش بعدی توصیف شده " +"است) که شامل یک :ref:`tuple ` است که آرگومان های موقعیتی فراتر " +"از لیست پارامترهای رسمی را دریافت می کند، ترکیب شود. (``*name`` باید قبل از " +"``**name`` ظاهر شود.) به عنوان مثال، اگر ما تابعی به این صورت تعریف کنیم:" #: ../../tutorial/controlflow.rst:708 #, fuzzy @@ -1678,7 +1679,7 @@ msgstr "" #: ../../tutorial/controlflow.rst:717 #, fuzzy msgid "It could be called like this::" -msgstr "می توان این گونه آن را فراخوانی کرد::" +msgstr "می تواند به این صورت فراخوانی شود::" #: ../../tutorial/controlflow.rst:719 #, fuzzy @@ -1689,8 +1690,8 @@ msgid "" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" msgstr "" -"cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" -" \"It's really very, VERY runny, sir.\",\n" +"cheeseshop(\"Limburger\", \"خیلی شُل است، قربان.\",\n" +" \"واقعا خیلی، بسیار شُل است، قربان.\",\n" " shopkeeper=\"Michael Palin\",\n" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" @@ -1698,7 +1699,7 @@ msgstr "" #: ../../tutorial/controlflow.rst:725 #, fuzzy msgid "and of course it would print:" -msgstr "و البته چاپ می کند:" +msgstr "و البته چاپ خواهد کرد:" #: ../../tutorial/controlflow.rst:727 #, fuzzy @@ -1712,14 +1713,14 @@ msgid "" "client : John Cleese\n" "sketch : Cheese Shop Sketch" msgstr "" -"-- آیا «لیمبورگر» دارید؟\n" -"-- متاسفم، ما «لیمبورگر» تمام کرده ایم.\n" -"بسیار شل است، آقا.\n" -"واقعاً خیلی، خیلی شل است، آقا.\n" +"-- آیا پنیر لیـمبـرگر دارین؟\n" +"-- متأسفم، لیک همه لیـمبـرگر ما تمام شده\n" +"خیلی نرم هست، آقا.\n" +"واقعاً خیلی، خیلی نرم هست، آقا.\n" "----------------------------------------\n" -"فروشنده : Michael Palin\n" -"مشتری : John Cleese\n" -"نمایشنامه : Cheese Shop Sketch" +"مغازه دار: مایکل پَلین\n" +"مشتری: جان کـلیز\n" +"اسکچ: طرح پنیر فروشی" #: ../../tutorial/controlflow.rst:738 #, fuzzy @@ -1727,8 +1728,8 @@ msgid "" "Note that the order in which the keyword arguments are printed is guaranteed" " to match the order in which they were provided in the function call." msgstr "" -"توجه داشته باشید که ترتیب چاپ آرگومان های کلیدی تضمین می شود که مطابق با " -"ترتیب ارائه شان در فراخوانی تابع باشد." +"توجه داشته باشید که ترتیب نمایش آرگومان های کلیدی، مطابق با ترتیبی که در " +"فراخوانی تابع ارائه شده اند، تضمین می شود." #: ../../tutorial/controlflow.rst:742 #, fuzzy @@ -1744,16 +1745,16 @@ msgid "" " at the function definition to determine if items are passed by position, by" " position or keyword, or by keyword." msgstr "" -"به طور پیش فرض، آرگومان ها ممکن است به یک تابع پایتون یا به صورت موقعیتی یا " -"به صورت صریح با کلیدواژه ارسال شوند. برای خوانایی و عملکرد بهتر، منطقی است " -"که نحوه ارسال آرگومان ها محدود شود تا توسعه دهنده فقط به تعریف تابع نگاه کند" -" تا تعیین کند که آیتم ها به صورت موقعیتی، به صورت موقعیتی یا کلیدواژه، یا به" -" صورت کلیدواژه ارسال شوند." +"به طور پیش فرض، آرگومان ها می توانند به یک تابع پایتون به صورت موقعیتی یا به" +" صورت صریح با استفاده از کلیدواژه ها ارسال شوند. برای افزایش خوانایی و " +"کارایی، منطقی است که روش ارسال آرگومان ها را محدود کنیم تا یک توسعه دهنده " +"فقط با نگاه کردن به تعریف تابع بتواند تشخیص دهد که آیتم ها به صورت موقعیتی، " +"یا به صورت موقعیتی و کلیدواژه، یا به صورت کلیدواژه ارسال می شوند." #: ../../tutorial/controlflow.rst:750 #, fuzzy msgid "A function definition may look like:" -msgstr "تعریف یک تابع ممکن است به این شکل باشد:" +msgstr "تعریف یک تابع ممکن است به صورت زیر باشد:" #: ../../tutorial/controlflow.rst:752 #, fuzzy @@ -1765,14 +1766,12 @@ msgid "" " | - Keyword only\n" " -- Positional only" msgstr "" -"```python\n" -"def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" +"تعریف f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" " ----------- ---------- ----------\n" " | | |\n" -" | موقعیت یا کلمه کلیدی |\n" -" | - فقط کلمه کلیدی\n" -" -- فقط موقعیت\n" -"```" +" | مکانی یا کلیدواژه ای |\n" +" | - فقط کلیدواژه ای\n" +" -- فقط مکانی" #: ../../tutorial/controlflow.rst:761 #, fuzzy @@ -1782,15 +1781,15 @@ msgid "" "positional-only, positional-or-keyword, and keyword-only. Keyword parameters" " are also referred to as named parameters." msgstr "" -"در جایی که ``/`` و ``*`` اختیاری هستند. اگر استفاده شوند، این نمادها نوع " -"پارامتر را با نحوه ارسال آرگومان ها به تابع نشان می دهند: فقط-موقعیتی، " -"موقعیتی-یا-کلیدواژه ای، و فقط-کلیدواژه ای. پارامترهای کلیدواژه ای به عنوان " -"پارامترهای نام گذاری شده نیز شناخته می شوند." +"که ``/`` و ``*`` اختیاری هستند. اگر استفاده شوند، این نمادها نوع پارامتر را " +"با نحوه ای که آرگومان ها ممکن است به تابع منتقل شوند، نشان می دهند: فقط " +"موقعیتی، موقعیتی یا کلیدواژه ای، و فقط کلیدواژه ای. پارامترهای کلیدواژه ای " +"همچنین به عنوان پارامترهای نام گذاری شده شناخته می شوند." #: ../../tutorial/controlflow.rst:768 #, fuzzy msgid "Positional-or-Keyword Arguments" -msgstr "آرگومان های موقعیتی یا کلیدواژه ای" +msgstr "آرگومان های موقعیتی-یا-کلیدواژه ای" #: ../../tutorial/controlflow.rst:770 #, fuzzy @@ -1798,8 +1797,8 @@ msgid "" "If ``/`` and ``*`` are not present in the function definition, arguments may" " be passed to a function by position or by keyword." msgstr "" -"اگر ``/`` و ``*`` در تعریف تابع وجود نداشته باشند، آرگومان ها ممکن است به " -"صورت موقعیتی یا با استفاده از کلمات کلیدی به تابع ارسال شوند." +"اگر ``/`` و ``*`` در تعریف تابع حضور نداشته باشند، آرگومان ها ممکن است به " +"صورت مکانی یا با استفاده از کلیدواژه به تابع ارسال شوند." #: ../../tutorial/controlflow.rst:775 #, fuzzy @@ -1817,12 +1816,13 @@ msgid "" "parameters. If there is no ``/`` in the function definition, there are no " "positional-only parameters." msgstr "" -"با نگاه دقیق تر به این موضوع، امکان علامت گذاری پارامترهای خاصی به عنوان " -"*positional-only* وجود دارد. در صورت *positional-only*، ترتیب پارامترها " -"اهمیت دارد و پارامترها نمی توانند با استفاده از کلیدواژه ارسال شوند. " -"پارامترهای فقط موضعی قبل از ``/`` (اسلش رو به جلو) قرار می گیرند. ``/`` برای" -" جداسازی منطقی پارامترهای فقط موضعی از بقیه پارامترها استفاده می شود. اگر در" -" تعریف تابع ``/`` وجود نداشته باشد، پارامترهای فقط موضعی وجود ندارند." +"با بررسی دقیق تر این موضوع، می توان برخی از پارامترها را به عنوان " +"*positional-only* علامت گذاری کرد. اگر *positional-only*، ترتیب پارامترها " +"اهمیت دارد و پارامترها نمی توانند با استفاده از کلمات کلیدی ارسال شوند. " +"پارامترهای فقط مکانی قبل از ``/`` (اسلش رو به جلو) قرار می گیرند. ``/`` برای" +" جدا کردن منطقی پارامترهای فقط مکانی از بقیه پارامترها استفاده می شود. اگر " +"در تعریف تابع ``/`` وجود نداشته باشد، پارامترهای فقط مکانی وجود نخواهند " +"داشت." #: ../../tutorial/controlflow.rst:785 #, fuzzy @@ -1830,13 +1830,18 @@ msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." msgstr "" -"پارامترهایی که پس از ``/`` می آیند ممکن است *positional-or-keyword* یا " +"پارامترهایی که پس از ``/`` می آیند می توانند *positional-or-keyword* یا " "*keyword-only* باشند." #: ../../tutorial/controlflow.rst:789 #, fuzzy msgid "Keyword-Only Arguments" -msgstr "آرگومان های فقط کلیدواژه ای" +msgstr "" +"استدلال های فقط کلیدواژه ای\n" +"\n" +"در پایتون، می توانید به توابع خود استدلال هایی اضافه کنید که تنها از طریق کلیدواژه ها قابل ارائه باشند. برای این کار، از علامت شناور * در تعریف تابع استفاده می شود. استدلال هایی که بعد از * می آیند، باید به عنوان استدلال های کلیدواژه ای ارائه شوند. \n" +"\n" +"این ویژگی می تواند خوانایی کد را افزایش داده و جلوگیری از اشتباه را تسهیل کند." #: ../../tutorial/controlflow.rst:791 #, fuzzy @@ -1845,14 +1850,14 @@ msgid "" "passed by keyword argument, place an ``*`` in the arguments list just before" " the first *keyword-only* parameter." msgstr "" -"برای مشخص کردن پارامترها به عنوان *keyword-only*، که نشان دهنده این است که " -"پارامترها باید به صورت آرگومان کلیدواژه ای ارسال شوند، یک ``*`` را در فهرست " -"آرگومان ها دقیقاً قبل از اولین پارامتر *keyword-only* قرار دهید." +"برای علامت گذاری پارامترها به عنوان *keyword-only*، که نشان دهنده ی این است " +"که پارامترها باید با آرگومان کلیدواژه ای ارسال شوند، یک ``*`` را در لیست " +"آرگومان ها درست قبل از اولین پارامتر *keyword-only* قرار دهید." #: ../../tutorial/controlflow.rst:797 #, fuzzy msgid "Function Examples" -msgstr "مثال های تابع" +msgstr "نمونه های تابع" #: ../../tutorial/controlflow.rst:799 #, fuzzy @@ -1860,8 +1865,8 @@ msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" msgstr "" -"نمونه تعریف های تابع زیر را با دقت به علامت های ``/`` و ``*`` در نظر " -"بگیرید::" +"مثال های زیر را که شامل تعریف توابع هستند بررسی کنید و به علامت های ``/`` و " +"``*`` دقت کنید::" #: ../../tutorial/controlflow.rst:802 #, fuzzy @@ -1897,9 +1902,9 @@ msgid "" "places no restrictions on the calling convention and arguments may be passed" " by position or keyword::" msgstr "" -"تعریف اولین تابع، ``standard_arg``، به صورت معمول ترین فرم، هیچ محدودیتی در " -"روش فراخوانی ندارد و آرگومان ها می توانند با استفاده از موقعیت یا کلمه کلیدی" -" ارسال شوند::" +"تعریف اولین تابع، ``standard_arg``، که آشناترین فرم است، هیچ محدودیتی بر روی" +" نحوه فراخوانی ندارد و آرگومان ها می توانند به صورت موقعیت یا کلیدواژه ای " +"ارسال شوند:" #: ../../tutorial/controlflow.rst:819 #, fuzzy @@ -1922,8 +1927,8 @@ 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`` محدود به استفاده از پارامترهای موقعیتی است زیرا یک" -" ``/`` در تعریف تابع وجود دارد::" +"تابع دوم ``pos_only_arg`` محدود به استفاده تنها از پارامترهای موقعیتی است " +"زیرا یک ``/`` در تعریف تابع قرار دارد::" #: ../../tutorial/controlflow.rst:828 #, fuzzy @@ -1940,9 +1945,9 @@ msgstr "" "1\n" "\n" ">>> pos_only_arg(arg=1)\n" -"ردیابی اخیر (آخرین تماس اخیر):\n" -" فایل \"\", خط 1، در \n" -"TypeError: pos_only_arg() تعدادی آرگومان فقط-مکانی به عنوان آرگومان کلیدواژه ای دریافت کرد: 'arg'" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: pos_only_arg() got some positional-only arguments passed as keyword arguments: 'arg'" #: ../../tutorial/controlflow.rst:836 #, fuzzy @@ -1950,8 +1955,8 @@ msgid "" "The third function ``kwd_only_arg`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" msgstr "" -"تابع سوم ``kwd_only_arg`` تنها اجازه استفاده از آرگومان های کلیدی را می دهد " -"همانطور که توسط ``*`` در تعریف تابع نشان داده می شود::" +"تابع سوم ``kwd_only_arg`` تنها آرگومان های کلیدواژه ای را می پذیرد، همان طور" +" که با یک ``*`` در تعریف تابع نشان داده شده است::" #: ../../tutorial/controlflow.rst:839 #, fuzzy @@ -1970,14 +1975,15 @@ msgstr "" "TypeError: kwd_only_arg() takes 0 positional arguments but 1 was given\n" "\n" ">>> kwd_only_arg(arg=3)\n" -"3\n" +"3" #: ../../tutorial/controlflow.rst:847 #, fuzzy msgid "" "And the last uses all three calling conventions in the same function " "definition::" -msgstr "و در نهایت از هر سه روش فراخوانی در همان تعریف تابع استفاده می کند::" +msgstr "" +"و در آخر، هر سه قرارداد فراخوانی را در همان تعریف تابع استفاده می کند::" #: ../../tutorial/controlflow.rst:850 #, fuzzy @@ -1999,9 +2005,9 @@ msgid "" "TypeError: combined_example() got some positional-only arguments passed as keyword arguments: 'pos_only'" msgstr "" ">>> combined_example(1, 2, 3)\n" -"دنباله ی ردگیری اخیر (آخر):\n" -" File \"\", خط 1، در \n" -"TypeError: تابع `combined_example()` به جای ۳ آرگومان، تنها ۲ آرگومان موقعیتی دریافت می کند.\n" +"دنباله خطا (آخرین تماس اخیر):\n" +" پرونده \"\", خط 1، در \n" +"TypeError: combined_example() تعداد 2 آرگومان مکانی لازم دارد ولی 3 داده شده اند\n" "\n" ">>> combined_example(1, 2, kwd_only=3)\n" "1 2 3\n" @@ -2010,9 +2016,9 @@ msgstr "" "1 2 3\n" "\n" ">>> combined_example(pos_only=1, standard=2, kwd_only=3)\n" -"دنباله ی ردگیری اخیر (آخر):\n" -" File \"\", خط 1، در \n" -"TypeError: تابع `combined_example()` بعضی آرگومان های تنها-موقعیت را به صورت آرگومان کلیدواژه ای دریافت کرده است: 'pos_only'" +"دنباله خطا (آخرین تماس اخیر):\n" +" پرونده \"\", خط 1، در \n" +"TypeError: combined_example() برخی از آرگومان های فقط مکان دریافت کرده است که به صورت آرگومان های کلمه کلیدی ارسال شده اند: 'pos_only'" #: ../../tutorial/controlflow.rst:867 #, fuzzy @@ -2021,8 +2027,8 @@ msgid "" "between the positional argument ``name`` and ``**kwds`` which has ``name`` " "as a key::" msgstr "" -"در نهایت، به این تعریف تابع که دارای یک برخورد احتمالی بین آرگومان موقعیتی " -"``name`` و ``**kwds`` که ``name`` را به عنوان کلید دارد، توجه کنید::" +"در نهایت، به این تعریف تابع توجه کنید که دارای یک برخورد احتمالی بین آرگومان" +" موقعیتی ``name`` و ``**kwds`` است که ``name`` را به عنوان یک کلید دارد::" #: ../../tutorial/controlflow.rst:869 #, fuzzy @@ -2030,8 +2036,10 @@ msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" msgstr "" +"```python\n" "def foo(name, **kwds):\n" -" return 'name' in kwds" +" return 'name' in kwds\n" +"```" #: ../../tutorial/controlflow.rst:872 #, fuzzy @@ -2039,8 +2047,8 @@ msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" msgstr "" -"هیچ فراخوانی وجود ندارد که موجب بازگشت ``True`` شود زیرا کلیدواژه ``'name'``" -" همیشه به اولین پارامتر متصل خواهد شد. برای مثال::" +"هیچ فراخوانی ممکن نیست که باعث شود ``True`` برگردد زیرا کلیدواژه ``'name'`` " +"همیشه به اولین پارامتر متصل می شود. برای مثال::" #: ../../tutorial/controlflow.rst:875 #, fuzzy @@ -2052,9 +2060,9 @@ msgid "" ">>>" msgstr "" ">>> foo(1, **{'name': 2})\n" -"دریابی خطا (اخیراً آخرین تماس):\n" -" فایل \"\", خط 1، در \n" -"TypeError: تابع foo() مقادیر متعددی برای آرگومان 'name' دریافت کرده است\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +"TypeError: foo() got multiple values for argument 'name'\n" ">>>" #: ../../tutorial/controlflow.rst:881 @@ -2064,9 +2072,9 @@ msgid "" "``name`` as a positional argument and ``'name'`` as a key in the keyword " "arguments::" msgstr "" -"اما با استفاده از ``/`` (آرگومان های تنها مکانی), این امکان وجود دارد زیرا " -"``name`` را به عنوان یک آرگومان مکانی و ``'name'`` را به عنوان یک کلید در " -"آرگومان های کلیدواژه ای مجاز می کند::" +"اما با استفاده از ``/`` (آرگومان های فقط مکانی)، این امکان وجود دارد زیرا به" +" ``name`` به عنوان یک آرگومان مکانی و ``'name'`` به عنوان یک کلید در آرگومان" +" های کلیدواژه ای اجازه می دهد::" #: ../../tutorial/controlflow.rst:883 #, fuzzy @@ -2081,7 +2089,7 @@ msgstr "" "... return 'name' in kwds\n" "...\n" ">>> foo(1, **{'name': 2})\n" -"True" +"درست" #: ../../tutorial/controlflow.rst:889 #, fuzzy @@ -2089,8 +2097,8 @@ msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." msgstr "" -"به عبارت دیگر، نام های پارامترهای فقط موقعیتی را می توان در ``**kwds`` بدون " -"ابهام استفاده کرد." +"به عبارت دیگر، نام پارامترهای فقط-موضعی می تواند در ``**kwds`` بدون ابهام " +"استفاده شود." #: ../../tutorial/controlflow.rst:894 #, fuzzy @@ -2103,29 +2111,18 @@ msgid "" "The use case will determine which parameters to use in the function " "definition::" msgstr "" -"مورد استفاده تعیین خواهد کرد که کدام پارامترها را در تعریف تابع مورد استفاده" -" قرار دهید::" +"موارد استفاده تعیین می کنند که از کدام پارامترها در تعریف تابع استفاده شود:" #: ../../tutorial/controlflow.rst:898 #, fuzzy msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "" -"تعریف یک تابع می تواند شامل انواع مختلفی از آرگومان ها باشد. در تابعی که در زیر تعریف شده، از چهار نوع آرگومان استفاده شده است:\n" -"\n" -"1. \"positional-only\" آرگومان ها: `pos1` و `pos2` آرگومان هایی هستند که تنها می توان آن ها را با استفاده از موقعیت آن ها فراخوانی کرد.\n" -"\n" -"2. ترکیبی از \"positional\" و \"keyword\" آرگومان: `pos_or_kwd` را می توان به صورت موقعیتی یا به عنوان کلیدواژه فراخوانی کرد.\n" -"\n" -"3. \"keyword-only\" آرگومان ها: `kwd1` و `kwd2` فقط می توانند با کلیدواژه نام گذاری شوند.\n" -"\n" -"استفاده از خط های مورب `/` و `*` به طور خاص برای مشخص کردن نوع آرگومان ها به کار می رود. تابعی که مشاهده می کنید ممکن است به عنوان مثال برای نشان دادن این مفهوم به کار رود::\n" -"\n" -"def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" +"تابع f دارای پارامترهای pos1, pos2، /، pos_or_kwd، *، kwd1 و kwd2 است." #: ../../tutorial/controlflow.rst:900 #, fuzzy msgid "As guidance:" -msgstr "به عنوان راهنما:" +msgstr "به عنوان راهنمایی:" #: ../../tutorial/controlflow.rst:902 #, fuzzy @@ -2136,10 +2133,10 @@ msgid "" " is called or if you need to take some positional parameters and arbitrary " "keywords." msgstr "" -"از پارامترهای تنها موقعیتی استفاده کنید اگر می خواهید نام پارامترها برای " -"کاربر قابل دسترسی نباشد. این روش زمانی مفید است که نام های پارامترها معنای " -"خاصی ندارند، اگر می خواهید ترتیب آرگومان ها را هنگام فراخوانی تابع تحمیل " -"کنید یا اگر نیاز دارید تعدادی پارامتر موقعیتی و کلمات کلیدی دلخواه بگیرید." +"از پارامترهای فقط-مکانی استفاده کنید اگر می خواهید نام پارامترها برای کاربر " +"در دسترس نباشد. این مورد زمانی مفید است که نام پارامتر معنی خاصی ندارد، اگر " +"می خواهید ترتیب آرگومان ها به هنگام فراخوانی تابع رعایت شود یا اگر نیاز " +"دارید تعدادی پارامتر مکانی و کلیدواژه های دلخواه را بپذیرید." #: ../../tutorial/controlflow.rst:907 #, fuzzy @@ -2148,9 +2145,9 @@ msgid "" " understandable by being explicit with names or you want to prevent users " "relying on the position of the argument being passed." msgstr "" -"از کلمه کلیدی when استفاده کنید زمانی که نام ها معنا دارند و تعریف تابع با " -"صراحت بیشتری از طریق نام ها قابل درک است یا می خواهید از تکیه کاربران بر " -"موقعیت آرگومان هایی که ارسال می شوند جلوگیری کنید." +"از کلیدواژه فقط زمانی استفاده کنید که نام ها دارای معنا هستند و تعریف تابع " +"با واضح کردن نام ها قابل فهم تر می شود یا می خواهید از وابستگی کاربران به " +"موقعیت استدلالی که ارجاع می شود جلوگیری کنید." #: ../../tutorial/controlflow.rst:910 #, fuzzy @@ -2158,13 +2155,13 @@ 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 در صورت تغییر نام پارامتر در آینده جلوگیری کنید." +"برای یک API، از فقط موقعیتی استفاده کنید تا از ایجاد تغییرات شکستی در API " +"جلوگیری کنید اگر نام پارامتر در آینده تغییر کند." #: ../../tutorial/controlflow.rst:916 #, fuzzy msgid "Arbitrary Argument Lists" -msgstr "فهرست های آرگومان دلخواه" +msgstr "لیست های آرگومان دلخواه" #: ../../tutorial/controlflow.rst:921 #, fuzzy @@ -2175,9 +2172,9 @@ msgid "" "of arguments, zero or more normal arguments may occur. ::" msgstr "" "در نهایت، کمترین گزینه مورد استفاده این است که مشخص کنید یک تابع می تواند با" -" تعداد دلخواهی از آرگومان ها فراخوانی شود. این آرگومان ها در یک `tuple` بسته" -" بندی می شوند (به :ref:`tut-tuples` مراجعه کنید). قبل از آرگومان های متغیر، " -"ممکن است صفر یا بیشتر آرگومان های عادی رخ دهند. ::" +" تعداد نامشخصی از آرگومان ها فراخوانی شود. این آرگومان ها در یک تاپل قرار " +"خواهند گرفت (به :ref:`tut-tuples` مراجعه کنید). قبل از آرگومان های با تعداد " +"متغیر، ممکن است هیچ یا چند آرگومان عادی نیز وجود داشته باشد." #: ../../tutorial/controlflow.rst:926 #, fuzzy @@ -2185,6 +2182,7 @@ msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" msgstr "" +"\n" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" @@ -2197,11 +2195,11 @@ msgid "" "``*args`` parameter are 'keyword-only' arguments, meaning that they can only" " be used as keywords rather than positional arguments. ::" msgstr "" -"به طور معمول، این آرگومان های *variadic* در انتهای لیست پارامترهای رسمی قرار" -" می گیرند، زیرا تمامی آرگومان های ورودی باقی مانده که به تابع ارسال می شوند " -"را جمع آوری می کنند. هر پارامتر رسمی که بعد از پارامتر ``*args`` قرار گیرد " -"به عنوان آرگومان های 'فقط-کلید واژه' تلقی می شود، به این معنا که تنها می " -"توانند به صورت کلید واژه ای استفاده شوند و نه به شکل آرگومان مکانی. ::" +"معمولاً، این آرگومان های *variadic* در انتهای لیست پارامترهای رسمی قرار می " +"گیرند، زیرا همه آرگومان های ورودی باقیمانده که به تابع ارسال می شوند را در " +"بر می گیرند. هر پارامتر رسمی که بعد از پارامتر ``*args`` قرار گیرد، آرگومان " +"«فقط کلیدی» شناخته می شود، که به این معنی است که آن ها فقط می توانند به صورت" +" کلیدواژه ها استفاده شوند و نه به عنوان آرگومان موقعیتی. ::" #: ../../tutorial/controlflow.rst:936 #, fuzzy @@ -2225,23 +2223,7 @@ msgstr "" #: ../../tutorial/controlflow.rst:947 #, fuzzy msgid "Unpacking Argument Lists" -msgstr "" -"باز کردن لیست آرگومان ها\n" -"\n" -"در مواردی که توابع زیادی از نیازی به استفاده می شود، از توانایی بسته بندی و باز کردن لیست آرگومان ها استفاده شود که می تواند بسیار مفید باشد. برای مثال، تابع `range()` تابعی است که انتظار دارد آرگومان هایش جداگانه و به عنوان پارامترهای مستقل فرستاده شوند::\n" -"\n" -"```python\n" -">>> list(range(3, 6)) # معمولی\n" -"[3, 4, 5]\n" -"```\n" -"\n" -"اگر لیستی از آرگومان ها وجود داشته باشد، می توان از عملگر `*` برای باز کردن لیست به داخل آرگومان های جداگانه استفاده کرد::\n" -"\n" -"```python\n" -">>> args = [3, 6]\n" -">>> list(range(*args)) # بازکردن لیست به آرگومان های منفرد\n" -"[3, 4, 5]\n" -"```" +msgstr "باز کردن لیست آرگومان ها" #: ../../tutorial/controlflow.rst:949 #, fuzzy @@ -2253,12 +2235,12 @@ msgid "" "separately, write the function call with the ``*``\\ -operator to unpack " "the arguments out of a list or tuple::" msgstr "" -"وضعیت معکوس زمانی رخ می دهد که آرگومان ها به صورت یک لیست یا تاپل هستند، اما" -" لازم است برای فراخوانی تابعی که به آرگومان های موقعیتی جداگانه نیاز دارد، " -"آن ها باز شوند. برای مثال، تابع داخلی :func:`range` انتظار دارد که آرگومان " -"های *start* و *stop* به صورت جداگانه ارائه شوند. اگر آن ها به صورت جداگانه " -"موجود نباشند، فراخوانی تابع را با عملگر ``*``\\ برای باز کردن آرگومان ها از " -"یک لیست یا تاپل بنویسید::" +"وضعیت معکوس زمانی اتفاق می افتد که آرگومان ها در یک لیست یا تاپل هستند اما " +"نیاز به جداسازی برای یک فراخوانی تابع که به آرگومان های موقعیتی جداگانه نیاز" +" دارد، دارند. به عنوان مثال، تابع ساخته شده :func:`range` انتظار آرگومان های" +" *start* و *stop* جداگانه را دارد. اگر آنها به صورت جداگانه در دسترس نباشند،" +" فراخوانی تابع را با استفاده از عملگر ``*``\\ بنویسید تا آرگومان ها از یک " +"لیست یا تاپل جدا شوند:" #: ../../tutorial/controlflow.rst:956 #, fuzzy @@ -2269,10 +2251,10 @@ msgid "" ">>> list(range(*args)) # call with arguments unpacked from a list\n" "[3, 4, 5]" msgstr "" -">>> list(range(3, 6)) # normal call with separate arguments\n" +">>> list(range(3, 6)) # فراخوانی عادی با آرگومان های جداگانه\n" "[3, 4, 5]\n" ">>> args = [3, 6]\n" -">>> list(range(*args)) # call with arguments unpacked from a list\n" +">>> list(range(*args)) # فراخوانی با باز کردن آرگومان ها از یک لیست\n" "[3, 4, 5]" #: ../../tutorial/controlflow.rst:965 @@ -2281,8 +2263,8 @@ msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" msgstr "" -"به همین ترتیب، دیکشنری ها می توانند آرگومان های کلیدی را با عملگر ``**``\\ " -"ارائه دهند::" +"به همان شکل، دیکشنری ها می توانند آرگومان های کلیدواژه ای را با عملگر " +"``**``\\ ارائه دهند::" #: ../../tutorial/controlflow.rst:968 #, fuzzy @@ -2297,18 +2279,18 @@ msgid "" "-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !" msgstr "" ">>> def parrot(voltage, state='a stiff', action='voom'):\n" -"... print(\"-- این طوطی نمی خواهد\", action, end=' ')\n" -"... print(\"اگر شما\", voltage, \"ولت از آن عبور دهید.\", end=' ')\n" +"... print(\"-- این طوطی\", action, end=' ')\n" +"... print(\"نخواهد کرد اگر\", voltage, \"ولت از آن عبور دهید.\", end=' ')\n" "... print(\"او\", state, \"است!\")\n" "...\n" -">>> d = {\"voltage\": \"چهار میلیون\", \"state\": \"مرده و بی حرکت\", \"action\": \"VOOM\"}\n" +">>> d = {\"voltage\": \"چهار میلیون\", \"state\": \"کاملاً مرده\", \"action\": \"حرکت\"}\n" ">>> parrot(**d)\n" -"-- این طوطی نمی خواهد VOOM اگر شما چهار میلیون ولت از آن عبور دهید. او مرده و بی حرکت است!" +"-- این طوطی حرکت نخواهد کرد اگر چهار میلیون ولت از آن عبور دهید. او کاملاً مرده است!" #: ../../tutorial/controlflow.rst:981 #, fuzzy msgid "Lambda Expressions" -msgstr "عبارات لمبدا" +msgstr "عبارات لامبدا" #: ../../tutorial/controlflow.rst:983 #, fuzzy @@ -2321,12 +2303,13 @@ msgid "" "function definitions, lambda functions can reference variables from the " "containing scope::" msgstr "" -"تابع های ناشناس کوچک را می توان با کلمه کلیدی :keyword:`lambda` ایجاد کرد. " -"این تابع جمع دو آرگومان خود را برمی گرداند: ``lambda a, b: a+b``. تابع های " -"لامبدا را می توان در هر جایی که اشیاء تابع مورد نیاز باشند استفاده کرد. این " -"تابع ها به لحاظ نحوی به یک عبارت واحد محدود می شوند. از نظر معنایی، آنها فقط" -" یک میانبر نحوی برای تعریف تابع عادی هستند. همانند تعریف تابع های تو در تو، " -"تابع های لامبدا می توانند به متغیرهای موجود در حوزه حاوی خود مراجعه کنند::" +"توابع کوچک ناشناس را می توان با استفاده از کلمه کلیدی :keyword:`lambda` " +"ایجاد کرد. این تابع مجموع دو آرگومان خود را برمی گرداند: ``lambda a, b: " +"a+b``. توابع لامبدا هر جا که اشیاء تابع مورد نیاز باشند، می توانند استفاده " +"شوند. این توابع به لحاظ نحوی به یک عبارت واحد محدود می شوند. به لحاظ معنایی،" +" آن ها تنها به عنوان یک میانبر نحوی برای تعریف تابع عادی عمل می کنند. مانند " +"تعریف توابع تو در تو، توابع لامبدا می توانند به متغیرهای موجود در حوزه " +"شاملشان ارجاع دهند::" #: ../../tutorial/controlflow.rst:991 #, fuzzy @@ -2347,7 +2330,7 @@ msgstr "" ">>> f(0)\n" "42\n" ">>> f(1)\n" -"43" +"43\n" #: ../../tutorial/controlflow.rst:1000 #, fuzzy @@ -2355,8 +2338,8 @@ msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument::" msgstr "" -"مثال بالا از یک عبارت لامبدا برای بازگرداندن یک تابع استفاده می کند. یک " -"کاربرد دیگر این است که یک تابع کوچک را به عنوان آرگومان ارسال کنید::" +"مثال بالا از یک عبارت lambda برای بازگرداندن یک تابع استفاده می کند. استفاده" +" دیگری این است که یک تابع کوچک را به عنوان یک آرگومان پاس دهید::" #: ../../tutorial/controlflow.rst:1003 #, fuzzy @@ -2382,8 +2365,8 @@ msgid "" "Here are some conventions about the content and formatting of documentation " "strings." msgstr "" -"در اینجا برخی قواعد مربوط به محتوا و قالب بندی رشته های مستندات آورده شده " -"است." +"در اینجا برخی از قراردادها درباره محتوا و قالب بندی رشته های مستندات آورده " +"شده است." #: ../../tutorial/controlflow.rst:1022 #, fuzzy @@ -2394,10 +2377,10 @@ msgid "" "to be a verb describing a function's operation). This line should begin " "with a capital letter and end with a period." msgstr "" -"اولین خط باید همیشه یک خلاصه کوتاه و مختصر از هدف شیء باشد. به دلیل اختصار، " -"نباید به صورت صریح نام یا نوع شیء را بیان کند، زیرا این اطلاعات از طریق روش " -"های دیگر در دسترس است (مگر در مواردی که نام, یک فعل توصیف کننده عملکرد یک " -"تابع باشد). این خط باید با حرف بزرگ شروع شود و با نقطه پایان یابد." +"اولین خط باید همیشه یک خلاصه کوتاه و واضح از هدف شیء باشد. برای اختصار، " +"نباید به طور صریح نام یا نوع شیء را بیان کند، زیرا این اطلاعات به روش های " +"دیگر در دسترس است (مگر اینکه نام، یک فعل توصیفی از عملکرد تابع باشد). این خط" +" باید با حرف بزرگ شروع شده و با نقطه پایان یابد." #: ../../tutorial/controlflow.rst:1028 #, fuzzy @@ -2407,9 +2390,9 @@ msgid "" " The following lines should be one or more paragraphs describing the " "object's calling conventions, its side effects, etc." msgstr "" -"اگر در رشته مستندات خطوط بیشتری وجود داشته باشد، خط دوم باید خالی باشد تا " -"خلاصه را به صورت بصری از بقیه توضیحات جدا کند. خطوط بعدی باید یک یا چند " -"پاراگراف باشد که روش های فراخوانی شی، اثرات جانبی آن و غیره را توضیح دهد." +"اگر تعداد خطوط در رشته مستندات بیشتر باشد، باید خط دوم خالی باشد و به صورت بصری خلاصه را از بقیه توضیحات جدا کند.\n" +"\n" +"خطوط بعدی باید یک یا چند پاراگراف باشند که کنوانسیون های فراخوانی شی، اثرات جانبی آن و غیره را توضیح می دهند." #: ../../tutorial/controlflow.rst:1033 #, fuzzy @@ -2426,21 +2409,21 @@ msgid "" "they occur all their leading whitespace should be stripped. Equivalence of " "whitespace should be tested after expansion of tabs (to 8 spaces, normally)." msgstr "" -"تجزیه کننده پایتون از تو رفتگی در رشته های چند خطی در پایتون چشم پوشی نمی " -"کند، بنابراین ابزارهایی که مستندات را پردازش می کنند باید در صورت نیاز تو " -"رفتگی را حذف کنند. این کار با استفاده از قرارداد زیر انجام می شود: اولین خط " -"غیرخالی از خطوط اول رشته، مقدار تو رفتگی برای کل رشته مستندات را تعیین می " -"کند. (ما نمی توانیم از خط اول استفاده کنیم زیرا معمولاً در کنار علامت های " -"نقل قول باز رشته است و تو رفتگی آن در رشته مشخص نیست.) سپس فاصله \"معادل\" " -"با این تو رفتگی از ابتدای تمام خطوط رشته حذف می شود. خطوطی که کم تر تو رفته " -"باشند، نباید وجود داشته باشند، اما اگر وجود داشتند، تمام فاصله های ابتدایی " -"آن ها باید حذف شوند. معادل بودن فاصله باید پس از گسترش تب ها (معمولاً به 8 " -"فاصله) بررسی شود." +"تجزیه کننده ی پایتون فرورفتگی را از رشته های چندخطی در پایتون حذف نمی کند، " +"بنابراین ابزارهایی که مستندات را پردازش می کنند، باید در صورت نیاز فرورفتگی " +"را حذف کنند. این کار با استفاده از استاندارد زیر انجام می شود. اولین خط غیر " +"خالی *after* اولین خط رشته، مقدار فرورفتگی برای کل رشته ی مستندات را تعیین " +"می کند. (ما نمی توانیم از خط اول استفاده کنیم زیرا به طور کلی مجاور به نقل " +"قول های ابتدایی رشته است، بنابراین فرورفتگی آن در رشته ی ظاهری مشخص نیست.) " +"فاصله ی \"معادل\" با این فرورفتگی سپس از ابتدای تمام خطوط رشته حذف می شود. " +"خطوطی که فرورفتگی کمتری دارند نباید اتفاق بیافتد، اما اگر اتفاق افتاد، باید " +"تمامی فاصله های پیشرو آن ها حذف شود. معادل بودن فاصله ها باید بعد از تعویض " +"تب ها (به ۸ فاصله، معمولاً) بررسی شود." #: ../../tutorial/controlflow.rst:1045 #, fuzzy msgid "Here is an example of a multi-line docstring::" -msgstr "در اینجا یک نمونه از یک ``docstring`` چند خطی آورده شده است::" +msgstr "در اینجا یک مثال از یک رشته توضیح چند خطی ارائه شده است:" #: ../../tutorial/controlflow.rst:1047 #, fuzzy @@ -2458,21 +2441,21 @@ msgid "" " No, really, it doesn't do anything." msgstr "" ">>> def my_function():\n" -"... \"\"\"هیچ کاری انجام نمی دهد، اما مستندش می کند.\n" +"... \"\"\"هیچ کاری انجام نمی دهد، اما آن را مستند می کند.\n" "...\n" -"... نه، واقعاً هیچ کاری انجام نمی دهد.\n" +"... نه، واقعاً، هیچ کاری انجام نمی دهد.\n" "... \"\"\"\n" "... pass\n" "...\n" ">>> print(my_function.__doc__)\n" -"هیچ کاری انجام نمی دهد، اما مستندش می کند.\n" +"هیچ کاری انجام نمی دهد، اما آن را مستند می کند.\n" "\n" -" نه، واقعاً هیچ کاری انجام نمی دهد." +" نه، واقعاً، هیچ کاری انجام نمی دهد." #: ../../tutorial/controlflow.rst:1063 #, fuzzy msgid "Function Annotations" -msgstr "توضیحات تابع" +msgstr "حاشیه نویسی توابع" #: ../../tutorial/controlflow.rst:1071 #, fuzzy @@ -2481,8 +2464,8 @@ msgid "" "information about the types used by user-defined functions (see :pep:`3107` " "and :pep:`484` for more information)." msgstr "" -"اطلاعات متا :ref:`Function annotations ` در مورد انواع استفاده شده" -" توسط توابع تعریف شده توسط کاربر به طور کامل اختیاری هستند (برای اطلاعات " +":ref:`Function annotations ` اطلاعات متادیتای کاملاً اختیاری " +"درباره انواع استفاده شده توسط توابع تعریف شده توسط کاربر است (برای اطلاعات " "بیشتر به :pep:`3107` و :pep:`484` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1075 @@ -2498,13 +2481,14 @@ msgid "" "following example has a required argument, an optional argument, and the " "return value annotated::" msgstr "" -":term:`Annotations ` به صورت یک دیکشنری در خصوصیت " -":attr:`!__annotations__` تابع ذخیره می شوند و بر هیچ بخش دیگری از تابع " -"تأثیری ندارند. توضیحات پارامترها با یک دو نقطه بعد از نام پارامتر تعریف می " -"شوند که با یک عبارت برای ارزیابی به مقدار توضیح ارائه می شوند. توضیحات " -"بازگشتی با یک ``->`` به همراه یک عبارت، بین لیست پارامتر و دو نقطه ای که " -"پایان دستور :keyword:`def` را نشان می دهد، تعریف می شوند. مثال زیر دارای یک " -"آرگومان اجباری، یک آرگومان اختیاری و مقدار بازگشتی توضیح داده شده است::" +":term:`Annotations ` در ویژگی :attr:`!__annotations__` " +"تابع به صورت یک دیکشنری ذخیره می شوند و هیچ تأثیری بر سایر قسمت های تابع " +"ندارند. حاشیه نویسی پارامترها با یک دو نقطه پس از نام پارامتر، به دنبال آن " +"یک عبارت که به مقدار حاشیه نویسی ارزیابی می شود، تعریف می شود. حاشیه نویسی " +"بازگشتی با یک ``->`` لیتری، به دنبال آن یک عبارت، بین لیست پارامترها و دو " +"نقطه که پایان بیانیه :keyword:`def` را نشان می دهد، تعریف می شود. مثال زیر " +"یک آرگومان ضروری، یک آرگومان اختیاری و مقدار بازگشتی را حاشیه نویسی کرده " +"است:" #: ../../tutorial/controlflow.rst:1084 #, fuzzy @@ -2543,11 +2527,11 @@ msgid "" "than others. Making it easy for others to read your code is always a good " "idea, and adopting a nice coding style helps tremendously for that." msgstr "" -"حالا که قرار است قطعات طولانی تر و پیچیده تری از پایتون بنویسید، زمان خوبی " -"است برای صحبت درباره ی *coding style*. بیشتر زبان ها را می توان به سبک های " -"مختلف نوشت (یا به طور خلاصه تر, *formatted*)؛ برخی از این سبک ها نسبت به " -"بقیه خواناتر هستند. راحت کردن خواندن کد شما برای دیگران همیشه ایده ی خوبی " -"است و اتخاذ یک سبک کدنویسی خوب برای این امر بسیار کمک کننده خواهد بود." +"اکنون که قصد دارید کدهای پیچیده تر و طولانی تری از پایتون بنویسید، زمان " +"مناسبی است که درباره ی *coding style* صحبت کنیم. اکثر زبان ها می توانند به " +"سبک های مختلف نوشته شوند (یا به بیان دقیق تر، *formatted*)؛ برخی از آنها " +"خواناتر از بقیه هستند. این که کار دیگران برای خواندن کد شما آسان باشد همیشه " +"ایده خوبی است و پیروی از یک سبک کدنویسی مناسب در این زمینه بسیار کمک می کند." #: ../../tutorial/controlflow.rst:1108 #, fuzzy @@ -2557,33 +2541,26 @@ msgid "" " Python developer should read it at some point; here are the most important " "points extracted for you:" msgstr "" -"برای پایتون، :pep:`8` به عنوان راهنمای سبک که اکثر پروژه ها از آن پیروی می " -"کنند ظهور کرده است؛ این راهنما یک سبک کدنویسی بسیار خوانا و چشم نواز را " -"ترویج می دهد. هر توسعه دهنده ی پایتون باید در مقطعی آن را بخواند؛ در اینجا " -"مهم ترین نکات برای شما استخراج شده اند:" +"برای پایتون، :pep:`8` به عنوان راهنمای سبکی به وجود آمده است که بیشتر پروژه " +"ها از آن پیروی می کنند؛ این راهنما یک سبک کدنویسی بسیار خوانا و جذاب را " +"ترویج می کند. هر برنامه نویس پایتون باید در مقطعی آن را مطالعه کند؛ در اینجا" +" مهم ترین نکات استخراج شده برای شما آورده شده است:" #: ../../tutorial/controlflow.rst:1113 #, fuzzy msgid "Use 4-space indentation, and no tabs." msgstr "" -"متد های تعریف شده در یک بدنه کلاس تعریف کننده رفتار اشیاء آن کلاس هستند. وقتی یک متد در زمینه یک شیء قابل اجرا باشد، متد نامیده می شود: \n" -"\n" -" x.f()\n" -"\n" -"در اصطلاح: روش دریافت پیام f با پارامترهایی که در پرانتز بعدی تابع فراخوانی می شود. \n" -"\n" -"متد شیئی که در آن تعریف شده اند را به عنوان اولین آرگومانشان می گیرند، که به طور معمول self نامیده می شود. \n" +"متغیرها در پایتون به صورت خودکار تایپ بندی می شوند. وقتی یک مقدار به یک متغیر اختصاص داده می شود، پایتون به صورت خودکار نوع داده های آن متغیر را تعیین می کند. به عنوان مثال، اگر یک عدد صحیح به متغیری داده شود، پایتون به صورت خودکار آن متغیر را از نوع \"int\" در نظر می گیرد.\n" "\n" -"متدها می توانند به طور مستقیم با کلاس هایی به شکلی فراخوانی شوند که در دسترس ماژول محلی هستند:\n" +"بخشی از کد که متغیرها را مقداردهی می کند به صورت زیر است:\n" "\n" -" class C:\n" -" def f(self, x):\n" -" return (self, x)\n" +" x = 5\n" +" y = \"Hello, World!\"\n" "\n" -"هنگامی که یک روش فراخوانی شود، میدان تهی شده با ارزیابی یک شیء مشخص، نشانگر شیء تازه ساخته شده می شود. برای نمونه:\n" +"اینجا 'x' یک متغیر از نوع عدد صحیح و 'y' یک متغیر از نوع رشته است. اگر می خواهید متغیرها را با نوع داده ای مشخص ایجاد کنید، می توانید از تبدیل نوع استفاده کنید:\n" "\n" -" x = C()\n" -" print(x.f(1))" +" x = int(5)\n" +" y = str(\"Hello, World!\")" #: ../../tutorial/controlflow.rst:1115 #, fuzzy @@ -2592,45 +2569,21 @@ msgid "" "nesting depth) and large indentation (easier to read). Tabs introduce " "confusion, and are best left out." msgstr "" -"استفاده از ۴ فاصله یک توافق خوب بین تورفتگی کوچک (که عمق تو در تویی بیشتری " -"را اجازه می دهد) و تورفتگی بزرگ (که خواندن را آسان تر می کند) است. استفاده " -"از تب ها باعث سردرگمی می شود و بهتر است از آن ها اجتناب شود." +"۴ فاصله، هم زمان تعادلی مناسب بین تورفتگی کم (که عمق لایه بندی بیشتری را " +"ممکن می سازد) و تورفتگی زیاد (که خواندن را ساده تر می سازد) ایجاد می کند. " +"استفاده از تب ها می تواند گیج کننده باشد و بهتر است از آنها اجتناب شود." #: ../../tutorial/controlflow.rst:1119 #, fuzzy msgid "Wrap lines so that they don't exceed 79 characters." msgstr "" -"متغیرهای محلی به صورت پیش فرض در اسکوپ توابع تعریف می شوند. برای ایجاد \n" -"متغیرهای در سطح ماژول، یا باید متغیر را در خارج از هر تابعی تعریف کنید، \n" -"یا از کلمه کلیدی ``global`` استفاده کنید. هیچ اسکوپی در سطح کلاس وجود ندارد. \n" -"با این حال، یک تعریف کلاس با یک اسکوپ توابع محصور می شود::\n" -"\n" -"```python\n" -"class B:\n" -" b = 4\n" -"```\n" -"\n" -"متغیرهایی که درون یک تعریف کلاس به آنها ارجاع داده می شود، باید یا \n" -"به عنوان پارامتر تابع استفاده شوند یا به عنوان متغیرهای سراسری باشند. \n" -"عملگر `.` در دسترسی به متغیرهای تعریف شده در فضای خارجی به کار می رود::\n" -"\n" -"```python\n" -"a = 3\n" -"\n" -"class C:\n" -" a = 5 # Shadows module variable 'a'\n" -" \n" -" def f(self):\n" -" print(a)\n" -" print(self.a)\n" -"\n" -"c = C()\n" -"c.f()\n" -"print(a)\n" -"```\n" -"\n" -"در این مثال، خروجی 3 و 5 خواهد بود، چون ``a`` داخل کلاس یک فضای اسکوپ محلی \n" -"می سازد که سایه ای بر روی متغیر ``a`` در سطح ماژول می اندازد." +"به منظور دستیابی به حداکثر قابلیت استفاده و سازگاری با دیگر سیستم های \n" +"برنامه نویسی، معمولاً توصیه می شود از متدهای مشخصی تبعیت کنید. برای \n" +"مثال، همیشه از خطوط فضا (space) به جای تب (tab) استفاده کنید تا مطمئن \n" +"شوید که کد شما در تمامی محیط های توسعه دیده می شود. همچنین به صورت \n" +"استاندارد عبارات و نام گذاری که شامل ترکیبی از حروف بزرگ و کوچک است \n" +"را رعایت کنید، مانند این که از camelCase برای نام گذاری متغیرها و \n" +"از PascalCase برای نام گذاری کلاس ها استفاده کنید.\"" #: ../../tutorial/controlflow.rst:1121 #, fuzzy @@ -2638,8 +2591,8 @@ msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." msgstr "" -"این به کاربران با نمایشگرهای کوچک کمک می کند و امکان داشتن چندین فایل کد " -"کنار هم بر روی نمایشگرهای بزرگتر را فراهم می سازد." +"این به کاربران با نمایشگرهای کوچک کمک می کند و امکان قرار دادن چندین فایل کد" +" به صورت کنار هم روی نمایشگرهای بزرگ تر را فراهم می سازد." #: ../../tutorial/controlflow.rst:1124 #, fuzzy @@ -2647,35 +2600,29 @@ msgid "" "Use blank lines to separate functions and classes, and larger blocks of code" " inside functions." msgstr "" -"برای دستیابی و مدیریت فایل ها در پایتون، می توانید از کتابخانه ی استاندارد استفاده کنید. تابع ``open()`` که در پایتون وجود دارد، ابزاری قدرتمند برای خواندن و نوشتن فایل ها است. با استفاده از این تابع، می توانید فایل ها را به حالت مختلفی مانند 'خواندن' و 'نوشتن' باز کنید.\n" -"\n" -"برای باز کردن یک فایل، می توانید از تابع ``open()`` ، همراه با آرگومان های ('نام فایل', 'حالت') استفاده کنید.\n" +"متغیرها در پایتون محلی (locally) یا سراسری (globally) هستند. اگر یک متغیر درون یک تابع تعریف شود، آن متغیر محلی به نظر می رسد. اگر خارج از تابع تعریف شده باشد، سراسری است.\n" "\n" -"مثال::\n" +"متغیرهای محلی فقط درون تابعی که تعریف شده اند قابل دسترسی هستند، در حالی که متغیرهای سراسری می توانند از هر جایی در برنامه در هر تابعی مورد استفاده قرار گیرند.\n" "\n" -" file = open('example.txt', 'r')\n" +"CODE_BLOCK_01\n" "\n" -"در این مثال، ما پرونده ای به نام 'example.txt' را در حالت خواندن باز می کنیم.\n" +"در این مثال، x یک متغیر سراسری است، در حالی که y یک متغیر محلی است. می توانید از دستور global درون یک تابع استفاده کنید تا به طور صریح به متغیری به عنوان سراسری اشاره کنید، این به شما اجازه می دهد تا مقدار یک متغیر سراسری را در داخل یک تابع تغییر دهید.\n" "\n" -"پایتون همچنین مفهوم 'مدیریت محتویات' را معرفی کرده است که استفاده از آن با بیان 'with' یا 'همراه با' امکان پذیر است. این روش، منابع را به هنگام اتمام استفاده آزاد می کند.\n" +"مثال استفاده از کلمه کلیدی global:\n" "\n" -"مثال::\n" +"CODE_BLOCK_02\n" "\n" -" with open('example.txt', 'r') as file:\n" -" contents = file.read()\n" -" print(contents)\n" -"\n" -"در این قطعه کد، 'example.txt' باز می شود و محتوای آن خوانده و چاپ می گردد. پس از اتمام بلوک 'with', فایل به طور خودکار بسته می شود." +"به خاطر داشته باشید، اگر سعی کنید مقداری را به یک متغیر قبل از تعریف صریح آن داخل تابع تخصیص دهید، ممکن است با خطای UnboundLocalError مواجه شوید." #: ../../tutorial/controlflow.rst:1127 #, fuzzy msgid "When possible, put comments on a line of their own." -msgstr "وقتی ممکن است، نظرات را در خط خودشان قرار دهید." +msgstr "هنگامی که ممکن است، نظرات را در یک خط جداگانه قرار دهید." #: ../../tutorial/controlflow.rst:1129 #, fuzzy msgid "Use docstrings." -msgstr "از رشته های مستندات استفاده کنید." +msgstr "از docstring ها استفاده کنید." #: ../../tutorial/controlflow.rst:1131 #, fuzzy @@ -2683,8 +2630,8 @@ msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." msgstr "" -"از فاصله گذاری اطراف عملگرها و بعد از کاماها استفاده کنید، اما مستقیماً داخل" -" سازه های براکتی فاصله گذاری نکنید: ``a = f(1, 2) + g(3, 4)``." +"از فاصله ها در اطراف عملگر ها و بعد از کاماها استفاده کنید، اما نه مستقیماً " +"درون ساختار های براکت دار: ``a = f(1, 2) + g(3, 4)``." #: ../../tutorial/controlflow.rst:1134 #, fuzzy @@ -2694,11 +2641,11 @@ msgid "" "functions and methods. Always use ``self`` as the name for the first method" " argument (see :ref:`tut-firstclasses` for more on classes and methods)." msgstr "" -"نام گذاری کلاس ها و توابع خود را به طور مداوم انجام دهید؛ عرف این است که " -"برای کلاس ها از ``UpperCamelCase`` و برای توابع و متدها از " -"``lowercase_with_underscores`` استفاده کنید. همیشه از ``self`` به عنوان نام " -"اولین آرگومان متد استفاده کنید (برای اطلاعات بیشتر در مورد کلاس ها و متدها " -"به :ref:`tut-firstclasses` مراجعه کنید)." +"نام گذاری کلاس ها و توابع خود را به صورت منظم انجام دهید؛ کنوانسیون این است " +"که از ``UpperCamelCase`` برای کلاس ها و از ``lowercase_with_underscores`` " +"برای توابع و متدها استفاده کنید. همیشه از ``self`` به عنوان نام اولین " +"آرگومان متد استفاده کنید (برای اطلاعات بیشتر در مورد کلاس ها و متدها به " +":ref:`tut-firstclasses` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1139 #, fuzzy @@ -2707,9 +2654,9 @@ msgid "" "environments. Python's default, UTF-8, or even plain ASCII work best in any" " case." msgstr "" -"در محیط های بین المللی، از کدگذاری های پیچیده استفاده نکنید. به طور کلی، " -"مقدار پیش فرض پایتون، که UTF-8 است، و حتی ASCII ساده برای هر نوع استفاده " -"بهترین کارایی را دارند." +"از رمزگذاری های خاص استفاده نکنید اگر کد شما برای استفاده در محیط های بین " +"المللی طراحی شده است. پیش فرض پایتون، یعنی UTF-8، و حتی ASCII ساده به بهترین" +" شکل در هر شرایطی کار می کنند." #: ../../tutorial/controlflow.rst:1143 #, fuzzy @@ -2718,14 +2665,14 @@ msgid "" " slightest chance people speaking a different language will read or maintain" " the code." msgstr "" -"به همین ترتیب، از کاراکترهای غیر از ASCII در شناسه ها استفاده نکنید اگر حتی " -"به صورت جزئی احتمال دارد افرادی که به زبان های دیگر صحبت می کنند کد را " -"بخوانند یا نگهداری کنند." +"به همین ترتیب، اگر حتی کوچکترین احتمالی وجود داشته باشد که افرادی که به " +"زبانی متفاوت صحبت می کنند، کد را بخوانند یا نگهداری کنند، از کاراکترهای " +"غیرASCII در شناسه ها استفاده نکنید." #: ../../tutorial/controlflow.rst:1149 #, fuzzy msgid "Footnotes" -msgstr "پاورقی ها" +msgstr "پانویس ها" #: ../../tutorial/controlflow.rst:1150 #, fuzzy @@ -2735,13 +2682,14 @@ msgid "" "makes to it (items inserted into a list)." msgstr "" "در واقع، *call by object reference* توصیف بهتری خواهد بود، زیرا اگر یک شیء " -"قابل تغییر انتقال داده شود، فراخواننده هر تغییری را که فراخوانده شده در آن " -"ایجاد کند، مشاهده خواهد کرد (موارد وارد شده در یک لیست)." +"قابل تغییر ارسال شود، هرگونه تغییری که توسط تابع فراخوانی شده بر روی آن " +"انجام گیرد (مواردی که در یک لیست درج می شوند)، توسط فردی که آن را فراخوانی " +"می کند مشاهده خواهد شد." #: ../../tutorial/controlflow.rst:48 #, fuzzy msgid "statement" -msgstr "بیان" +msgstr "بیانیه" #: ../../tutorial/controlflow.rst:48 #, fuzzy @@ -2751,60 +2699,48 @@ msgstr "برای" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy msgid "documentation strings" -msgstr "رشته های مستندات" +msgstr "" +"رشته های مستندات (documentation strings)، که به سادگی داک استرینگ (docstring) نیز نامیده می شوند، راهی برای استفاده از قابلیت های یادداشت گذاری در پایتون هستند. رشته های مستندات به طور مستقیم پس از تعریف ماژول، کلاس یا تابع قرار می گیرند. اگر رشته مستنداتی وجود داشته باشد، مشخصات در زمان اجرا قابل دستیابی هستند. به عنوان مثال:\n" +"```python\n" +"def kol_hajm_zekhira(tedad, andaze):\n" +" \"\"\"\n" +" محاسبه حجم کل.\n" +"\n" +" پارامترها:\n" +" tedad -- تعداد اقلام\n" +" andaze -- اندازه هر قلم\n" +" \"\"\"\n" +" return tedad * andaze\n" +"```\n" +"در اینجا، داک استرینگ تابع kol_hajm_zekhira توضیحی مختصر از هدف تابع ارائه می دهد و اطلاعاتی درباره پارامترهای آن درج می کند." #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy msgid "docstrings" -msgstr "دکسترینگ ها" +msgstr "رشته های مستندات" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 #, fuzzy msgid "strings, documentation" -msgstr "strings, documentation" +msgstr "رشته ها، مستندات" #: ../../tutorial/controlflow.rst:918 #, fuzzy msgid "* (asterisk)" -msgstr "" -"* (ستاره) در پایتون برای ایجاد یک لیست جدید از ترکیب دو یا چند IEnumerable استفاده می شود. برای استفاده از آن، کافیست به سادگی لیست های مورد نظر را با یک `*` در کنار هم قرار دهید تا لیست جدید شامل تمامی اعضای آن ها ایجاد شود. در ادامه یک مثال ساده آورده شده است:: \n" -"\n" -"```\n" -"list1 = [1, 2, 3]\n" -"list2 = [4, 5, 6]\n" -"combined_list = [*list1, *list2]\n" -"print(combined_list) # خروجی: [1, 2, 3, 4, 5, 6]\n" -"```\n" -"\n" -"به طور مشابه، `*` می تواند برای ترکیب کردن مجموعه ها (tuples) نیز به کار رود:: \n" -"\n" -"```\n" -"tuple1 = (1, 2, 3)\n" -"tuple2 = (4, 5, 6)\n" -"combined_tuple = (*tuple1, *tuple2)\n" -"print(combined_tuple) # خروجی: (1, 2, 3, 4, 5, 6)\n" -"```\n" -"\n" -"علاوه بر این، `*` می تواند برای باز کردن (unpacking) آرایه ها نیز مورد استفاده قرار گیرد. مثلا اگر یک تابع چندین مقدار بازگرداند، می توان آن مقادیر را درون متغیر های جداگانه ذخیره کرد که نشان می دهد چگونه داده های پیچیده با استفاده از این عملگر مدیریت شوند." +msgstr "* (ستاره)" #: ../../tutorial/controlflow.rst:918 ../../tutorial/controlflow.rst:962 #, fuzzy msgid "in function calls" -msgstr "در فراخوانی تابع ها" +msgstr "در فراخوانی توابع" #: ../../tutorial/controlflow.rst:962 #, fuzzy msgid "**" msgstr "" -"متد :: یکی از متدهای مهم در کلاس ها در پایتون `__init__` است که به عنوان سازنده ی کلاس شناخته می شود. این متد زمانی که یک شیء جدید از کلاس ایجاد می شود، به صورت خودکار اجرا می گردد و به شما اجازه می دهد تا مقداردهی اولیه متغیرهای شیء را انجام دهید و حالت شروع شیء را تنظیم کنید.\n" -"\n" -"به مثال زیر توجه کنید::\n" -"\n" -"class MyClass:\n" -" def __init__(self, name):\n" -" self.name = name\n" -"\n" -"در این مثال، زمانی که شما یک شیء جدید از `MyClass` را ایجاد می کنید، متد `__init__` فراخوانی شده و مقدار اولیه برای ویژگی `name` تنظیم می شود." +"متاسفانه، من نمی توانم متنی را که به من داده اید ترجمه کنم، زیرا شما هیچ " +"متنی برای ترجمه ارائه نکرده اید. لطفاً متن مورد نظر خود را برای ترجمه ارائه " +"دهید تا بتوانم به شما در این زمینه کمک کنم." #: ../../tutorial/controlflow.rst:1066 #, fuzzy @@ -2814,58 +2750,38 @@ msgstr "تابع" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid "annotations" -msgstr "" -"annotations\n" -"ترجمه به \"حاشیه نویسی\" یا \"تعلیقات\" بسته به زمینه است. در برنامه نویسی، اغلب به معنای حاشیه نویسی های توضیحی در مورد نوع داده ها یا مستند کردن موارد در کد استفاده می شود." +msgstr "حاشیه نویسی ها" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid "->" msgstr "" -"ماژول `textwrap` دارای دو کلاس برای قالب بندی پاراگراف است:\n" -"\n" -"- `TextWrapper`: این کلاس برای بسته بندی و قالب بندی متن استفاده می شود. روش های مختلفی برای تنظیم پارامترهای بسته بندی دارد، از جمله تغییر طول خط و کنترل رفتار تقسیم جملات.\n" -"\n" -"- `IndentedTextWrapper`: این کلاس مانند `TextWrapper` عمل می کند، با این تفاوت که می تواند تورفتگی برای خطوط بسته بندی شده و خطوط اولیه تنظیم کند. \n" -"\n" -"مثال های زیر نشان می دهند که چگونه می توان از این روش ها استفاده کرد::\n" +"ماژول `math` یک منبع ثابت از توابع ریاضی در پایتون است. این ماژول شامل توابعی برای انجام محاسبات علمی و مهندسی مانند سینوس، کسینوس و لگاریتم است.\n" "\n" -" import textwrap\n" +"متد 'ceil' یک عدد را به سمت بالا گرد می کند و نزدیک ترین عدد صحیح بزرگ تر از یا برابر با شماره داده شده را برمی گرداند.\n" "\n" -" sample_text = '''\n" -" Python is a high-level, interpreted, interactive and object-oriented scripting language. \n" -" Python is designed to be highly readable. \n" -" '''\n" +"توابع دیگری مانند 'sqrt' برای پیدا کردن ریشه دوم یک عدد و 'factorial' برای محاسبه فاکتوریل یک عدد وجود دارند. برای استفاده از این ماژول، ابتدا باید آن را وارد برنامه خود کنید: \n" "\n" -" wrapper = textwrap.TextWrapper(width=50)\n" -"\n" -" word_list = wrapper.wrap(text=sample_text)\n" -" for element in word_list:\n" -" print(element)\n" -"\n" -"برای تورفتگی متن، می توان از گزینه های `initial_indent` و `subsequent_indent` استفاده کرد::\n" -"\n" -" wrapper = textwrap.TextWrapper(initial_indent=' ', subsequent_indent=' ', width=50)\n" -" output = wrapper.wrap(text=sample_text)\n" -" for element in output:\n" -" print(element)" +"```\n" +"import math\n" +"```" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid "function annotations" -msgstr "توضیحات تابع" +msgstr "توضیحات توابع" #: ../../tutorial/controlflow.rst:1066 #, fuzzy msgid ": (colon)" -msgstr ": (دونقطه)" +msgstr ": (کولون)" #: ../../tutorial/controlflow.rst:1100 #, fuzzy msgid "coding" -msgstr "کدنویسی" +msgstr "کدگذاری" #: ../../tutorial/controlflow.rst:1100 #, fuzzy msgid "style" -msgstr "سبک" +msgstr "استایل" diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 4ac2246ea..865af16db 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -29,7 +29,7 @@ msgstr "استفاده از مفسر پایتون" #: ../../tutorial/interpreter.rst:11 #, fuzzy msgid "Invoking the Interpreter" -msgstr "اجرای مفسر" +msgstr "اجرا کردن مفسر" #: ../../tutorial/interpreter.rst:13 #, fuzzy @@ -39,15 +39,15 @@ msgid "" "available; putting :file:`/usr/local/bin` in your Unix shell's search path " "makes it possible to start it by typing the command:" msgstr "" -"معمولاً مفسر پایتون به صورت |usr_local_bin_python_x_dot_y_literal| بر روی آن" -" ماشین هایی که پایتون در دسترس است نصب می شود؛ قرار دادن " -":file:`/usr/local/bin` در مسیر جستجوی شل یونیکس تان امکان شروع آن را با تایپ" -" فرمان زیر فراهم می کند:" +"مفسر پایتون معمولاً به عنوان |usr_local_bin_python_x_dot_y_literal| در ماشین" +" هایی که این نرم افزار موجود است نصب می شود؛ افزودن :file:`/usr/local/bin` " +"به مسیر جستجوی پوسته Unix شما امکان می دهد که آن را با تایپ دستور زیر اجرا " +"کنید:" #: ../../tutorial/interpreter.rst:17 #, fuzzy msgid "python3.13" -msgstr "پایتون نسخه ۳.۱۳" +msgstr "پایتون3.13" #: ../../tutorial/interpreter.rst:21 #, fuzzy @@ -57,10 +57,10 @@ msgid "" "local Python guru or system administrator. (E.g., :file:`/usr/local/python`" " is a popular alternative location.)" msgstr "" -"به شل. [#]_ از آنجایی که انتخاب دایرکتوری که مفسر در آن قرار دارد یک گزینه " -"نصب است، مکان های دیگری نیز ممکن است وجود داشته باشد؛ با کارشناس محلی پایتون" -" یا مدیر سیستم خود مشورت کنید. (برای مثال, :file:`/usr/local/python` یک مکان" -" جایگزین محبوب است.)" +"به شِل (پوسته) ارسال کنید. [#]_ از آنجایی که انتخاب دایرکتوری که مفسر در آن " +"زندگی می کند یک گزینه نصب است، مکان های دیگری نیز ممکن است در دسترس باشند؛ " +"با کارشناس محلی Python یا مدیر سیستم خود مشورت کنید. (به عنوان مثال، " +":file:`/usr/local/python` یک مکان جایگزین محبوب است.)" #: ../../tutorial/interpreter.rst:26 #, fuzzy @@ -71,10 +71,10 @@ msgid "" "can use the :file:`py` command. See :ref:`setting-envvars` for other ways to" " launch Python." msgstr "" -"در ماشین های ویندوزی که در آن ها پایتون را از :ref:`Microsoft Store " -"` نصب کرده اید، فرمان |python_x_dot_y_literal| در دسترس خواهد" -" بود. اگر :ref:`py.exe launcher ` را نصب کرده اید، می توانید از " -"فرمان :file:`py` استفاده کنید. برای روش های دیگر اجرای پایتون، به " +"در ماشین های ویندوز که پایتون را از :ref:`Microsoft Store ` " +"نصب کرده اید، فرمان |python_x_dot_y_literal| در دسترس خواهد بود. اگر " +":ref:`py.exe launcher ` نصب شده باشد، می توانید از فرمان " +":file:`py` استفاده کنید. برای مشاهده روش های دیگر برای اجرای پایتون به " ":ref:`setting-envvars` مراجعه کنید." #: ../../tutorial/interpreter.rst:31 @@ -85,10 +85,10 @@ msgid "" " exit status. If that doesn't work, you can exit the interpreter by typing " "the following command: ``quit()``." msgstr "" -"وارد کردن نویسه ی پایان فایل (:kbd:`Control-D` روی یونیکس, :kbd:`Control-Z` " -"روی ویندوز) در اعلان اولیه باعث می شود که مفسر با وضعیت خروجی صفر خارج شود. " -"اگر این کار نتیجه نداد، می توانید با وارد کردن فرمان زیر از مفسر خارج شوید: " -"``quit()``." +"وارد کردن یک کاراکتر پایان فایل (:kbd:`Control-D` در یونیکس، " +":kbd:`Control-Z` در ویندوز) در اعلان اصلی باعث خروج مفسر با وضعیت خروج صفر " +"می شود. اگر این کار نمی کند، می توانید با وارد کردن فرمان زیر از مفسر خارج " +"شوید: ``quit()``." #: ../../tutorial/interpreter.rst:36 #, fuzzy @@ -103,15 +103,15 @@ msgid "" "echoed, command line editing isn't available; you'll only be able to use " "backspace to remove characters from the current line." msgstr "" -"ویژگی های ویرایش خط مفسر شامل ویرایش تعاملی، جایگزینی تاریخچه و تکمیل کد در " +"ویژگی های ویرایش خط مفسر شامل ویرایش تعاملی، جانشینی تاریخچه و تکمیل کد در " "سیستم هایی است که از کتابخانه `GNU Readline " "`_ پشتیبانی می کنند. " -"شاید سریع ترین راه برای بررسی این که آیا ویرایش خط فرمان پشتیبانی می شود " -"تایپ کردن :kbd:`Control-P` در اولین پیامی است که از پایتون دریافت می کنید. " -"اگر صدای بیپی شنیدید، ویرایش خط فرمان دارید؛ برای آشنایی با کلیدها به پیوست " -":ref:`tut-interacting` مراجعه کنید. اگر هیچ اتفاقی نیفتد یا ``^P`` تکرار " -"شود، ویرایش خط فرمان در دسترس نیست؛ شما فقط می توانید از backspace برای حذف " -"کاراکترها از خط فعلی استفاده کنید." +"شاید سریع ترین روش برای بررسی این که آیا ویرایش خط فرمان پشتیبانی می شود، " +"این باشد که :kbd:`Control-P` را به اولین پروامپت پایتون که دریافت می کنید " +"وارد کنید. اگر صدایی شنیدید، ویرایش خط فرمان را دارید؛ برای ورود به کلیدها " +"به ضمیمه :ref:`tut-interacting` مراجعه کنید. اگر هیچ اتفاقی نیفتاد یا اگر " +"``^P`` نمایش داده شد، ویرایش خط فرمان موجود نیست؛ فقط می توانید از بک اسپیس " +"برای حذف کاراکترها از خط جاری استفاده کنید." #: ../../tutorial/interpreter.rst:46 #, fuzzy @@ -121,11 +121,11 @@ msgid "" "interactively; when called with a file name argument or with a file as " "standard input, it reads and executes a *script* from that file." msgstr "" -"مفسر تا حدودی شبیه به شِل یونیکس عمل می کند: هنگامی که با ورودی استاندارد که" -" به یک دستگاه tty متصل است فراخوانی می شود، به صورت تعاملی دستورات را می " -"خواند و اجرا می کند؛ وقتی با یک آرگومان نام فایل یا با یک فایل به عنوان " -"ورودی استاندارد فراخوانی می شود، آن را از فایل می خواند و یک *script* را " -"اجرا می کند." +"مفسر تا حدی شبیه به پوسته Unix عمل می کند: هنگامی که با ورودی استاندارد متصل" +" به یک دستگاه tty فراخوانی می شود، دستورات را به صورت تعاملی می خواند و اجرا" +" می کند؛ هنگامی که با یک آرگومان به عنوان نام فایل یا با یک فایل به عنوان " +"ورودی استاندارد فراخوانی می شود، یک *script* را از آن فایل می خواند و اجرا " +"می کند." #: ../../tutorial/interpreter.rst:51 #, fuzzy @@ -136,11 +136,10 @@ msgid "" "characters that are special to the shell, it is usually advised to quote " "*command* in its entirety." msgstr "" -"راه دوم برای آغاز مفسر ``python -c command [arg] ...`` است که دستور یا " -"دستورات موجود در *command* را اجرا می کند، مشابه گزینه :option:`-c` در شل. " -"از آنجا که دستورات پایتون اغلب شامل فاصله ها یا کاراکترهای دیگری هستند که " -"برای شل خاص هستند، معمولاً توصیه می شود که *command* را به طور کامل در گیومه" -" قرار دهید." +"راه دوم برای شروع مفسر ``python -c command [arg] ...`` است که دستور(ها) را " +"در *command* اجرا می کند، مشابه گزینه :option:`-c` در شل. از آنجا که دستورات" +" پایتون اغلب شامل فاصله ها یا کاراکترهای دیگری هستند که برای شل خاص هستند، " +"معمولاً توصیه می شود که *command* را به طور کامل نقل قول کنید." #: ../../tutorial/interpreter.rst:57 #, fuzzy @@ -149,10 +148,10 @@ msgid "" "``python -m module [arg] ...``, which executes the source file for *module* " "as if you had spelled out its full name on the command line." msgstr "" -"برخی از ماژول های پایتون به عنوان اسکریپت هم مفید هستند. این ماژول ها می " -"توانند با استفاده از ``python -m module [arg] ...`` فراخوانی شوند که فایل " -"منبع *module* را به گونه ای اجرا می کند که انگار نام کامل آن را در خط فرمان " -"وارد کرده اید." +"برخی ماژول های پایتون همچنین به عنوان اسکریپت مفید هستند. این ماژول ها را می" +" توان با استفاده از ``python -m module [arg] ...`` فراخوانی کرد، که فایل " +"منبع *module* را اجرا می کند گویی که نام کامل آن را در خط فرمان تایپ کرده " +"اید." #: ../../tutorial/interpreter.rst:61 #, fuzzy @@ -161,9 +160,9 @@ msgid "" "script and enter interactive mode afterwards. This can be done by passing " ":option:`-i` before the script." msgstr "" -"زمانی که یک فایل اسکریپت استفاده می شود، گاهی اوقات مفید است که بتوان " -"اسکریپت را اجرا کرد و سپس وارد حالت تعاملی شد. این کار با عبور " -"`:option:`-i`` قبل از اسکریپت قابل انجام است." +"وقتی از یک فایل اسکریپت استفاده می شود، گاهی اوقات مفید است که بتوانید " +"اسکریپت را اجرا کرده و سپس وارد حالت تعاملی شوید. این کار با ارسال " +":option:`-i` قبل از اسکریپت انجام می شود." #: ../../tutorial/interpreter.rst:65 #, fuzzy @@ -174,7 +173,7 @@ msgstr "" #: ../../tutorial/interpreter.rst:71 #, fuzzy msgid "Argument Passing" -msgstr "گذراندن آرگومان ها" +msgstr "انتقال آرگومان ها" #: ../../tutorial/interpreter.rst:73 #, fuzzy @@ -192,18 +191,18 @@ msgid "" "interpreter's option processing but left in ``sys.argv`` for the command or" " module to handle." msgstr "" -"وقتی که برای مفسر شناخته شده باشد، نام اسکریپت و آرگومان های اضافی که پس از " -"آن می آیند به یک لیست از رشته ها تبدیل می شوند و به متغیر ``argv`` در ماژول " -"``sys`` اختصاص داده می شوند. شما می توانید با اجرای ``import sys`` به این " -"لیست دسترسی پیدا کنید. طول این لیست حداقل یک است؛ زمانی که هیچ اسکریپت و هیچ" -" آرگومانی داده نشده باشد، ``sys.argv[0]`` یک رشته خالی است. وقتی نام اسکریپت" -" به صورت ``'-'`` داده شود (به معنای ورودی استاندارد)، ``sys.argv[0]`` به " -"``'-'`` تنظیم می شود. وقتی :option:`-c` *command* استفاده می شود، " -"``sys.argv[0]`` به ``'-c'`` تنظیم می شود. وقتی :option:`-m` *module* استفاده" -" می شود، ``sys.argv[0]`` به نام کامل ماژول مکان یابی شدۀ تنظیم می شود. گزینه" -" هایی که بعد از :option:`-c` *command* یا :option:`-m` *module* پیدا می شوند" -" توسط پردازش گزینه های مفسر پایتون مصرف نمی شوند بلکه در ``sys.argv`` باقی " -"می مانند تا فرمان یا ماژول با آنها برخورد کند." +"وقتی برای مفسر شناخته شده باشد، نام اسکریپت و آرگومان های اضافی پس از آن به " +"یک لیست از رشته ها تبدیل می شوند و به متغیر ``argv`` در ماژول ``sys`` اختصاص" +" داده می شوند. می توانید با اجرای ``import sys`` به این لیست دسترسی پیدا " +"کنید. طول این لیست حداقل یک است؛ زمانی که هیچ اسکریپت و آرگومانی ارائه نشده " +"باشد، ``sys.argv[0]`` یک رشته خالی است. زمانی که نام اسکریپت به عنوان " +"``'-'`` (به معنای ورودی استاندارد) داده می شود، ``sys.argv[0]`` به ``'-'`` " +"تنظیم می شود. وقتی که :option:`-c` *command* استفاده می شود، ``sys.argv[0]``" +" به ``'-c'`` تنظیم می شود. وقتی که :option:`-m` *module* استفاده می شود، " +"``sys.argv[0]`` به نام کامل ماژول یافت شده تنظیم می شود. گزینه هایی که بعد " +"از :option:`-c` *command* یا :option:`-m` *module* پیدا شوند، توسط پردازش " +"گزینه مفسر پایتون مصرف نمی شوند، بلکه در ``sys.argv`` باقی می مانند تا توسط " +"فرمان یا ماژول پردازش شوند." #: ../../tutorial/interpreter.rst:89 #, fuzzy @@ -220,12 +219,12 @@ msgid "" "dots (``...``). The interpreter prints a welcome message stating its version" " number and a copyright notice before printing the first prompt:" msgstr "" -"وقتی که دستورات از یک tty خوانده می شوند، گفته می شود که مفسر در حالت " -"*interactive mode* قرار دارد. در این حالت، برای دریافت فرمان بعدی با " -"*primary prompt* درخواست می کند، که معمولاً سه علامت بزرگ تر (``>>>``) " -"هستند؛ برای خطوط ادامه, با *secondary prompt* درخواست می کند, که به طور پیش " -"فرض سه نقطه (``...``) هستند. مفسر قبل از نمایش اولین درخواست, پیامی خوش آمد " -"می فرستد که شماره نسخه و اعلامیه حقوقی را بیان می کند." +"وقتی دستورات از یک tty خوانده می شوند، مفسر گفته می شود که در حالت " +"*interactive mode* قرار دارد. در این حالت، مفسر با *primary prompt* که " +"معمولاً سه علامت بزرگ تر (``>>>``) است، برای دریافت دستور بعدی درخواست می " +"کند؛ برای خطوط ادامه دار با *secondary prompt* که به صورت پیش فرض سه نقطه " +"(``...``) است، درخواست می کند. مفسر قبل از چاپ اولین درخواست، یک پیام خوش " +"آمدگویی که شامل شماره نسخه و اطلاعیه حق تکثیر است را چاپ می کند." #: ../../tutorial/interpreter.rst:98 #, fuzzy @@ -237,8 +236,8 @@ msgid "" ">>>" msgstr "" "$ python3.13\n" -"Python 3.13 (default, April 4 2023, 09:25:04)\n" -"[GCC 10.2.0] on linux\n" +"پایتون 3.13 (پیش فرض، 4 آوریل 2023، 09:25:04)\n" +"[GCC 10.2.0] روی لینوکس\n" "برای اطلاعات بیشتر \"help\"، \"copyright\"، \"credits\" یا \"license\" را تایپ کنید.\n" ">>>" @@ -248,8 +247,8 @@ msgid "" "Continuation lines are needed when entering a multi-line construct. As an " "example, take a look at this :keyword:`if` statement::" msgstr "" -"هنگام وارد کردن یک ساختار چند خطی، خطوط تداوم مورد نیاز هستند. به عنوان " -"مثال، به این دستور `:keyword:`if`` توجه کنید:" +"در وارد کردن یک ساختار چند خطی، خطوط ادامه دهنده مورد نیاز هستند. به عنوان " +"مثال، به این دستور :keyword:`if` نگاه کنید::" #: ../../tutorial/interpreter.rst:111 #, fuzzy @@ -264,7 +263,7 @@ msgstr "" ">>> if the_world_is_flat:\n" "... print(\"Be careful not to fall off!\")\n" "...\n" -"Be careful not to fall off!" +"مراقب باشید که نیفتید!" #: ../../tutorial/interpreter.rst:118 #, fuzzy @@ -275,12 +274,12 @@ msgstr "" #: ../../tutorial/interpreter.rst:124 #, fuzzy msgid "The Interpreter and Its Environment" -msgstr "مفسر و محیط آن" +msgstr "مترجم و محیط آن" #: ../../tutorial/interpreter.rst:130 #, fuzzy msgid "Source Code Encoding" -msgstr "کد منبع کدگذاری" +msgstr "کدگذاری سورس کد" #: ../../tutorial/interpreter.rst:132 #, fuzzy @@ -293,13 +292,13 @@ msgid "" "properly, your editor must recognize that the file is UTF-8, and it must use" " a font that supports all the characters in the file." msgstr "" -"به صورت پیش فرض، فایل های منبع پایتون به عنوان کد شده در UTF-8 در نظر گرفته " -"می شوند. در این کدگذاری، کاراکترهای بیشتر زبان های دنیا می توانند به طور " -"همزمان در رشته ها، شناسه ها و نظرات استفاده شوند --- اگرچه کتابخانه " -"استاندارد فقط از کاراکترهای ASCII برای شناسه ها استفاده می کند، که یک عرف " -"است که هر کدی که باید قابل حمل باشد باید آن را رعایت کند. برای نمایش صحیح " -"تمامی این کاراکترها، ویرایشگر شما باید تشخیص دهد که فایل به صورت UTF-8 است و" -" باید از فونتی استفاده کند که از تمام کاراکترهای موجود در فایل پشتیبانی کند." +"به طور پیش فرض، فایل های منبع پایتون به عنوان کدگذاری شده در UTF-8 پردازش می" +" شوند. در این کدگذاری، کاراکترهای بیشتر زبان های جهان می توانند به صورت " +"همزمان در رشته ها، شناسه ها و توضیحات استفاده شوند --- هرچند که کتابخانه " +"استاندارد تنها از کاراکترهای ASCII برای شناسه ها استفاده می کند، که یک قاعده" +" ای است که هر کد قابل حمل باید از آن پیروی کند. برای نمایش صحیح تمام این " +"کاراکترها، ویرایشگر شما باید تشخیص دهد که فایل به صورت UTF-8 است و باید از " +"فونتی استفاده کند که از همه کاراکترهای موجود در فایل پشتیبانی کند." #: ../../tutorial/interpreter.rst:140 #, fuzzy @@ -307,8 +306,8 @@ msgid "" "To declare an encoding other than the default one, a special comment line " "should be added as the *first* line of the file. The syntax is as follows::" msgstr "" -"برای اعلام یک کدگذاری غیر از کدگذاری پیش فرض، باید یک خط نظر خاص به عنوان خط" -" *first* فایل اضافه شود. نحو آن به صورت زیر است::" +"برای اعلام یک کدگذاری به جز کدگذاری پیش فرض، باید یک خط توضیحی خاص به عنوان " +"خط *first* فایل اضافه شود. نحوه نوشتن آن به صورت زیر است::" #: ../../tutorial/interpreter.rst:143 #, fuzzy @@ -320,7 +319,8 @@ msgstr "# -*- coding: encoding -*-" msgid "" "where *encoding* is one of the valid :mod:`codecs` supported by Python." msgstr "" -"که *encoding* یکی از :mod:`codecs` معتبر پشتیبانی شده توسط پایتون باشد." +"که *encoding* یکی از :mod:`codecs` معتبری است که توسط Python پشتیبانی می " +"شود." #: ../../tutorial/interpreter.rst:147 #, fuzzy @@ -328,8 +328,8 @@ msgid "" "For example, to declare that Windows-1252 encoding is to be used, the first " "line of your source code file should be::" msgstr "" -"به عنوان مثال، برای اعلام اینکه باید از رمزگذاری Windows-1252 استفاده شود، " -"اولین خط فایل کد منبع شما باید به این صورت باشد::" +"برای مثال، برای اعلام اینکه از کدگذاری Windows-1252 استفاده شود، خط اول فایل" +" کد منبع شما باید به صورت زیر باشد::" #: ../../tutorial/interpreter.rst:150 #, fuzzy @@ -343,9 +343,9 @@ msgid "" " :ref:`UNIX \"shebang\" line `. In this case, the encoding " "declaration should be added as the second line of the file. For example::" msgstr "" -"یک استثنا از قاعده *first line* زمانی است که کد منبع با یک :ref:`UNIX " -"\"shebang\" line ` شروع شود. در این حالت، اعلامیه کدگذاری باید " -"به عنوان خط دوم فایل اضافه شود. برای مثال::" +"یک استثنا برای قانون *first line* زمانی است که کد منبع با یک :ref:`UNIX " +"\"shebang\" line ` شروع می شود. در این صورت، اعلامیه کدگذاری " +"باید به عنوان خط دوم فایل اضافه شود. به عنوان مثال::" #: ../../tutorial/interpreter.rst:156 #, fuzzy @@ -359,7 +359,7 @@ msgstr "" #: ../../tutorial/interpreter.rst:160 #, fuzzy msgid "Footnotes" -msgstr "پانویس ها" +msgstr "پاورقی ها" #: ../../tutorial/interpreter.rst:161 #, fuzzy @@ -368,6 +368,6 @@ msgid "" "executable named ``python``, so that it does not conflict with a " "simultaneously installed Python 2.x executable." msgstr "" -"در یونیکس، مفسر Python 3.x به صورت پیش فرض با فایل اجرایی به نام ``python`` " -"نصب نمی شود تا با فایل اجرایی Python 2.x که هم زمان نصب شده است، تداخلی " -"ایجاد نکند." +"در سیستم عامل یونیکس، مفسر Python 3.x به طور پیش فرض با نام اجرایی " +"``python`` نصب نمی شود تا با مفسر Python 2.x که به طور همزمان نصب شده است، " +"تداخل نداشته باشد." diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 4ab04f04e..b3a99e3a4 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -24,7 +24,7 @@ msgstr "" #: ../../tutorial/introduction.rst:5 #, fuzzy msgid "An Informal Introduction to Python" -msgstr "آشنایی غیررسمی با پایتون" +msgstr "یک معرفی غیررسمی به پایتون" #: ../../tutorial/introduction.rst:7 #, fuzzy @@ -36,12 +36,12 @@ msgid "" " that a secondary prompt on a line by itself in an example means you must " "type a blank line; this is used to end a multi-line command." msgstr "" -"در مثال های زیر، ورودی و خروجی با وجود یا عدم وجود پرامپت ها (:term:`>>>` و " -":term:`...`) از هم متمایز می شوند: برای تکرار مثال, باید همه چیزهایی که پس " -"از پرامپت می آید را هنگامی که پرامپت ظاهر می شود تایپ کنید؛ خطوطی که با " -"پرامپت شروع نمی شوند خروجی از مفسر هستند. توجه داشته باشید که یک پرامپت " -"ثانویه روی یک خط به تنهایی در یک مثال به این معناست که شما باید یک خط خالی " -"تایپ کنید؛ این برای پایان دادن به یک دستور چندخطی استفاده می شود." +"در مثال های زیر، ورودی و خروجی با حضور یا عدم حضور اعلان ها (:term:`>>>` و " +":term:`...`) قابل تشخیص هستند: برای تکرار مثال، باید همه چیزی که بعد از " +"اعلان می آید را تایپ کنید، هنگامی که اعلان ظاهر می شود؛ خطوطی که با اعلان " +"شروع نمی شوند خروجی از مفسر هستند. توجه داشته باشید که یک اعلان ثانویه در " +"خطی به صورت تنها در یک مثال به معنای این است که باید یک خط خالی تایپ کنید؛ " +"این برای پایان دادن به یک دستور چند خطی استفاده می شود." #: ../../tutorial/introduction.rst:16 #, fuzzy @@ -51,9 +51,9 @@ msgid "" "output for an example, then you can easily copy and paste the input lines " "into your interpreter." msgstr "" -"شما می توانید نمایش دستورات و خروجی ها را با کلیک بر روی ``>>>`` در گوشه " -"بالا-راست یک جعبه مثال تعویض کنید. اگر دستورات و خروجی ها را برای یک مثال " -"مخفی کنید, آنگاه می توانید به راحتی خطوط ورودی را به مفسر خود کپی و الصاق " +"می توانید نمایش درخواست ها و خروجی ها را با کلیک روی ``>>>`` در گوشه بالا-" +"راست یک جعبه مثال تغییر دهید. اگر درخواست ها و خروجی ها را برای یک مثال " +"پنهان کنید، می توانید به راحتی خطوط ورودی را در مفسر خود کپی و جای گذاری " "کنید." #: ../../tutorial/introduction.rst:23 @@ -67,18 +67,18 @@ msgid "" "character. Since comments are to clarify code and are not interpreted by " "Python, they may be omitted when typing in examples." msgstr "" -"بسیاری از مثال های این راهنما، حتی آن هایی که در پراپمت تعاملی وارد شده اند،" -" شامل نظرات می باشند. نظرات در پایتون با کاراکتر هَش، #، شروع شده و تا " -"انتهای خط فیزیکی ادامه می یابند. یک نظر ممکن است در ابتدای یک خط یا پس از " -"فاصله یا کد ظاهر شود، اما نمی تواند درون یک رشته حرفی باشد. کاراکتر هَش درون" -" یک رشته حرفی تنها یک کاراکتر هَش است. از آنجایی که نظرات برای روشن سازی کد " -"است و توسط پایتون تفسیر نمی شوند، هنگام وارد کردن مثال ها می توان آن ها را " -"حذف کرد." +"بسیاری از مثال های موجود در این راهنما، حتی آن هایی که در خط فرمان تعاملی " +"وارد می شوند، شامل توضیحات هستند. توضیحات در پایتون با کاراکتر هشتگ، ``#``، " +"آغاز می شوند و تا انتهای خط فیزیکی ادامه دارند. توضیحات می توانند در ابتدای " +"یک خط یا پس از فاصله یا کد ظاهر شوند، اما نه در داخل یک رشته. کاراکتر هشتگ " +"در یک رشته تنها یک کاراکتر هشتگ است. از آنجایی که توضیحات برای واضح کردن کد " +"هستند و توسط پایتون تفسیر نمی شوند، ممکن است هنگام وارد کردن مثال ها حذف " +"شوند." #: ../../tutorial/introduction.rst:31 #, fuzzy msgid "Some examples::" -msgstr "برخی مثال ها::" +msgstr "برخی از مثال ها::" #: ../../tutorial/introduction.rst:33 #, fuzzy @@ -88,10 +88,10 @@ msgid "" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" -"# this is the first comment\n" -"spam = 1 # and this is the second comment\n" -" # ... and now a third!\n" -"text = \"# This is not a comment because it's inside quotes.\"" +"# این اولین کامنت است\n" +"spam = 1 # و این کامنت دوم است\n" +" # ... و حالا سومی!\n" +"text = \"# این یک کامنت نیست زیرا داخل کوتیشن قرار دارد.\"" #: ../../tutorial/introduction.rst:42 #, fuzzy @@ -104,8 +104,8 @@ msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" msgstr "" -"بیایید چند دستور ساده پایتون را امتحان کنیم. مفسر را اجرا کرده و منتظر اعلان" -" اصلی، ``>>>``, بمانید. (نباید مدت زیادی طول بکشد.)" +"بیایید چند فرمان ساده ی پایتون را امتحان کنیم. مفسر را اجرا کنید و منتظر " +"اعلان اولیه، ``>>>`` بمانید. (نباید زمان زیادی ببرد.)" #: ../../tutorial/introduction.rst:51 #, fuzzy @@ -120,10 +120,10 @@ msgid "" "operators ``+``, ``-``, ``*`` and ``/`` can be used to perform arithmetic; " "parentheses (``()``) can be used for grouping. For example::" msgstr "" -"مفسر به عنوان یک ماشین حساب ساده عمل می کند: شما می توانید یک عبارت را به آن" -" وارد کنید و مقدار آن را دریافت کنید. نگارش عبارات ساده است: از عملگرهای " -"``+``، ``-``، ``*`` و ``/`` می توانید برای انجام محاسبات ریاضی استفاده کنید؛" -" پرانتزها (``()``) را می توان برای گروه بندی به کار برد. برای مثال::" +"مفسر به عنوان یک ماشین حساب ساده عمل می کند: شما می توانید یک عبارت را تایپ " +"کنید و آن مقدار را به شما نمایش می دهد. نحوه نگارش عبارات ساده است: عملگرهای" +" ``+``، ``-``، ``*`` و ``/`` برای انجام محاسبات ریاضی استفاده می شوند؛ و " +"پرانتزها (``()``) می توانند برای گروه بندی به کار روند. برای مثال:" #: ../../tutorial/introduction.rst:59 #, fuzzy @@ -143,7 +143,7 @@ msgstr "" "20\n" ">>> (50 - 5*6) / 4\n" "5.0\n" -">>> 8 / 5 # division always returns a floating-point number\n" +">>> 8 / 5 # تقسیم همیشه یک عدد اعشاری برمی گرداند\n" "1.6" #: ../../tutorial/introduction.rst:68 @@ -153,9 +153,9 @@ msgid "" "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type " ":class:`float`. We will see more about numeric types later in the tutorial." msgstr "" -"اعداد صحیح (مثلاً ``2``, ``4``, ``20``) از نوع :class:`int` هستند، آنهایی که" -" دارای قسمت کسری هستند (مثلاً ``5.0``, ``1.6``) از نوع :class:`float` می " -"باشند. در ادامه آموزش، درباره انواع عددی بیشتر خواهیم دید." +"اعداد صحیح (مثال: ``2``، ``4``، ``20``) نوع :class:`int` دارند، و اعدادی که " +"دارای بخش اعشاری هستند (مثال: ``5.0``، ``1.6``) نوع :class:`float` دارند. در" +" ادامه آموزش، بیشتر درباره انواع عددی صحبت خواهیم کرد." #: ../../tutorial/introduction.rst:72 #, fuzzy @@ -164,8 +164,8 @@ msgid "" "get an integer result you can use the ``//`` operator; to calculate the " "remainder you can use ``%``::" msgstr "" -"تقسیم (``/``) همیشه یک عدد اعشاری برمی گرداند. برای انجام :term:`floor " -"division` و دریافت نتیجه عدد صحیح می توانید از عملگر ``//`` استفاده کنید؛ " +"تقسیم (``/``) همیشه یک عدد اعشاری را برمی گرداند. برای انجام :term:`floor " +"division` و دریافت نتیجه ی صحیح شما می توانید از عملگر ``//`` استفاده کنید؛ " "برای محاسبه باقیمانده می توانید از ``%`` استفاده کنید::" #: ../../tutorial/introduction.rst:76 @@ -184,11 +184,11 @@ msgstr "" ">>> 17 / 3 # تقسیم کلاسیک یک عدد اعشاری برمی گرداند\n" "5.666666666666667\n" ">>>\n" -">>> 17 // 3 # تقسیم جزء صحیح قسمت کسری را حذف می کند\n" +">>> 17 // 3 # تقسیم کف قسمت اعشاری را حذف می کند\n" "5\n" ">>> 17 % 3 # عملگر % باقیمانده تقسیم را برمی گرداند\n" "2\n" -">>> 5 * 3 + 2 # floored quotient * divisor + remainder\n" +">>> 5 * 3 + 2 # floored quotient * تقسیم + باقیمانده\n" "17" #: ../../tutorial/introduction.rst:86 @@ -197,7 +197,8 @@ msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" msgstr "" -"با پایتون، می توان از عملگر ``**`` برای محاسبه توان ها استفاده کرد [#]_:" +"با پایتون، امکان استفاده از عملگر ``**`` وجود دارد تا توان ها را محاسبه کنید" +" [#]_:" #: ../../tutorial/introduction.rst:88 #, fuzzy @@ -209,7 +210,7 @@ msgid "" msgstr "" ">>> 5 ** 2 # 5 squared\n" "25\n" -">>> 2 ** 7 # 2 to the power of 7\n" +">>> 2 ** 7 # 2 به توان 7\n" "128" #: ../../tutorial/introduction.rst:93 @@ -218,8 +219,8 @@ msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" msgstr "" -"علامت مساوی (``=``) برای تخصیص یک مقدار به یک متغیر استفاده می شود. پس از " -"آن، هیچ نتیجه ای قبل از فراخوانی تعاملی بعدی نمایش داده نمی شود::" +"علامت تساوی (``=``) برای اختصاص دادن یک مقدار به یک متغیر استفاده می شود. پس" +" از آن، هیچ نتیجه ای قبل از اعلان تعاملی بعدی نمایش داده نمی شود::" #: ../../tutorial/introduction.rst:96 #, fuzzy @@ -240,8 +241,8 @@ msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" msgstr "" -"اگر یک متغیر \"تعریف نشده\" باشد (یعنی مقداری به آن اختصاص داده نشده باشد), " -"تلاش برای استفاده از آن باعث بروز خطا می شود::" +"اگر یک متغیر \"تعریف\" نشده باشد (به آن مقداری اختصاص داده نشده باشد)، تلاش " +"برای استفاده از آن به شما یک خطا می دهد:" #: ../../tutorial/introduction.rst:104 #, fuzzy @@ -262,8 +263,8 @@ msgid "" "There is full support for floating point; operators with mixed type operands" " convert the integer operand to floating point::" msgstr "" -"پشتیبانی کامل از اعداد اعشاری وجود دارد؛ عملگرهایی با عملوندهای نوع ترکیبی، " -"عملوند صحیح را به عدد اعشاری تبدیل می کنند::" +"پشتیبانی کامل از اعداد اعشاری وجود دارد؛ عملگرهایی که با عملوندهایی از انواع" +" مختلف کار می کنند، عملوند صحیح را به عدد اعشاری تبدیل می کنند::" #: ../../tutorial/introduction.rst:112 #, fuzzy @@ -282,8 +283,8 @@ msgid "" "is somewhat easier to continue calculations, for example::" msgstr "" "در حالت تعاملی، آخرین عبارت چاپ شده به متغیر ``_`` اختصاص داده می شود. این " -"بدان معنی است که وقتی از پایتون به عنوان یک ماشین حساب رومیزی استفاده می " -"کنید، ادامه محاسبات به نوعی ساده تر است، به عنوان مثال::" +"بدان معناست که هنگامی که از پایتون به عنوان ماشین حساب رومیزی استفاده می " +"کنید، ادامه محاسبات تا حدی آسان تر است، به عنوان مثال:" #: ../../tutorial/introduction.rst:119 #, fuzzy @@ -313,9 +314,9 @@ msgid "" "assign a value to it --- you would create an independent local variable with" " the same name masking the built-in variable with its magic behavior." msgstr "" -"این متغیر باید توسط کاربر به صورت فقط خواندنی در نظر گرفته شود. به طور صریح " -"به آن مقدار اختصاص ندهید --- چون در این صورت یک متغیر محلی مستقل با همین نام" -" ایجاد می کنید که متغیر داخلی با رفتار جادویی اش را مخفی می کند." +"این متغیر باید به صورت فقط خواندنی توسط کاربر در نظر گرفته شود. به طور صریح " +"به آن مقدار اختصاص ندهید --- در این صورت یک متغیر محلی مستقل با همان نام " +"ایجاد می کنید که متغیر داخلی با رفتار خاصش را مخفی می کند." #: ../../tutorial/introduction.rst:132 #, fuzzy @@ -326,11 +327,11 @@ msgid "" ":ref:`complex numbers `, and uses the ``j`` or ``J`` suffix to" " indicate the imaginary part (e.g. ``3+5j``)." msgstr "" -"علاوه بر :class:`int` و :class:`float`، پایتون از انواع دیگر اعداد مانند " -":class:`~decimal.Decimal` و :class:`~fractions.Fraction` نیز پشتیبانی می " -"کند. پایتون همچنین پشتیبانی داخلی از :ref:`complex numbers ` " -"دارد و از پسوند ``j`` یا ``J`` برای نشان دادن قسمت موهومی استفاده می کند (به" -" عنوان مثال ``3+5j``)." +"علاوه بر :class:`int` و :class:`float`، پایتون از انواع دیگری از اعداد، " +"مانند :class:`~decimal.Decimal` و :class:`~fractions.Fraction` نیز پشتیبانی " +"می کند. پایتون همچنین پشتیبانی داخلی برای :ref:`complex numbers " +"` دارد، و از پسوندهای ``j`` یا ``J`` برای نشان دادن بخش موهومی" +" استفاده می کند (مثلاً ``3+5j``)." #: ../../tutorial/introduction.rst:142 #, fuzzy @@ -346,12 +347,11 @@ msgid "" "\"``Yay! :)``\". They can be enclosed in single quotes (``'...'``) or double" " quotes (``\"...\"``) with the same result [#]_." msgstr "" -"پایتون می تواند متن ها (که با نوع :class:`str` نمایش داده می شوند و به " -"\"رشته ها\" معروف هستند) و همچنین اعداد را پردازش کند. این شامل حروف " -"\"``!``\", کلمات \"``rabbit``\", نام ها \"``Paris``\", جملات \"``Got your " -"back.``\", و غیره \"``Yay! :)``\" می شود. می توان آن ها را درون گیومه های " -"تکی (``'...'``) یا دو گیومه (``\"...\"``) قرار داد و نتیجه یکسان خواهد بود " -"[#]_." +"پایتون می تواند متن (نمایش داده شده توسط نوع :class:`str`، به اصطلاح \"رشته " +"ها\") و همچنین اعداد را مدیریت کند. این شامل کاراکترها \"``!``\"، کلمات " +"\"``rabbit``\"، نام ها \"``Paris``\"، جملات \"``Got your back.``\" و غیره " +"\"``Yay! :)``\" می شود. آن ها می توانند در گیومه های تکی (``'...'``) یا " +"گیومه های دوتایی (``\"...\"``) قرار گیرند و نتیجه یکسانی داشته باشند [#]_." #: ../../tutorial/introduction.rst:157 #, fuzzy @@ -359,9 +359,9 @@ msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" msgstr "" -"برای نقل قول از یک نقل قول، باید آن را \"فرار\" دهیم، با اینکه آن را با " -"``\\`` پیش از آن قرار دهیم. به طور جایگزین، می توانیم از نوع دیگری از علامت " -"نقل قول استفاده کنیم::" +"برای نقل قول کردن یک نقل قول، باید آن را \"فرار دهیم\"، با اضافه کردن ``\\``" +" قبل از آن. به طور جایگزین، می توانیم از نوع دیگر علامت های نقل قول استفاده " +"کنیم::" #: ../../tutorial/introduction.rst:160 #, fuzzy @@ -377,9 +377,9 @@ msgid "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" msgstr "" -">>> 'doesn\\'t' # use \\' to escape the single quote...\n" +">>> 'doesn\\'t' # از \\' برای فرار از تگ تک کوتیشن استفاده کنید...\n" "\"doesn't\"\n" -">>> \"doesn't\" # ...or use double quotes instead\n" +">>> \"doesn't\" # ...یا به جای آن از کوتیشن دوتایی استفاده کنید\n" "\"doesn't\"\n" ">>> '\"Yes,\" they said.'\n" "'\"Yes,\" they said.'\n" @@ -396,9 +396,9 @@ msgid "" "omitting the enclosing quotes and by printing escaped and special " "characters::" msgstr "" -"در محیط شل پایتون، تعریف رشته و خروجی رشته می تواند متفاوت به نظر برسد. تابع" -" :func:`print` خروجی خواناتر تولید می کند، با حذف نقل قول های احاطه کننده و " -"چاپ کردن کاراکترهای خاص و اسکیپ شده:" +"در پوسته پایتون، تعریف رشته و خروجی رشته می توانند متفاوت به نظر برسند. تابع" +" :func:`print` خروجی خواناتری را تولید می کند، با حذف علامت های نقل قول " +"محصورکننده و با چاپ کاراکترهای خاص و فرار شده:" #: ../../tutorial/introduction.rst:175 #, fuzzy @@ -410,12 +410,12 @@ msgid "" "First line.\n" "Second line." msgstr "" -">>> s = 'First line.\\nSecond line.' # \\n به معنای خط جدید است\n" -">>> s # بدون print(), کاراکترهای خاص در رشته قرار می گیرند\n" -"'First line.\\nSecond line.'\n" -">>> print(s) # با print(), کاراکترهای خاص تفسیر می شوند, بنابراین \\n خط جدید ایجاد می کند\n" -"First line.\n" -"Second line." +">>> s = 'اولین خط.\\nدومین خط.' # \\n به معنی نو خط است\n" +">>> s # بدون print()، کاراکترهای خاص در رشته گنجانده می شوند\n" +"'اولین خط.\\nدومین خط.'\n" +">>> print(s) # با print()، کاراکترهای خاص تفسیر می شوند، بنابراین \\n یک خط جدید ایجاد می کند\n" +"اولین خط.\n" +"دومین خط." #: ../../tutorial/introduction.rst:182 #, fuzzy @@ -425,8 +425,8 @@ msgid "" "quote::" msgstr "" "اگر نمی خواهید کاراکترهایی که با ``\\`` پیشوند شده اند به عنوان کاراکترهای " -"ویژه تفسیر شوند، می توانید از *raw strings* استفاده کنید و یک ``r`` را قبل " -"از اولین کوتیشن اضافه کنید::" +"ویژه تفسیر شوند، می توانید از *raw strings* با اضافه کردن یک ``r`` قبل از " +"اولین نقل قول استفاده کنید::" #: ../../tutorial/introduction.rst:186 #, fuzzy @@ -437,10 +437,10 @@ msgid "" ">>> print(r'C:\\some\\name') # note the r before the quote\n" "C:\\some\\name" msgstr "" -">>> print('C:\\some\\name') # در اینجا \\n به معنای خط جدید است!\n" +">>> print('C:\\some\\name') # اینجا \\n به معنای خط جدید است!\n" "C:\\some\n" "ame\n" -">>> print(r'C:\\some\\name') # توجه کنید به r قبل از نقل قول\n" +">>> print(r'C:\\some\\name') # به r قبل از نقل قول توجه کنید\n" "C:\\some\\name" #: ../../tutorial/introduction.rst:192 @@ -450,8 +450,8 @@ msgid "" "odd number of ``\\`` characters; see :ref:`the FAQ entry ` for more information and workarounds." msgstr "" -"یک جنبه ناچیز در مورد رشته های خام وجود دارد: یک رشته خام نمی تواند به " -"تعدادی فرد ``\\`` کاراکتر ختم شود؛ برای اطلاعات بیشتر و راه کارها به " +"یک نکتهٔ ظریف در مورد رشته های خام وجود دارد: یک رشتهٔ خام نباید با تعداد " +"فردی از کاراکترهای ``\\`` به پایان برسد؛ برای اطلاعات بیشتر و راه حل ها به " ":ref:`the FAQ entry ` مراجعه کنید." #: ../../tutorial/introduction.rst:197 @@ -463,11 +463,10 @@ msgid "" "adding a ``\\`` at the end of the line. In the following example, the " "initial newline is not included::" msgstr "" -"رشته های متنی می توانند در چندین خط امتداد داشته باشند. یکی از راه ها " -"استفاده از سه علامت نقل قول است: ``\"\"\"...\"\"\"`` یا ``'''...'''``. " -"کاراکترهای پایان خط به طور خودکار در رشته شامل می شوند، اما می توان با اضافه" -" کردن ``\\`` در انتهای خط جلوی این کار را گرفت. در مثال زیر، خط جدید اولیه " -"شامل نمی شود::" +"رشته های متنی می توانند در چندین خط نوشته شوند. یکی از راه ها استفاده از سه " +"نقل قول است: ``\"\"\"...\"\"\"`` یا ``'''...'''``. کاراکترهای پایان خط به " +"طور خودکار در رشته گنجانده می شوند، اما با افزودن یک ``\\`` در انتهای خط، می" +" توان از این کار جلوگیری کرد. در مثال زیر، خط جدید اولیه گنجانده نشده است::" #: ../../tutorial/introduction.rst:203 #, fuzzy @@ -484,11 +483,11 @@ msgid "" ">>>" msgstr "" ">>> print(\"\"\"\\\n" -"... نحوه استفاده: thingy [OPTIONS]\n" +"... استفاده: thingy [OPTIONS]\n" "... -h نمایش این پیام راهنما\n" "... -H hostname نام میزبان برای اتصال\n" "... \"\"\")\n" -"نحوه استفاده: thingy [OPTIONS]\n" +"استفاده: thingy [OPTIONS]\n" " -h نمایش این پیام راهنما\n" " -H hostname نام میزبان برای اتصال\n" "\n" @@ -500,7 +499,7 @@ msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" msgstr "" -"رشته ها می توانند با عملگر ``+`` به هم وصل شوند و با ``*`` تکرار شوند::" +"رشته ها می توانند با عملگر ``+`` به هم متصل شوند و با ``*`` تکرار شوند::" #: ../../tutorial/introduction.rst:217 #, fuzzy @@ -509,7 +508,7 @@ msgid "" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" -">>> # 3 times 'un', followed by 'ium'\n" +">>> # سه بار 'un'، به دنبال آن 'ium'\n" ">>> 3 * 'un' + 'ium'\n" "'unununium'" @@ -519,8 +518,8 @@ msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" msgstr "" -"دو یا چند *string literals* (یعنی آن هایی که داخل نقل قول قرار دارند) که در " -"کنار یکدیگر باشند، به طور خودکار به یکدیگر متصل می شوند. ::" +"دو یا چند *string literals* (یعنی آن هایی که بین علامت نقل قول قرار گرفته " +"اند) که کنار هم هستند به صورت خودکار با یکدیگر ترکیب می شوند. ::" #: ../../tutorial/introduction.rst:224 #, fuzzy @@ -546,17 +545,17 @@ msgid "" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" msgstr "" -">>> text = ('Put several strings within parentheses '\n" -"... 'to have them joined together.')\n" +">>> text = ('چندین رشته را در داخل پرانتزها قرار دهید '\n" +"... 'تا به هم پیوسته شوند.')\n" ">>> text\n" -"'Put several strings within parentheses to have them joined together.'" +"'چندین رشته را در داخل پرانتزها قرار دهید تا به هم پیوسته شوند.'" #: ../../tutorial/introduction.rst:234 #, fuzzy msgid "" "This only works with two literals though, not with variables or " "expressions::" -msgstr "این تنها با دو ثابت عمل می کند و نه با متغیرها یا عبارات::" +msgstr "این تنها با دو مقدار ثابت کار می کند، نه با متغیرها یا عبارات::" #: ../../tutorial/introduction.rst:236 #, fuzzy @@ -574,7 +573,7 @@ msgid "" "SyntaxError: invalid syntax" msgstr "" ">>> prefix = 'Py'\n" -">>> prefix 'thon' # نمی توان یک متغیر و یک رشته متنی را به هم وصل کرد\n" +">>> prefix 'thon' # نمی توان یک متغیر و یک رشتهٔ متنی ادبی را به هم متصل کرد\n" " File \"\", line 1\n" " prefix 'thon'\n" " ^^^^^^\n" @@ -600,7 +599,7 @@ msgid "" ">>> prefix + 'thon'\n" "'Python'" msgstr "" -">>> prefix + 'thon'\n" +">>> پیشوند + 'thon'\n" "'Python'" #: ../../tutorial/introduction.rst:253 @@ -610,9 +609,9 @@ msgid "" "index 0. There is no separate character type; a character is simply a string" " of size one::" msgstr "" -"رشته ها می توانند *indexed* (زیرنویس دار) باشند، به طوری که اولین کاراکتر " -"دارای اندیس 0 است. نوع کاراکتر جداگانه ای وجود ندارد؛ یک کاراکتر به سادگی یک" -" رشته به اندازه یک است::" +"رشته ها می توانند به صورت *indexed* (اندیس دار) باشند، به طوری که اولین " +"کاراکتر دارای شاخص 0 است. نوع کاراکتر مجزایی وجود ندارد؛ یک کاراکتر به سادگی" +" یک رشته با اندازه یک است::" #: ../../tutorial/introduction.rst:257 #, fuzzy @@ -624,9 +623,9 @@ msgid "" "'n'" msgstr "" ">>> word = 'Python'\n" -">>> word[0] # character in position 0\n" +">>> word[0] # کاراکتر در موقعیت ۰\n" "'P'\n" -">>> word[5] # character in position 5\n" +">>> word[5] # کاراکتر در موقعیت ۵\n" "'n'" #: ../../tutorial/introduction.rst:263 @@ -634,7 +633,8 @@ msgstr "" msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" -"اندیس ها همچنین می توانند اعداد منفی باشند تا شمارش از سمت راست شروع شود::" +"اندیس ها همچنین می توانند اعداد منفی باشند تا شمارش را از سمت راست شروع " +"کنند::" #: ../../tutorial/introduction.rst:265 #, fuzzy @@ -646,9 +646,9 @@ msgid "" ">>> word[-6]\n" "'P'" msgstr "" -">>> word[-1] # last character\n" +">>> word[-1] # آخرین کاراکتر\n" "'n'\n" -">>> word[-2] # second-last character\n" +">>> word[-2] # کاراکتر دوم از آخر\n" "'o'\n" ">>> word[-6]\n" "'P'" @@ -657,8 +657,8 @@ msgstr "" #, fuzzy msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" -"توجه داشته باشید که از آنجا که -0 معادل 0 است، اندیس های منفی از -1 شروع می " -"شوند." +"توجه داشته باشید که از آنجا که -0 با 0 برابر است، اندیس های منفی از -1 شروع " +"می شوند." #: ../../tutorial/introduction.rst:274 #, fuzzy @@ -667,9 +667,9 @@ msgid "" "used to obtain individual characters, *slicing* allows you to obtain a " "substring::" msgstr "" -"علاوه بر ایندکس بندی، *slicing* نیز پشتیبانی می شود. در حالی که ایندکس بندی " -"برای دستیابی به کاراکترهای منفرد استفاده می شود، *slicing* به شما اجازه می " -"دهد تا یک زیررشته به دست آورید::" +"علاوه بر اندیس گذاری، *slicing* نیز پشتیبانی می شود. در حالی که اندیس گذاری " +"برای به دست آوردن کاراکترهای فردی استفاده می شود، *slicing* به شما اجازه می " +"دهد یک زیربرنامه به دست آورید::" #: ../../tutorial/introduction.rst:277 #, fuzzy @@ -679,9 +679,9 @@ msgid "" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" msgstr "" -">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" +">>> word[0:2] # کاراکترها از موقعیت 0 (شامل) تا 2 (غیرشامل)\n" "'Py'\n" -">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" +">>> word[2:5] # کاراکترها از موقعیت 2 (شامل) تا 5 (غیرشامل)\n" "'tho'" #: ../../tutorial/introduction.rst:282 @@ -690,9 +690,9 @@ msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero," " an omitted second index defaults to the size of the string being sliced. ::" msgstr "" -"اندیس های برش دارای مقادیر پیش فرض مفیدی هستند؛ اگر اولین اندیس حذف شود، به " -"طور پیش فرض صفر در نظر گرفته می شود و اگر اندیس دوم حذف شود، به اندازه رشته " -"ای که برش داده می شود، در نظر گرفته می شود. ::" +"شاخص های برش دارای مقادیر پیش فرض مفید هستند؛ زمانی که اولین شاخص حذف شود، " +"به طور پیش فرض روی صفر قرار می گیرد و زمانی که شاخص دوم حذف شود، به طور پیش " +"فرض به اندازه ی رشته ای که در حال برش دادن است، تنظیم می شود." #: ../../tutorial/introduction.rst:285 #, fuzzy @@ -704,11 +704,11 @@ msgid "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" msgstr "" -">>> word[:2] # character from the beginning to position 2 (excluded)\n" +">>> word[:2] # کاراکترها از ابتدای رشته تا مکان ۲ (غیر شامل)\n" "'Py'\n" -">>> word[4:] # characters from position 4 (included) to the end\n" +">>> word[4:] # کاراکترها از مکان ۴ (شامل) تا انتها\n" "'on'\n" -">>> word[-2:] # characters from the second-last (included) to the end\n" +">>> word[-2:] # کاراکترها از مکان دوم از انتها (شامل) تا انتها\n" "'on'" #: ../../tutorial/introduction.rst:292 @@ -717,8 +717,8 @@ msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" msgstr "" -"توجه داشته باشید که شروع همیشه شامل می شود و پایان همیشه مستثنی است. این امر" -" تضمین می کند که ``s[:i] + s[i:]`` همیشه برابر با ``s`` است::" +"توجه داشته باشید که شروع همیشه شامل شده است و پایان همیشه مستثنی است. این " +"موضوع تضمین می کند که ``s[:i] + s[i:]`` همیشه مساوی با ``s`` است::" #: ../../tutorial/introduction.rst:295 #, fuzzy @@ -741,10 +741,10 @@ msgid "" "Then the right edge of the last character of a string of *n* characters has " "index *n*, for example::" msgstr "" -"یکی از راه های به خاطر سپردن نحوه کارکرد برش ها (slices) این است که شاخص ها " -"را به عنوان اشاره گر به کاراکترها تصور کنید، به طوری که لبه چپ اولین کاراکتر" -" شماره 0 می گیرد. سپس لبه راست آخرین کاراکتر یک رشته به طول *n* دارای شاخص " -"*n* خواهد بود. به عنوان مثال::" +"یک روش برای به خاطر سپردن نحوه کار برش ها این است که اندیس ها را به عنوان " +"اشاره گر به کاراکترهای *between* تصور کنید، با این فرض که لبه چپ اولین " +"کاراکتر شماره 0 است. سپس لبه راست آخرین کاراکتر یک رشته *n* کاراکتری دارای " +"اندیس *n* است، برای مثال:" #: ../../tutorial/introduction.rst:305 #, fuzzy @@ -755,13 +755,11 @@ msgid "" " 0 1 2 3 4 5 6\n" "-6 -5 -4 -3 -2 -1" msgstr "" -"```\n" -" +---+---+---+---+---+---+\n" +"+---+---+---+---+---+---+\n" " | P | y | t | h | o | n |\n" " +---+---+---+---+---+---+\n" " 0 1 2 3 4 5 6\n" -"-6 -5 -4 -3 -2 -1\n" -"```" +"-6 -5 -4 -3 -2 -1" #: ../../tutorial/introduction.rst:311 #, fuzzy @@ -772,8 +770,8 @@ msgid "" " *j*, respectively." msgstr "" "ردیف اول اعداد موقعیت اندیس های 0...6 را در رشته نشان می دهد؛ ردیف دوم اندیس" -" های منفی مربوطه را فراهم می کند. برش از *i* تا *j* شامل تمام کاراکترهای بین" -" لبه هایی است که به ترتیب با *i* و *j* برچسب گذاری شده اند." +" های منفی متناظر را ارائه می دهد. برش از *i* تا *j* شامل تمام کاراکترهایی " +"است که بین لبه های برچسب گذاری شده *i* و *j* قرار دارند." #: ../../tutorial/introduction.rst:316 #, fuzzy @@ -782,13 +780,14 @@ msgid "" "indices, if both are within bounds. For example, the length of " "``word[1:3]`` is 2." msgstr "" -"برای شاخص های غیرمنفی، طول یک برش برابر است با اختلاف شاخص ها، اگر هر دو در " -"محدوده باشند. به عنوان مثال، طول ``word[1:3]`` برابر 2 است." +"برای ایندکس های غیر منفی، طول یک برش از تفاوت ایندکس ها به دست می آید، اگر " +"هر دو در محدوده باشند. به عنوان مثال، طول ``word[1:3]`` برابر ۲ است." #: ../../tutorial/introduction.rst:320 #, fuzzy msgid "Attempting to use an index that is too large will result in an error::" -msgstr "استفاده از یک اندیس که بیش از حد بزرگ است منجر به خطا خواهد شد::" +msgstr "" +"استفاده از یک اندکس که بیش از حد بزرگ است منجر به ایجاد خطا خواهد شد::" #: ../../tutorial/introduction.rst:322 #, fuzzy @@ -798,7 +797,7 @@ msgid "" " File \"\", line 1, in \n" "IndexError: string index out of range" msgstr "" -">>> word[42] # این واژه فقط 6 نویسه دارد\n" +">>> word[42] # کلمه فقط 6 کاراکتر دارد\n" "Traceback (most recent call last):\n" " File \"\", line 1, in \n" "IndexError: string index out of range" @@ -809,8 +808,8 @@ msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" msgstr "" -"اگرچه شاخص های برش خارج از محدوده وقتی برای برش استفاده می شوند به خوبی " -"مدیریت می شوند::" +"با این حال، اندیس های برش خارج از محدوده وقتی که برای برش استفاده می شوند، " +"به طور ملایم مدیریت می شوند::" #: ../../tutorial/introduction.rst:330 #, fuzzy @@ -831,8 +830,8 @@ msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" msgstr "" -"رشته های پایتون قابل تغییر نیستند --- آن ها :term:`immutable` هستند. " -"بنابراین، اختصاص دادن به یک موقعیت دارای اندیس در رشته منجر به خطا می شود::" +"رشته های پایتون نمی توانند تغییر کنند --- آنها :term:`immutable` هستند. " +"بنابراین، تخصیص به یک موقعیت معین در رشته منجر به خطا می شود::" #: ../../tutorial/introduction.rst:338 #, fuzzy @@ -847,18 +846,18 @@ msgid "" "TypeError: 'str' object does not support item assignment" msgstr "" ">>> word[0] = 'J'\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" +"آخرین بازنگری خطا:\n" +" فایل \"\", خط 1، در \n" "TypeError: 'str' object does not support item assignment\n" ">>> word[2:] = 'py'\n" -"Traceback (most recent call last):\n" -" File \"\", line 1, in \n" +"آخرین بازنگری خطا:\n" +" فایل \"\", خط 1، در \n" "TypeError: 'str' object does not support item assignment" #: ../../tutorial/introduction.rst:347 #, fuzzy msgid "If you need a different string, you should create a new one::" -msgstr "اگر به رشته ی متفاوتی نیاز دارید، باید یک رشته ی جدید ایجاد کنید::" +msgstr "اگر به یک رشته متفاوت نیاز دارید، باید یک رشته جدید ایجاد کنید::" #: ../../tutorial/introduction.rst:349 #, fuzzy @@ -887,14 +886,12 @@ msgid "" msgstr "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" -"34" +"۳۴" #: ../../tutorial/introduction.rst:363 #, fuzzy msgid ":ref:`textseq`" -msgstr "" -"متن برای ترجمه ارائه نشده است. لطفاً متن انگلیسی که نیاز به ترجمه دارد را " -"ارسال کنید." +msgstr ":ref:`textseq`" #: ../../tutorial/introduction.rst:364 #, fuzzy @@ -902,15 +899,13 @@ msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." msgstr "" -"رشته ها مثال هایی از *sequence types* هستند و از عملیات های معمول پشتیبانی " -"شده توسط این نوع ها پشتیبانی می کنند." +"رشته ها نمونه هایی از *sequence types* هستند و از عملیاتی که برای این نوع ها" +" معمول است، پشتیبانی می کنند." #: ../../tutorial/introduction.rst:367 #, fuzzy msgid ":ref:`string-methods`" -msgstr "" -"من نمی توانم متنی که ارائه نشده است را ترجمه کنم. لطفاً متنی را که قصد ترجمه" -" دارید ارائه دهید، و من خوشحال می شوم که به شما در ترجمه آن کمک کنم!" +msgstr ":ref:`string-methods`" #: ../../tutorial/introduction.rst:368 #, fuzzy @@ -918,29 +913,27 @@ msgid "" "Strings support a large number of methods for basic transformations and " "searching." msgstr "" -"رشته ها از تعداد زیادی متد برای تبدیلات پایه ای و جستجو پشتیبانی می کنند." +"رشته ها از تعداد زیادی متد برای تغییرات پایه ای و جستجو پشتیبانی می کنند." #: ../../tutorial/introduction.rst:371 #, fuzzy msgid ":ref:`f-strings`" -msgstr "" -"متن ارائه شده حاوی مثال های کد یا اسامی فنی برای ترجمه نمی باشد. لطفا متن " -"دیگری را ارائه دهید که نیاز به ترجمه داشته باشد." +msgstr ":ref:`f-strings`" #: ../../tutorial/introduction.rst:372 #, fuzzy msgid "String literals that have embedded expressions." -msgstr "رشته های متنی که دارای عبارات تعبیه شده هستند." +msgstr "رشته های متنی که شامل عبارات تعبیه شده هستند." #: ../../tutorial/introduction.rst:374 #, fuzzy msgid ":ref:`formatstrings`" -msgstr "متن شما: :ref:`formatstrings`" +msgstr ":ref:`formatstrings`" #: ../../tutorial/introduction.rst:375 #, fuzzy msgid "Information about string formatting with :meth:`str.format`." -msgstr "اطلاعاتی درباره فرمت بندی رشته با :meth:`str.format`." +msgstr "اطلاعاتی درباره قالب بندی رشته با :meth:`str.format`." #: ../../tutorial/introduction.rst:377 #, fuzzy @@ -953,8 +946,8 @@ msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." msgstr "" -"عملیات قالب بندی قدیمی که زمانی که رشته ها عملوند چپ عملگر ``%`` هستند، " -"فراخوانی می شوند، با جزئیات بیشتری اینجا توضیح داده شده اند." +"عملیات قالب بندی قدیمی که زمانی فراخوانی می شوند که رشته ها عملوند چپ عملگر " +"``%`` هستند، به طور کامل تر در اینجا توضیح داده شده اند." #: ../../tutorial/introduction.rst:385 #, fuzzy @@ -970,11 +963,11 @@ msgid "" "contain items of different types, but usually the items all have the same " "type. ::" msgstr "" -"پایتون تعدادی از انواع داده *compound* را می شناسد که برای گروه بندی مقادیر " -"دیگر استفاده می شود. انعطاف پذیرترین آنها *list* است که می تواند به صورت " -"لیستی از مقادیر جداشده با کاما (آیتم ها) بین کروشه ها نوشته شود. لیست ها " -"ممکن است شامل آیتم هایی از انواع مختلف باشند، اما معمولاً همه آیتم ها از یک " -"نوع هستند. ::" +"پایتون تعدادی *compound* نوع داده می شناسد که برای گروه بندی مقادیر دیگر " +"استفاده می شوند. انعطاف پذیرترین آن ها *list* است که می تواند به صورت یک " +"فهرست از مقادیر جدا شده با ویرگول (آیتم ها) در میان کروشه نوشته شود. فهرست " +"ها ممکن است آیتم هایی از انواع مختلف داشته باشند، اما معمولاً همه ی آیتم ها " +"از یک نوع هستند." #: ../../tutorial/introduction.rst:392 #, fuzzy @@ -993,8 +986,8 @@ msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" msgstr "" -"مانند رشته ها (و تمام انواع داخلی :term:`sequence` دیگر), لیست ها نیز می " -"توانند شاخص گذاری و برش داده شوند::" +"مانند رشته ها (و همه انواع توکار دیگر :term:`sequence`)، لیست ها را می توان " +"فهرست بندی و برش داد::" #: ../../tutorial/introduction.rst:399 #, fuzzy @@ -1006,17 +999,17 @@ msgid "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" msgstr "" -">>> squares[0] # indexing returns the item\n" +">>> squares[0] # ایندکس گذاری آیتم را برمی گرداند\n" "1\n" ">>> squares[-1]\n" "25\n" -">>> squares[-3:] # slicing returns a new list\n" +">>> squares[-3:] # برش دادن یک لیست جدید برمی گرداند\n" "[9, 16, 25]" #: ../../tutorial/introduction.rst:406 #, fuzzy msgid "Lists also support operations like concatenation::" -msgstr "لیست ها همچنین از عملگرهایی مانند الحاق پشتیبانی می کنند::" +msgstr "لیست ها همچنین عملیات هایی مانند الحاق را پشتیبانی می کنند::" #: ../../tutorial/introduction.rst:408 #, fuzzy @@ -1033,8 +1026,8 @@ msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" msgstr "" -"برخلاف رشته ها که :term:`immutable` هستند، لیست ها یک نوع :term:`mutable` " -"هستند، یعنی می توان محتوای آن ها را تغییر داد::" +"برخلاف رشته ها که :term:`immutable` هستند، لیست ها :term:`mutable` نوع " +"هستند، به این معنی که امکان تغییر محتوای آن ها وجود دارد::" #: ../../tutorial/introduction.rst:414 #, fuzzy @@ -1046,10 +1039,10 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125]" msgstr "" -">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" -">>> 4 ** 3 # the cube of 4 is 64, not 65!\n" +">>> cubes = [1, 8, 27, 65, 125] # یک چیزی اینجا اشتباه است\n" +">>> 4 ** 3 # توان سوم ۴ مساوی ۶۴ است، نه ۶۵!\n" "64\n" -">>> cubes[3] = 64 # replace the wrong value\n" +">>> cubes[3] = 64 # مقدار اشتباه را جایگزین کن\n" ">>> cubes\n" "[1, 8, 27, 64, 125]" @@ -1059,8 +1052,8 @@ msgid "" "You can also add new items at the end of the list, by using the " ":meth:`!list.append` *method* (we will see more about methods later)::" msgstr "" -"همچنین می توانید با استفاده از :meth:`!list.append` *method* (در ادامه بیشتر" -" دربارهٔ متدها خواهیم دید) موارد جدیدی را به انتهای لیست اضافه کنید::" +"شما همچنین می توانید آیتم های جدید به انتهای لیست اضافه کنید، با استفاده از " +":meth:`!list.append` *method* (ما بعداً بیشتر در مورد متدها خواهیم دید)::" #: ../../tutorial/introduction.rst:424 #, fuzzy @@ -1070,8 +1063,8 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" -">>> cubes.append(216) # add the cube of 6\n" -">>> cubes.append(7 ** 3) # and the cube of 7\n" +">>> cubes.append(216) # مکعب ۶ را اضافه کنید\n" +">>> cubes.append(7 ** 3) # و مکعب ۷ را اضافه کنید\n" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" @@ -1083,10 +1076,10 @@ msgid "" "to the list through one variable will be seen through all other variables " "that refer to it.::" msgstr "" -"در پایتون، تخصیص ساده هرگز داده ها را کپی نمی کند. هنگامی که یک لیست را به " -"یک متغیر انتساب می دهید، متغیر به *existing list* اشاره می کند. هر تغییری که" -" از طریق یک متغیر در لیست ایجاد کنید، از طریق تمام متغیرهای دیگر که به آن " -"اشاره می کنند، قابل مشاهده خواهد بود.::" +"در پایتون، تخصیص ساده هرگز داده ها را کپی نمی کند. زمانی که یک لیست را به " +"متغیری اختصاص می دهید، متغیر به *existing list* اشاره می کند. هر تغییری که " +"از طریق یک متغیر در لیست ایجاد کنید، از طریق تمام متغیرهای دیگری که به آن " +"اشاره دارند دیده می شود." #: ../../tutorial/introduction.rst:434 #, fuzzy @@ -1101,7 +1094,7 @@ msgid "" msgstr "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" -">>> id(rgb) == id(rgba) # they reference the same object\n" +">>> id(rgb) == id(rgba) # آنها به یک شیء اشاره می کنند\n" "True\n" ">>> rgba.append(\"Alph\")\n" ">>> rgb\n" @@ -1114,9 +1107,9 @@ msgid "" "This means that the following slice returns a :ref:`shallow copy " "` of the list::" msgstr "" -"همه عملیات برشی یک لیست جدید حاوی عناصر درخواست شده را برمی گردانند. این " +"همه عملیات برشی یک لیست جدید حاوی عناصر درخواست شده را بر می گردانند. این " "بدان معناست که برش زیر یک :ref:`shallow copy ` از لیست" -" را برمی گرداند::" +" را بر می گرداند::" #: ../../tutorial/introduction.rst:446 #, fuzzy @@ -1141,8 +1134,8 @@ msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" msgstr "" -"امکان اختصاص به برش ها نیز وجود دارد و این می تواند حتی اندازه لیست را تغییر" -" دهد یا آن را به طور کامل پاک کند::" +"انتساب به بُرش ها نیز ممکن است و می تواند حتی اندازه ی لیست را تغییر دهد یا " +"آن را به طور کامل خالی کند:" #: ../../tutorial/introduction.rst:456 #, fuzzy @@ -1166,15 +1159,15 @@ msgstr "" ">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" ">>> letters\n" "['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" -">>> # replace some values\n" +">>> # برخی مقادیر را جایگزین کنید\n" ">>> letters[2:5] = ['C', 'D', 'E']\n" ">>> letters\n" "['a', 'b', 'C', 'D', 'E', 'f', 'g']\n" -">>> # now remove them\n" +">>> # حالا آن ها را حذف کنید\n" ">>> letters[2:5] = []\n" ">>> letters\n" "['a', 'b', 'f', 'g']\n" -">>> # clear the list by replacing all the elements with an empty list\n" +">>> # فهرست را با جایگزینی تمام عناصر با یک لیست خالی، پاک کنید\n" ">>> letters[:] = []\n" ">>> letters\n" "[]" @@ -1182,7 +1175,7 @@ msgstr "" #: ../../tutorial/introduction.rst:472 #, fuzzy msgid "The built-in function :func:`len` also applies to lists::" -msgstr "تابع توکار :func:`len` همچنین به لیست ها اعمال می شود::" +msgstr "تابع داخلی :func:`len` همچنین برای لیست ها نیز اعمال می شود::" #: ../../tutorial/introduction.rst:474 #, fuzzy @@ -1201,8 +1194,8 @@ msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" msgstr "" -"امکان قرار دادن لیست ها درون یکدیگر (ساخت لیست هایی که شامل لیست های دیگر " -"هستند) وجود دارد، برای مثال::" +"امکان دارد که لیست ها را تو در تو کرد (لیست هایی ایجاد کرد که شامل لیست های " +"دیگر باشند)، به عنوان مثال:" #: ../../tutorial/introduction.rst:481 #, fuzzy @@ -1230,7 +1223,7 @@ msgstr "" #: ../../tutorial/introduction.rst:494 #, fuzzy msgid "First Steps Towards Programming" -msgstr "اولین قدم ها به سوی برنامه نویسی" +msgstr "اولین گام ها به سوی برنامه نویسی" #: ../../tutorial/introduction.rst:496 #, fuzzy @@ -1240,9 +1233,9 @@ msgid "" "`Fibonacci series `_ as " "follows::" msgstr "" -"البته، ما می توانیم از پایتون برای وظایف پیچیده تری نسبت به جمع دو و دو " -"استفاده کنیم. به عنوان مثال، می توانیم یک زیر دنباله اولیه از `Fibonacci " -"series `_ به صورت زیر " +"البته، می توانیم از پایتون برای انجام وظایف پیچیده تری نسبت به جمع دو و دو " +"استفاده کنیم. برای مثال، می توانیم یک زیرتوالی ابتدایی از `Fibonacci series " +"`_ را به صورت زیر " "بنویسیم::" #: ../../tutorial/introduction.rst:501 @@ -1263,8 +1256,8 @@ msgid "" "5\n" "8" msgstr "" -">>> # Fibonacci series:\n" -">>> # the sum of two elements defines the next\n" +">>> # سری فیبوناچی:\n" +">>> # مجموع دو عنصر، عنصر بعدی را تعریف می کند\n" ">>> a, b = 0, 1\n" ">>> while a < 10:\n" "... print(a)\n" @@ -1292,11 +1285,11 @@ msgid "" "all evaluated first before any of the assignments take place. The right-" "hand side expressions are evaluated from the left to the right." msgstr "" -"خط اول شامل یک *multiple assignment* است: متغیرهای ``a`` و ``b`` به طور " -"همزمان مقادیر جدید 0 و 1 را دریافت می کنند. در خط آخر، این دوباره استفاده " -"شده است و نشان می دهد که عبارت های موجود در سمت راست قبل از انجام هر گونه " -"تخصیص، ابتدا به طور کامل ارزیابی می شوند. عبارت های سمت راست از چپ به راست " -"ارزیابی می شوند." +"اولین خط حاوی یک *multiple assignment* است: متغیرهای ``a`` و ``b`` به طور " +"همزمان مقادیر جدید ۰ و ۱ را دریافت می کنند. در خط آخر این مورد دوباره " +"استفاده می شود و نشان می دهد که ابتدا تمام عبارات در سمت راست ارزیابی می " +"شوند قبل از اینکه هر یک از تخصیص ها انجام شوند. عبارات سمت راست از چپ به " +"راست ارزیابی می شوند." #: ../../tutorial/introduction.rst:524 #, fuzzy @@ -1310,14 +1303,14 @@ msgid "" "than), ``>`` (greater than), ``==`` (equal to), ``<=`` (less than or equal " "to), ``>=`` (greater than or equal to) and ``!=`` (not equal to)." msgstr "" -"حلقه :keyword:`while` تا زمانی که شرط (اینجا: ``a < 10``) درست باشد اجرا می " -"شود. در پایتون، مانند زبان C، هر مقدار صحیح غیر صفر درست است؛ صفر نادرست " -"است. شرط ممکن است یک رشته یا لیست باشد، در واقع هر دنباله ای؛ هر چیزی با طول" -" غیر صفر درست است، دنباله های خالی نادرست هستند. آزمایشی که در مثال استفاده " -"شده، یک مقایسه ساده است. عملگرهای مقایسه استاندارد به همان صورت که در C " -"نوشته می شوند: ``<`` (کوچکتر از)، ``>`` (بزرگتر از)، ``==`` (برابر با)، " -"``<=`` (کوچکتر یا برابر با)، ``>=`` (بزرگتر یا برابر با) و ``!=`` (نابرابر " -"با)." +"حلقه :keyword:`while` تا زمانی که شرط (اینجا: ``a < 10``) همچنان درست باشد، " +"اجرا می شود. در پایتون، مانند C، هر مقدار صحیح غیر صفر درست است؛ صفر نادرست " +"است. شرط همچنین می تواند یک مقدار رشته ای یا لیست باشد، در واقع هر دنباله " +"ای؛ هر چیزی با طول غیر صفر درست است، دنباله های خالی نادرست هستند. آزمون " +"استفاده شده در مثال یک مقایسه ساده است. عملگرهای مقایسه استاندارد به همان " +"شکلی هستند که در C نوشته می شوند: ``<`` (کمتر از)، ``>`` (بزرگتر از)، ``==``" +" (مساوی)، ``<=`` (کمتر یا مساوی)، ``>=`` (بزرگتر یا مساوی) و ``!=`` " +"(نامساوی)." #: ../../tutorial/introduction.rst:533 #, fuzzy @@ -1331,14 +1324,14 @@ msgid "" "(since the parser cannot guess when you have typed the last line). Note " "that each line within a basic block must be indented by the same amount." msgstr "" -"حلقه *body* دارای *indented* است: تورفتگی روش پایتون برای گروه بندی دستورات " -"است. در محیط تعاملی، باید برای هر خط تورفتگی، یک تب یا فاصله وارد کنید. در " -"عمل، ورودی های پیچیده تر برای پایتون را با یک ویرایشگر متنی آماده خواهید " -"کرد؛ ویرایشگرهای متن خوب دارای قابلیت تورفتگی خودکار هستند. وقتی یک دستور " -"ترکیبی به صورت تعاملی وارد می شود، باید با یک خط خالی دنبال شود تا اتمام آن " -"را نشان دهد (زیرا تجزیه گر نمی تواند حدس بزند که شما چه زمانی خط آخر را وارد" -" کرده اید). توجه داشته باشید که هر خط درون یک بلوک پایه باید به همان میزان " -"تورفتگی داشته باشد." +"*body* حلقه *indented*: در پایتون، فاصله گذاری راهی برای گروه بندی " +"دستورهاست. در محیط تعاملی، باید برای هر خط با تورفتگی، یک تب یا فاصله تایپ " +"کنید. در عمل، با استفاده از یک ویرایشگر متن، ورودی های پیچیده تری برای " +"پایتون آماده خواهید کرد؛ تمامی ویرایشگرهای متن مناسب دارای قابلیت تورفتگی " +"خودکار هستند. هنگامی که یک عبارت مرکب به صورت تعاملی وارد می شود، باید با یک" +" خط خالی دنبال شود تا نشان دهنده تکمیل باشد (زیرا تجزیه گر نمی تواند حدس " +"بزند که چه زمانی خط آخر را تایپ کرده اید). توجه داشته باشید که هر خط درون یک" +" بلوک پایه باید به همان میزان تورفته باشد." #: ../../tutorial/introduction.rst:542 #, fuzzy @@ -1350,12 +1343,12 @@ msgid "" "without quotes, and a space is inserted between items, so you can format " "things nicely, like this::" msgstr "" -"تابع :func:`print` مقدار یا مقادیر آرگومان هایی که به آن داده شده را می " -"نویسد. این تابع با نوشتن مستقیم عبارتی که می خواهید بنویسید (همانطور که در " -"مثال های ماشین حساب قبلی دیدیم) تفاوت دارد، مخصوصاً در روش برخورد با آرگومان" -" های متعدد، مقادیر اعشاری و رشته ها. رشته ها بدون نقل قول چاپ می شوند و بین " -"آیتم ها یک فاصله قرار می گیرد، بنابراین می توانید به زیبایی مطالب را قالب " -"بندی کنید، مانند این::" +"تابع :func:`print` مقدار آرگومان(های) داده شده به آن را می نویسد. این تابع " +"با نوشتن مستقیم عبارتی که می خواهید بنویسید (همان طور که در مثال های قبلی " +"ماشین حساب انجام دادیم) تفاوت دارد و این تفاوت در نحوه ی پردازش چندین " +"آرگومان، مقادیر اعشاری و رشته ها است. رشته ها بدون علامت نقل قول چاپ می شوند" +" و یک فاصله بین آیتم ها درج می شود، بنابراین می توانید موارد را به طور مرتب " +"مانند زیر قالب بندی کنید:" #: ../../tutorial/introduction.rst:549 #, fuzzy @@ -1374,8 +1367,8 @@ msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" msgstr "" -"از آرگومان کلیدواژه ی *end* می توان استفاده کرد تا از اضافه شدن خط جدید بعد " -"از خروجی جلوگیری کند یا خروجی را با یک رشته ی متفاوت به پایان برساند::" +"آرگومان کلیدواژه *end* می تواند برای جلوگیری از ایجاد خط جدید پس از خروجی، " +"یا پایان دادن به خروجی با یک رشته متفاوت استفاده شود::" #: ../../tutorial/introduction.rst:556 #, fuzzy @@ -1397,7 +1390,7 @@ msgstr "" #: ../../tutorial/introduction.rst:565 #, fuzzy msgid "Footnotes" -msgstr "پاورقی ها" +msgstr "پانوشت ها" #: ../../tutorial/introduction.rst:566 #, fuzzy @@ -1406,9 +1399,9 @@ msgid "" " as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you" " can use ``(-3)**2``." msgstr "" -"از آنجا که ``**`` اولویت بالاتری نسبت به ``-`` دارد، ``-3**2`` به صورت " -"``-(3**2)`` تفسیر خواهد شد و در نتیجه به ``-9`` منجر می شود. برای جلوگیری از" -" این مسئله و دستیابی به ``9``، می توانید از ``(-3)**2`` استفاده کنید." +"از آنجا که ``**`` دارای تقدم بیشتری نسبت به ``-`` است، ``-3**2`` به صورت " +"``-(3**2)`` تفسیر می شود و در نتیجه ``-9`` به دست می آید. برای اجتناب از این" +" و دریافت ``9``، می توانید از ``(-3)**2`` استفاده کنید." #: ../../tutorial/introduction.rst:570 #, fuzzy @@ -1418,15 +1411,15 @@ msgid "" "only difference between the two is that within single quotes you don't need " "to escape ``\"`` (but you have to escape ``\\'``) and vice versa." msgstr "" -"برخلاف زبان های دیگر، کاراکترهای ویژه مانند ``\\n`` با هر دو علامت نقل قول " -"تکی (``'...'``) و دوتایی (``\"...\"``) معنی یکسانی دارند. تنها تفاوت بین این" -" دو این است که در نقل قول تکی نیازی به فرار دادن ``\"`` ندارید (اما باید " -"``\\'`` را فرار دهید) و برعکس." +"برخلاف زبان های دیگر، کاراکترهای ویژه ای مانند ``\\n`` با هر دو نوع نقل قول،" +" یعنی نقل قول تکی (``'...'``) و نقل قول دوتایی (``\"...\"``)، معنای یکسانی " +"دارند. تنها تفاوت میان این دو در این است که در نقل قول تکی نیاز نیست که " +"``\"`` را Escape کنید (اما باید ``\\'`` را Escape کنید) و بالعکس." #: ../../tutorial/introduction.rst:21 #, fuzzy msgid "# (hash)" -msgstr "# (hash)" +msgstr "# (هش)" #: ../../tutorial/introduction.rst:21 #, fuzzy From 76d2f311c05ae84bcf3d53f1be44c7244015179a Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 03:42:07 +0330 Subject: [PATCH 6/9] Remove buggy ai generated translations --- bugs.po | 2 -- library/functions.po | 17 +++-------------- tutorial/classes.po | 7 ------- tutorial/controlflow.po | 3 --- tutorial/inputoutput.po | 2 +- tutorial/whatnow.po | 2 -- 6 files changed, 4 insertions(+), 29 deletions(-) diff --git a/bugs.po b/bugs.po index 7e7cd146e..cbbb1779c 100644 --- a/bugs.po +++ b/bugs.po @@ -105,8 +105,6 @@ msgstr "" #, fuzzy msgid "`Documentation bugs`_" msgstr "" -"متاسفانه متن ارائه شده قابل ترجمه نیست، زیرا به نظر می رسد یک زنجیره نامفهوم" -" از کاراکترها باشد. لطفاً متن بیشتری یا اطلاعات دقیقتری فراهم کنید." #: ../../bugs.rst:37 #, fuzzy diff --git a/library/functions.po b/library/functions.po index c4dfea55d..4dcd4b217 100644 --- a/library/functions.po +++ b/library/functions.po @@ -78,7 +78,7 @@ msgstr "**B**" #: ../../library/functions.rst:0 #, fuzzy msgid ":func:`bin`" -msgstr "متن قابل ترجمه ای موجود نیست. لطفاً متن دیگری ارائه دهید." +msgstr "" #: ../../library/functions.rst:0 #, fuzzy @@ -410,7 +410,7 @@ msgstr "**S**" #: ../../library/functions.rst:0 #, fuzzy msgid "|func-set|_" -msgstr "|تابع-مجموعه|_" +msgstr "" #: ../../library/functions.rst:0 #, fuzzy @@ -435,7 +435,7 @@ msgstr ":func:`staticmethod`" #: ../../library/functions.rst:0 #, fuzzy msgid "|func-str|_" -msgstr "|تابع-رشته ای|_" +msgstr "" #: ../../library/functions.rst:0 #, fuzzy @@ -2312,11 +2312,6 @@ msgid "" ":ref:`integer string conversion length limitation ` " "documentation." msgstr "" -"ورودی های رشته ای و نمایش های رشته ای می توانند محدود شوند تا به جلوگیری از " -"حملات انکار خدمات کمک کنند. زمانی که محدودیت در هنگام تبدیل یک رشته به یک " -":class:`int` یا هنگامی که تبدیل یک :class:`int` به رشته ای از محدودیت بیشتر " -"شود، یک :exc:`ValueError` برانگیخته می شود. به مستندات :ref:`integer string " -"conversion length limitation ` مراجعه کنید." #: ../../library/functions.rst:1069 #, fuzzy @@ -2721,8 +2716,6 @@ msgid "" ":class:`object` instances do *not* have :attr:`~object.__dict__` attributes," " so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" -"نمونه های :class:`object` دارای ویژگی های *not* نیستند، بنابراین نمی توانید " -"ویژگی های دلخواه را به یک نمونه از :class:`object` اختصاص دهید." #: ../../library/functions.rst:1303 #, fuzzy @@ -2732,9 +2725,6 @@ msgid "" "object, it has to define an :meth:`~object.__index__` method that returns an" " integer. For example:" msgstr "" -"تبدیل یک عدد صحیح به یک رشته اکتال که با \"0o\" پیشوند شده است. نتیجه یک " -"عبارت معتبر در Python است. اگر *x* یک شیء Python نباشد، باید یک متد " -":meth:`~object.__index__` تعریف کند که یک عدد صحیح را بازگرداند. برای مثال:" #: ../../library/functions.rst:1313 #, fuzzy @@ -4079,7 +4069,6 @@ msgstr "" msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" -"نسخه ای از *object* برگشت دهید. برای جزئیات به :func:`str` مراجعه کنید." #: ../../library/functions.rst:1935 #, fuzzy diff --git a/tutorial/classes.po b/tutorial/classes.po index 8cf83a608..53023ef16 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -202,13 +202,6 @@ msgid "" " the global names defined in the module: they share the same namespace! " "[#]_" msgstr "" -"به هر حال، من از کلمه *attribute* برای هر نامی که بعد از یک نقطه می آید " -"استفاده می کنم --- برای مثال، در عبارت ``z.real``، ``real`` یک ویژگی از شیء " -"``z`` است. به طور دقیق، ارجاعات به نام ها در ماژول ها ارجاع به ویژگی ها " -"هستند: در عبارت ``modname.funcname``، ``modname`` یک شیء ماژول است و " -"``funcname`` یک ویژگی از آن است. در این مورد، بین ویژگی های ماژول و نام های " -"جهانی تعریف شده در ماژول، یک نگاشت مستقیم وجود دارد: آن ها فضای نام مشترکی " -"دارند!" #: ../../tutorial/classes.rst:90 #, fuzzy diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 6d6dae2ad..9d47b2133 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -2738,9 +2738,6 @@ msgstr "در فراخوانی توابع" #, fuzzy msgid "**" msgstr "" -"متاسفانه، من نمی توانم متنی را که به من داده اید ترجمه کنم، زیرا شما هیچ " -"متنی برای ترجمه ارائه نکرده اید. لطفاً متن مورد نظر خود را برای ترجمه ارائه " -"دهید تا بتوانم به شما در این زمینه کمک کنم." #: ../../tutorial/controlflow.rst:1066 #, fuzzy diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 7f3b27017..0d43aae68 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -159,7 +159,7 @@ msgid "" msgstr "" "وقتی که نیازی به خروجی پیچیده ندارید و فقط می خواهید نمایش سریعی از برخی " "متغیرها برای اشکال زدایی داشته باشید، می توانید هر مقداری را با استفاده از " -"توابع `:func:`repr`` یا `:func:`str`` به یک رشته تبدیل کنید." +"توابع `:func:`repr` یا `:func:`str` به یک رشته تبدیل کنید." #: ../../tutorial/inputoutput.rst:66 #, fuzzy diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 7e99120e8..b8c0d0611 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -50,8 +50,6 @@ msgstr "" #, fuzzy msgid ":ref:`library-index`:" msgstr "" -"متاسفانه بدون مشاهده متن اصلی نمی توانم ترجمه ای ارائه بدهم. لطفاً متن اصلی " -"را ارسال فرمایید تا به شما کمک کنم." #: ../../tutorial/whatnow.rst:16 #, fuzzy From 52fda80858fec3b12a7575b77388b5217b75887b Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 03:51:45 +0330 Subject: [PATCH 7/9] fix linting using scripts (not translating code blocks) --- tutorial/classes.po | 116 +++++++++++++++++++-------------------- tutorial/controlflow.po | 113 +++++++++++++++++++------------------- tutorial/introduction.po | 60 ++++++++++---------- 3 files changed, 145 insertions(+), 144 deletions(-) diff --git a/tutorial/classes.po b/tutorial/classes.po index 53023ef16..6ab920b83 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -435,28 +435,28 @@ msgid "" "scope_test()\n" "print(\"In global scope:\", spam)" msgstr "" -"def scope_test(): \n" -" def do_local(): \n" -" spam = \"local spam\" \n" -" \n" -" def do_nonlocal(): \n" -" nonlocal spam \n" -" spam = \"nonlocal spam\" \n" -" \n" -" def do_global(): \n" -" global spam \n" -" spam = \"global spam\" \n" -" \n" -" spam = \"test spam\" \n" -" do_local() \n" -" print(\"پس از انتساب محلی:\", spam) \n" -" do_nonlocal() \n" -" print(\"پس از انتساب غیرمحلی:\", spam) \n" -" do_global() \n" -" print(\"پس از انتساب سراسری:\", spam) \n" -" \n" -"scope_test() \n" -"print(\"در محدوده جهانی:\", spam)" +"def scope_test():\n" +" def do_local():\n" +" spam = \"local spam\"\n" +"\n" +" def do_nonlocal():\n" +" nonlocal spam\n" +" spam = \"nonlocal spam\"\n" +"\n" +" def do_global():\n" +" global spam\n" +" spam = \"global spam\"\n" +"\n" +" spam = \"test spam\"\n" +" do_local()\n" +" print(\"After local assignment:\", spam)\n" +" do_nonlocal()\n" +" print(\"After nonlocal assignment:\", spam)\n" +" do_global()\n" +" print(\"After global assignment:\", spam)\n" +"\n" +"scope_test()\n" +"print(\"In global scope:\", spam)" #: ../../tutorial/classes.rst:191 #, fuzzy @@ -635,8 +635,8 @@ msgid "" " def f(self):\n" " return 'hello world'" msgstr "" -"کلاس MyClass:\n" -" \"\"\"یک کلاس مثال ساده\"\"\"\n" +"class MyClass:\n" +" \"\"\"A simple example class\"\"\"\n" " i = 12345\n" "\n" " def f(self):\n" @@ -740,7 +740,7 @@ msgid "" ">>> x.r, x.i\n" "(3.0, -4.5)" msgstr "" -">>> کلاس Complex:\n" +">>> class Complex:\n" "... def __init__(self, realpart, imagpart):\n" "... self.r = realpart\n" "... self.i = imagpart\n" @@ -955,22 +955,22 @@ msgid "" ">>> e.name # unique to e\n" "'Buddy'" msgstr "" -"کلاس Dog:\n" +"class Dog:\n" "\n" -" kind = 'canine' # متغیر کلاسی که بین تمام نمونه ها به اشتراک گذاشته می شود\n" +" kind = 'canine' # class variable shared by all instances\n" "\n" " def __init__(self, name):\n" -" self.name = name # متغیر نمونه که برای هر نمونه منحصر به فرد است\n" +" self.name = name # instance variable unique to each instance\n" "\n" ">>> d = Dog('Fido')\n" ">>> e = Dog('Buddy')\n" -">>> d.kind # مشترک بین تمام سگ ها\n" +">>> d.kind # shared by all dogs\n" "'canine'\n" -">>> e.kind # مشترک بین تمام سگ ها\n" +">>> e.kind # shared by all dogs\n" "'canine'\n" -">>> d.name # منحصر به فرد برای d\n" +">>> d.name # unique to d\n" "'Fido'\n" -">>> e.name # منحصر به فرد برای e\n" +">>> e.name # unique to e\n" "'Buddy'" #: ../../tutorial/classes.rst:422 @@ -1008,9 +1008,9 @@ msgid "" ">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" msgstr "" -"کلاس Dog:\n" +"class Dog:\n" "\n" -" tricks = [] # استفاده اشتباه از یک متغیر کلاسی\n" +" tricks = [] # mistaken use of a class variable\n" "\n" " def __init__(self, name):\n" " self.name = name\n" @@ -1022,7 +1022,7 @@ msgstr "" ">>> e = Dog('Buddy')\n" ">>> d.add_trick('roll over')\n" ">>> e.add_trick('play dead')\n" -">>> d.tricks # به طور غیرمنتظره بین تمام سگ ها مشترک است\n" +">>> d.tricks # unexpectedly shared by all dogs\n" "['roll over', 'play dead']" #: ../../tutorial/classes.rst:445 @@ -1051,11 +1051,11 @@ msgid "" ">>> e.tricks\n" "['play dead']" msgstr "" -"کلاس Dog:\n" +"class Dog:\n" "\n" " def __init__(self, name):\n" " self.name = name\n" -" self.tricks = [] # برای هر سگ یک لیست خالی جدید ایجاد می کند\n" +" self.tricks = [] # creates a new empty list for each dog\n" "\n" " def add_trick(self, trick):\n" " self.tricks.append(trick)\n" @@ -1202,7 +1202,7 @@ msgid "" "\n" " h = g" msgstr "" -"# تابعی که در خارج از کلاس تعریف شده است\n" +"# Function defined outside the class\n" "def f1(self, x, y):\n" " return min(x, x+y)\n" "\n" @@ -1250,7 +1250,7 @@ msgid "" " self.add(x)\n" " self.add(x)" msgstr "" -"کلاس Bag:\n" +"class Bag:\n" " def __init__(self):\n" " self.data = []\n" "\n" @@ -1612,7 +1612,7 @@ msgid "" " for item in zip(keys, values):\n" " self.items_list.append(item)" msgstr "" -"کلاس Mapping:\n" +"class Mapping:\n" " def __init__(self, iterable):\n" " self.items_list = []\n" " self.__update(iterable)\n" @@ -1621,13 +1621,13 @@ msgstr "" " for item in iterable:\n" " self.items_list.append(item)\n" "\n" -" __update = update # کپی خصوصی از متد اصلی update()\n" +" __update = update # private copy of original update() method\n" "\n" -"کلاس MappingSubclass(Mapping):\n" +"class MappingSubclass(Mapping):\n" "\n" " def update(self, keys, values):\n" -" # امضای جدیدی برای update() فراهم می کند\n" -" # اما __init__() را نمی شکند\n" +" # provides new signature for update()\n" +" # but does not break __init__()\n" " for item in zip(keys, values):\n" " self.items_list.append(item)" @@ -1675,7 +1675,7 @@ msgstr "" #: ../../tutorial/classes.rst:738 #, fuzzy msgid "Odds and Ends" -msgstr "موارد متفرقه و نکات نهایی" +msgstr "Odds and Ends" #: ../../tutorial/classes.rst:740 #, fuzzy @@ -1700,7 +1700,7 @@ msgid "" " dept: str\n" " salary: int" msgstr "" -"از dataclasses وارد کنید import کنید\n" +"from dataclasses import dataclass\n" "\n" "@dataclass\n" "class Employee:\n" @@ -1781,15 +1781,15 @@ msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end='')" msgstr "" -"برای عنصر در [1, 2, 3]:\n" +"for element in [1, 2, 3]:\n" " print(element)\n" -"برای عنصر در (1, 2, 3):\n" +"for element in (1, 2, 3):\n" " print(element)\n" -"برای کلید در {'one':1, 'two':2}:\n" +"for key in {'one':1, 'two':2}:\n" " print(key)\n" -"برای کاراکتر در \"123\":\n" +"for char in \"123\":\n" " print(char)\n" -"برای خط در open(\"myfile.txt\"):\n" +"for line in open(\"myfile.txt\"):\n" " print(line, end='')" #: ../../tutorial/classes.rst:798 @@ -1882,8 +1882,8 @@ msgid "" " self.index = self.index - 1\n" " return self.data[self.index]" msgstr "" -"کلاس Reverse:\n" -" \"\"\" پیماینده برای مرور بر روی یک دنباله به صورت معکوس.\"\"\"\n" +"class Reverse:\n" +" \"\"\"Iterator for looping over a sequence backwards.\"\"\"\n" " def __init__(self, data):\n" " self.data = data\n" " self.index = len(data)\n" @@ -1967,7 +1967,7 @@ msgid "" "o\n" "g" msgstr "" -">>> برای کاراکتر در reverse('golf'):\n" +">>> for char in reverse('golf'):\n" "... print(char)\n" "...\n" "f\n" @@ -2069,15 +2069,15 @@ msgstr "" "\n" ">>> xvec = [10, 20, 30]\n" ">>> yvec = [7, 5, 3]\n" -">>> sum(x*y for x,y in zip(xvec, yvec)) # حاصل ضرب داخلی\n" +">>> sum(x*y for x,y in zip(xvec, yvec)) # dot product\n" "260\n" "\n" -">>> unique_words = set(word for line in page for word in line.split()) # یافتن کلمات منحصر به فرد\n" +">>> unique_words = set(word for line in page for word in line.split())\n" "\n" -">>> valedictorian = max((student.gpa, student.name) for student in graduates) # پیدا کردن بهترین فارغ التحصیل\n" +">>> valedictorian = max((student.gpa, student.name) for student in graduates)\n" "\n" ">>> data = 'golf'\n" -">>> list(data[i] for i in range(len(data)-1, -1, -1)) # برعکس کردن رشته\n" +">>> list(data[i] for i in range(len(data)-1, -1, -1))\n" "['f', 'l', 'o', 'g']" #: ../../tutorial/classes.rst:932 diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 9d47b2133..aa0bcc890 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -597,8 +597,8 @@ msgid "" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." msgstr "" -">>> در حالی که True:\n" -"... pass # انتظار مشغول برای قطع کیبورد (Ctrl+C)\n" +">>> while True:\n" +"... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" "..." #: ../../tutorial/controlflow.rst:266 @@ -613,7 +613,7 @@ msgid "" "... pass\n" "..." msgstr "" -">>> کلاس MyEmptyClass:\n" +">>> class MyEmptyClass:\n" "... pass\n" "..." @@ -638,7 +638,7 @@ msgid "" "..." msgstr "" ">>> def initlog(*args):\n" -"... pass # به یاد داشته باشید که این را پیاده سازی کنید!\n" +"... pass # Remember to implement this!\n" "..." #: ../../tutorial/controlflow.rst:284 @@ -688,13 +688,13 @@ msgstr "" "def http_error(status):\n" " match status:\n" " case 400:\n" -" return \"درخواست نامعتبر\"\n" +" return \"Bad request\"\n" " case 404:\n" -" return \"یافت نشد\"\n" +" return \"Not found\"\n" " case 418:\n" -" return \"من یک قوری هستم\"\n" +" return \"I'm a teapot\"\n" " case _:\n" -" return \"مشکلی در اینترنت وجود دارد\"" +" return \"Something's wrong with the internet\"" #: ../../tutorial/controlflow.rst:307 #, fuzzy @@ -748,7 +748,7 @@ msgid "" " case _:\n" " raise ValueError(\"Not a point\")" msgstr "" -"# point یک زوج ترتیبی (x, y) است\n" +"# point is an (x, y) tuple\n" "match point:\n" " case (0, 0):\n" " print(\"Origin\")\n" @@ -810,7 +810,7 @@ msgid "" " case _:\n" " print(\"Not a point\")" msgstr "" -"کلاس Point:\n" +"class Point:\n" " def __init__(self, x, y):\n" " self.x = x\n" " self.y = y\n" @@ -818,15 +818,15 @@ msgstr "" "def where_is(point):\n" " match point:\n" " case Point(x=0, y=0):\n" -" print(\"مبدا\")\n" +" print(\"Origin\")\n" " case Point(x=0, y=y):\n" " print(f\"Y={y}\")\n" " case Point(x=x, y=0):\n" " print(f\"X={x}\")\n" " case Point():\n" -" print(\"جای دیگری\")\n" +" print(\"Somewhere else\")\n" " case _:\n" -" print(\"یک نقطه نیست\")" +" print(\"Not a point\")" #: ../../tutorial/controlflow.rst:360 #, fuzzy @@ -853,9 +853,9 @@ msgid "" "Point(x=1, y=var)\n" "Point(y=var, x=1)" msgstr "" -"Point(1, var) \n" -"Point(1, y=var) \n" -"Point(x=1, y=var) \n" +"Point(1, var)\n" +"Point(1, y=var)\n" +"Point(x=1, y=var)\n" "Point(y=var, x=1)" #: ../../tutorial/controlflow.rst:371 @@ -907,7 +907,7 @@ msgid "" " case _:\n" " print(\"Something else\")" msgstr "" -"کلاس Point:\n" +"class Point:\n" " __match_args__ = ('x', 'y')\n" " def __init__(self, x, y):\n" " self.x = x\n" @@ -915,15 +915,15 @@ msgstr "" "\n" "match points:\n" " case []:\n" -" print(\"هیچ نقطه ای نیست\")\n" +" print(\"No points\")\n" " case [Point(0, 0)]:\n" -" print(\"مبدا\")\n" +" print(\"The origin\")\n" " case [Point(x, y)]:\n" -" print(f\"نقطه واحد {x}, {y}\")\n" +" print(f\"Single point {x}, {y}\")\n" " case [Point(0, y1), Point(0, y2)]:\n" -" print(f\"دو نقطه روی محور Y در {y1}, {y2}\")\n" +" print(f\"Two on the Y axis at {y1}, {y2}\")\n" " case _:\n" -" print(\"چیز دیگری\")" +" print(\"Something else\")" #: ../../tutorial/controlflow.rst:399 #, fuzzy @@ -945,7 +945,7 @@ msgid "" " case Point(x, y):\n" " print(f\"Not on the diagonal\")" msgstr "" -"انتخاب نقطه:\n" +"match point:\n" " case Point(x, y) if x == y:\n" " print(f\"Y=X at {x}\")\n" " case Point(x, y):\n" @@ -1050,21 +1050,21 @@ msgid "" " case Color.BLUE:\n" " print(\"I'm feeling the blues :(\")" msgstr "" -"از enum import Enum\n" -"کلاس Color(Enum):\n" +"from enum import Enum\n" +"class Color(Enum):\n" " RED = 'red'\n" " GREEN = 'green'\n" " BLUE = 'blue'\n" "\n" -"color = Color(input(\"یکی از مقادیر 'red', 'blue' یا 'green' را وارد کنید: \"))\n" +"color = Color(input(\"Enter your choice of 'red', 'blue' or 'green': \"))\n" "\n" "match color:\n" " case Color.RED:\n" -" print(\"من قرمز می بینم!\")\n" +" print(\"I see red!\")\n" " case Color.GREEN:\n" -" print(\"چمن سبز است\")\n" +" print(\"Grass is green\")\n" " case Color.BLUE:\n" -" print(\"احساس افسردگی می کنم :(\")" +" print(\"I'm feeling the blues :(\")" #: ../../tutorial/controlflow.rst:454 #, fuzzy @@ -1270,17 +1270,17 @@ msgid "" ">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" msgstr "" -">>> def fib2(n): # بازگرداندن سری فیبوناچی تا n\n" -"... \"\"\"بازگرداندن لیستی شامل سری فیبوناچی تا n.\"\"\"\n" +">>> def fib2(n): # return Fibonacci series up to n\n" +"... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" "... result = []\n" "... a, b = 0, 1\n" "... while a < n:\n" -"... result.append(a) # به پایین نگاه کنید\n" +"... result.append(a) # see below\n" "... a, b = b, a+b\n" "... return result\n" "...\n" -">>> f100 = fib2(100) # صدا زدن آن\n" -">>> f100 # نوشتن نتیجه\n" +">>> f100 = fib2(100) # call it\n" +">>> f100 # write the result\n" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" #: ../../tutorial/controlflow.rst:550 @@ -1478,9 +1478,13 @@ msgid "" "print(f(2))\n" "print(f(3))" msgstr "" -"تابع f دو آرگومان ورودی دریافت می کند: a و L که به طور پیش فرض یک لیست خالی است. درون تابع، مقدار a به لیست L اضافه می شود و سپس لیست L برگردانده می شود.\n" +"def f(a, L=[]):\n" +" L.append(a)\n" +" return L\n" "\n" -"در هنگام اجرای خط print(f(1))، مقدار 1 به لیست پیش فرض L اضافه می شود، بنابراین نتیجه [1] خواهد بود. در خط بعدی print(f(2))، مقدار 2 به همان لیست اضافه می شود که نتیجه [1, 2] خواهد بود. مشابه این روند در چاپ سوم باعث می شود نتیجه [1, 2, 3] باشد. دلیل این رفتار نگهداری وضعیت لیست L به عنوان یک پارامتر پیش فرض است که تنها یک بار ساخته می شود و در سراسر اجراهای تابع مشترک است." +"print(f(1))\n" +"print(f(2))\n" +"print(f(3))" #: ../../tutorial/controlflow.rst:636 #, fuzzy @@ -1517,10 +1521,10 @@ msgid "" " return L" msgstr "" "def f(a, L=None):\n" -" اگر L برابر None باشد:\n" +" if L is None:\n" " L = []\n" " L.append(a)\n" -" بازگرداندن L" +" return L" #: ../../tutorial/controlflow.rst:655 #, fuzzy @@ -1547,10 +1551,10 @@ msgid "" " print(\"-- It's\", state, \"!\")" msgstr "" "def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" -" print(\"-- این طوطی نمی خواهد\", action, end=' ')\n" -" print(\"اگر شما\", voltage, \"ولت از آن عبور دهید.\")\n" -" print(\"-- پرهای زیبا،\", type)\n" -" print(\"-- این\", state, \"!\")" +" print(\"-- This parrot wouldn't\", action, end=' ')\n" +" print(\"if you put\", voltage, \"volts through it.\")\n" +" print(\"-- Lovely plumage, the\", type)\n" +" print(\"-- It's\", state, \"!\")" #: ../../tutorial/controlflow.rst:666 #, fuzzy @@ -1573,12 +1577,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(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(1000) # 1 positional argument\n" +"parrot(voltage=1000) # 1 keyword argument\n" +"parrot(voltage=1000000, action='VOOOOOM') # 2 keyword arguments\n" +"parrot(action='VOOOOOM', voltage=1000000) # 2 keyword arguments\n" +"parrot('a million', 'bereft of life', 'jump') # 3 positional arguments\n" +"parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword" #: ../../tutorial/controlflow.rst:677 #, fuzzy @@ -1690,8 +1694,8 @@ msgid "" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" msgstr "" -"cheeseshop(\"Limburger\", \"خیلی شُل است، قربان.\",\n" -" \"واقعا خیلی، بسیار شُل است، قربان.\",\n" +"cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" +" \"It's really very, VERY runny, sir.\",\n" " shopkeeper=\"Michael Palin\",\n" " client=\"John Cleese\",\n" " sketch=\"Cheese Shop Sketch\")" @@ -2036,10 +2040,8 @@ msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" msgstr "" -"```python\n" "def foo(name, **kwds):\n" -" return 'name' in kwds\n" -"```" +" return 'name' in kwds" #: ../../tutorial/controlflow.rst:872 #, fuzzy @@ -2089,7 +2091,7 @@ msgstr "" "... return 'name' in kwds\n" "...\n" ">>> foo(1, **{'name': 2})\n" -"درست" +"True" #: ../../tutorial/controlflow.rst:889 #, fuzzy @@ -2182,7 +2184,6 @@ msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" msgstr "" -"\n" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" @@ -2330,7 +2331,7 @@ msgstr "" ">>> f(0)\n" "42\n" ">>> f(1)\n" -"43\n" +"43" #: ../../tutorial/controlflow.rst:1000 #, fuzzy diff --git a/tutorial/introduction.po b/tutorial/introduction.po index b3a99e3a4..d5c8114d4 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -88,10 +88,10 @@ msgid "" " # ... and now a third!\n" "text = \"# This is not a comment because it's inside quotes.\"" msgstr "" -"# این اولین کامنت است\n" -"spam = 1 # و این کامنت دوم است\n" -" # ... و حالا سومی!\n" -"text = \"# این یک کامنت نیست زیرا داخل کوتیشن قرار دارد.\"" +"# this is the first comment\n" +"spam = 1 # and this is the second comment\n" +" # ... and now a third!\n" +"text = \"# This is not a comment because it's inside quotes.\"" #: ../../tutorial/introduction.rst:42 #, fuzzy @@ -143,7 +143,7 @@ msgstr "" "20\n" ">>> (50 - 5*6) / 4\n" "5.0\n" -">>> 8 / 5 # تقسیم همیشه یک عدد اعشاری برمی گرداند\n" +">>> 8 / 5 # division always returns a floating-point number\n" "1.6" #: ../../tutorial/introduction.rst:68 @@ -210,7 +210,7 @@ msgid "" msgstr "" ">>> 5 ** 2 # 5 squared\n" "25\n" -">>> 2 ** 7 # 2 به توان 7\n" +">>> 2 ** 7 # 2 to the power of 7\n" "128" #: ../../tutorial/introduction.rst:93 @@ -377,9 +377,9 @@ msgid "" ">>> '\"Isn\\'t,\" they said.'\n" "'\"Isn\\'t,\" they said.'" msgstr "" -">>> 'doesn\\'t' # از \\' برای فرار از تگ تک کوتیشن استفاده کنید...\n" +">>> 'doesn\\'t' # use \\' to escape the single quote...\n" "\"doesn't\"\n" -">>> \"doesn't\" # ...یا به جای آن از کوتیشن دوتایی استفاده کنید\n" +">>> \"doesn't\" # ...or use double quotes instead\n" "\"doesn't\"\n" ">>> '\"Yes,\" they said.'\n" "'\"Yes,\" they said.'\n" @@ -508,7 +508,7 @@ msgid "" ">>> 3 * 'un' + 'ium'\n" "'unununium'" msgstr "" -">>> # سه بار 'un'، به دنبال آن 'ium'\n" +">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" "'unununium'" @@ -545,10 +545,10 @@ msgid "" ">>> text\n" "'Put several strings within parentheses to have them joined together.'" msgstr "" -">>> text = ('چندین رشته را در داخل پرانتزها قرار دهید '\n" -"... 'تا به هم پیوسته شوند.')\n" +">>> text = ('Put several strings within parentheses '\n" +"... 'to have them joined together.')\n" ">>> text\n" -"'چندین رشته را در داخل پرانتزها قرار دهید تا به هم پیوسته شوند.'" +"'Put several strings within parentheses to have them joined together.'" #: ../../tutorial/introduction.rst:234 #, fuzzy @@ -599,7 +599,7 @@ msgid "" ">>> prefix + 'thon'\n" "'Python'" msgstr "" -">>> پیشوند + 'thon'\n" +">>> prefix + 'thon'\n" "'Python'" #: ../../tutorial/introduction.rst:253 @@ -623,9 +623,9 @@ msgid "" "'n'" msgstr "" ">>> word = 'Python'\n" -">>> word[0] # کاراکتر در موقعیت ۰\n" +">>> word[0] # character in position 0\n" "'P'\n" -">>> word[5] # کاراکتر در موقعیت ۵\n" +">>> word[5] # character in position 5\n" "'n'" #: ../../tutorial/introduction.rst:263 @@ -646,9 +646,9 @@ msgid "" ">>> word[-6]\n" "'P'" msgstr "" -">>> word[-1] # آخرین کاراکتر\n" +">>> word[-1] # last character\n" "'n'\n" -">>> word[-2] # کاراکتر دوم از آخر\n" +">>> word[-2] # second-last character\n" "'o'\n" ">>> word[-6]\n" "'P'" @@ -679,9 +679,9 @@ msgid "" ">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" msgstr "" -">>> word[0:2] # کاراکترها از موقعیت 0 (شامل) تا 2 (غیرشامل)\n" +">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" "'Py'\n" -">>> word[2:5] # کاراکترها از موقعیت 2 (شامل) تا 5 (غیرشامل)\n" +">>> word[2:5] # characters from position 2 (included) to 5 (excluded)\n" "'tho'" #: ../../tutorial/introduction.rst:282 @@ -704,11 +704,11 @@ msgid "" ">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" msgstr "" -">>> word[:2] # کاراکترها از ابتدای رشته تا مکان ۲ (غیر شامل)\n" +">>> word[:2] # character from the beginning to position 2 (excluded)\n" "'Py'\n" -">>> word[4:] # کاراکترها از مکان ۴ (شامل) تا انتها\n" +">>> word[4:] # characters from position 4 (included) to the end\n" "'on'\n" -">>> word[-2:] # کاراکترها از مکان دوم از انتها (شامل) تا انتها\n" +">>> word[-2:] # characters from the second-last (included) to the end\n" "'on'" #: ../../tutorial/introduction.rst:292 @@ -886,7 +886,7 @@ msgid "" msgstr "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" -"۳۴" +"34" #: ../../tutorial/introduction.rst:363 #, fuzzy @@ -999,11 +999,11 @@ msgid "" ">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" msgstr "" -">>> squares[0] # ایندکس گذاری آیتم را برمی گرداند\n" +">>> squares[0] # indexing returns the item\n" "1\n" ">>> squares[-1]\n" "25\n" -">>> squares[-3:] # برش دادن یک لیست جدید برمی گرداند\n" +">>> squares[-3:] # slicing returns a new list\n" "[9, 16, 25]" #: ../../tutorial/introduction.rst:406 @@ -1063,8 +1063,8 @@ msgid "" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" msgstr "" -">>> cubes.append(216) # مکعب ۶ را اضافه کنید\n" -">>> cubes.append(7 ** 3) # و مکعب ۷ را اضافه کنید\n" +">>> cubes.append(216) # add the cube of 6\n" +">>> cubes.append(7 ** 3) # and the cube of 7\n" ">>> cubes\n" "[1, 8, 27, 64, 125, 216, 343]" @@ -1256,8 +1256,8 @@ msgid "" "5\n" "8" msgstr "" -">>> # سری فیبوناچی:\n" -">>> # مجموع دو عنصر، عنصر بعدی را تعریف می کند\n" +">>> # Fibonacci series:\n" +">>> # the sum of two elements defines the next\n" ">>> a, b = 0, 1\n" ">>> while a < 10:\n" "... print(a)\n" @@ -1419,7 +1419,7 @@ msgstr "" #: ../../tutorial/introduction.rst:21 #, fuzzy msgid "# (hash)" -msgstr "# (هش)" +msgstr "# (hash)" #: ../../tutorial/introduction.rst:21 #, fuzzy From f553d03a802637bbc501a3a2699551df4cdb320b Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 03:58:11 +0330 Subject: [PATCH 8/9] Fix lint warnings manually --- library/functions.po | 27 +++++++++++++++------------ tutorial/controlflow.po | 3 +-- tutorial/floatingpoint.po | 2 +- tutorial/inputoutput.po | 23 ----------------------- tutorial/modules.po | 2 +- tutorial/venv.po | 4 ---- 6 files changed, 18 insertions(+), 43 deletions(-) diff --git a/library/functions.po b/library/functions.po index 4dcd4b217..a18cad888 100644 --- a/library/functions.po +++ b/library/functions.po @@ -535,10 +535,11 @@ msgid "" " return False\n" " return True" msgstr "" -"تابع all(iterable) برای بررسی این است که آیا همه عناصر در یک ساختار قابل " -"تکرار (iterable)، ارزیابی به True دارند. برای هر عنصر در ساختار قابل تکرار، " -"اگر عنصری پیدا شود که ارزیابی به False شود، تابع نتیجه False را برمی گرداند." -" اگر همه عناصر ارزیابی به True شوند، تابع نتیجه True را برمی گرداند." +"def all(iterable):\n" +" for element in iterable:\n" +" if not element:\n" +" return False\n" +" return True" #: ../../library/functions.rst:89 #, fuzzy @@ -587,9 +588,11 @@ msgid "" " return True\n" " return False" msgstr "" -"تابع any یک مقدار iterable می گیرد و برای هر المنت در آن چک می کند. اگر " -"حداقل یکی از المنت ها مقدار True داشته باشد، مقدار True را برمی گرداند و اگر" -" نه، مقدار False را برمی گرداند." +"def any(iterable):\n" +" for element in iterable:\n" +" if element:\n" +" return True\n" +" return False" #: ../../library/functions.rst:116 #, fuzzy @@ -1444,11 +1447,11 @@ msgid "" " yield n, elem\n" " n += 1" msgstr "" -"تابع enumerate یک شیء قابل تکرار و یک مقدار شروع را به عنوان ورودی می پذیرد " -"و در هر مرحله، شماره ی اندیس فعلی و عنصر مربوطه را بازمی گرداند. به صورت پیش" -" فرض، شمارش از صفر شروع می شود، اما می توان با تنظیم پارامتر start، مقدار " -"شروع را تغییر داد. در حلقه ی بازگشتی، ابتدا مقدار n و elem برای هر عنصر " -"بازگشته و سپس n به اندازه ی یک واحد افزایش می یابد." +"def enumerate(iterable, start=0):\n" +" n = start\n" +" for elem in iterable:\n" +" yield n, elem\n" +" n += 1" #: ../../library/functions.rst:0 #, fuzzy diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index aa0bcc890..1aca20f73 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -2118,8 +2118,7 @@ msgstr "" #: ../../tutorial/controlflow.rst:898 #, fuzzy msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" -msgstr "" -"تابع f دارای پارامترهای pos1, pos2، /، pos_or_kwd، *، kwd1 و kwd2 است." +msgstr "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" #: ../../tutorial/controlflow.rst:900 #, fuzzy diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 25ec97900..cb95228ee 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -642,7 +642,7 @@ msgstr "" #: ../../tutorial/floatingpoint.rst:280 #, fuzzy msgid "1 / 10 ~= J / (2**N)" -msgstr "۱‏/‏۱۰ ~= J / (2**N)" +msgstr "1 / 10 ~= J / (2**N)" #: ../../tutorial/floatingpoint.rst:282 #, fuzzy diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 0d43aae68..77a7fc739 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -157,9 +157,6 @@ msgid "" "variables for debugging purposes, you can convert any value to a string with" " the :func:`repr` or :func:`str` functions." msgstr "" -"وقتی که نیازی به خروجی پیچیده ندارید و فقط می خواهید نمایش سریعی از برخی " -"متغیرها برای اشکال زدایی داشته باشید، می توانید هر مقداری را با استفاده از " -"توابع `:func:`repr` یا `:func:`str` به یک رشته تبدیل کنید." #: ../../tutorial/inputoutput.rst:66 #, fuzzy @@ -535,21 +532,6 @@ msgid "" " 9 81 729\n" "10 100 1000" msgstr "" -"```python\n" -">>> for x in range(1, 11):\n" -"... print('{0:2d} {1:3d} {2:4d}'.format(x, x**2, x**3))\n" -"...\n" -" 1 1 1\n" -" 2 4 8\n" -" 3 9 27\n" -" 4 16 64\n" -" 5 25 125\n" -" 6 36 216\n" -" 7 49 343\n" -" 8 64 512\n" -" 9 81 729\n" -"10 100 1000\n" -"```" #: ../../tutorial/inputoutput.rst:238 #, fuzzy @@ -856,11 +838,6 @@ msgid "" " File \"\", line 1, in \n" "ValueError: I/O operation on closed file." msgstr "" -"```f.close()``` \n" -"```f.read()```\n" -"آخرین خطاها (Traceback):\n" -" فایل \"\", خط 1، در \n" -"ValueError: عملیات ورودی/خروجی بر روی فایل بسته انجام شد." #: ../../tutorial/inputoutput.rst:392 #, fuzzy diff --git a/tutorial/modules.po b/tutorial/modules.po index e9812735e..eed7e1a36 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -375,7 +375,7 @@ msgstr "وقتی یک ماژول پایتون را اجرا می کنید با : #: ../../tutorial/modules.rst:151 #, fuzzy msgid "python fibo.py " -msgstr "`python fibo.py `" +msgstr "python fibo.py " #: ../../tutorial/modules.rst:153 #, fuzzy diff --git a/tutorial/venv.po b/tutorial/venv.po index 63b55b9e8..fe9e7ad89 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -163,10 +163,6 @@ msgstr "در ویندوز، اجرا کنید::" #, fuzzy msgid "tutorial-env\\Scripts\\activate" msgstr "" -"```plaintext\n" -"اجرا:\n" -"tutorial-env\\Scripts\\activate\n" -"```" #: ../../tutorial/venv.rst:65 #, fuzzy From 0b1c8cc06733ab2a5c763c2e52af7d83ba392e36 Mon Sep 17 00:00:00 2001 From: Revisto Date: Thu, 13 Mar 2025 04:03:54 +0330 Subject: [PATCH 9/9] remove fuzzy tags --- bugs.po | 32 --- library/functions.po | 511 ------------------------------------- tutorial/appendix.po | 29 --- tutorial/appetite.po | 18 -- tutorial/classes.po | 150 ----------- tutorial/controlflow.po | 224 ---------------- tutorial/datastructures.po | 126 --------- tutorial/errors.po | 96 ------- tutorial/floatingpoint.po | 77 ------ tutorial/index.po | 9 - tutorial/inputoutput.po | 113 -------- tutorial/interactive.po | 8 - tutorial/interpreter.po | 34 --- tutorial/introduction.po | 120 --------- tutorial/modules.po | 118 --------- tutorial/stdlib.po | 68 ----- tutorial/stdlib2.po | 66 ----- tutorial/venv.po | 43 ---- tutorial/whatnow.po | 19 -- 19 files changed, 1861 deletions(-) diff --git a/bugs.po b/bugs.po index cbbb1779c..8520646be 100644 --- a/bugs.po +++ b/bugs.po @@ -8,7 +8,6 @@ # mohammadreza aghababei, 2025 # shahab sakha, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -24,12 +23,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../bugs.rst:5 -#, fuzzy msgid "Dealing with Bugs" msgstr "مدیریت باگ ها" #: ../../bugs.rst:7 -#, fuzzy msgid "" "Python is a mature programming language which has established a reputation " "for stability. In order to maintain this reputation, the developers would " @@ -40,7 +37,6 @@ msgstr "" "پیدا می کنید، مطلع شوند." #: ../../bugs.rst:11 -#, fuzzy msgid "" "It can be sometimes faster to fix bugs yourself and contribute patches to " "Python as it streamlines the process and involves less people. Learn how to " @@ -52,12 +48,10 @@ msgstr "" "to-python>`." #: ../../bugs.rst:16 -#, fuzzy msgid "Documentation bugs" msgstr "ایرادات مستندات" #: ../../bugs.rst:18 -#, fuzzy msgid "" "If you find a bug in this documentation or would like to propose an " "improvement, please submit a bug report on the :ref:`tracker `_." @@ -77,7 +70,6 @@ msgstr "" "`_ باز کنید." #: ../../bugs.rst:25 -#, fuzzy msgid "" "If you find a bug in the theme (HTML / CSS / JavaScript) of the " "documentation, please submit a bug report on the `python-doc-theme bug " @@ -88,7 +80,6 @@ msgstr "" "`_ ارسال کنید." #: ../../bugs.rst:29 -#, fuzzy msgid "" "If you're short on time, you can also email documentation bug reports to " "docs@python.org (behavioral bugs can be sent to python-list@python.org). " @@ -102,19 +93,16 @@ msgstr "" "تا پردازش شود." #: ../../bugs.rst:36 -#, fuzzy msgid "`Documentation bugs`_" msgstr "" #: ../../bugs.rst:37 -#, fuzzy msgid "" "A list of documentation bugs that have been submitted to the Python issue " "tracker." msgstr "فهرستی از اشکالات مستنداتی که به ردیاب اشکال Python ارسال شده اند." #: ../../bugs.rst:39 -#, fuzzy msgid "`Issue Tracking `_" msgstr "" "متنی که ارائه دادید به نظر نمی رسد که بخشی از مستندات رسمی پایتون باشد و " @@ -122,13 +110,11 @@ msgstr "" "ترجمه دارید، لطفاً ارائه دهید." #: ../../bugs.rst:40 -#, fuzzy msgid "" "Overview of the process involved in reporting an improvement on the tracker." msgstr "نمای کلی از فرآیند مربوط به گزارش یک بهبود در پیگیری." #: ../../bugs.rst:42 -#, fuzzy msgid "" "`Helping with Documentation " "`_" @@ -137,7 +123,6 @@ msgstr "" "متن خود را بررسی کرده و مجدداً ارسال کنید." #: ../../bugs.rst:43 -#, fuzzy msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." @@ -145,7 +130,6 @@ msgstr "" "راهنمای جامع برای افرادی که علاقه مند به مشارکت در مستندات Python هستند." #: ../../bugs.rst:45 -#, fuzzy msgid "" "`Documentation Translations " "`_" @@ -154,19 +138,16 @@ msgstr "" "ترجمه شود، بارگذاری کنید." #: ../../bugs.rst:46 -#, fuzzy msgid "" "A list of GitHub pages for documentation translation and their primary " "contacts." msgstr "فهرستی از صفحات GitHub برای ترجمه مستندات و اطلاعات تماس اصلی آن ها." #: ../../bugs.rst:52 -#, fuzzy msgid "Using the Python issue tracker" msgstr "استفاده از پیگیری کننده مشکلات پایتون" #: ../../bugs.rst:54 -#, fuzzy msgid "" "Issue reports for Python itself should be submitted via the GitHub issues " "tracker (https://github.com/python/cpython/issues). The GitHub issues " @@ -179,7 +160,6 @@ msgstr "" "برای توسعه دهندگان ارسال کنید." #: ../../bugs.rst:59 -#, fuzzy msgid "" "The first step in filing a report is to determine whether the problem has " "already been reported. The advantage in doing so, aside from saving the " @@ -197,7 +177,6 @@ msgstr "" " باکس جستجو در بالای صفحه را جهت جستجو در ردیاب استفاده کنید." #: ../../bugs.rst:66 -#, fuzzy msgid "" "If the problem you're reporting is not already in the list, log in to " "GitHub. If you don't already have a GitHub account, create a new account " @@ -209,7 +188,6 @@ msgstr "" "ارسال گزارش باگ به صورت ناشناس امکان پذیر نیست." #: ../../bugs.rst:71 -#, fuzzy msgid "" "Being now logged in, you can submit an issue. Click on the \"New issue\" " "button in the top bar to report a new issue." @@ -218,12 +196,10 @@ msgstr "" "جدید، روی دکمه \"New issue\" در نوار بالا کلیک کنید." #: ../../bugs.rst:74 -#, fuzzy msgid "The submission form has two fields, \"Title\" and \"Comment\"." msgstr "فرم ارسال شامل دو فیلد است، \"Title\" و \"Comment\"." #: ../../bugs.rst:76 -#, fuzzy msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "fewer than ten words is good." @@ -232,7 +208,6 @@ msgstr "" "است." #: ../../bugs.rst:79 -#, fuzzy msgid "" "In the \"Comment\" field, describe the problem in detail, including what you" " expected to happen and what did happen. Be sure to include whether any " @@ -245,7 +220,6 @@ msgstr "" "استفاده می کردید (شامل اطلاعات مربوط به نسخه در صورت لزوم)." #: ../../bugs.rst:84 -#, fuzzy msgid "" "Each issue report will be reviewed by a developer who will determine what " "needs to be done to correct the problem. You will receive an update each " @@ -256,7 +230,6 @@ msgstr "" "خواهید کرد." #: ../../bugs.rst:91 -#, fuzzy msgid "" "`How to Report Bugs Effectively " "`_" @@ -266,7 +239,6 @@ msgstr "" "ترجمه کنم." #: ../../bugs.rst:92 -#, fuzzy msgid "" "Article which goes into some detail about how to create a useful bug report." " This describes what kind of information is useful and why it is useful." @@ -276,7 +248,6 @@ msgstr "" "مفید می باشند." #: ../../bugs.rst:95 -#, fuzzy msgid "" "`Bug Writing Guidelines `_" @@ -285,7 +256,6 @@ msgstr "" "برای ترجمه ارسال کنید." #: ../../bugs.rst:96 -#, fuzzy msgid "" "Information about writing a good bug report. Some of this is specific to " "the Mozilla project, but describes general good practices." @@ -294,12 +264,10 @@ msgstr "" " پروژه موزیلا است، اما اصول کلی خوبی را توصیف می کند." #: ../../bugs.rst:102 -#, fuzzy msgid "Getting started contributing to Python yourself" msgstr "شروع به مشارکت در پایتون توسط خودتان" #: ../../bugs.rst:104 -#, fuzzy msgid "" "Beyond just reporting bugs that you find, you are also welcome to submit " "patches to fix them. You can find more information on how to get started " diff --git a/library/functions.po b/library/functions.po index a18cad888..40151ee65 100644 --- a/library/functions.po +++ b/library/functions.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../library/functions.rst:5 ../../library/functions.rst:11 -#, fuzzy msgid "Built-in Functions" msgstr "توابع داخلی" #: ../../library/functions.rst:7 -#, fuzzy msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." @@ -36,464 +33,372 @@ msgstr "" " ها به ترتیب حروف الفبا در اینجا فهرست شده اند." #: ../../library/functions.rst:0 -#, fuzzy msgid "**A**" msgstr "**A**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`abs`" msgstr ":func:`abs`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`aiter`" msgstr ":func:`aiter`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`all`" msgstr ":func:`all`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`anext`" msgstr ":func:`anext`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`any`" msgstr ":func:`any`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`ascii`" msgstr ":func:`ascii`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**B**" msgstr "**B**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`bin`" msgstr "" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`bool`" msgstr ":func:`bool`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`breakpoint`" msgstr ":func:`breakpoint`" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-bytearray|_" msgstr "|func-bytearray|_" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-bytes|_" msgstr "|func-bytes|_" #: ../../library/functions.rst:0 -#, fuzzy msgid "**C**" msgstr "**C**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`callable`" msgstr ":func:`callable`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`chr`" msgstr ":func:`chr`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`classmethod`" msgstr ":func:`classmethod`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`compile`" msgstr ":func:`compile`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`complex`" msgstr ":func:`complex`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**D**" msgstr "**D**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`delattr`" msgstr ":func:`delattr`" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-dict|_" msgstr "|func-dict|_" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`dir`" msgstr ":func:`dir`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`divmod`" msgstr ":func:`divmod`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**E**" msgstr "**E**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`enumerate`" msgstr ":func:`enumerate`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`eval`" msgstr ":func:`eval`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`exec`" msgstr ":func:`exec`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**F**" msgstr "**F**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`filter`" msgstr ":func:`filter`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`float`" msgstr ":func:`float`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`format`" msgstr ":func:`format`" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-frozenset|_" msgstr "|func-frozenset|_" #: ../../library/functions.rst:0 -#, fuzzy msgid "**G**" msgstr "**G**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`getattr`" msgstr ":func:`getattr`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`globals`" msgstr ":func:`globals`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**H**" msgstr "**H**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`hasattr`" msgstr ":func:`hasattr`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`hash`" msgstr ":func:`hash`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`help`" msgstr ":func:`help`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`hex`" msgstr ":func:`hex`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**I**" msgstr "**I**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`id`" msgstr ":func:`id`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`input`" msgstr ":func:`input`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`int`" msgstr ":func:`int`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`isinstance`" msgstr ":func:`isinstance`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`issubclass`" msgstr ":func:`issubclass`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`iter`" msgstr ":func:`iter`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**L**" msgstr "**L**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`len`" msgstr ":func:`len`" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-list|_" msgstr "|func-list|_" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`locals`" msgstr ":func:`locals`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**M**" msgstr "**M**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`map`" msgstr ":func:`map`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`max`" msgstr ":func:`max`" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-memoryview|_" msgstr "|func-memoryview|_" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`min`" msgstr ":func:`min`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**N**" msgstr "**N**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`next`" msgstr ":func:`next`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**O**" msgstr "**O**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`object`" msgstr ":func:`object`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`oct`" msgstr ":func:`oct`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`open`" msgstr ":func:`open`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`ord`" msgstr ":func:`ord`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**P**" msgstr "**P**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`pow`" msgstr ":func:`pow`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`print`" msgstr ":func:`print`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`property`" msgstr ":func:`property`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**R**" msgstr "" "\n" "**R**" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-range|_" msgstr "|func-range|_" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`repr`" msgstr ":func:`repr`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`reversed`" msgstr ":func:`reversed`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`round`" msgstr ":func:`round`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**S**" msgstr "**S**" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-set|_" msgstr "" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`setattr`" msgstr ":func:`setattr`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`slice`" msgstr ":func:`slice`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`sorted`" msgstr ":func:`sorted`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`staticmethod`" msgstr ":func:`staticmethod`" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-str|_" msgstr "" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`sum`" msgstr ":func:`sum`" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`super`" msgstr ":func:`super`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**T**" msgstr "**T**" #: ../../library/functions.rst:0 -#, fuzzy msgid "|func-tuple|_" msgstr "|func-tuple|_" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`type`" msgstr ":func:`type`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**V**" msgstr "**V**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`vars`" msgstr ":func:`vars`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**Z**" msgstr "**Z**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`zip`" msgstr ":func:`zip`" #: ../../library/functions.rst:0 -#, fuzzy msgid "**_**" msgstr "**_**" #: ../../library/functions.rst:0 -#, fuzzy msgid ":func:`__import__`" msgstr ":func:`__import__`" #: ../../library/functions.rst:59 -#, fuzzy msgid "" "Return the absolute value of a number. The argument may be an integer, a " "floating-point number, or an object implementing :meth:`~object.__abs__`. If" @@ -504,7 +409,6 @@ msgstr "" " استدلال یک عدد مختلط باشد، بزرگی آن بازگردانده می شود." #: ../../library/functions.rst:67 -#, fuzzy msgid "" "Return an :term:`asynchronous iterator` for an :term:`asynchronous " "iterable`. Equivalent to calling ``x.__aiter__()``." @@ -513,12 +417,10 @@ msgstr "" "iterable`. معادل فراخوانی ``x.__aiter__()`` است." #: ../../library/functions.rst:70 -#, fuzzy msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." msgstr "توجه: برخلاف :func:`iter`، :func:`aiter` نسخه دو آرگومانی ندارد." #: ../../library/functions.rst:76 -#, fuzzy msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" @@ -527,7 +429,6 @@ msgstr "" "``True`` را برمی گرداند. معادل با::" #: ../../library/functions.rst:79 -#, fuzzy msgid "" "def all(iterable):\n" " for element in iterable:\n" @@ -542,7 +443,6 @@ msgstr "" " return True" #: ../../library/functions.rst:89 -#, fuzzy msgid "" "When awaited, return the next item from the given :term:`asynchronous " "iterator`, or *default* if given and the iterator is exhausted." @@ -551,14 +451,12 @@ msgstr "" "شده برگردانید، یا *default* اگر داده شده و پیمایش گر تمام شده باشد." #: ../../library/functions.rst:92 -#, fuzzy msgid "" "This is the async variant of the :func:`next` builtin, and behaves " "similarly." msgstr "این نسخه ناهمگام از :func:`next` ساخته شده و به طور مشابه عمل می کند." #: ../../library/functions.rst:95 -#, fuzzy msgid "" "This calls the :meth:`~object.__anext__` method of *async_iterator*, " "returning an :term:`awaitable`. Awaiting this returns the next value of the " @@ -571,7 +469,6 @@ msgstr "" "می شود و در غیر این صورت :exc:`StopAsyncIteration` برانگیخته می شود." #: ../../library/functions.rst:104 -#, fuzzy msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" @@ -580,7 +477,6 @@ msgstr "" "خالی باشد، ``False`` را برگردانید. معادل با::" #: ../../library/functions.rst:107 -#, fuzzy msgid "" "def any(iterable):\n" " for element in iterable:\n" @@ -595,7 +491,6 @@ msgstr "" " return False" #: ../../library/functions.rst:116 -#, fuzzy msgid "" "As :func:`repr`, return a string containing a printable representation of an" " object, but escape the non-ASCII characters in the string returned by " @@ -608,7 +503,6 @@ msgstr "" "توسط :func:`repr` در پایتون 2 برگردانده می شود را تولید می کند." #: ../../library/functions.rst:124 -#, fuzzy msgid "" "Convert an integer number to a binary string prefixed with \"0b\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " @@ -621,7 +515,6 @@ msgstr "" "برخی مثال ها:" #: ../../library/functions.rst:134 -#, fuzzy msgid "" "If the prefix \"0b\" is desired or not, you can use either of the following " "ways." @@ -631,12 +524,10 @@ msgstr "" #: ../../library/functions.rst:141 ../../library/functions.rst:942 #: ../../library/functions.rst:1323 -#, fuzzy msgid "See also :func:`format` for more information." msgstr "برای اطلاعات بیشتر به :func:`format` مراجعه کنید." #: ../../library/functions.rst:146 -#, fuzzy msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. The argument is " "converted using the standard :ref:`truth testing procedure `. If the " @@ -654,12 +545,10 @@ msgstr "" ":ref:`typebool`)." #: ../../library/functions.rst:156 ../../library/functions.rst:807 -#, fuzzy msgid "The parameter is now positional-only." msgstr "این پارامتر اکنون فقط به صورت موقعیتی می باشد." #: ../../library/functions.rst:161 -#, fuzzy msgid "" "This function drops you into the debugger at the call site. Specifically, " "it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " @@ -683,7 +572,6 @@ msgstr "" "در دسترس نباشد، این تابع :exc:`RuntimeError` را ایجاد خواهد کرد." #: ../../library/functions.rst:173 -#, fuzzy msgid "" "By default, the behavior of :func:`breakpoint` can be changed with the " ":envvar:`PYTHONBREAKPOINT` environment variable. See " @@ -694,7 +582,6 @@ msgstr "" ":func:`sys.breakpointhook` مراجعه کنید." #: ../../library/functions.rst:177 -#, fuzzy msgid "" "Note that this is not guaranteed if :func:`sys.breakpointhook` has been " "replaced." @@ -703,7 +590,6 @@ msgstr "" "جایگزین شده باشد." #: ../../library/functions.rst:180 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." @@ -712,7 +598,6 @@ msgstr "" "``breakpointhook`` ایجاد می کند." #: ../../library/functions.rst:190 -#, fuzzy msgid "" "Return a new array of bytes. The :class:`bytearray` class is a mutable " "sequence of integers in the range 0 <= x < 256. It has most of the usual " @@ -726,7 +611,6 @@ msgstr "" ":ref:`bytes-methods` مراجعه کنید." #: ../../library/functions.rst:195 -#, fuzzy msgid "" "The optional *source* parameter can be used to initialize the array in a few" " different ways:" @@ -735,7 +619,6 @@ msgstr "" " استفاده شود:" #: ../../library/functions.rst:198 -#, fuzzy msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " @@ -746,7 +629,6 @@ msgstr "" "از :meth:`str.encode` به بایت تبدیل می کند." #: ../../library/functions.rst:202 -#, fuzzy msgid "" "If it is an *integer*, the array will have that size and will be initialized" " with null bytes." @@ -755,7 +637,6 @@ msgstr "" "مقداردهی اولیه می شود." #: ../../library/functions.rst:205 -#, fuzzy msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " @@ -765,7 +646,6 @@ msgstr "" "بافر فقط خواندنی از شیء برای مقداردهی اولیه آرایه bytes استفاده خواهد شد." #: ../../library/functions.rst:208 -#, fuzzy msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." @@ -774,17 +654,14 @@ msgstr "" "256`` باشد که به عنوان محتوای اولیه آرایه استفاده می شود." #: ../../library/functions.rst:211 -#, fuzzy msgid "Without an argument, an array of size 0 is created." msgstr "بدون آرگومان، یک آرایه با اندازه 0 ایجاد می شود." #: ../../library/functions.rst:213 -#, fuzzy msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." msgstr "همچنین ببینید :ref:`binaryseq` و :ref:`typebytearray`." #: ../../library/functions.rst:222 -#, fuzzy msgid "" "Return a new \"bytes\" object which is an immutable sequence of integers in " "the range ``0 <= x < 256``. :class:`bytes` is an immutable version of " @@ -797,26 +674,22 @@ msgstr "" "ایندکس بندی و برش است." #: ../../library/functions.rst:227 -#, fuzzy msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "بنابراین، آرگومان های سازنده مثل :func:`bytearray` تفسیر می شوند." #: ../../library/functions.rst:229 -#, fuzzy msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" "شیء های بایت همچنین می توانند با استفاده از لیترال ها ایجاد شوند، به " ":ref:`strings` مراجعه کنید." #: ../../library/functions.rst:231 -#, fuzzy msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" "همچنین ببینید :ref:`binaryseq`، :ref:`typebytes`، و :ref:`bytes-methods`." #: ../../library/functions.rst:236 -#, fuzzy msgid "" "Return :const:`True` if the *object* argument appears callable, " ":const:`False` if not. If this returns ``True``, it is still possible that " @@ -832,7 +705,6 @@ msgstr "" "متد :meth:`~object.__call__` داشته باشد." #: ../../library/functions.rst:242 -#, fuzzy msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." @@ -840,7 +712,6 @@ msgstr "" "این تابع ابتدا در پایتون 3.0 حذف شد و سپس در پایتون 3.2 بازگردانده شد." #: ../../library/functions.rst:249 -#, fuzzy msgid "" "Return the string representing a character whose Unicode code point is the " "integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " @@ -852,7 +723,6 @@ msgstr "" "``chr(8364)`` رشته ``'€'`` را برمی گرداند. این عملکرد معکوس :func:`ord` است." #: ../../library/functions.rst:253 -#, fuzzy msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." @@ -861,12 +731,10 @@ msgstr "" ":exc:`ValueError` زمانی که *i* خارج از آن محدوده باشد، ایجاد خواهد شد." #: ../../library/functions.rst:259 -#, fuzzy msgid "Transform a method into a class method." msgstr "تبدیل یک متد به یک متد کلاسی." #: ../../library/functions.rst:261 -#, fuzzy msgid "" "A class method receives the class as an implicit first argument, just like " "an instance method receives the instance. To declare a class method, use " @@ -877,7 +745,6 @@ msgstr "" "استفاده کنید:" #: ../../library/functions.rst:265 -#, fuzzy msgid "" "class C:\n" " @classmethod\n" @@ -888,7 +755,6 @@ msgstr "" " def f(cls, arg1, arg2): ..." #: ../../library/functions.rst:269 -#, fuzzy msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see " ":ref:`function` for details." @@ -897,7 +763,6 @@ msgstr "" ":ref:`function` مراجعه کنید." #: ../../library/functions.rst:272 -#, fuzzy msgid "" "A class method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``). The instance is ignored except for its " @@ -910,7 +775,6 @@ msgstr "" "عنوان آرگومان اول ضمنی ارسال می شود." #: ../../library/functions.rst:277 -#, fuzzy msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod` in this section. For more information on " @@ -921,7 +785,6 @@ msgstr "" " مورد متدهای کلاس، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:281 -#, fuzzy msgid "" "Class methods can now wrap other :term:`descriptors ` such as " ":func:`property`." @@ -930,7 +793,6 @@ msgstr "" ":func:`property` را پوشش دهند." #: ../../library/functions.rst:285 -#, fuzzy msgid "" "Class methods now inherit the method attributes " "(:attr:`~function.__module__`, :attr:`~function.__name__`, " @@ -943,7 +805,6 @@ msgstr "" "برند و دارای ویژگی جدید ``__wrapped__`` می باشند." #: ../../library/functions.rst:292 -#, fuzzy msgid "" "Class methods can no longer wrap other :term:`descriptors ` such" " as :func:`property`." @@ -952,7 +813,6 @@ msgstr "" ":func:`property` را بپیچند." #: ../../library/functions.rst:299 -#, fuzzy msgid "" "Compile the *source* into a code or AST object. Code objects can be " "executed by :func:`exec` or :func:`eval`. *source* can either be a normal " @@ -965,7 +825,6 @@ msgstr "" "درباره نحوه کار با اشیاء AST مراجعه کنید." #: ../../library/functions.rst:304 -#, fuzzy msgid "" "The *filename* argument should give the file from which the code was read; " "pass some recognizable value if it wasn't read from a file (``''`` " @@ -976,7 +835,6 @@ msgstr "" "``''`` استفاده می شود)." #: ../../library/functions.rst:308 -#, fuzzy msgid "" "The *mode* argument specifies what kind of code must be compiled; it can be " "``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " @@ -991,7 +849,6 @@ msgstr "" " شوند چاپ خواهند شد)." #: ../../library/functions.rst:314 -#, fuzzy msgid "" "The optional arguments *flags* and *dont_inherit* control which " ":ref:`compiler options ` should be activated and which " @@ -1016,7 +873,6 @@ msgstr "" "کامپایلر) در کد اطراف نادیده گرفته می شوند." #: ../../library/functions.rst:325 -#, fuzzy msgid "" "Compiler options and future statements are specified by bits which can be " "bitwise ORed together to specify multiple options. The bitfield required to " @@ -1035,7 +891,6 @@ msgstr "" "``PyCF_`` یافت می شود." #: ../../library/functions.rst:333 -#, fuzzy msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " @@ -1050,7 +905,6 @@ msgstr "" "یا ``2`` (docstrings نیز حذف می شوند)." #: ../../library/functions.rst:339 -#, fuzzy msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." @@ -1059,7 +913,6 @@ msgstr "" " و :exc:`ValueError` را اگر منبع شامل بایت های null باشد، برمی گرداند." #: ../../library/functions.rst:342 -#, fuzzy msgid "" "If you want to parse Python code into its AST representation, see " ":func:`ast.parse`." @@ -1068,7 +921,6 @@ msgstr "" "ببینید." #: ../../library/functions.rst:345 ../../library/functions.rst:347 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " @@ -1079,7 +931,6 @@ msgstr "" "شود." #: ../../library/functions.rst:353 -#, fuzzy msgid "" "When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " "mode, input must be terminated by at least one newline character. This is " @@ -1091,7 +942,6 @@ msgstr "" "تشخیص جملات ناقص و کامل در ماژول :mod:`code` است." #: ../../library/functions.rst:360 -#, fuzzy msgid "" "It is possible to crash the Python interpreter with a sufficiently " "large/complex string when compiling to an AST object due to stack depth " @@ -1102,7 +952,6 @@ msgstr "" "بیاندازید." #: ../../library/functions.rst:364 -#, fuzzy msgid "" "Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " "does not have to end in a newline anymore. Added the *optimize* parameter." @@ -1111,7 +960,6 @@ msgstr "" "لازم نیست با یک خط جدید پایان یابد. پارامتر *optimize* اضافه شده است." #: ../../library/functions.rst:368 -#, fuzzy msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -1120,7 +968,6 @@ msgstr "" "مشاهده می شدند." #: ../../library/functions.rst:372 -#, fuzzy msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." @@ -1130,7 +977,6 @@ msgstr "" "گذراند." #: ../../library/functions.rst:381 -#, fuzzy msgid "" "Convert a single string or number to a complex number, or create a complex " "number from real and imaginary parts." @@ -1140,12 +986,10 @@ msgstr "" #: ../../library/functions.rst:384 ../../library/functions.rst:752 #: ../../library/functions.rst:998 -#, fuzzy msgid "Examples:" msgstr "مثال ها:" #: ../../library/functions.rst:386 -#, fuzzy msgid "" ">>> complex('+1.23')\n" "(1.23+0j)\n" @@ -1182,7 +1026,6 @@ msgstr "" "(-۱.۲۳+۴.۵j)" #: ../../library/functions.rst:405 -#, fuzzy msgid "" "If the argument is a string, it must contain either a real part (in the same" " format as for :func:`float`) or an imaginary part (in the same format but " @@ -1208,7 +1051,6 @@ msgstr "" "پرانتزها و فاصله های ابتدایی و انتهایی:" #: ../../library/functions.rst:424 -#, fuzzy msgid "" "If the argument is a number, the constructor serves as a numeric conversion " "like :class:`int` and :class:`float`. For a general Python object ``x``, " @@ -1224,7 +1066,6 @@ msgstr "" "تعریف نشده باشد، سپس به :meth:`~object.__index__` بازمی گردد." #: ../../library/functions.rst:433 -#, fuzzy msgid "" "If two arguments are provided or keyword arguments are used, each argument " "may be any numeric type (including complex). If both arguments are real " @@ -1243,23 +1084,19 @@ msgstr "" "استفاده می شود." #: ../../library/functions.rst:443 -#, fuzzy msgid "If all arguments are omitted, returns ``0j``." msgstr "اگر همهٔ آرگومان ها حذف شده باشند، ``0j`` را برمی گرداند." #: ../../library/functions.rst:445 -#, fuzzy msgid "The complex type is described in :ref:`typesnumeric`." msgstr "نوع complex در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:447 ../../library/functions.rst:804 #: ../../library/functions.rst:1047 -#, fuzzy msgid "Grouping digits with underscores as in code literals is allowed." msgstr "از خط تیره برای جداسازی اعداد در نمایه های کد می توان استفاده کرد." #: ../../library/functions.rst:450 -#, fuzzy msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and " ":meth:`~object.__float__` are not defined." @@ -1268,7 +1105,6 @@ msgstr "" ":meth:`~object.__float__` تعریف نشده باشند." #: ../../library/functions.rst:457 -#, fuzzy msgid "" "This is a relative of :func:`setattr`. The arguments are an object and a " "string. The string must be the name of one of the object's attributes. The" @@ -1283,7 +1119,6 @@ msgstr "" "پایتون باشد (به :func:`setattr` مراجعه کنید)." #: ../../library/functions.rst:470 -#, fuzzy msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this " @@ -1293,7 +1128,6 @@ msgstr "" " مربوط به این کلاس به :class:`dict` و :ref:`typesmapping` مراجعه کنید." #: ../../library/functions.rst:473 -#, fuzzy msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and " ":class:`tuple` classes, as well as the :mod:`collections` module." @@ -1302,7 +1136,6 @@ msgstr "" ":class:`tuple`، و همچنین ماژول :mod:`collections` مراجعه کنید." #: ../../library/functions.rst:480 -#, fuzzy msgid "" "Without arguments, return the list of names in the current local scope. " "With an argument, attempt to return a list of valid attributes for that " @@ -1313,7 +1146,6 @@ msgstr "" "معتبر برای آن شی را برگرداند." #: ../../library/functions.rst:483 -#, fuzzy msgid "" "If the object has a method named :meth:`~object.__dir__`, this method will " "be called and must return the list of attributes. This allows objects that " @@ -1328,7 +1160,6 @@ msgstr "" ":func:`dir` را سفارشی سازی کنند." #: ../../library/functions.rst:490 -#, fuzzy msgid "" "If the object does not provide :meth:`~object.__dir__`, the function tries " "its best to gather information from the object's :attr:`~object.__dict__` " @@ -1343,7 +1174,6 @@ msgstr "" "نادرست باشد." #: ../../library/functions.rst:496 -#, fuzzy msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -1353,14 +1183,12 @@ msgstr "" "کند، زیرا سعی دارد اطلاعات مرتبط تر (و نه کامل) را تولید کند:" #: ../../library/functions.rst:500 -#, fuzzy msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." msgstr "اگر شیء یک شیء ماژول باشد، لیست شامل نام های ویژگی های ماژول است." #: ../../library/functions.rst:503 -#, fuzzy msgid "" "If the object is a type or class object, the list contains the names of its " "attributes, and recursively of the attributes of its bases." @@ -1369,7 +1197,6 @@ msgstr "" "بازگشتی شامل ویژگی های مبناهای آن می باشد." #: ../../library/functions.rst:506 -#, fuzzy msgid "" "Otherwise, the list contains the object's attributes' names, the names of " "its class's attributes, and recursively of the attributes of its class's " @@ -1379,12 +1206,10 @@ msgstr "" " و به صورت بازگشتی ویژگی های کلاس های پایه آن کلاس خواهد بود." #: ../../library/functions.rst:510 -#, fuzzy msgid "The resulting list is sorted alphabetically. For example:" msgstr "لیست نهایی به صورت حروف الفبا مرتب می شود. برای مثال:" #: ../../library/functions.rst:530 -#, fuzzy msgid "" "Because :func:`dir` is supplied primarily as a convenience for use at an " "interactive prompt, it tries to supply an interesting set of names more than" @@ -1399,7 +1224,6 @@ msgstr "" "آرگومان یک کلاس است، صفات متاکلاس در لیست نتیجه نیستند." #: ../../library/functions.rst:540 -#, fuzzy msgid "" "Take two (non-complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -1419,7 +1243,6 @@ msgstr "" "b`` غیر صفر باشد همان علامت *b* را دارد، و ``0 <= abs(a % b) < abs(b)``." #: ../../library/functions.rst:552 -#, fuzzy msgid "" "Return an enumerate object. *iterable* must be a sequence, an " ":term:`iterator`, or some other object which supports iteration. The " @@ -1434,12 +1257,10 @@ msgstr "" "از تکرار بر روی *iterable* به دست می آیند را بازمی گرداند." #: ../../library/functions.rst:564 -#, fuzzy msgid "Equivalent to::" msgstr "معادل با:" #: ../../library/functions.rst:566 -#, fuzzy msgid "" "def enumerate(iterable, start=0):\n" " n = start\n" @@ -1454,47 +1275,38 @@ msgstr "" " n += 1" #: ../../library/functions.rst:0 -#, fuzzy msgid "Parameters" msgstr "پارامترها" #: ../../library/functions.rst:576 -#, fuzzy msgid "A Python expression." msgstr "یک عبارت Python." #: ../../library/functions.rst:580 -#, fuzzy msgid "The global namespace (default: ``None``)." msgstr "فضای نام سراسری (پیش فرض: ``None``)." #: ../../library/functions.rst:584 -#, fuzzy msgid "The local namespace (default: ``None``)." msgstr "فضای نام محلی (پیش فرض: ``None``)." #: ../../library/functions.rst:0 -#, fuzzy msgid "Returns" msgstr "بازمی گرداند" #: ../../library/functions.rst:588 -#, fuzzy msgid "The result of the evaluated expression." msgstr "نتیجه ی عبارت ارزیابی شده." #: ../../library/functions.rst:0 -#, fuzzy msgid "raises" msgstr "بالا می برد" #: ../../library/functions.rst:589 -#, fuzzy msgid "Syntax errors are reported as exceptions." msgstr "خطاهای نحوی به صورت استثنا گزارش می شوند." #: ../../library/functions.rst:593 ../../library/functions.rst:654 -#, fuzzy msgid "" "This function executes arbitrary code. Calling it with user-supplied input " "may lead to security vulnerabilities." @@ -1503,7 +1315,6 @@ msgstr "" "ارائه شده است ممکن است منجر به آسیب پذیری های امنیتی شود." #: ../../library/functions.rst:596 -#, fuzzy msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1537,12 +1348,10 @@ msgstr "" ":keyword:`nonlocal`)." #: ../../library/functions.rst:612 -#, fuzzy msgid "Example:" msgstr "مثال:" #: ../../library/functions.rst:618 -#, fuzzy msgid "" "This function can also be used to execute arbitrary code objects (such as " "those created by :func:`compile`). In this case, pass a code object instead" @@ -1556,7 +1365,6 @@ msgstr "" "بود." #: ../../library/functions.rst:623 -#, fuzzy msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions return the " @@ -1569,7 +1377,6 @@ msgstr "" " باشد." #: ../../library/functions.rst:628 -#, fuzzy msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." @@ -1578,7 +1385,6 @@ msgstr "" "می شوند." #: ../../library/functions.rst:631 -#, fuzzy msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings" " with expressions containing only literals." @@ -1588,7 +1394,6 @@ msgstr "" #: ../../library/functions.rst:634 ../../library/functions.rst:636 #: ../../library/functions.rst:696 ../../library/functions.rst:698 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." @@ -1597,14 +1402,12 @@ msgstr "" "برمی انگیزد. رویدادهای کامپایل کد نیز ممکن است برانگیخته شوند." #: ../../library/functions.rst:641 ../../library/functions.rst:718 -#, fuzzy msgid "The *globals* and *locals* arguments can now be passed as keywords." msgstr "" "آرگومان های *globals* و *locals* اکنون می توانند به صورت کلیدواژه ها ارسال " "شوند." #: ../../library/functions.rst:645 ../../library/functions.rst:722 -#, fuzzy msgid "" "The semantics of the default *locals* namespace have been adjusted as " "described for the :func:`locals` builtin." @@ -1613,7 +1416,6 @@ msgstr "" "توصیف شده تعدیل شده است." #: ../../library/functions.rst:657 -#, fuzzy msgid "" "This function supports dynamic execution of Python code. *source* must be " "either a string or a code object. If it is a string, the string is parsed " @@ -1636,7 +1438,6 @@ msgstr "" "استفاده نشوند. مقدار بازگشتی ``None`` است." #: ../../library/functions.rst:668 -#, fuzzy msgid "" "In all cases, if the optional parts are omitted, the code is executed in the" " current scope. If only *globals* is provided, it must be a dictionary (and" @@ -1654,7 +1455,6 @@ msgstr "" "سطح ماژول، سراسری ها و محلی ها یک دیکشنری هستند." #: ../../library/functions.rst:678 -#, fuzzy msgid "" "When ``exec`` gets two separate objects as *globals* and *locals*, the code " "will be executed as if it were embedded in a class definition. This means " @@ -1670,7 +1470,6 @@ msgstr "" "شوند)." #: ../../library/functions.rst:684 -#, fuzzy msgid "" "If the *globals* dictionary does not contain a value for the key " "``__builtins__``, a reference to the dictionary of the built-in module " @@ -1686,7 +1485,6 @@ msgstr "" "ساختارهای داخلی در کد اجرا شده در دسترس هستند." #: ../../library/functions.rst:690 -#, fuzzy msgid "" "The *closure* argument specifies a closure--a tuple of cellvars. It's only " "valid when the *object* is a code object containing :term:`free (closure) " @@ -1699,7 +1497,6 @@ msgstr "" ":attr:`~codeobject.co_freevars` شی کد مطابقت داشته باشد." #: ../../library/functions.rst:703 -#, fuzzy msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current" " global and local namespace, respectively, which may be useful to pass " @@ -1710,7 +1507,6 @@ msgstr "" "دوم و سوم به :func:`exec` مفید باشند." #: ../../library/functions.rst:709 -#, fuzzy msgid "" "The default *locals* act as described for function :func:`locals` below. " "Pass an explicit *locals* dictionary if you need to see effects of the code " @@ -1721,12 +1517,10 @@ msgstr "" "بازگشت تابع :func:`exec` ببینید، یک دیکشنری *locals* صریح ارسال کنید." #: ../../library/functions.rst:713 -#, fuzzy msgid "Added the *closure* parameter." msgstr "پارامتر *closure* اضافه شد." #: ../../library/functions.rst:728 -#, fuzzy msgid "" "Construct an iterator from those elements of *iterable* for which *function*" " is true. *iterable* may be either a sequence, a container which supports " @@ -1739,7 +1533,6 @@ msgstr "" "شود، یعنی همه عناصر *iterable* که نادرست هستند حذف می شوند." #: ../../library/functions.rst:734 -#, fuzzy msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " @@ -1752,7 +1545,6 @@ msgstr "" "با ``None`` باشد." #: ../../library/functions.rst:739 -#, fuzzy msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* is false." @@ -1761,12 +1553,10 @@ msgstr "" "برمی گرداند که برای آن ها *function* نادرست است." #: ../../library/functions.rst:750 -#, fuzzy msgid "Return a floating-point number constructed from a number or a string." msgstr "بازگشت یک عدد اعشاری که از یک عدد یا یک رشته ساخته شده است." #: ../../library/functions.rst:754 -#, fuzzy msgid "" ">>> float('+1.23')\n" "1.23\n" @@ -1791,7 +1581,6 @@ msgstr "" "-inf" #: ../../library/functions.rst:767 -#, fuzzy msgid "" "If the argument is a string, it should contain a decimal number, optionally " "preceded by a sign, and optionally embedded in whitespace. The optional " @@ -1810,7 +1599,6 @@ msgstr "" "کاراکترهای فضای خالی اول و آخر حذف شدند:" #: ../../library/functions.rst:788 -#, fuzzy msgid "" "Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " "and \"iNfINity\" are all acceptable spellings for positive infinity." @@ -1820,7 +1608,6 @@ msgstr "" "هستند." #: ../../library/functions.rst:791 -#, fuzzy msgid "" "Otherwise, if the argument is an integer or a floating-point number, a " "floating-point number with the same value (within Python's floating-point " @@ -1833,7 +1620,6 @@ msgstr "" "خواهد شد." #: ../../library/functions.rst:796 -#, fuzzy msgid "" "For a general Python object ``x``, ``float(x)`` delegates to " "``x.__float__()``. If :meth:`~object.__float__` is not defined then it " @@ -1844,17 +1630,14 @@ msgstr "" ":meth:`~object.__index__` باز می گردد." #: ../../library/functions.rst:800 -#, fuzzy msgid "If no argument is given, ``0.0`` is returned." msgstr "اگر هیچ آرگومانی داده نشود، ``0.0`` بازگردانده می شود." #: ../../library/functions.rst:802 -#, fuzzy msgid "The float type is described in :ref:`typesnumeric`." msgstr "نوع float در :ref:`typesnumeric` توضیح داده شده است." #: ../../library/functions.rst:810 -#, fuzzy msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " "defined." @@ -1863,7 +1646,6 @@ msgstr "" ":meth:`~object.__index__` بازگشت می کند." #: ../../library/functions.rst:820 -#, fuzzy msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1876,7 +1658,6 @@ msgstr "" "مورد استفاده قرار می گیرد: :ref:`formatspec`." #: ../../library/functions.rst:825 -#, fuzzy msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1885,7 +1666,6 @@ msgstr "" "فراخوانی :func:`str(value) ` به دست می آید." #: ../../library/functions.rst:828 -#, fuzzy msgid "" "A call to ``format(value, format_spec)`` is translated to " "``type(value).__format__(value, format_spec)`` which bypasses the instance " @@ -1902,7 +1682,6 @@ msgstr "" "مقدار بازگشتی رشته نباشند." #: ../../library/functions.rst:835 -#, fuzzy msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1911,7 +1690,6 @@ msgstr "" "اگر *format_spec* یک رشته خالی نباشد." #: ../../library/functions.rst:844 -#, fuzzy msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and " @@ -1922,7 +1700,6 @@ msgstr "" "به این کلاس به :class:`frozenset` و :ref:`types-set` مراجعه کنید." #: ../../library/functions.rst:848 -#, fuzzy msgid "" "For other containers see the built-in :class:`set`, :class:`list`, " ":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" @@ -1933,7 +1710,6 @@ msgstr "" "کنید." #: ../../library/functions.rst:856 -#, fuzzy msgid "" "Return the value of the named attribute of *object*. *name* must be a " "string. If the string is the name of one of the object's attributes, the " @@ -1950,7 +1726,6 @@ msgstr "" "پایتون باشد (به :func:`setattr` مراجعه کنید)." #: ../../library/functions.rst:865 -#, fuzzy msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes" @@ -1962,7 +1737,6 @@ msgstr "" "با دو خط تیره آغاز می شوند) را برای بازیابی با :func:`getattr` تغییر دهید." #: ../../library/functions.rst:873 -#, fuzzy msgid "" "Return the dictionary implementing the current module namespace. For code " "within functions, this is set when the function is defined and remains the " @@ -1973,7 +1747,6 @@ msgstr "" "بدون توجه به محلی که تابع فراخوانی می شود، ثابت می ماند." #: ../../library/functions.rst:880 -#, fuzzy msgid "" "The arguments are an object and a string. The result is ``True`` if the " "string is the name of one of the object's attributes, ``False`` if not. " @@ -1986,7 +1759,6 @@ msgstr "" ":exc:`AttributeError` ایجاد می شود یا خیر.)" #: ../../library/functions.rst:888 -#, fuzzy msgid "" "Return the hash value of the object (if it has one). Hash values are " "integers. They are used to quickly compare dictionary keys during a " @@ -1999,7 +1771,6 @@ msgstr "" "هستند (حتی اگر از انواع مختلف باشند، مانند 1 و 1.0)." #: ../../library/functions.rst:895 -#, fuzzy msgid "" "For objects with custom :meth:`~object.__hash__` methods, note that " ":func:`hash` truncates the return value based on the bit width of the host " @@ -2010,7 +1781,6 @@ msgstr "" "کوتاه می کند." #: ../../library/functions.rst:902 -#, fuzzy msgid "" "Invoke the built-in help system. (This function is intended for interactive" " use.) If no argument is given, the interactive help system starts on the " @@ -2028,7 +1798,6 @@ msgstr "" "آن شیء تولید می شود." #: ../../library/functions.rst:909 -#, fuzzy msgid "" "Note that if a slash(/) appears in the parameter list of a function when " "invoking :func:`help`, it means that the parameters prior to the slash are " @@ -2041,13 +1810,11 @@ msgstr "" "only parameters ` مراجعه کنید." #: ../../library/functions.rst:914 -#, fuzzy msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "این تابع توسط ماژول :mod:`site` به فضای نام داخلی اضافه شده است." #: ../../library/functions.rst:916 -#, fuzzy msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures" " for callables are now more comprehensive and consistent." @@ -2056,7 +1823,6 @@ msgstr "" "برای فراخوان ها اکنون جامع تر و سازگارتر هستند." #: ../../library/functions.rst:923 -#, fuzzy msgid "" "Convert an integer number to a lowercase hexadecimal string prefixed with " "\"0x\". If *x* is not a Python :class:`int` object, it has to define an " @@ -2067,7 +1833,6 @@ msgstr "" ":meth:`~object.__index__` تعریف کند که یک عدد صحیح را برگرداند. چند مثال:" #: ../../library/functions.rst:932 -#, fuzzy msgid "" "If you want to convert an integer number to an uppercase or lower " "hexadecimal string with prefix or not, you can use either of the following " @@ -2077,7 +1842,6 @@ msgstr "" "پیشوند یا بدون آن تبدیل کنید، می توانید از روش های زیر استفاده کنید:" #: ../../library/functions.rst:944 -#, fuzzy msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using" " a base of 16." @@ -2086,7 +1850,6 @@ msgstr "" " استفاده از مبنای 16." #: ../../library/functions.rst:949 -#, fuzzy msgid "" "To obtain a hexadecimal string representation for a float, use the " ":meth:`float.hex` method." @@ -2095,7 +1858,6 @@ msgstr "" ":meth:`float.hex` استفاده کنید." #: ../../library/functions.rst:955 -#, fuzzy msgid "" "Return the \"identity\" of an object. This is an integer which is " "guaranteed to be unique and constant for this object during its lifetime. " @@ -2107,12 +1869,10 @@ msgstr "" "ندارند ممکن است مقدار :func:`id` یکسانی داشته باشند." #: ../../library/functions.rst:960 -#, fuzzy msgid "This is the address of the object in memory." msgstr "این آدرس شیء در حافظه است." #: ../../library/functions.rst:962 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." @@ -2121,7 +1881,6 @@ msgstr "" "گرداند." #: ../../library/functions.rst:968 -#, fuzzy msgid "" "If the *prompt* argument is present, it is written to standard output " "without a trailing newline. The function then reads a line from input, " @@ -2134,7 +1893,6 @@ msgstr "" ":exc:`EOFError` تولید می شود. مثال::" #: ../../library/functions.rst:973 -#, fuzzy msgid "" ">>> s = input('--> ')\n" "--> Monty Python's Flying Circus\n" @@ -2147,7 +1905,6 @@ msgstr "" "\"Monty Python's Flying Circus\"" #: ../../library/functions.rst:978 -#, fuzzy msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -2156,7 +1913,6 @@ msgstr "" " خواهد کرد تا ویژگی های ویرایش خط و تاریخچه پیشرفته ای را فراهم کند." #: ../../library/functions.rst:981 ../../library/functions.rst:983 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" @@ -2165,7 +1921,6 @@ msgstr "" "با آرگومان ``prompt`` ایجاد می کند." #: ../../library/functions.rst:986 ../../library/functions.rst:988 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." @@ -2174,7 +1929,6 @@ msgstr "" " از خواندن موفقیت آمیز ورودی ایجاد می کند." #: ../../library/functions.rst:995 -#, fuzzy msgid "" "Return an integer object constructed from a number or a string, or return " "``0`` if no arguments are given." @@ -2183,7 +1937,6 @@ msgstr "" "هیچ آرگومانی داده نشود، ``0`` را بازمی گرداند." #: ../../library/functions.rst:1000 -#, fuzzy msgid "" ">>> int(123.45)\n" "123\n" @@ -2212,7 +1965,6 @@ msgstr "" "115" #: ../../library/functions.rst:1015 -#, fuzzy msgid "" "If the argument defines :meth:`~object.__int__`, ``int(x)`` returns " "``x.__int__()``. If the argument defines :meth:`~object.__index__`, it " @@ -2227,7 +1979,6 @@ msgstr "" "صفر مدور می کند." #: ../../library/functions.rst:1021 -#, fuzzy msgid "" "If the argument is not a number or if *base* is given, then it must be a " "string, :class:`bytes`, or :class:`bytearray` instance representing an " @@ -2242,7 +1993,6 @@ msgstr "" "احاطه شده باشد، و خط زیرین های تکی در بین ارقام داشته باشد." #: ../../library/functions.rst:1027 -#, fuzzy msgid "" "A base-n integer string contains digits, each representing a value from 0 to" " n-1. The values 0--9 can be represented by any Unicode decimal digit. The " @@ -2268,12 +2018,10 @@ msgstr "" "``int('010', 8)`` قانونی هستند." #: ../../library/functions.rst:1038 -#, fuzzy msgid "The integer type is described in :ref:`typesnumeric`." msgstr "نوع عدد صحیح در :ref:`typesnumeric` توصیف شده است." #: ../../library/functions.rst:1040 -#, fuzzy msgid "" "If *base* is not an instance of :class:`int` and the *base* object has a " ":meth:`base.__index__ ` method, that method is called to " @@ -2287,12 +2035,10 @@ msgstr "" "` استفاده می کردند." #: ../../library/functions.rst:1050 -#, fuzzy msgid "The first parameter is now positional-only." msgstr "اولین پارامتر اکنون فقط موقعیتی است." #: ../../library/functions.rst:1053 -#, fuzzy msgid "" "Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " "defined." @@ -2301,12 +2047,10 @@ msgstr "" "بازمی گردد." #: ../../library/functions.rst:1056 -#, fuzzy msgid "The delegation to :meth:`~object.__trunc__` is deprecated." msgstr "واگذاری به :meth:`~object.__trunc__` منسوخ شده است." #: ../../library/functions.rst:1059 -#, fuzzy msgid "" ":class:`int` string inputs and string representations can be limited to help" " avoid denial of service attacks. A :exc:`ValueError` is raised when the " @@ -2317,7 +2061,6 @@ msgid "" msgstr "" #: ../../library/functions.rst:1069 -#, fuzzy msgid "" "Return ``True`` if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect, or :term:`virtual `) of *classinfo*. A class is " @@ -2363,7 +2104,6 @@ msgstr "" "شود." #: ../../library/functions.rst:1101 -#, fuzzy msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " @@ -2392,12 +2132,10 @@ msgstr "" "صورت مقدار بازگردانده خواهد شد." #: ../../library/functions.rst:1115 -#, fuzzy msgid "See also :ref:`typeiter`." msgstr "همچنین به :ref:`typeiter` مراجعه کنید." #: ../../library/functions.rst:1117 -#, fuzzy msgid "" "One useful application of the second form of :func:`iter` is to build a " "block-reader. For example, reading fixed-width blocks from a binary database" @@ -2408,7 +2146,6 @@ msgstr "" "به انتهای فایل برسید:" #: ../../library/functions.rst:1121 -#, fuzzy msgid "" "from functools import partial\n" "with open('mydata.db', 'rb') as f:\n" @@ -2421,7 +2158,6 @@ msgstr "" " process_block را روی block فراخوانی کنید" #: ../../library/functions.rst:1129 -#, fuzzy msgid "" "Return the length (the number of items) of an object. The argument may be a" " sequence (such as a string, bytes, tuple, list, or range) or a collection " @@ -2432,7 +2168,6 @@ msgstr "" " set، یا frozen set) باشد." #: ../../library/functions.rst:1135 -#, fuzzy msgid "" "``len`` raises :exc:`OverflowError` on lengths larger than " ":data:`sys.maxsize`, such as :class:`range(2 ** 100) `." @@ -2441,7 +2176,6 @@ msgstr "" ":data:`sys.maxsize`، مانند :class:`range(2 ** 100) `، ایجاد می کند." #: ../../library/functions.rst:1144 -#, fuzzy msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -2450,7 +2184,6 @@ msgstr "" " همان طور که در :ref:`typesseq-list` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1150 -#, fuzzy msgid "" "Return a mapping object representing the current local symbol table, with " "variable names as the keys, and their currently bound references as the " @@ -2461,7 +2194,6 @@ msgstr "" "مقدارها قرار داده شده اند." #: ../../library/functions.rst:1154 -#, fuzzy msgid "" "At module scope, as well as when using :func:`exec` or :func:`eval` with a " "single namespace, this function returns the same namespace as " @@ -2471,7 +2203,6 @@ msgstr "" "فضای نام واحد، این تابع همان فضای نام :func:`globals` را برمی گرداند." #: ../../library/functions.rst:1158 -#, fuzzy msgid "" "At class scope, it returns the namespace that will be passed to the " "metaclass constructor." @@ -2479,7 +2210,6 @@ msgstr "" "در سطح کلاس، فضای نامی که به سازنده متاکلاس ارسال خواهد شد را برمی گرداند." #: ../../library/functions.rst:1161 -#, fuzzy msgid "" "When using ``exec()`` or ``eval()`` with separate local and global " "arguments, it returns the local namespace passed in to the function call." @@ -2488,7 +2218,6 @@ msgstr "" "جداگانه، نام فضای محلی که در فراخوانی تابع ارسال شده است را برمی گرداند." #: ../../library/functions.rst:1164 -#, fuzzy msgid "" "In all of the above cases, each call to ``locals()`` in a given frame of " "execution will return the *same* mapping object. Changes made through the " @@ -2504,7 +2233,6 @@ msgstr "" "محتوای شیء نگاشت بازگشت داده شده فوراً تأثیر می گذارد." #: ../../library/functions.rst:1171 -#, fuzzy msgid "" "In an :term:`optimized scope` (including functions, generators, and " "coroutines), each call to ``locals()`` instead returns a fresh dictionary " @@ -2524,7 +2252,6 @@ msgstr "" " دیکشنری های بازگردانده شده قبلی *not* تأثیری نمی گذارد." #: ../../library/functions.rst:1180 -#, fuzzy msgid "" "Calling ``locals()`` as part of a comprehension in a function, generator, or" " coroutine is equivalent to calling it in the containing scope, except that " @@ -2539,7 +2266,6 @@ msgstr "" "شود." #: ../../library/functions.rst:1186 -#, fuzzy msgid "" "Calling ``locals()`` as part of a generator expression is equivalent to " "calling it in a nested generator function." @@ -2548,7 +2274,6 @@ msgstr "" "آن در یک تابع مولد تو در تو." #: ../../library/functions.rst:1189 -#, fuzzy msgid "" "The behaviour of ``locals()`` in a comprehension has been updated as " "described in :pep:`709`." @@ -2557,7 +2282,6 @@ msgstr "" "توضیح داده شده است." #: ../../library/functions.rst:1193 -#, fuzzy msgid "" "As part of :pep:`667`, the semantics of mutating the mapping objects " "returned from this function are now defined. The behavior in " @@ -2572,7 +2296,6 @@ msgstr "" "مانده است." #: ../../library/functions.rst:1203 -#, fuzzy msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterables* arguments are passed, " @@ -2590,7 +2313,6 @@ msgstr "" ":func:`itertools.starmap` مراجعه کنید." #: ../../library/functions.rst:1215 -#, fuzzy msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." @@ -2599,7 +2321,6 @@ msgstr "" "بازمی گرداند." #: ../../library/functions.rst:1218 -#, fuzzy msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The largest item in the iterable is returned. If two or more positional " @@ -2610,7 +2331,6 @@ msgstr "" "بزرگترین آرگومان مکانی بازگردانده می شود." #: ../../library/functions.rst:1223 ../../library/functions.rst:1261 -#, fuzzy msgid "" "There are two optional keyword-only arguments. The *key* argument specifies " "a one-argument ordering function like that used for :meth:`list.sort`. The " @@ -2625,7 +2345,6 @@ msgstr "" ":exc:`ValueError` ایجاد می شود." #: ../../library/functions.rst:1229 -#, fuzzy msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2638,17 +2357,14 @@ msgstr "" "iterable, key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1234 ../../library/functions.rst:1272 -#, fuzzy msgid "Added the *default* keyword-only parameter." msgstr "افزوده شدن پارامتر فقط-کلیدواژه *default*." #: ../../library/functions.rst:1237 ../../library/functions.rst:1275 -#, fuzzy msgid "The *key* can be ``None``." msgstr " *key* می تواند ``None`` باشد." #: ../../library/functions.rst:1245 -#, fuzzy msgid "" "Return a \"memory view\" object created from the given argument. See " ":ref:`typememoryview` for more information." @@ -2657,7 +2373,6 @@ msgstr "" "اطلاعات بیشتر به :ref:`typememoryview` مراجعه کنید." #: ../../library/functions.rst:1253 -#, fuzzy msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." @@ -2665,7 +2380,6 @@ msgstr "" "کوچکترین مورد را در یک iterable یا کوچکترینِ دو یا چند آرگومان بازمی گرداند." #: ../../library/functions.rst:1256 -#, fuzzy msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The smallest item in the iterable is returned. If two or more positional " @@ -2677,7 +2391,6 @@ msgstr "" "کوچک ترین آرگومان موضعی بازگردانده می شود." #: ../../library/functions.rst:1267 -#, fuzzy msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2690,7 +2403,6 @@ msgstr "" "key=keyfunc)`` سازگار است." #: ../../library/functions.rst:1282 -#, fuzzy msgid "" "Retrieve the next item from the :term:`iterator` by calling its " ":meth:`~iterator.__next__` method. If *default* is given, it is returned if" @@ -2702,7 +2414,6 @@ msgstr "" "برافراشته می شود." #: ../../library/functions.rst:1289 -#, fuzzy msgid "" "This is the ultimate base class of all other classes. It has methods that " "are common to all instances of Python classes. When the constructor is " @@ -2714,14 +2425,12 @@ msgstr "" "بدون ویژگی برمی گرداند. سازنده هیچ آرگومانی را قبول نمی کند." #: ../../library/functions.rst:1296 -#, fuzzy msgid "" ":class:`object` instances do *not* have :attr:`~object.__dict__` attributes," " so you can't assign arbitrary attributes to an instance of :class:`object`." msgstr "" #: ../../library/functions.rst:1303 -#, fuzzy msgid "" "Convert an integer number to an octal string prefixed with \"0o\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " @@ -2730,7 +2439,6 @@ msgid "" msgstr "" #: ../../library/functions.rst:1313 -#, fuzzy msgid "" "If you want to convert an integer number to an octal string either with the " "prefix \"0o\" or not, you can use either of the following ways." @@ -2739,7 +2447,6 @@ msgstr "" "تبدیل کنید، می توانید از یکی از روش های زیر استفاده کنید." #: ../../library/functions.rst:1330 -#, fuzzy msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more" @@ -2750,7 +2457,6 @@ msgstr "" "استفاده از این تابع، به :ref:`tut-files` مراجعه کنید." #: ../../library/functions.rst:1334 -#, fuzzy msgid "" "*file* is a :term:`path-like object` giving the pathname (absolute or " "relative to the current working directory) of the file to be opened or an " @@ -2765,7 +2471,6 @@ msgstr "" "*closefd* به ``False`` تنظیم شود.)" #: ../../library/functions.rst:1340 -#, fuzzy msgid "" "*mode* is an optional string that specifies the mode in which the file is " "opened. It defaults to ``'r'`` which means open for reading in text mode. " @@ -2789,89 +2494,72 @@ msgstr "" " دودویی استفاده کنید و *encoding* را مشخص نکنید.) حالت های موجود عبارتند از:" #: ../../library/functions.rst:1357 -#, fuzzy msgid "Character" msgstr "کاراکتر" #: ../../library/functions.rst:1357 -#, fuzzy msgid "Meaning" msgstr "معنی" #: ../../library/functions.rst:1359 -#, fuzzy msgid "``'r'``" msgstr "``'r'``" #: ../../library/functions.rst:1359 -#, fuzzy msgid "open for reading (default)" msgstr "باز برای خواندن (پیش فرض)" #: ../../library/functions.rst:1360 -#, fuzzy msgid "``'w'``" msgstr "``'w'``" #: ../../library/functions.rst:1360 -#, fuzzy msgid "open for writing, truncating the file first" msgstr "برای نوشتن، ابتدا فایل را کوتاه کنید." #: ../../library/functions.rst:1361 -#, fuzzy msgid "``'x'``" msgstr "متن مشخص نشده است برای ترجمه. لطفاً متن اصلی را برای ترجمه وارد کنید." #: ../../library/functions.rst:1361 -#, fuzzy msgid "open for exclusive creation, failing if the file already exists" msgstr "" "برای ایجاد انحصاری باز کنید، اگر فایل از قبل وجود داشته باشد، عملیات ناموفق " "خواهد بود." #: ../../library/functions.rst:1362 -#, fuzzy msgid "``'a'``" msgstr "``'a'``" #: ../../library/functions.rst:1362 -#, fuzzy msgid "open for writing, appending to the end of file if it exists" msgstr "باز کردن برای نوشتن، افزودن به انتهای فایل در صورت وجود فایل" #: ../../library/functions.rst:1363 -#, fuzzy msgid "``'b'``" msgstr "``'b'``" #: ../../library/functions.rst:1363 ../../library/functions.rst:1507 -#, fuzzy msgid "binary mode" msgstr "حالت دودویی" #: ../../library/functions.rst:1364 -#, fuzzy msgid "``'t'``" msgstr "``'t'``" #: ../../library/functions.rst:1364 -#, fuzzy msgid "text mode (default)" msgstr "حالت متنی (پیش فرض)" #: ../../library/functions.rst:1365 -#, fuzzy msgid "``'+'``" msgstr "``'+'``" #: ../../library/functions.rst:1365 -#, fuzzy msgid "open for updating (reading and writing)" msgstr "باز برای به روزرسانی (خواندن و نوشتن)" #: ../../library/functions.rst:1368 -#, fuzzy msgid "" "The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``). " "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and" @@ -2882,7 +2570,6 @@ msgstr "" "``'r+'`` و ``'r+b'`` فایل را بدون کوتاه کردن باز می کنند." #: ../../library/functions.rst:1372 -#, fuzzy msgid "" "As mentioned in the :ref:`io-overview`, Python distinguishes between binary " "and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " @@ -2901,7 +2588,6 @@ msgstr "" "*encoding* مشخص شده، اگر داده شود، رمزگشایی شده اند." #: ../../library/functions.rst:1382 -#, fuzzy msgid "" "Python doesn't depend on the underlying operating system's notion of text " "files; all the processing is done by Python itself, and is therefore " @@ -2911,7 +2597,6 @@ msgstr "" "ها توسط خود پایتون انجام می شود و بنابراین مستقل از پلتفرم است." #: ../../library/functions.rst:1386 -#, fuzzy msgid "" "*buffering* is an optional integer used to set the buffering policy. Pass 0" " to switch buffering off (only allowed in binary mode), 1 to select line " @@ -2936,7 +2621,6 @@ msgstr "" "*buffering* ارائه نشده، سیاست پیش فرض بافرینگ به صورت زیر کار می کند:" #: ../../library/functions.rst:1396 -#, fuzzy msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " "chosen using a heuristic trying to determine the underlying device's \"block" @@ -2950,7 +2634,6 @@ msgstr "" " خواهد بود." #: ../../library/functions.rst:1401 -#, fuzzy msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " @@ -2961,7 +2644,6 @@ msgstr "" "بالا برای فایل های باینری توصیف شد، استفاده می کنند." #: ../../library/functions.rst:1405 -#, fuzzy msgid "" "*encoding* is the name of the encoding used to decode or encode the file. " "This should only be used in text mode. The default encoding is platform " @@ -2976,7 +2658,6 @@ msgstr "" "کدگذاری های پشتیبانی شده به ماژول :mod:`codecs` مراجعه کنید." #: ../../library/functions.rst:1411 -#, fuzzy msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled—this cannot be used in binary mode. A variety of " @@ -2991,7 +2672,6 @@ msgstr "" "ثبت شده نیز معتبر است. نام های استاندارد شامل:" #: ../../library/functions.rst:1419 -#, fuzzy msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -3000,7 +2680,6 @@ msgstr "" "وجود داشته باشد. مقدار پیش فرض ``None`` همان اثر را دارد." #: ../../library/functions.rst:1423 -#, fuzzy msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to" " data loss." @@ -3009,7 +2688,6 @@ msgstr "" "خطاهای رمزگذاری می تواند به از دست رفتن داده ها منجر شود." #: ../../library/functions.rst:1426 -#, fuzzy msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -3018,7 +2696,6 @@ msgstr "" "های ناقص وجود دارد، درج شود." #: ../../library/functions.rst:1429 -#, fuzzy msgid "" "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " "code units ranging from U+DC80 to U+DCFF. These surrogate code units will " @@ -3032,7 +2709,6 @@ msgstr "" "ها استفاده شود. این روش برای پردازش فایل ها در یک کدگذاری ناشناخته مفید است." #: ../../library/functions.rst:1436 -#, fuzzy msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters" " not supported by the encoding are replaced with the appropriate XML " @@ -3043,7 +2719,6 @@ msgstr "" " جایگزین می شوند :samp:`&#{nnn};`." #: ../../library/functions.rst:1440 -#, fuzzy msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -3052,7 +2727,6 @@ msgstr "" "پایتون جایگزین می کند." #: ../../library/functions.rst:1443 -#, fuzzy msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -3061,7 +2735,6 @@ msgstr "" "پشتیبانی نشده را با توالی فرار ``\\N{...}`` جایگزین می کند." #: ../../library/functions.rst:1451 -#, fuzzy msgid "" "*newline* determines how to parse newline characters from the stream. It can" " be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " @@ -3072,7 +2745,6 @@ msgstr "" "به صورت زیر است:" #: ../../library/functions.rst:1455 -#, fuzzy msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -3091,7 +2763,6 @@ msgstr "" "خط بدون ترجمه به فراخوان بازگردانده می شود." #: ../../library/functions.rst:1463 -#, fuzzy msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, " @@ -3106,7 +2777,6 @@ msgstr "" "``'\\n'`` نوشته شده به رشته داده شده ترجمه می شود." #: ../../library/functions.rst:1469 -#, fuzzy msgid "" "If *closefd* is ``False`` and a file descriptor rather than a filename was " "given, the underlying file descriptor will be kept open when the file is " @@ -3119,7 +2789,6 @@ msgstr "" " فرض)؛ در غیر این صورت، خطا ایجاد خواهد شد." #: ../../library/functions.rst:1474 -#, fuzzy msgid "" "A custom opener can be used by passing a callable as *opener*. The " "underlying file descriptor for the file object is then obtained by calling " @@ -3134,12 +2803,10 @@ msgstr "" "ارسال ``None`` می شود)." #: ../../library/functions.rst:1480 -#, fuzzy msgid "The newly created file is :ref:`non-inheritable `." msgstr "فایل تازه ایجاد شده :ref:`non-inheritable ` است." #: ../../library/functions.rst:1482 -#, fuzzy msgid "" "The following example uses the :ref:`dir_fd ` parameter of the " ":func:`os.open` function to open a file relative to a given directory::" @@ -3148,7 +2815,6 @@ msgstr "" "کردن یک فایل نسبت به یک دایرکتوری داده شده استفاده می کند::" #: ../../library/functions.rst:1485 -#, fuzzy msgid "" ">>> import os\n" ">>> dir_fd = os.open('somedir', os.O_RDONLY)\n" @@ -3171,7 +2837,6 @@ msgstr "" ">>> os.close(dir_fd) # نگذارید یک فایل دیسکریپتور نشت کند" #: ../../library/functions.rst:1495 -#, fuzzy msgid "" "The type of :term:`file object` returned by the :func:`open` function " "depends on the mode. When :func:`open` is used to open a file in a text " @@ -3198,7 +2863,6 @@ msgstr "" ":class:`io.RawIOBase`، :class:`io.FileIO` است، بازگردانده می شود." #: ../../library/functions.rst:1516 -#, fuzzy msgid "" "See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, " @@ -3209,7 +2873,6 @@ msgstr "" ":mod:`tempfile` و :mod:`shutil`." #: ../../library/functions.rst:1520 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``path``," " ``mode``, ``flags``." @@ -3218,7 +2881,6 @@ msgstr "" "``mode``، ``flags`` ایجاد می کند." #: ../../library/functions.rst:1522 -#, fuzzy msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from" " the original call." @@ -3227,23 +2889,19 @@ msgstr "" "استنباط شده باشند." #: ../../library/functions.rst:1527 -#, fuzzy msgid "The *opener* parameter was added." msgstr "پارامتر *opener* اضافه شد." #: ../../library/functions.rst:1528 -#, fuzzy msgid "The ``'x'`` mode was added." msgstr "حالت ``'x'`` اضافه شد." #: ../../library/functions.rst:1529 -#, fuzzy msgid "" ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr ":exc:`IOError` قبلاً مطرح می شد، اکنون معادل :exc:`OSError` است." #: ../../library/functions.rst:1530 -#, fuzzy msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -3252,12 +2910,10 @@ msgstr "" "باشد، اکنون :exc:`FileExistsError` برانگیخته می شود." #: ../../library/functions.rst:1535 -#, fuzzy msgid "The file is now non-inheritable." msgstr "فایل اکنون غیرقابل ارث بری است." #: ../../library/functions.rst:1539 -#, fuzzy msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the function now retries the system call instead of raising an " @@ -3268,19 +2924,16 @@ msgstr "" "مجدداً امتحان می کند (برای دلایل مربوطه، به :pep:`475` مراجعه کنید)." #: ../../library/functions.rst:1542 -#, fuzzy msgid "The ``'namereplace'`` error handler was added." msgstr "مدبر خطای ``'namereplace'`` اضافه شد." #: ../../library/functions.rst:1546 -#, fuzzy msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" "پشتیبانی برای پذیرش اشیایی که :class:`os.PathLike` را پیاده سازی می کنند " "اضافه شد." #: ../../library/functions.rst:1547 -#, fuzzy msgid "" "On Windows, opening a console buffer may return a subclass of " ":class:`io.RawIOBase` other than :class:`io.FileIO`." @@ -3289,12 +2942,10 @@ msgstr "" " را به جای :class:`io.FileIO` برگرداند." #: ../../library/functions.rst:1550 -#, fuzzy msgid "The ``'U'`` mode has been removed." msgstr "حالت ``'U'`` حذف شده است." #: ../../library/functions.rst:1555 -#, fuzzy msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " @@ -3307,7 +2958,6 @@ msgstr "" "``8364`` را برمی گرداند. این عملکرد عکس :func:`chr` است." #: ../../library/functions.rst:1563 -#, fuzzy msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " "power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) %" @@ -3320,7 +2970,6 @@ msgstr "" "توان است: ``base**exp``." #: ../../library/functions.rst:1568 -#, fuzzy msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -3347,7 +2996,6 @@ msgstr "" "2.0)`` نتیجه ``81.0`` را برمی گرداند." #: ../../library/functions.rst:1580 -#, fuzzy msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " "also be of integer type and *mod* must be nonzero. If *mod* is present and " @@ -3362,13 +3010,11 @@ msgstr "" " معکوس *base* به پیمانه *mod* است." #: ../../library/functions.rst:1586 -#, fuzzy msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" "در اینجا یک مثال از محاسبه معکوس برای ``38`` مدولوی ``97`` ارائه شده است::" #: ../../library/functions.rst:1588 -#, fuzzy msgid "" ">>> pow(38, -1, mod=97)\n" "23\n" @@ -3381,7 +3027,6 @@ msgstr "" "True" #: ../../library/functions.rst:1593 -#, fuzzy msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the" " second argument to be negative, permitting computation of modular inverses." @@ -3390,7 +3035,6 @@ msgstr "" "آرگومان دوم منفی باشد، که این به محاسبه معکوس های مدولار کمک می کند." #: ../../library/functions.rst:1598 -#, fuzzy msgid "" "Allow keyword arguments. Formerly, only positional arguments were " "supported." @@ -3399,7 +3043,6 @@ msgstr "" "پشتیبانی می شدند." #: ../../library/functions.rst:1605 -#, fuzzy msgid "" "Print *objects* to the text stream *file*, separated by *sep* and followed " "by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " @@ -3410,7 +3053,6 @@ msgstr "" "به عنوان آرگومان های کلیدی ارائه شوند." #: ../../library/functions.rst:1609 -#, fuzzy msgid "" "All non-keyword arguments are converted to strings like :func:`str` does and" " written to the stream, separated by *sep* and followed by *end*. Both " @@ -3425,7 +3067,6 @@ msgstr "" " :func:`print` فقط *end* را خواهد نوشت." #: ../../library/functions.rst:1615 -#, fuzzy msgid "" "The *file* argument must be an object with a ``write(string)`` method; if it" " is not present or ``None``, :data:`sys.stdout` will be used. Since printed" @@ -3439,7 +3080,6 @@ msgstr "" " ``file.write(...)`` استفاده کنید." #: ../../library/functions.rst:1620 -#, fuzzy msgid "" "Output buffering is usually determined by *file*. However, if *flush* is " "true, the stream is forcibly flushed." @@ -3448,17 +3088,14 @@ msgstr "" "باشد، جریان به طور اجباری تخلیه می شود." #: ../../library/functions.rst:1624 -#, fuzzy msgid "Added the *flush* keyword argument." msgstr "آرگومان کلیدواژه *flush* اضافه شد." #: ../../library/functions.rst:1630 -#, fuzzy msgid "Return a property attribute." msgstr "یک ویژگی property را بازمی گرداند." #: ../../library/functions.rst:1632 -#, fuzzy msgid "" "*fget* is a function for getting an attribute value. *fset* is a function " "for setting an attribute value. *fdel* is a function for deleting an " @@ -3469,12 +3106,10 @@ msgstr "" "docstring برای ویژگی ایجاد می کند." #: ../../library/functions.rst:1636 -#, fuzzy msgid "A typical use is to define a managed attribute ``x``::" msgstr "یک استفاده معمول این است که یک ویژگی مدیریت شده ``x`` تعریف کنید::" #: ../../library/functions.rst:1638 -#, fuzzy msgid "" "class C:\n" " def __init__(self):\n" @@ -3507,7 +3142,6 @@ msgstr "" " x = property(getx, setx, delx, \"من ویژگی 'x' هستم.\")" #: ../../library/functions.rst:1653 -#, fuzzy msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." @@ -3517,7 +3151,6 @@ msgstr "" "بود." #: ../../library/functions.rst:1656 -#, fuzzy msgid "" "If given, *doc* will be the docstring of the property attribute. Otherwise, " "the property will copy *fget*'s docstring (if it exists). This makes it " @@ -3530,7 +3163,6 @@ msgstr "" ":term:`decorator` استفاده کنید و ویژگی های فقط خواندنی ایجاد نمایید::" #: ../../library/functions.rst:1660 -#, fuzzy msgid "" "class Parrot:\n" " def __init__(self):\n" @@ -3551,7 +3183,6 @@ msgstr "" " return self._voltage" #: ../../library/functions.rst:1669 -#, fuzzy msgid "" "The ``@property`` decorator turns the :meth:`!voltage` method into a " "\"getter\" for a read-only attribute with the same name, and it sets the " @@ -3562,7 +3193,6 @@ msgstr "" " به \"Get the current voltage.\" تنظیم می کند." #: ../../library/functions.rst:1677 -#, fuzzy msgid "" "A property object has ``getter``, ``setter``, and ``deleter`` methods usable" " as decorators that create a copy of the property with the corresponding " @@ -3575,7 +3205,6 @@ msgstr "" "مثال بهتر توضیح داده می شود:" #: ../../library/functions.rst:1682 -#, fuzzy msgid "" "class C:\n" " def __init__(self):\n" @@ -3612,7 +3241,6 @@ msgstr "" " del self._x" #: ../../library/functions.rst:1701 -#, fuzzy msgid "" "This code is exactly equivalent to the first example. Be sure to give the " "additional functions the same name as the original property (``x`` in this " @@ -3622,7 +3250,6 @@ msgstr "" " اصلی (در اینجا ``x``) را داشته باشند." #: ../../library/functions.rst:1705 -#, fuzzy msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and" " ``fdel`` corresponding to the constructor arguments." @@ -3631,12 +3258,10 @@ msgstr "" "است که معادل با آرگومان های سازنده هستند." #: ../../library/functions.rst:1708 -#, fuzzy msgid "The docstrings of property objects are now writeable." msgstr "رشته های مستندات اشیاء ویژگی اکنون قابل نوشتن هستند." #: ../../library/functions.rst:1713 -#, fuzzy msgid "" "Attribute holding the name of the property. The name of the property can be " "changed at runtime." @@ -3645,7 +3270,6 @@ msgstr "" "تغییر کند." #: ../../library/functions.rst:1724 -#, fuzzy msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -3654,7 +3278,6 @@ msgstr "" "همان طور که در :ref:`typesseq-range` و :ref:`typesseq` مستند شده است." #: ../../library/functions.rst:1730 -#, fuzzy msgid "" "Return a string containing a printable representation of an object. For " "many types, this function makes an attempt to return a string that would " @@ -3676,12 +3299,10 @@ msgstr "" " تابع :exc:`RuntimeError` را ایجاد می کند." #: ../../library/functions.rst:1741 -#, fuzzy msgid "This class has a custom representation that can be evaluated::" msgstr "این کلاس یک نمایش سفارشی دارد که می تواند ارزیابی شود::" #: ../../library/functions.rst:1743 -#, fuzzy msgid "" "class Person:\n" " def __init__(self, name, age):\n" @@ -3700,7 +3321,6 @@ msgstr "" " return f\"Person('{self.name}', {self.age})\"" #: ../../library/functions.rst:1754 -#, fuzzy msgid "" "Return a reverse :term:`iterator`. *seq* must be an object which has a " ":meth:`~object.__reversed__` method or supports the sequence protocol (the " @@ -3713,7 +3333,6 @@ msgstr "" " صحیح که از ``0`` شروع می شوند)." #: ../../library/functions.rst:1762 -#, fuzzy msgid "" "Return *number* rounded to *ndigits* precision after the decimal point. If " "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " @@ -3723,7 +3342,6 @@ msgstr "" " شود یا ``None`` باشد، نزدیک ترین عدد صحیح به ورودی بازگردانده می شود." #: ../../library/functions.rst:1766 -#, fuzzy msgid "" "For the built-in types supporting :func:`round`, values are rounded to the " "closest multiple of 10 to the power minus *ndigits*; if two multiples are " @@ -3742,7 +3360,6 @@ msgstr "" " در غیر این صورت، مقدار بازگشتی از همان نوع *number* خواهد بود." #: ../../library/functions.rst:1775 -#, fuzzy msgid "" "For a general Python object ``number``, ``round`` delegates to " "``number.__round__``." @@ -3751,7 +3368,6 @@ msgstr "" "واگذار می شود." #: ../../library/functions.rst:1780 -#, fuzzy msgid "" "The behavior of :func:`round` for floats can be surprising: for example, " "``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is" @@ -3766,7 +3382,6 @@ msgstr "" "fp-issues` مراجعه کنید." #: ../../library/functions.rst:1792 -#, fuzzy msgid "" "Return a new :class:`set` object, optionally with elements taken from " "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" @@ -3777,7 +3392,6 @@ msgstr "" "این کلاس به :class:`set` و :ref:`types-set` مراجعه کنید." #: ../../library/functions.rst:1796 -#, fuzzy msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, " ":class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections`" @@ -3788,7 +3402,6 @@ msgstr "" ":mod:`collections` مراجعه نمایید." #: ../../library/functions.rst:1803 -#, fuzzy msgid "" "This is the counterpart of :func:`getattr`. The arguments are an object, a " "string, and an arbitrary value. The string may name an existing attribute " @@ -3803,7 +3416,6 @@ msgstr "" "است." #: ../../library/functions.rst:1809 -#, fuzzy msgid "" "*name* need not be a Python identifier as defined in :ref:`identifiers` " "unless the object chooses to enforce that, for example in a custom " @@ -3819,7 +3431,6 @@ msgstr "" "است." #: ../../library/functions.rst:1817 -#, fuzzy msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes" @@ -3831,7 +3442,6 @@ msgstr "" "تنظیم کنید." #: ../../library/functions.rst:1826 -#, fuzzy msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -3842,7 +3452,6 @@ msgstr "" " صورت پیش فرض به ``None`` تنظیم شده اند." #: ../../library/functions.rst:1834 -#, fuzzy msgid "" "Slice objects have read-only data attributes :attr:`!start`, :attr:`!stop`, " "and :attr:`!step` which merely return the argument values (or their " @@ -3855,7 +3464,6 @@ msgstr "" "حال، توسط NumPy و سایر بسته های شخص ثالث استفاده می شوند." #: ../../library/functions.rst:1839 -#, fuzzy msgid "" "Slice objects are also generated when extended indexing syntax is used. For" " example: ``a[start:stop:step]`` or ``a[start:stop, i]``. See " @@ -3868,7 +3476,6 @@ msgstr "" ":func:`itertools.islice` مراجعه کنید." #: ../../library/functions.rst:1844 -#, fuzzy msgid "" "Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, " ":attr:`~slice.stop`, and :attr:`~slice.step` are hashable)." @@ -3877,19 +3484,16 @@ msgstr "" ":attr:`~slice.stop` و :attr:`~slice.step` قابل هَش باشند)." #: ../../library/functions.rst:1850 -#, fuzzy msgid "Return a new sorted list from the items in *iterable*." msgstr "یک لیست جدید مرتب شده از آیتم های موجود در *iterable* بازگردانید." #: ../../library/functions.rst:1852 -#, fuzzy msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" "دارای دو آرگومان اختیاری است که باید به صورت آرگومان های کلیدی تعیین شوند." #: ../../library/functions.rst:1854 -#, fuzzy msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each element in *iterable* (for example, " @@ -3901,7 +3505,6 @@ msgstr "" "پیش فرض ``None`` است (عناصر را مستقیماً مقایسه کنید)." #: ../../library/functions.rst:1858 -#, fuzzy msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -3910,7 +3513,6 @@ msgstr "" "ای مرتب می شوند که گویی هر مقایسه معکوس شده است." #: ../../library/functions.rst:1861 -#, fuzzy msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a" " *key* function." @@ -3919,7 +3521,6 @@ msgstr "" " تابع *key* تبدیل کنید." #: ../../library/functions.rst:1864 -#, fuzzy msgid "" "The built-in :func:`sorted` function is guaranteed to be stable. A sort is " "stable if it guarantees not to change the relative order of elements that " @@ -3932,7 +3533,6 @@ msgstr "" "و سپس بر اساس درجه حقوق مرتب سازی شود)." #: ../../library/functions.rst:1869 -#, fuzzy msgid "" "The sort algorithm uses only ``<`` comparisons between items. While " "defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8`" @@ -3953,7 +3553,6 @@ msgstr "" "فراخوانی کنند، کمک می کند." #: ../../library/functions.rst:1878 -#, fuzzy msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" @@ -3961,12 +3560,10 @@ msgstr "" "مراجعه کنید." #: ../../library/functions.rst:1882 -#, fuzzy msgid "Transform a method into a static method." msgstr "تبدیل یک متد به یک متد ایستا." #: ../../library/functions.rst:1884 -#, fuzzy msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -3975,7 +3572,6 @@ msgstr "" " یک متد استاتیک از این روش استفاده کنید::" #: ../../library/functions.rst:1887 -#, fuzzy msgid "" "class C:\n" " @staticmethod\n" @@ -3986,7 +3582,6 @@ msgstr "" " def f(arg1, arg2, argN): ..." #: ../../library/functions.rst:1891 -#, fuzzy msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see " ":ref:`function` for details." @@ -3995,7 +3590,6 @@ msgstr "" ":ref:`function` مراجعه کنید." #: ../../library/functions.rst:1894 -#, fuzzy msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``). Moreover, the static method " @@ -4008,7 +3602,6 @@ msgstr "" "(مانند ``f()``) استفاده شود." #: ../../library/functions.rst:1899 -#, fuzzy msgid "" "Static methods in Python are similar to those found in Java or C++. Also, " "see :func:`classmethod` for a variant that is useful for creating alternate " @@ -4019,7 +3612,6 @@ msgstr "" "های کلاس جایگزین مفید است." #: ../../library/functions.rst:1903 -#, fuzzy msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " "regular function and do something with its result. This is needed in some " @@ -4033,7 +3625,6 @@ msgstr "" "متد نمونه جلوگیری کنید، لازم است. برای این موارد، از این روش استفاده کنید::" #: ../../library/functions.rst:1909 -#, fuzzy msgid "" "def regular_function():\n" " ...\n" @@ -4048,12 +3639,10 @@ msgstr "" " method = staticmethod(regular_function)" #: ../../library/functions.rst:1915 -#, fuzzy msgid "For more information on static methods, see :ref:`types`." msgstr "برای اطلاعات بیشتر در مورد متدهای ایستا، به :ref:`types` مراجعه کنید." #: ../../library/functions.rst:1917 -#, fuzzy msgid "" "Static methods now inherit the method attributes " "(:attr:`~function.__module__`, :attr:`~function.__name__`, " @@ -4068,13 +3657,11 @@ msgstr "" "معمولی قابل فراخوانی هستند." #: ../../library/functions.rst:1933 -#, fuzzy msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" #: ../../library/functions.rst:1935 -#, fuzzy msgid "" "``str`` is the built-in string :term:`class`. For general information about" " strings, see :ref:`textseq`." @@ -4083,7 +3670,6 @@ msgstr "" " :ref:`textseq` مراجعه کنید." #: ../../library/functions.rst:1941 -#, fuzzy msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. The *iterable*'s items are normally numbers, and the start value" @@ -4094,7 +3680,6 @@ msgstr "" "تواند یک رشته باشد." #: ../../library/functions.rst:1945 -#, fuzzy msgid "" "For some use cases, there are good alternatives to :func:`sum`. The " "preferred, fast way to concatenate a sequence of strings is by calling " @@ -4109,12 +3694,10 @@ msgstr "" " داشته باشید که از :func:`itertools.chain` استفاده کنید." #: ../../library/functions.rst:1951 -#, fuzzy msgid "The *start* parameter can be specified as a keyword argument." msgstr "پارامتر *start* می تواند به عنوان یک آرگومان کلیدواژه مشخص شود." #: ../../library/functions.rst:1954 -#, fuzzy msgid "" "Summation of floats switched to an algorithm that gives higher accuracy and " "better commutativity on most builds." @@ -4123,7 +3706,6 @@ msgstr "" "ها قابلیت جایگشت بهتری ارائه می دهد." #: ../../library/functions.rst:1961 -#, fuzzy msgid "" "Return a proxy object that delegates method calls to a parent or sibling " "class of *type*. This is useful for accessing inherited methods that have " @@ -4134,7 +3716,6 @@ msgstr "" "که در یک کلاس بازنویسی شده اند مفید است." #: ../../library/functions.rst:1965 -#, fuzzy msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." @@ -4143,7 +3724,6 @@ msgstr "" " است. جستجو از کلاسی که بلافاصله پس از *type* قرار دارد شروع می شود." #: ../../library/functions.rst:1969 -#, fuzzy msgid "" "For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C " "-> A -> object`` and the value of *type* is ``B``, then :func:`super` " @@ -4154,7 +3734,6 @@ msgstr "" ":func:`super` به دنبال ``C -> A -> object`` می گردد." #: ../../library/functions.rst:1973 -#, fuzzy msgid "" "The :attr:`~type.__mro__` attribute of the class corresponding to " "*object_or_type* lists the method resolution search order used by both " @@ -4167,7 +3746,6 @@ msgstr "" "تواند تغییر کند." #: ../../library/functions.rst:1978 -#, fuzzy msgid "" "If the second argument is omitted, the super object returned is unbound. If" " the second argument is an object, ``isinstance(obj, type)`` must be true. " @@ -4180,7 +3758,6 @@ msgstr "" "برای classmethods مفید است)." #: ../../library/functions.rst:1983 -#, fuzzy msgid "" "When called directly within an ordinary method of a class, both arguments " "may be omitted (\"zero-argument :func:`!super`\"). In this case, *type* will" @@ -4197,7 +3774,6 @@ msgstr "" "در تو ایجاد می کنند، به درستی کار نخواهد کرد.)" #: ../../library/functions.rst:1990 -#, fuzzy msgid "" "There are two typical use cases for *super*. In a class hierarchy with " "single inheritance, *super* can be used to refer to parent classes without " @@ -4210,7 +3786,6 @@ msgstr "" "نزدیک با استفاده از *super* در زبان های برنامه نویسی دیگر مشابه است." #: ../../library/functions.rst:1995 -#, fuzzy msgid "" "The second use case is to support cooperative multiple inheritance in a " "dynamic execution environment. This use case is unique to Python and is not" @@ -4233,13 +3808,11 @@ msgstr "" "تواند شامل کلاس های هم رده ای باشد که قبل از زمان اجرا ناشناخته هستند)." #: ../../library/functions.rst:2005 -#, fuzzy msgid "For both use cases, a typical superclass call looks like this::" msgstr "" "برای هر دو مورد استفاده، یک فراخوانی معمولی به ابرکلاس به این صورت است::" #: ../../library/functions.rst:2007 -#, fuzzy msgid "" "class C(B):\n" " def method(self, arg):\n" @@ -4252,7 +3825,6 @@ msgstr "" " # super(C, self).method(arg)" #: ../../library/functions.rst:2012 -#, fuzzy msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " @@ -4263,7 +3835,6 @@ msgstr "" "` در یک کلاس والد یا خواهر و برادر است." #: ../../library/functions.rst:2016 -#, fuzzy msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -4280,7 +3851,6 @@ msgstr "" " با استفاده از عبارات یا عملگرهایی مانند ``super()[name]`` تعریف نشده است." #: ../../library/functions.rst:2024 -#, fuzzy msgid "" "Also note that, aside from the zero argument form, :func:`super` is not " "limited to use inside methods. The two argument form specifies the " @@ -4296,7 +3866,6 @@ msgstr "" "همچنین دسترسی به نمونه فعلی برای متدهای معمولی کامل می کند." #: ../../library/functions.rst:2031 -#, fuzzy msgid "" "For practical suggestions on how to design cooperative classes using " ":func:`super`, see `guide to using super() " @@ -4308,7 +3877,6 @@ msgstr "" "مراجعه کنید." #: ../../library/functions.rst:2041 -#, fuzzy msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -4318,7 +3886,6 @@ msgstr "" "است." #: ../../library/functions.rst:2050 -#, fuzzy msgid "" "With one argument, return the type of an *object*. The return value is a " "type object and generally the same object as returned by " @@ -4329,7 +3896,6 @@ msgstr "" "می شود." #: ../../library/functions.rst:2054 -#, fuzzy msgid "" "The :func:`isinstance` built-in function is recommended for testing the type" " of an object, because it takes subclasses into account." @@ -4338,7 +3904,6 @@ msgstr "" "زیرکلاس ها را نیز در نظر می گیرد." #: ../../library/functions.rst:2057 -#, fuzzy msgid "" "With three arguments, return a new type object. This is essentially a " "dynamic form of the :keyword:`class` statement. The *name* string is the " @@ -4360,12 +3925,10 @@ msgstr "" ":class:`!type` یکسانی ایجاد می کنند:" #: ../../library/functions.rst:2072 -#, fuzzy msgid "See also:" msgstr "همچنین ببینید:" #: ../../library/functions.rst:2074 -#, fuzzy msgid "" ":ref:`Documentation on attributes and methods on classes `." @@ -4374,12 +3937,10 @@ msgstr "" "methods>`." #: ../../library/functions.rst:2075 -#, fuzzy msgid ":ref:`bltin-type-objects`" msgstr ":ref:`bltin-type-objects`" #: ../../library/functions.rst:2077 -#, fuzzy msgid "" "Keyword arguments provided to the three argument form are passed to the " "appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " @@ -4392,12 +3953,10 @@ msgstr "" " شوند." #: ../../library/functions.rst:2082 -#, fuzzy msgid "See also :ref:`class-customization`." msgstr "همچنین ببینید :ref:`class-customization`." #: ../../library/functions.rst:2084 -#, fuzzy msgid "" "Subclasses of :class:`!type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." @@ -4406,7 +3965,6 @@ msgstr "" "دیگر نتوانند از فرم یک پارامتری برای گرفتن نوع یک شیء استفاده کنند." #: ../../library/functions.rst:2091 -#, fuzzy msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance," " or any other object with a :attr:`!__dict__` attribute." @@ -4415,7 +3973,6 @@ msgstr "" "دیگری که ویژگی :attr:`!__dict__` را دارد، بازگردانید." #: ../../library/functions.rst:2094 -#, fuzzy msgid "" "Objects such as modules and instances have an updateable " ":attr:`~object.__dict__` attribute; however, other objects may have write " @@ -4429,12 +3986,10 @@ msgstr "" "دیکشنری جلوگیری کنند)." #: ../../library/functions.rst:2099 -#, fuzzy msgid "Without an argument, :func:`vars` acts like :func:`locals`." msgstr "بدون آرگومان، :func:`vars` به صورت :func:`locals` عمل می کند." #: ../../library/functions.rst:2101 -#, fuzzy msgid "" "A :exc:`TypeError` exception is raised if an object is specified but it " "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class" @@ -4445,7 +4000,6 @@ msgstr "" "استثناء :exc:`TypeError` برانگیخته می شود." #: ../../library/functions.rst:2107 -#, fuzzy msgid "" "The result of calling this function without an argument has been updated as " "described for the :func:`locals` builtin." @@ -4454,7 +4008,6 @@ msgstr "" ":func:`locals` builtin توصیف شد." #: ../../library/functions.rst:2113 -#, fuzzy msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." @@ -4463,12 +4016,10 @@ msgstr "" "آیتمی از هر یک از آن ها باشد." #: ../../library/functions.rst:2116 -#, fuzzy msgid "Example::" msgstr "مثال::" #: ../../library/functions.rst:2118 -#, fuzzy msgid "" ">>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):\n" "... print(item)\n" @@ -4485,7 +4036,6 @@ msgstr "" "(3, 'everything nice')" #: ../../library/functions.rst:2125 -#, fuzzy msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." @@ -4494,7 +4044,6 @@ msgstr "" "مرتب *i* شامل عنصر *i* از هر یک از پیمایش پذیرهای آرگومان ها است." #: ../../library/functions.rst:2128 -#, fuzzy msgid "" "Another way to think of :func:`zip` is that it turns rows into columns, and " "columns into rows. This is similar to `transposing a matrix " @@ -4505,7 +4054,6 @@ msgstr "" "`_ است." #: ../../library/functions.rst:2132 -#, fuzzy msgid "" ":func:`zip` is lazy: The elements won't be processed until the iterable is " "iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a " @@ -4516,7 +4064,6 @@ msgstr "" ":class:`list`." #: ../../library/functions.rst:2136 -#, fuzzy msgid "" "One thing to consider is that the iterables passed to :func:`zip` could have" " different lengths; sometimes by design, and sometimes because of a bug in " @@ -4529,7 +4076,6 @@ msgstr "" "است. پایتون سه روش مختلف برای مقابله با این مسئله ارائه می دهد:" #: ../../library/functions.rst:2141 -#, fuzzy msgid "" "By default, :func:`zip` stops when the shortest iterable is exhausted. It " "will ignore the remaining items in the longer iterables, cutting off the " @@ -4540,7 +4086,6 @@ msgstr "" "نتیجه را به طول کوتاه ترین iterable محدود می کند::" #: ../../library/functions.rst:2145 -#, fuzzy msgid "" ">>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))\n" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" @@ -4549,7 +4094,6 @@ msgstr "" "[(0, 'fee'), (1, 'fi'), (2, 'fo')]" #: ../../library/functions.rst:2148 -#, fuzzy msgid "" ":func:`zip` is often used in cases where the iterables are assumed to be of " "equal length. In such cases, it's recommended to use the ``strict=True`` " @@ -4560,7 +4104,6 @@ msgstr "" "``strict=True`` استفاده کنید. خروجی آن همانند :func:`zip` معمولی می باشد::" #: ../../library/functions.rst:2152 -#, fuzzy msgid "" ">>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))\n" "[('a', 1), ('b', 2), ('c', 3)]" @@ -4569,7 +4112,6 @@ msgstr "" "[('a', 1), ('b', 2), ('c', 3)]" #: ../../library/functions.rst:2155 -#, fuzzy msgid "" "Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " "is exhausted before the others:" @@ -4578,7 +4120,6 @@ msgstr "" ":exc:`ValueError` ایجاد می کند:" #: ../../library/functions.rst:2173 -#, fuzzy msgid "" "Without the ``strict=True`` argument, any bug that results in iterables of " "different lengths will be silenced, possibly manifesting as a hard-to-find " @@ -4589,7 +4130,6 @@ msgstr "" " بخش دیگری از برنامه ظاهر شود." #: ../../library/functions.rst:2177 -#, fuzzy msgid "" "Shorter iterables can be padded with a constant value to make all the " "iterables have the same length. This is done by " @@ -4599,7 +4139,6 @@ msgstr "" " به طول یکسان برسند. این کار با :func:`itertools.zip_longest` انجام می شود." #: ../../library/functions.rst:2181 -#, fuzzy msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator" " of 1-tuples. With no arguments, it returns an empty iterator." @@ -4608,12 +4147,10 @@ msgstr "" "بازمی گرداند. بدون هیچ آرگومانی، یک تکرارگر خالی را برمی گرداند." #: ../../library/functions.rst:2184 -#, fuzzy msgid "Tips and tricks:" msgstr "نکات و ترفندها:" #: ../../library/functions.rst:2186 -#, fuzzy msgid "" "The left-to-right evaluation order of the iterables is guaranteed. This " "makes possible an idiom for clustering a data series into n-length groups " @@ -4628,7 +4165,6 @@ msgstr "" " داشته باشد. این کار اثر تقسیم ورودی به قطعات n تایی را دارد." #: ../../library/functions.rst:2192 -#, fuzzy msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -4636,7 +4172,6 @@ msgstr "" ":func:`zip` همراه با عملگر ``*`` می تواند برای استخراج لیست استفاده شود::" #: ../../library/functions.rst:2195 -#, fuzzy msgid "" ">>> x = [1, 2, 3]\n" ">>> y = [4, 5, 6]\n" @@ -4655,12 +4190,10 @@ msgstr "" "True" #: ../../library/functions.rst:2203 -#, fuzzy msgid "Added the ``strict`` argument." msgstr "آرگومان ``strict`` اضافه شد." #: ../../library/functions.rst:2215 -#, fuzzy msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -4669,7 +4202,6 @@ msgstr "" "نویسی روزمره پایتون نیازی به آن نیست." #: ../../library/functions.rst:2218 -#, fuzzy msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -4690,7 +4222,6 @@ msgstr "" ":func:`importlib.import_module` توصیه نمی شود." #: ../../library/functions.rst:2227 -#, fuzzy msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -4707,7 +4238,6 @@ msgstr "" "کند." #: ../../library/functions.rst:2234 -#, fuzzy msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -4722,7 +4252,6 @@ msgstr "" "(برای جزئیات به :pep:`328` مراجعه کنید)." #: ../../library/functions.rst:2240 -#, fuzzy msgid "" "When the *name* variable is of the form ``package.module``, normally, the " "top-level package (the name up till the first dot) is returned, *not* the " @@ -4735,7 +4264,6 @@ msgstr "" "ماژول با نام *name* بازگردانده می شود." #: ../../library/functions.rst:2245 -#, fuzzy msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" @@ -4744,22 +4272,18 @@ msgstr "" " است:" #: ../../library/functions.rst:2248 -#, fuzzy msgid "spam = __import__('spam', globals(), locals(), [], 0)" msgstr "spam = __import__('spam', globals(), locals(), [], 0)" #: ../../library/functions.rst:2250 -#, fuzzy msgid "The statement ``import spam.ham`` results in this call::" msgstr "عبارت ``import spam.ham`` منجر به این فراخوانی می شود::" #: ../../library/functions.rst:2252 -#, fuzzy msgid "spam = __import__('spam.ham', globals(), locals(), [], 0)" msgstr "spam = __import__('spam.ham', globals(), locals(), [], 0)" #: ../../library/functions.rst:2254 -#, fuzzy msgid "" "Note how :func:`__import__` returns the toplevel module here because this is" " the object that is bound to a name by the :keyword:`import` statement." @@ -4768,7 +4292,6 @@ msgstr "" "این همان شی ء است که توسط عبارت :keyword:`import` به یک نام متصل شده است." #: ../../library/functions.rst:2257 -#, fuzzy msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" @@ -4777,7 +4300,6 @@ msgstr "" "می رسد به ::" #: ../../library/functions.rst:2260 -#, fuzzy msgid "" "_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)\n" "eggs = _temp.eggs\n" @@ -4788,7 +4310,6 @@ msgstr "" "saus = _temp.sausage" #: ../../library/functions.rst:2264 -#, fuzzy msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " @@ -4799,7 +4320,6 @@ msgstr "" "داده می شوند." #: ../../library/functions.rst:2268 -#, fuzzy msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -4808,7 +4328,6 @@ msgstr "" ":func:`importlib.import_module` استفاده کنید." #: ../../library/functions.rst:2271 -#, fuzzy msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -4817,7 +4336,6 @@ msgstr "" "به 0 تغییر می دهد)." #: ../../library/functions.rst:2275 -#, fuzzy msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." @@ -4826,12 +4344,10 @@ msgstr "" "متغیر محیطی :envvar:`PYTHONCASEOK` دیگر نادیده گرفته می شود." #: ../../library/functions.rst:2280 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../library/functions.rst:2281 -#, fuzzy msgid "" "Note that the parser only accepts the Unix-style end of line convention. If " "you are reading the code from a file, make sure to use newline conversion " @@ -4842,136 +4358,109 @@ msgstr "" "تبدیل خط های جدید به سبک ویندوز یا مک استفاده کنید." #: ../../library/functions.rst:154 -#, fuzzy msgid "Boolean" msgstr "بولین" #: ../../library/functions.rst:154 ../../library/functions.rst:2048 -#, fuzzy msgid "type" msgstr "نوع" #: ../../library/functions.rst:648 -#, fuzzy msgid "built-in function" msgstr "تابع داخلی" #: ../../library/functions.rst:648 -#, fuzzy msgid "exec" msgstr "اجرا کردن" #: ../../library/functions.rst:746 -#, fuzzy msgid "NaN" msgstr "NaN" #: ../../library/functions.rst:746 -#, fuzzy msgid "Infinity" msgstr "بی نهایت" #: ../../library/functions.rst:814 -#, fuzzy msgid "__format__" msgstr "__فرمت__" #: ../../library/functions.rst:814 ../../library/functions.rst:1925 -#, fuzzy msgid "string" msgstr "رشته" #: ../../library/functions.rst:814 -#, fuzzy msgid "format() (built-in function)" msgstr "تابع format() (توکار)" #: ../../library/functions.rst:1325 -#, fuzzy msgid "file object" msgstr "شیء پرونده" #: ../../library/functions.rst:1325 ../../library/functions.rst:1446 -#, fuzzy msgid "open() built-in function" msgstr "تابع داخلی open()" #: ../../library/functions.rst:1353 -#, fuzzy msgid "file" msgstr "فایل" #: ../../library/functions.rst:1353 -#, fuzzy msgid "modes" msgstr "مدها" #: ../../library/functions.rst:1446 -#, fuzzy msgid "universal newlines" msgstr "خطوط جدید جهانی" #: ../../library/functions.rst:1507 -#, fuzzy msgid "line-buffered I/O" msgstr "ورودی/خروجی بافر خطی" #: ../../library/functions.rst:1507 -#, fuzzy msgid "unbuffered I/O" msgstr "ورودی/خروجی بدون بافر" #: ../../library/functions.rst:1507 -#, fuzzy msgid "buffer size, I/O" msgstr "اندازه بافر، ورودی/خروجی" #: ../../library/functions.rst:1507 -#, fuzzy msgid "I/O control" msgstr "کنترل I/O" #: ../../library/functions.rst:1507 -#, fuzzy msgid "buffering" msgstr "بافرینگ" #: ../../library/functions.rst:1507 -#, fuzzy msgid "text mode" msgstr "حالت متنی" #: ../../library/functions.rst:1507 ../../library/functions.rst:2209 -#, fuzzy msgid "module" msgstr "ماژول" #: ../../library/functions.rst:1507 -#, fuzzy msgid "sys" msgstr "سیستم" #: ../../library/functions.rst:1925 -#, fuzzy msgid "str() (built-in function)" msgstr "تابع (built-in function) str()" #: ../../library/functions.rst:2048 -#, fuzzy msgid "object" msgstr "شیء" #: ../../library/functions.rst:2209 -#, fuzzy msgid "statement" msgstr "بیانیه" #: ../../library/functions.rst:2209 -#, fuzzy msgid "import" msgstr "وارد کردن" #: ../../library/functions.rst:2209 -#, fuzzy msgid "builtins" msgstr "توکارها" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 408d5c7b5..d66ed4c37 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,17 +21,14 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/appendix.rst:5 -#, fuzzy msgid "Appendix" msgstr "پیوست" #: ../../tutorial/appendix.rst:11 -#, fuzzy msgid "Interactive Mode" msgstr "حالت تعاملی" #: ../../tutorial/appendix.rst:13 -#, fuzzy msgid "" "There are two variants of the interactive :term:`REPL`. The classic basic " "interpreter is supported on all platforms with minimal line control " @@ -42,7 +38,6 @@ msgstr "" " با قابلیت های کنترل خطی حداقلی پشتیبانی می شود." #: ../../tutorial/appendix.rst:17 -#, fuzzy msgid "" "On Windows, or Unix-like systems with :mod:`curses` support, a new " "interactive shell is used by default. This one supports color, multiline " @@ -65,7 +60,6 @@ msgstr "" "به اعلان معمولی، :kbd:`F3` را فشار دهید." #: ../../tutorial/appendix.rst:28 -#, fuzzy msgid "" "When using the new interactive shell, exit the shell by typing :kbd:`exit` " "or :kbd:`quit`. Adding call parentheses after those commands is not " @@ -76,7 +70,6 @@ msgstr "" " نیست." #: ../../tutorial/appendix.rst:32 -#, fuzzy msgid "" "If the new interactive shell is not desired, it can be disabled via the " ":envvar:`PYTHON_BASIC_REPL` environment variable." @@ -85,12 +78,10 @@ msgstr "" ":envvar:`PYTHON_BASIC_REPL` غیرفعال کرد." #: ../../tutorial/appendix.rst:38 -#, fuzzy msgid "Error Handling" msgstr "مدیریت خطاها" #: ../../tutorial/appendix.rst:40 -#, fuzzy msgid "" "When an error occurs, the interpreter prints an error message and a stack " "trace. In interactive mode, it then returns to the primary prompt; when " @@ -113,7 +104,6 @@ msgstr "" "شود." #: ../../tutorial/appendix.rst:50 -#, fuzzy msgid "" "Typing the interrupt character (usually :kbd:`Control-C` or :kbd:`Delete`) " "to the primary or secondary prompt cancels the input and returns to the " @@ -127,12 +117,10 @@ msgstr "" " ایجاد می کند که ممکن است توسط یک عبارت :keyword:`try` مدیریت شود." #: ../../tutorial/appendix.rst:60 -#, fuzzy msgid "Executable Python Scripts" msgstr "اسکریپت های اجرایی پایتون" #: ../../tutorial/appendix.rst:62 -#, fuzzy msgid "" "On BSD'ish Unix systems, Python scripts can be made directly executable, " "like shell scripts, by putting the line ::" @@ -141,12 +129,10 @@ msgstr "" "اسکریپت های شل به صورت مستقیم اجرایی شوند، با قرار دادن خط ::" #: ../../tutorial/appendix.rst:65 -#, fuzzy msgid "#!/usr/bin/env python3" msgstr "#!/usr/bin/env python3" #: ../../tutorial/appendix.rst:67 -#, fuzzy msgid "" "(assuming that the interpreter is on the user's :envvar:`PATH`) at the " "beginning of the script and giving the file an executable mode. The ``#!`` " @@ -162,7 +148,6 @@ msgstr "" "یا پوند، ``'#'``، برای شروع یک نظر در پایتون استفاده می شود." #: ../../tutorial/appendix.rst:74 -#, fuzzy msgid "" "The script can be given an executable mode, or permission, using the " ":program:`chmod` command." @@ -171,12 +156,10 @@ msgstr "" "مجوز داده شود." #: ../../tutorial/appendix.rst:77 -#, fuzzy msgid "$ chmod +x myscript.py" msgstr "$ chmod +x myscript.py" #: ../../tutorial/appendix.rst:81 -#, fuzzy msgid "" "On Windows systems, there is no notion of an \"executable mode\". The " "Python installer automatically associates ``.py`` files with ``python.exe`` " @@ -191,12 +174,10 @@ msgstr "" " شود، حذف می شود." #: ../../tutorial/appendix.rst:91 -#, fuzzy msgid "The Interactive Startup File" msgstr "فایل شروع تعاملی" #: ../../tutorial/appendix.rst:93 -#, fuzzy msgid "" "When you use Python interactively, it is frequently handy to have some " "standard commands executed every time the interpreter is started. You can " @@ -211,7 +192,6 @@ msgstr "" "در شل های یونیکس است." #: ../../tutorial/appendix.rst:99 -#, fuzzy msgid "" "This file is only read in interactive sessions, not when Python reads " "commands from a script, and not when :file:`/dev/tty` is given as the " @@ -230,7 +210,6 @@ msgstr "" "``sys.ps2`` را نیز در این فایل تغییر دهید." #: ../../tutorial/appendix.rst:107 -#, fuzzy msgid "" "If you want to read an additional start-up file from the current directory, " "you can program this in the global start-up file using code like ``if " @@ -245,7 +224,6 @@ msgstr "" " این کار را به طور صریح در اسکریپت انجام دهید:" #: ../../tutorial/appendix.rst:113 -#, fuzzy msgid "" "import os\n" "filename = os.environ.get('PYTHONSTARTUP')\n" @@ -262,12 +240,10 @@ msgstr "" " exec(startup_file)" #: ../../tutorial/appendix.rst:124 -#, fuzzy msgid "The Customization Modules" msgstr "ماژول های سفارشی سازی" #: ../../tutorial/appendix.rst:126 -#, fuzzy msgid "" "Python provides two hooks to let you customize it: :index:`sitecustomize` " "and :index:`usercustomize`. To see how it works, you need first to find the" @@ -280,7 +256,6 @@ msgstr "" "را اجرا کنید:" #: ../../tutorial/appendix.rst:130 -#, fuzzy msgid "" ">>> import site\n" ">>> site.getusersitepackages()\n" @@ -291,7 +266,6 @@ msgstr "" "'/home/user/.local/lib/python3.x/site-packages'" #: ../../tutorial/appendix.rst:134 -#, fuzzy msgid "" "Now you can create a file named :file:`usercustomize.py` in that directory " "and put anything you want in it. It will affect every invocation of Python," @@ -304,7 +278,6 @@ msgstr "" "کردن خودکار است، آغاز شود." #: ../../tutorial/appendix.rst:138 -#, fuzzy msgid "" ":index:`sitecustomize` works in the same way, but is typically created by an" " administrator of the computer in the global site-packages directory, and is" @@ -317,11 +290,9 @@ msgstr "" ":mod:`site` مراجعه کنید." #: ../../tutorial/appendix.rst:145 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../tutorial/appendix.rst:146 -#, fuzzy msgid "A problem with the GNU Readline package may prevent this." msgstr "مشکلی در بسته GNU Readline ممکن است از این جلوگیری کند." diff --git a/tutorial/appetite.po b/tutorial/appetite.po index e402d6ce6..b8e8185a1 100644 --- a/tutorial/appetite.po +++ b/tutorial/appetite.po @@ -7,7 +7,6 @@ # Alireza Shabani (Revisto) , 2025 # Alireza Feyzabadi Farahani, 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -23,12 +22,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/appetite.rst:5 -#, fuzzy msgid "Whetting Your Appetite" msgstr "اشتهایتان را تحریک کنید" #: ../../tutorial/appetite.rst:7 -#, fuzzy msgid "" "If you do much work on computers, eventually you find that there's some task" " you'd like to automate. For example, you may wish to perform a search-and-" @@ -44,7 +41,6 @@ msgstr "" "با رابط کاربری گرافیکی، یا یک بازی ساده ایجاد کنید." #: ../../tutorial/appetite.rst:13 -#, fuzzy msgid "" "If you're a professional software developer, you may have to work with " "several C/C++/Java libraries but find the usual write/compile/test/re-" @@ -61,12 +57,10 @@ msgstr "" " و نمی خواهید برای برنامه خود یک زبان جدید طراحی و پیاده سازی کنید." #: ../../tutorial/appetite.rst:20 -#, fuzzy msgid "Python is just the language for you." msgstr "پایتون دقیقاً زبانی است که به دنبال آن هستید." #: ../../tutorial/appetite.rst:22 -#, fuzzy msgid "" "You could write a Unix shell script or Windows batch files for some of these" " tasks, but shell scripts are best at moving around files and changing text " @@ -85,7 +79,6 @@ msgstr "" "\"Unix\" موجود است و به شما کمک می کند کار را سریع تر انجام دهید." #: ../../tutorial/appetite.rst:29 -#, fuzzy msgid "" "Python is simple to use, but it is a real programming language, offering " "much more structure and support for large programs than shell scripts or " @@ -106,7 +99,6 @@ msgstr "" "به آسانی همان زبان ها در پایتون قابل انجام است." #: ../../tutorial/appetite.rst:37 -#, fuzzy msgid "" "Python allows you to split your program into modules that can be reused in " "other Python programs. It comes with a large collection of standard modules" @@ -124,7 +116,6 @@ msgstr "" "ابزار رابط کاربری گرافیکی مثل Tk ارائه می دهند." #: ../../tutorial/appetite.rst:44 -#, fuzzy msgid "" "Python is an interpreted language, which can save you considerable time " "during program development because no compilation and linking is necessary." @@ -140,7 +131,6 @@ msgstr "" "همچنین، به عنوان یک ماشین حساب رومیزی کاربردی محسوب می شود." #: ../../tutorial/appetite.rst:50 -#, fuzzy msgid "" "Python enables programs to be written compactly and readably. Programs " "written in Python are typically much shorter than equivalent C, C++, or " @@ -152,7 +142,6 @@ msgstr "" "دلیل:" #: ../../tutorial/appetite.rst:54 -#, fuzzy msgid "" "the high-level data types allow you to express complex operations in a " "single statement;" @@ -161,7 +150,6 @@ msgstr "" "کنید؛" #: ../../tutorial/appetite.rst:57 -#, fuzzy msgid "" "statement grouping is done by indentation instead of beginning and ending " "brackets;" @@ -170,12 +158,10 @@ msgstr "" "کروشه های آغاز و پایان؛" #: ../../tutorial/appetite.rst:60 -#, fuzzy msgid "no variable or argument declarations are necessary." msgstr "اعلان متغیر یا آرگومان لازم نیست." #: ../../tutorial/appetite.rst:62 -#, fuzzy msgid "" "Python is *extensible*: if you know how to program in C it is easy to add a " "new built-in function or module to the interpreter, either to perform " @@ -194,7 +180,6 @@ msgstr "" " آن به عنوان یک زبان افزونه یا زبان دستوری برای آن برنامه استفاده کنید." #: ../../tutorial/appetite.rst:70 -#, fuzzy msgid "" "By the way, the language is named after the BBC show \"Monty Python's Flying" " Circus\" and has nothing to do with reptiles. Making references to Monty " @@ -206,7 +191,6 @@ msgstr "" "شود!" #: ../../tutorial/appetite.rst:74 -#, fuzzy msgid "" "Now that you are all excited about Python, you'll want to examine it in some" " more detail. Since the best way to learn a language is to use it, the " @@ -218,7 +202,6 @@ msgstr "" "مطالعه هستید، با \"Python interpreter\" بازی کنید." #: ../../tutorial/appetite.rst:78 -#, fuzzy msgid "" "In the next chapter, the mechanics of using the interpreter are explained. " "This is rather mundane information, but essential for trying out the " @@ -229,7 +212,6 @@ msgstr "" "بعداً نشان داده می شوند، ضروری است." #: ../../tutorial/appetite.rst:82 -#, fuzzy msgid "" "The rest of the tutorial introduces various features of the Python language " "and system through examples, beginning with simple expressions, statements " diff --git a/tutorial/classes.po b/tutorial/classes.po index 6ab920b83..256506be8 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/classes.rst:5 -#, fuzzy msgid "Classes" msgstr "کلاس ها" #: ../../tutorial/classes.rst:7 -#, fuzzy msgid "" "Classes provide a means of bundling data and functionality together. " "Creating a new class creates a new *type* of object, allowing new " @@ -42,7 +39,6 @@ msgstr "" "متدهایی (که توسط کلاس تعریف شده اند) داشته باشند تا وضعیت آن را تغییر دهند." #: ../../tutorial/classes.rst:13 -#, fuzzy msgid "" "Compared with other programming languages, Python's class mechanism adds " "classes with a minimum of new syntax and semantics. It is a mixture of the " @@ -67,7 +63,6 @@ msgstr "" "از ایجاد بیشتر تغییر داده شوند." #: ../../tutorial/classes.rst:23 -#, fuzzy msgid "" "In C++ terminology, normally class members (including the data members) are " "*public* (except see below :ref:`tut-private`), and all member functions are" @@ -93,7 +88,6 @@ msgstr "" "زیرنویسی و غیره) می توانند برای نمونه های کلاس بازتعریف شوند." #: ../../tutorial/classes.rst:34 -#, fuzzy msgid "" "(Lacking universally accepted terminology to talk about classes, I will make" " occasional use of Smalltalk and C++ terms. I would use Modula-3 terms, " @@ -106,12 +100,10 @@ msgstr "" "است، ولی انتظار دارم که تعداد کمی از خوانندگان با آن آشنا باشند." #: ../../tutorial/classes.rst:43 -#, fuzzy msgid "A Word About Names and Objects" msgstr "یک کلمه درباره نام ها و اشیاء" #: ../../tutorial/classes.rst:45 -#, fuzzy msgid "" "Objects have individuality, and multiple names (in multiple scopes) can be " "bound to the same object. This is known as aliasing in other languages. " @@ -140,12 +132,10 @@ msgstr "" " آرگومان ها را همانطور که در پاسکال وجود دارد، حذف می کند." #: ../../tutorial/classes.rst:61 -#, fuzzy msgid "Python Scopes and Namespaces" msgstr "محدوده ها و فضای نام ها در پایتون" #: ../../tutorial/classes.rst:63 -#, fuzzy msgid "" "Before introducing classes, I first have to tell you something about " "Python's scope rules. Class definitions play some neat tricks with " @@ -160,12 +150,10 @@ msgstr "" "مفید است." #: ../../tutorial/classes.rst:69 -#, fuzzy msgid "Let's begin with some definitions." msgstr "بیایید با چند تعریف شروع کنیم." #: ../../tutorial/classes.rst:71 -#, fuzzy msgid "" "A *namespace* is a mapping from names to objects. Most namespaces are " "currently implemented as Python dictionaries, but that's normally not " @@ -191,7 +179,6 @@ msgstr "" " کاربران ماژول ها باید آن را با نام ماژول مقدمه کنند." #: ../../tutorial/classes.rst:82 -#, fuzzy msgid "" "By the way, I use the word *attribute* for any name following a dot --- for " "example, in the expression ``z.real``, ``real`` is an attribute of the " @@ -204,7 +191,6 @@ msgid "" msgstr "" #: ../../tutorial/classes.rst:90 -#, fuzzy msgid "" "Attributes may be read-only or writable. In the latter case, assignment to " "attributes is possible. Module attributes are writable: you can write " @@ -221,7 +207,6 @@ msgstr "" "حذف خواهد کرد." #: ../../tutorial/classes.rst:96 -#, fuzzy msgid "" "Namespaces are created at different moments and have different lifetimes. " "The namespace containing the built-in names is created when the Python " @@ -244,7 +229,6 @@ msgstr "" " کنند؛ این ماژول :mod:`builtins` نامیده می شود.)" #: ../../tutorial/classes.rst:106 -#, fuzzy msgid "" "The local namespace for a function is created when the function is called, " "and deleted when the function returns or raises an exception that is not " @@ -258,7 +242,6 @@ msgstr "" "البته، هر فراخوانی بازگشتی فضای نام محلی خود را دارد." #: ../../tutorial/classes.rst:112 -#, fuzzy msgid "" "A *scope* is a textual region of a Python program where a namespace is " "directly accessible. \"Directly accessible\" here means that an unqualified" @@ -270,7 +253,6 @@ msgstr "" " پیدا کند." #: ../../tutorial/classes.rst:116 -#, fuzzy msgid "" "Although scopes are determined statically, they are used dynamically. At any" " time during execution, there are 3 or 4 nested scopes whose namespaces are " @@ -281,12 +263,10 @@ msgstr "" "دارند که فضای نام های آنها به طور مستقیم قابل دسترسی است:" #: ../../tutorial/classes.rst:120 -#, fuzzy msgid "the innermost scope, which is searched first, contains the local names" msgstr "درونی ترین حوزه، که ابتدا جستجو می شود، شامل نام های محلی است" #: ../../tutorial/classes.rst:121 -#, fuzzy msgid "" "the scopes of any enclosing functions, which are searched starting with the " "nearest enclosing scope, contain non-local, but also non-global names" @@ -295,12 +275,10 @@ msgstr "" "نام هایی است که نه محلی هستند و نه سراسری." #: ../../tutorial/classes.rst:123 -#, fuzzy msgid "the next-to-last scope contains the current module's global names" msgstr "حوزه قبل از آخر شامل نام های جهانی ماژول جاری است." #: ../../tutorial/classes.rst:124 -#, fuzzy msgid "" "the outermost scope (searched last) is the namespace containing built-in " "names" @@ -309,7 +287,6 @@ msgstr "" "داخلی است." #: ../../tutorial/classes.rst:126 -#, fuzzy msgid "" "If a name is declared global, then all references and assignments go " "directly to the next-to-last scope containing the module's global names. To" @@ -328,7 +305,6 @@ msgstr "" " را بدون تغییر باقی می گذارد)." #: ../../tutorial/classes.rst:133 -#, fuzzy msgid "" "Usually, the local scope references the local names of the (textually) " "current function. Outside functions, the local scope references the same " @@ -341,7 +317,6 @@ msgstr "" "دهند." #: ../../tutorial/classes.rst:138 -#, fuzzy msgid "" "It is important to realize that scopes are determined textually: the global " "scope of a function defined in a module is that module's namespace, no " @@ -360,7 +335,6 @@ msgstr "" "قبل به صورت ایستا تعیین می شوند.)" #: ../../tutorial/classes.rst:146 -#, fuzzy msgid "" "A special quirk of Python is that -- if no :keyword:`global` or " ":keyword:`nonlocal` statement is in effect -- assignments to names always go" @@ -381,7 +355,6 @@ msgstr "" "را در حیطه محلی متصل می کنند." #: ../../tutorial/classes.rst:154 -#, fuzzy msgid "" "The :keyword:`global` statement can be used to indicate that particular " "variables live in the global scope and should be rebound there; the " @@ -394,12 +367,10 @@ msgstr "" "دارند و باید در آنجا بازبسته شوند." #: ../../tutorial/classes.rst:162 -#, fuzzy msgid "Scopes and Namespaces Example" msgstr "مثال محدوده ها و فضاهای نام" #: ../../tutorial/classes.rst:164 -#, fuzzy msgid "" "This is an example demonstrating how to reference the different scopes and " "namespaces, and how :keyword:`global` and :keyword:`nonlocal` affect " @@ -410,7 +381,6 @@ msgstr "" "تأثیر می گذارند::" #: ../../tutorial/classes.rst:168 -#, fuzzy msgid "" "def scope_test():\n" " def do_local():\n" @@ -459,12 +429,10 @@ msgstr "" "print(\"In global scope:\", spam)" #: ../../tutorial/classes.rst:191 -#, fuzzy msgid "The output of the example code is:" msgstr "خروجی کد مثال به صورت زیر است:" #: ../../tutorial/classes.rst:193 -#, fuzzy msgid "" "After local assignment: test spam\n" "After nonlocal assignment: nonlocal spam\n" @@ -477,7 +445,6 @@ msgstr "" "در فضای سراسری: global spam" #: ../../tutorial/classes.rst:200 -#, fuzzy msgid "" "Note how the *local* assignment (which is default) didn't change " "*scope_test*\\'s binding of *spam*. The :keyword:`nonlocal` assignment " @@ -490,7 +457,6 @@ msgstr "" " ماژول را تغییر داد." #: ../../tutorial/classes.rst:205 -#, fuzzy msgid "" "You can also see that there was no previous binding for *spam* before the " ":keyword:`global` assignment." @@ -499,12 +465,10 @@ msgstr "" ":keyword:`global` وجود نداشت." #: ../../tutorial/classes.rst:212 -#, fuzzy msgid "A First Look at Classes" msgstr "نگاهی اولیه به کلاس ها" #: ../../tutorial/classes.rst:214 -#, fuzzy msgid "" "Classes introduce a little bit of new syntax, three new object types, and " "some new semantics." @@ -513,17 +477,14 @@ msgstr "" " کنند." #: ../../tutorial/classes.rst:221 -#, fuzzy msgid "Class Definition Syntax" msgstr "قواعد تعریف کلاس" #: ../../tutorial/classes.rst:223 -#, fuzzy msgid "The simplest form of class definition looks like this::" msgstr "ساده ترین شکل تعریف کلاس به این صورت است::" #: ../../tutorial/classes.rst:225 -#, fuzzy msgid "" "class ClassName:\n" " \n" @@ -540,7 +501,6 @@ msgstr "" " " #: ../../tutorial/classes.rst:232 -#, fuzzy msgid "" "Class definitions, like function definitions (:keyword:`def` statements) " "must be executed before they have any effect. (You could conceivably place " @@ -553,7 +513,6 @@ msgstr "" "دهید.)" #: ../../tutorial/classes.rst:236 -#, fuzzy msgid "" "In practice, the statements inside a class definition will usually be " "function definitions, but other statements are allowed, and sometimes useful" @@ -568,7 +527,6 @@ msgstr "" "موضوع بعداً توضیح داده خواهد شد." #: ../../tutorial/classes.rst:242 -#, fuzzy msgid "" "When a class definition is entered, a new namespace is created, and used as " "the local scope --- thus, all assignments to local variables go into this " @@ -581,7 +539,6 @@ msgstr "" "را در اینجا متصل می کنند." #: ../../tutorial/classes.rst:247 -#, fuzzy msgid "" "When a class definition is left normally (via the end), a *class object* is " "created. This is basically a wrapper around the contents of the namespace " @@ -599,12 +556,10 @@ msgstr "" "(:class:`!ClassName` در مثال) متصل می شود." #: ../../tutorial/classes.rst:259 -#, fuzzy msgid "Class Objects" msgstr "اشیاء کلاس" #: ../../tutorial/classes.rst:261 -#, fuzzy msgid "" "Class objects support two kinds of operations: attribute references and " "instantiation." @@ -613,7 +568,6 @@ msgstr "" "سازی." #: ../../tutorial/classes.rst:264 -#, fuzzy msgid "" "*Attribute references* use the standard syntax used for all attribute " "references in Python: ``obj.name``. Valid attribute names are all the names" @@ -626,7 +580,6 @@ msgstr "" " کلاس بودند. بنابراین، اگر تعریف کلاس به این صورت باشد:" #: ../../tutorial/classes.rst:269 -#, fuzzy msgid "" "class MyClass:\n" " \"\"\"A simple example class\"\"\"\n" @@ -643,7 +596,6 @@ msgstr "" " return 'hello world'" #: ../../tutorial/classes.rst:276 -#, fuzzy msgid "" "then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " "returning an integer and a function object, respectively. Class attributes " @@ -658,7 +610,6 @@ msgstr "" " استرینگ مربوط به کلاس را برمی گرداند: ``\"A simple example class\"``." #: ../../tutorial/classes.rst:282 -#, fuzzy msgid "" "Class *instantiation* uses function notation. Just pretend that the class " "object is a parameterless function that returns a new instance of the class." @@ -669,12 +620,10 @@ msgstr "" "(با فرض وجود کلاس فوق):" #: ../../tutorial/classes.rst:286 ../../tutorial/classes.rst:303 -#, fuzzy msgid "x = MyClass()" msgstr "x = MyClass()" #: ../../tutorial/classes.rst:288 -#, fuzzy msgid "" "creates a new *instance* of the class and assigns this object to the local " "variable ``x``." @@ -683,7 +632,6 @@ msgstr "" "اختصاص می دهد." #: ../../tutorial/classes.rst:291 -#, fuzzy msgid "" "The instantiation operation (\"calling\" a class object) creates an empty " "object. Many classes like to create objects with instances customized to a " @@ -696,7 +644,6 @@ msgstr "" ":meth:`~object.__init__` تعریف کند، مانند این:" #: ../../tutorial/classes.rst:296 -#, fuzzy msgid "" "def __init__(self):\n" " self.data = []" @@ -705,7 +652,6 @@ msgstr "" " self.data = []" #: ../../tutorial/classes.rst:299 -#, fuzzy msgid "" "When a class defines an :meth:`~object.__init__` method, class instantiation" " automatically invokes :meth:`!__init__` for the newly created class " @@ -718,7 +664,6 @@ msgstr "" "را می توان به این صورت به دست آورد:" #: ../../tutorial/classes.rst:305 -#, fuzzy msgid "" "Of course, the :meth:`~object.__init__` method may have arguments for " "greater flexibility. In that case, arguments given to the class " @@ -729,7 +674,6 @@ msgstr "" "به :meth:`!__init__` منتقل می شوند. برای مثال: :" #: ../../tutorial/classes.rst:309 -#, fuzzy msgid "" ">>> class Complex:\n" "... def __init__(self, realpart, imagpart):\n" @@ -750,12 +694,10 @@ msgstr "" "(3.0, -4.5)" #: ../../tutorial/classes.rst:322 -#, fuzzy msgid "Instance Objects" msgstr "شیء های نمونه" #: ../../tutorial/classes.rst:324 -#, fuzzy msgid "" "Now what can we do with instance objects? The only operations understood by" " instance objects are attribute references. There are two kinds of valid " @@ -766,7 +708,6 @@ msgstr "" " دارد: ویژگی های داده و متدها." #: ../../tutorial/classes.rst:328 -#, fuzzy msgid "" "*data attributes* correspond to \"instance variables\" in Smalltalk, and to " "\"data members\" in C++. Data attributes need not be declared; like local " @@ -783,7 +724,6 @@ msgstr "" "اثری باقی بگذارد::" #: ../../tutorial/classes.rst:334 -#, fuzzy msgid "" "x.counter = 1\n" "while x.counter < 10:\n" @@ -798,7 +738,6 @@ msgstr "" "del x.counter" #: ../../tutorial/classes.rst:340 -#, fuzzy msgid "" "The other kind of instance attribute reference is a *method*. A method is a " "function that \"belongs to\" an object." @@ -807,7 +746,6 @@ msgstr "" "به\" یک آبجکت است." #: ../../tutorial/classes.rst:345 -#, fuzzy msgid "" "Valid method names of an instance object depend on its class. By " "definition, all attributes of a class that are function objects define " @@ -824,22 +762,18 @@ msgstr "" " یک شیء تابع." #: ../../tutorial/classes.rst:356 -#, fuzzy msgid "Method Objects" msgstr "اشیای متد" #: ../../tutorial/classes.rst:358 -#, fuzzy msgid "Usually, a method is called right after it is bound::" msgstr "معمولاً یک متد بلافاصله بعد از اینکه مرتبط شد فراخوانی می شود::" #: ../../tutorial/classes.rst:360 -#, fuzzy msgid "x.f()" msgstr "x.f()" #: ../../tutorial/classes.rst:362 -#, fuzzy msgid "" "In the :class:`!MyClass` example, this will return the string ``'hello " "world'``. However, it is not necessary to call a method right away: ``x.f`` " @@ -851,7 +785,6 @@ msgstr "" " می تواند ذخیره شود و در زمان دیگری فراخوانی شود. به عنوان مثال::" #: ../../tutorial/classes.rst:366 -#, fuzzy msgid "" "xf = x.f\n" "while True:\n" @@ -862,12 +795,10 @@ msgstr "" " print(xf())" #: ../../tutorial/classes.rst:370 -#, fuzzy msgid "will continue to print ``hello world`` until the end of time." msgstr "تا پایان زمان به چاپ ``hello world`` ادامه خواهد داد." #: ../../tutorial/classes.rst:372 -#, fuzzy msgid "" "What exactly happens when a method is called? You may have noticed that " "``x.f()`` was called without an argument above, even though the function " @@ -884,7 +815,6 @@ msgstr "" " نگیرد..." #: ../../tutorial/classes.rst:378 -#, fuzzy msgid "" "Actually, you may have guessed the answer: the special thing about methods " "is that the instance object is passed as the first argument of the function." @@ -901,7 +831,6 @@ msgstr "" "کردن شیء نمونه متد قبل از اولین آرگومان ایجاد می شود." #: ../../tutorial/classes.rst:385 -#, fuzzy msgid "" "In general, methods work as follows. When a non-data attribute of an " "instance is referenced, the instance's class is searched. If the name " @@ -919,12 +848,10 @@ msgstr "" " شود، و شیء تابع با این فهرست آرگومان جدید فراخوانی می شود." #: ../../tutorial/classes.rst:398 -#, fuzzy msgid "Class and Instance Variables" msgstr "کلاس و متغیرهای نمونه" #: ../../tutorial/classes.rst:400 -#, fuzzy msgid "" "Generally speaking, instance variables are for data unique to each instance " "and class variables are for attributes and methods shared by all instances " @@ -935,7 +862,6 @@ msgstr "" " اشتراک گذاشته می شوند::" #: ../../tutorial/classes.rst:404 -#, fuzzy msgid "" "class Dog:\n" "\n" @@ -974,7 +900,6 @@ msgstr "" "'Buddy'" #: ../../tutorial/classes.rst:422 -#, fuzzy msgid "" "As discussed in :ref:`tut-object`, shared data can have possibly surprising " "effects with involving :term:`mutable` objects such as lists and " @@ -989,7 +914,6 @@ msgstr "" "شود::" #: ../../tutorial/classes.rst:428 -#, fuzzy msgid "" "class Dog:\n" "\n" @@ -1026,12 +950,10 @@ msgstr "" "['roll over', 'play dead']" #: ../../tutorial/classes.rst:445 -#, fuzzy msgid "Correct design of the class should use an instance variable instead::" msgstr "طراحی صحیح کلاس باید به جای آن از یک متغیر نمونه استفاده کند::" #: ../../tutorial/classes.rst:447 -#, fuzzy msgid "" "class Dog:\n" "\n" @@ -1070,12 +992,10 @@ msgstr "" "['play dead']" #: ../../tutorial/classes.rst:469 -#, fuzzy msgid "Random Remarks" msgstr "نکات تصادفی" #: ../../tutorial/classes.rst:473 -#, fuzzy msgid "" "If the same attribute name occurs in both an instance and in a class, then " "attribute lookup prioritizes the instance::" @@ -1084,7 +1004,6 @@ msgstr "" "ویژگی به نمونه اولویت می دهد::" #: ../../tutorial/classes.rst:476 -#, fuzzy msgid "" ">>> class Warehouse:\n" "... purpose = 'storage'\n" @@ -1111,7 +1030,6 @@ msgstr "" "storage east" #: ../../tutorial/classes.rst:488 -#, fuzzy msgid "" "Data attributes may be referenced by methods as well as by ordinary users " "(\"clients\") of an object. In other words, classes are not usable to " @@ -1131,7 +1049,6 @@ msgstr "" "نوشته شده به زبان C برای پایتون استفاده شود.)" #: ../../tutorial/classes.rst:496 -#, fuzzy msgid "" "Clients should use data attributes with care --- clients may mess up " "invariants maintained by the methods by stamping on their data attributes. " @@ -1147,7 +1064,6 @@ msgstr "" " در اینجا حل کند." #: ../../tutorial/classes.rst:502 -#, fuzzy msgid "" "There is no shorthand for referencing data attributes (or other methods!) " "from within methods. I find that this actually increases the readability of" @@ -1160,7 +1076,6 @@ msgstr "" "یک متد وجود ندارد." #: ../../tutorial/classes.rst:507 -#, fuzzy msgid "" "Often, the first argument of a method is called ``self``. This is nothing " "more than a convention: the name ``self`` has absolutely no special meaning " @@ -1176,7 +1091,6 @@ msgstr "" " که به چنین قراردادی وابسته باشد." #: ../../tutorial/classes.rst:513 -#, fuzzy msgid "" "Any function object that is a class attribute defines a method for instances" " of that class. It is not necessary that the function definition is " @@ -1188,7 +1102,6 @@ msgstr "" "یک شیء تابع به یک متغیر محلی در کلاس نیز قابل قبول است. برای مثال:" #: ../../tutorial/classes.rst:518 -#, fuzzy msgid "" "# Function defined outside the class\n" "def f1(self, x, y):\n" @@ -1215,7 +1128,6 @@ msgstr "" " h = g" #: ../../tutorial/classes.rst:530 -#, fuzzy msgid "" "Now ``f``, ``g`` and ``h`` are all attributes of class :class:`!C` that " "refer to function objects, and consequently they are all methods of " @@ -1228,7 +1140,6 @@ msgstr "" "تنها باعث سردرگمی خواننده یک برنامه می شود." #: ../../tutorial/classes.rst:535 -#, fuzzy msgid "" "Methods may call other methods by using method attributes of the ``self`` " "argument::" @@ -1237,7 +1148,6 @@ msgstr "" " فراخوانی کنند:" #: ../../tutorial/classes.rst:538 -#, fuzzy msgid "" "class Bag:\n" " def __init__(self):\n" @@ -1262,7 +1172,6 @@ msgstr "" " self.add(x)" #: ../../tutorial/classes.rst:549 -#, fuzzy msgid "" "Methods may reference global names in the same way as ordinary functions. " "The global scope associated with a method is the module containing its " @@ -1286,7 +1195,6 @@ msgstr "" " دهد." #: ../../tutorial/classes.rst:559 -#, fuzzy msgid "" "Each value is an object, and therefore has a *class* (also called its " "*type*). It is stored as ``object.__class__``." @@ -1295,12 +1203,10 @@ msgstr "" "نامیده می شود) است. این به صورت ``object.__class__`` ذخیره می شود." #: ../../tutorial/classes.rst:566 -#, fuzzy msgid "Inheritance" msgstr "وراثت" #: ../../tutorial/classes.rst:568 -#, fuzzy msgid "" "Of course, a language feature would not be worthy of the name \"class\" " "without supporting inheritance. The syntax for a derived class definition " @@ -1310,7 +1216,6 @@ msgstr "" "بود. نحو تعریف یک کلاس مشتق به این شکل است::" #: ../../tutorial/classes.rst:572 -#, fuzzy msgid "" "class DerivedClassName(BaseClassName):\n" " \n" @@ -1327,7 +1232,6 @@ msgstr "" " " #: ../../tutorial/classes.rst:579 -#, fuzzy msgid "" "The name :class:`!BaseClassName` must be defined in a namespace accessible " "from the scope containing the derived class definition. In place of a base " @@ -1340,12 +1244,10 @@ msgstr "" " در یک ماژول دیگر تعریف شده است، مفید باشد:" #: ../../tutorial/classes.rst:585 -#, fuzzy msgid "class DerivedClassName(modname.BaseClassName):" msgstr "کلاس DerivedClassName(modname.BaseClassName):" #: ../../tutorial/classes.rst:587 -#, fuzzy msgid "" "Execution of a derived class definition proceeds the same as for a base " "class. When the class object is constructed, the base class is remembered. " @@ -1361,7 +1263,6 @@ msgstr "" "اعمال می شود اگر کلاس پایه خود از کلاس دیگری مشتق شده باشد." #: ../../tutorial/classes.rst:593 -#, fuzzy msgid "" "There's nothing special about instantiation of derived classes: " "``DerivedClassName()`` creates a new instance of the class. Method " @@ -1376,7 +1277,6 @@ msgstr "" " را برگرداند، ارجاع به روش معتبر است." #: ../../tutorial/classes.rst:599 -#, fuzzy msgid "" "Derived classes may override methods of their base classes. Because methods" " have no special privileges when calling other methods of the same object, a" @@ -1392,7 +1292,6 @@ msgstr "" "پایتون به طور مؤثر ``virtual`` هستند.)" #: ../../tutorial/classes.rst:605 -#, fuzzy msgid "" "An overriding method in a derived class may in fact want to extend rather " "than simply replace the base class method of the same name. There is a " @@ -1409,12 +1308,10 @@ msgstr "" "که کلاس پایه به عنوان ``BaseClassName`` در حوزهٔ جهانی در دسترس باشد.)" #: ../../tutorial/classes.rst:612 -#, fuzzy msgid "Python has two built-in functions that work with inheritance:" msgstr "پایتون دو تابع داخلی دارد که با ارث بری کار می کنند:" #: ../../tutorial/classes.rst:614 -#, fuzzy msgid "" "Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)``" " will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " @@ -1425,7 +1322,6 @@ msgstr "" "برابر با :class:`int` یا کلاسی که از :class:`int` مشتق شده است باشد." #: ../../tutorial/classes.rst:618 -#, fuzzy msgid "" "Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)``" " is ``True`` since :class:`bool` is a subclass of :class:`int`. However, " @@ -1438,12 +1334,10 @@ msgstr "" "چونکه :class:`float` یک زیرکلاس از :class:`int` نیست." #: ../../tutorial/classes.rst:628 -#, fuzzy msgid "Multiple Inheritance" msgstr "وراثت چندگانه" #: ../../tutorial/classes.rst:630 -#, fuzzy msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" @@ -1452,7 +1346,6 @@ msgstr "" "کلاس پایه به این شکل است::" #: ../../tutorial/classes.rst:633 -#, fuzzy msgid "" "class DerivedClassName(Base1, Base2, Base3):\n" " \n" @@ -1469,7 +1362,6 @@ msgstr "" " " #: ../../tutorial/classes.rst:640 -#, fuzzy msgid "" "For most purposes, in the simplest cases, you can think of the search for " "attributes inherited from a parent class as depth-first, left-to-right, not " @@ -1488,7 +1380,6 @@ msgstr "" "جستجو می شود، و به همین ترتیب ادامه دارد." #: ../../tutorial/classes.rst:647 -#, fuzzy msgid "" "In fact, it is slightly more complex than that; the method resolution order " "changes dynamically to support cooperative calls to :func:`super`. This " @@ -1502,7 +1393,6 @@ msgstr "" "قدرتمندتر از فراخوانی super که در زبان های ارث بری منفرد یافت می شود، است." #: ../../tutorial/classes.rst:653 -#, fuzzy msgid "" "Dynamic ordering is necessary because all cases of multiple inheritance " "exhibit one or more diamond relationships (where at least one of the parent " @@ -1531,12 +1421,10 @@ msgstr "" "کنید." #: ../../tutorial/classes.rst:670 -#, fuzzy msgid "Private Variables" msgstr "متغیرهای خصوصی" #: ../../tutorial/classes.rst:672 -#, fuzzy msgid "" "\"Private\" instance variables that cannot be accessed except from inside an" " object don't exist in Python. However, there is a convention that is " @@ -1553,7 +1441,6 @@ msgstr "" "سازی تلقی شود و ممکن است بدون هشدار قبلی تغییر کند." #: ../../tutorial/classes.rst:682 -#, fuzzy msgid "" "Since there is a valid use-case for class-private members (namely to avoid " "name clashes of names with names defined by subclasses), there is limited " @@ -1573,7 +1460,6 @@ msgstr "" "توجه به موقعیت نحوی شناسه انجام می شود، تا زمانی که در تعریف یک کلاس رخ دهد." #: ../../tutorial/classes.rst:693 -#, fuzzy msgid "" "The :ref:`private name mangling specifications ` for " "details and special cases." @@ -1582,7 +1468,6 @@ msgstr "" "جزئیات و موارد خاص." #: ../../tutorial/classes.rst:696 -#, fuzzy msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" @@ -1591,7 +1476,6 @@ msgstr "" "شکستن فراخوانی های روش درون کلاسی مفید است. به عنوان مثال:" #: ../../tutorial/classes.rst:699 -#, fuzzy msgid "" "class Mapping:\n" " def __init__(self, iterable):\n" @@ -1632,7 +1516,6 @@ msgstr "" " self.items_list.append(item)" #: ../../tutorial/classes.rst:718 -#, fuzzy msgid "" "The above example would work even if ``MappingSubclass`` were to introduce a" " ``__update`` identifier since it is replaced with ``_Mapping__update`` in " @@ -1644,7 +1527,6 @@ msgstr "" "``MappingSubclass`` با ``_MappingSubclass__update`` جایگزین می شود." #: ../../tutorial/classes.rst:723 -#, fuzzy msgid "" "Note that the mangling rules are designed mostly to avoid accidents; it " "still is possible to access or modify a variable that is considered private." @@ -1656,7 +1538,6 @@ msgstr "" "مفید باشد." #: ../../tutorial/classes.rst:727 -#, fuzzy msgid "" "Notice that code passed to ``exec()`` or ``eval()`` does not consider the " "classname of the invoking class to be the current class; this is similar to " @@ -1673,12 +1554,10 @@ msgstr "" "``__dict__`` ارجاع داده می شود." #: ../../tutorial/classes.rst:738 -#, fuzzy msgid "Odds and Ends" msgstr "Odds and Ends" #: ../../tutorial/classes.rst:740 -#, fuzzy msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " "or C \"struct\", bundling together a few named data items. The idiomatic " @@ -1690,7 +1569,6 @@ msgstr "" "است::" #: ../../tutorial/classes.rst:744 -#, fuzzy msgid "" "from dataclasses import dataclass\n" "\n" @@ -1709,7 +1587,6 @@ msgstr "" " salary: int" #: ../../tutorial/classes.rst:754 -#, fuzzy msgid "" ">>> john = Employee('john', 'computer lab', 1000)\n" ">>> john.dept\n" @@ -1724,7 +1601,6 @@ msgstr "" "1000" #: ../../tutorial/classes.rst:760 -#, fuzzy msgid "" "A piece of Python code that expects a particular abstract data type can " "often be passed a class that emulates the methods of that data type instead." @@ -1741,7 +1617,6 @@ msgstr "" "دریافت کند و آن را به عنوان یک آرگومان پاس کنید." #: ../../tutorial/classes.rst:772 -#, fuzzy msgid "" ":ref:`Instance method objects ` have attributes, too: " ":attr:`m.__self__ ` is the instance object with the method " @@ -1754,12 +1629,10 @@ msgstr "" "defined-funcs>` مربوط به متد است." #: ../../tutorial/classes.rst:782 -#, fuzzy msgid "Iterators" msgstr "ترتیب دهنده ها" #: ../../tutorial/classes.rst:784 -#, fuzzy msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" @@ -1768,7 +1641,6 @@ msgstr "" " عبارت :keyword:`for` حلقه زده شوند::" #: ../../tutorial/classes.rst:787 -#, fuzzy msgid "" "for element in [1, 2, 3]:\n" " print(element)\n" @@ -1793,7 +1665,6 @@ msgstr "" " print(line, end='')" #: ../../tutorial/classes.rst:798 -#, fuzzy msgid "" "This style of access is clear, concise, and convenient. The use of " "iterators pervades and unifies Python. Behind the scenes, the " @@ -1816,7 +1687,6 @@ msgstr "" "همه این کارها چگونه انجام می شود:" #: ../../tutorial/classes.rst:807 -#, fuzzy msgid "" ">>> s = 'abc'\n" ">>> it = iter(s)\n" @@ -1851,7 +1721,6 @@ msgstr "" "StopIteration" #: ../../tutorial/classes.rst:823 -#, fuzzy msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " "iterator behavior to your classes. Define an :meth:`~container.__iter__` " @@ -1865,7 +1734,6 @@ msgstr "" "تعریف کند، آنگاه :meth:`!__iter__` می تواند فقط ``self`` را بازگرداند::" #: ../../tutorial/classes.rst:828 -#, fuzzy msgid "" "class Reverse:\n" " \"\"\"Iterator for looping over a sequence backwards.\"\"\"\n" @@ -1898,7 +1766,6 @@ msgstr "" " return self.data[self.index]" #: ../../tutorial/classes.rst:845 -#, fuzzy msgid "" ">>> rev = Reverse('spam')\n" ">>> iter(rev)\n" @@ -1923,12 +1790,10 @@ msgstr "" "s" #: ../../tutorial/classes.rst:860 -#, fuzzy msgid "Generators" msgstr "تولیدکننده ها" #: ../../tutorial/classes.rst:862 -#, fuzzy msgid "" ":term:`Generators ` are a simple and powerful tool for creating " "iterators. They are written like regular functions but use the " @@ -1946,7 +1811,6 @@ msgstr "" "باورنکردنی ساده باشد::" #: ../../tutorial/classes.rst:869 -#, fuzzy msgid "" "def reverse(data):\n" " for index in range(len(data)-1, -1, -1):\n" @@ -1957,7 +1821,6 @@ msgstr "" " yield data[index]" #: ../../tutorial/classes.rst:875 -#, fuzzy msgid "" ">>> for char in reverse('golf'):\n" "... print(char)\n" @@ -1976,7 +1839,6 @@ msgstr "" "g" #: ../../tutorial/classes.rst:883 -#, fuzzy msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " @@ -1990,7 +1852,6 @@ msgstr "" " می شوند." #: ../../tutorial/classes.rst:888 -#, fuzzy msgid "" "Another key feature is that the local variables and execution state are " "automatically saved between calls. This made the function easier to write " @@ -2003,7 +1864,6 @@ msgstr "" "``self.data`` استفاده می کند، کرده است." #: ../../tutorial/classes.rst:893 -#, fuzzy msgid "" "In addition to automatic method creation and saving program state, when " "generators terminate, they automatically raise :exc:`StopIteration`. In " @@ -2016,7 +1876,6 @@ msgstr "" " امکان پذیر می سازند." #: ../../tutorial/classes.rst:902 -#, fuzzy msgid "Generator Expressions" msgstr "" "Generator Expressions\n" @@ -2024,7 +1883,6 @@ msgstr "" "تعبیرات مولد شبیه به لیست comprehensions هستند ولی به جای تولید یک لیست کامل، یک مولد ایجاد می کنند که مقادیر را به تدریج تولید می کند. این می تواند باعث بهینه سازی حافظه شود و برای پردازش داده های بزرگ مفید باشد. تعبیرات مولد به کمک پرانتز دور نتیجه نوشته می شوند، در حالی که لیست comprehensions از براکت ها استفاده می کنند." #: ../../tutorial/classes.rst:904 -#, fuzzy msgid "" "Some simple generators can be coded succinctly as expressions using a syntax" " similar to list comprehensions but with parentheses instead of square " @@ -2041,12 +1899,10 @@ msgstr "" "جویی می کنند." #: ../../tutorial/classes.rst:911 -#, fuzzy msgid "Examples::" msgstr "مثال ها::" #: ../../tutorial/classes.rst:913 -#, fuzzy msgid "" ">>> sum(i*i for i in range(10)) # sum of squares\n" "285\n" @@ -2081,12 +1937,10 @@ msgstr "" "['f', 'l', 'o', 'g']" #: ../../tutorial/classes.rst:932 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../tutorial/classes.rst:933 -#, fuzzy msgid "" "Except for one thing. Module objects have a secret read-only attribute " "called :attr:`~object.__dict__` which returns the dictionary used to " @@ -2102,21 +1956,17 @@ msgstr "" " باید محدود به مواردی مانند دیباگرهای پس از مرگ برنامه باشد." #: ../../tutorial/classes.rst:343 -#, fuzzy msgid "object" msgstr "شیء" #: ../../tutorial/classes.rst:343 -#, fuzzy msgid "method" msgstr "متد" #: ../../tutorial/classes.rst:679 -#, fuzzy msgid "name" msgstr "نام" #: ../../tutorial/classes.rst:679 -#, fuzzy msgid "mangling" msgstr "مخفی سازی نام" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 1aca20f73..df70961a0 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/controlflow.rst:5 -#, fuzzy msgid "More Control Flow Tools" msgstr "ابزارهای کنترل جریان بیشتر" #: ../../tutorial/controlflow.rst:7 -#, fuzzy msgid "" "As well as the :keyword:`while` statement just introduced, Python uses a few" " more that we will encounter in this chapter." @@ -36,19 +33,16 @@ msgstr "" "دستور دیگر نیز استفاده می کند که در این فصل با آن ها مواجه خواهیم شد." #: ../../tutorial/controlflow.rst:14 -#, fuzzy msgid ":keyword:`!if` Statements" msgstr "عبارات :keyword:`!if`" #: ../../tutorial/controlflow.rst:16 -#, fuzzy msgid "" "Perhaps the most well-known statement type is the :keyword:`if` statement. " "For example::" msgstr "شاید شناخته شده ترین نوع دستور، دستور :keyword:`if` باشد. برای مثال:" #: ../../tutorial/controlflow.rst:19 -#, fuzzy msgid "" ">>> x = int(input(\"Please enter an integer: \"))\n" "Please enter an integer: 42\n" @@ -79,7 +73,6 @@ msgstr "" "بیشتر" #: ../../tutorial/controlflow.rst:33 -#, fuzzy msgid "" "There can be zero or more :keyword:`elif` parts, and the :keyword:`else` " "part is optional. The keyword ':keyword:`!elif`' is short for 'else if', " @@ -95,7 +88,6 @@ msgstr "" " شود، به کار می رود." #: ../../tutorial/controlflow.rst:39 -#, fuzzy msgid "" "If you're comparing the same value to several constants, or checking for " "specific types or attributes, you may also find the :keyword:`!match` " @@ -106,12 +98,10 @@ msgstr "" "باشد. برای جزئیات بیشتر به :ref:`tut-match` مراجعه کنید." #: ../../tutorial/controlflow.rst:46 -#, fuzzy msgid ":keyword:`!for` Statements" msgstr ":keyword:`!for` اظهارات" #: ../../tutorial/controlflow.rst:51 -#, fuzzy msgid "" "The :keyword:`for` statement in Python differs a bit from what you may be " "used to in C or Pascal. Rather than always iterating over an arithmetic " @@ -128,7 +118,6 @@ msgstr "" "(لیست یا رشته) به ترتیب ظاهر شدن آنها در دنباله، تکرار می کند. برای مثال:" #: ../../tutorial/controlflow.rst:63 -#, fuzzy msgid "" ">>> # Measure some strings:\n" ">>> words = ['cat', 'window', 'defenestrate']\n" @@ -149,7 +138,6 @@ msgstr "" "defenestrate 12" #: ../../tutorial/controlflow.rst:72 -#, fuzzy msgid "" "Code that modifies a collection while iterating over that same collection " "can be tricky to get right. Instead, it is usually more straight-forward to" @@ -160,7 +148,6 @@ msgstr "" " کپی از مجموعه حلقه بزنید یا یک مجموعه جدید ایجاد کنید::" #: ../../tutorial/controlflow.rst:76 -#, fuzzy msgid "" "# Create a sample collection\n" "users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}\n" @@ -191,12 +178,10 @@ msgstr "" " active_users[user] = status" #: ../../tutorial/controlflow.rst:94 -#, fuzzy msgid "The :func:`range` Function" msgstr "تابع :func:`range`" #: ../../tutorial/controlflow.rst:96 -#, fuzzy msgid "" "If you do need to iterate over a sequence of numbers, the built-in function " ":func:`range` comes in handy. It generates arithmetic progressions::" @@ -205,7 +190,6 @@ msgstr "" ":func:`range` کارآمد است. این تابع، پیشرفت های حسابی تولید می کند::" #: ../../tutorial/controlflow.rst:99 -#, fuzzy msgid "" ">>> for i in range(5):\n" "... print(i)\n" @@ -226,7 +210,6 @@ msgstr "" "4" #: ../../tutorial/controlflow.rst:108 -#, fuzzy msgid "" "The given end point is never part of the generated sequence; ``range(10)`` " "generates 10 values, the legal indices for items of a sequence of length 10." @@ -240,7 +223,6 @@ msgstr "" "کرد:" #: ../../tutorial/controlflow.rst:113 -#, fuzzy msgid "" ">>> list(range(5, 10))\n" "[5, 6, 7, 8, 9]\n" @@ -261,7 +243,6 @@ msgstr "" "[-10, -40, -70]" #: ../../tutorial/controlflow.rst:122 -#, fuzzy msgid "" "To iterate over the indices of a sequence, you can combine :func:`range` and" " :func:`len` as follows::" @@ -270,7 +251,6 @@ msgstr "" " را به صورت زیر ترکیب کنید::" #: ../../tutorial/controlflow.rst:125 -#, fuzzy msgid "" ">>> a = ['Mary', 'had', 'a', 'little', 'lamb']\n" ">>> for i in range(len(a)):\n" @@ -293,7 +273,6 @@ msgstr "" "4 lamb" #: ../../tutorial/controlflow.rst:135 -#, fuzzy msgid "" "In most such cases, however, it is convenient to use the :func:`enumerate` " "function, see :ref:`tut-loopidioms`." @@ -302,12 +281,10 @@ msgstr "" "است، رجوع کنید به :ref:`tut-loopidioms`." #: ../../tutorial/controlflow.rst:138 -#, fuzzy msgid "A strange thing happens if you just print a range::" msgstr "اگر شما فقط یک range را چاپ کنید، اتفاق عجیبی رخ می دهد:" #: ../../tutorial/controlflow.rst:140 -#, fuzzy msgid "" ">>> range(10)\n" "range(0, 10)" @@ -316,7 +293,6 @@ msgstr "" "range(0, 10)" #: ../../tutorial/controlflow.rst:143 -#, fuzzy msgid "" "In many ways the object returned by :func:`range` behaves as if it is a " "list, but in fact it isn't. It is an object which returns the successive " @@ -329,7 +305,6 @@ msgstr "" "حقیقت لیست را نمی سازد و بدین ترتیب فضای ذخیره سازی را حفظ می کند." #: ../../tutorial/controlflow.rst:148 -#, fuzzy msgid "" "We say such an object is :term:`iterable`, that is, suitable as a target for" " functions and constructs that expect something from which they can obtain " @@ -344,7 +319,6 @@ msgstr "" "از یک تابع که یک iterable می گیرد :func:`sum` است::" #: ../../tutorial/controlflow.rst:154 -#, fuzzy msgid "" ">>> sum(range(4)) # 0 + 1 + 2 + 3\n" "6" @@ -353,7 +327,6 @@ msgstr "" "6" #: ../../tutorial/controlflow.rst:157 -#, fuzzy msgid "" "Later we will see more functions that return iterables and take iterables as" " arguments. In chapter :ref:`tut-structures`, we will discuss in more " @@ -364,12 +337,10 @@ msgstr "" "درباره :func:`list` به تفصیل بیشتری صحبت خواهیم کرد." #: ../../tutorial/controlflow.rst:164 -#, fuzzy msgid ":keyword:`!break` and :keyword:`!continue` Statements" msgstr ":keyword:`!break` و :keyword:`!continue` گزاره ها" #: ../../tutorial/controlflow.rst:166 -#, fuzzy msgid "" "The :keyword:`break` statement breaks out of the innermost enclosing " ":keyword:`for` or :keyword:`while` loop::" @@ -378,7 +349,6 @@ msgstr "" ":keyword:`while` خارج می شود::" #: ../../tutorial/controlflow.rst:169 -#, fuzzy msgid "" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" @@ -400,14 +370,12 @@ msgstr "" "... print(f\"{n} یک عدد اول است\")" #: ../../tutorial/controlflow.rst:180 -#, fuzzy msgid "" "The :keyword:`continue` statement continues with the next iteration of the " "loop::" msgstr "بیانیه :keyword:`continue` با تکرار بعدی حلقه ادامه می یابد." #: ../../tutorial/controlflow.rst:183 -#, fuzzy msgid "" ">>> for num in range(2, 10):\n" "... if num % 2 == 0:\n" @@ -440,12 +408,10 @@ msgstr "" "عدد فرد پیدا شد 9" #: ../../tutorial/controlflow.rst:202 -#, fuzzy msgid ":keyword:`!else` Clauses on Loops" msgstr ":keyword:`!else` بندهایی درباره حلقه ها" #: ../../tutorial/controlflow.rst:204 -#, fuzzy msgid "" "In a :keyword:`!for` or :keyword:`!while` loop the :keyword:`!break` " "statement may be paired with an :keyword:`!else` clause. If the loop " @@ -457,7 +423,6 @@ msgstr "" ":keyword:`!break` به پایان برسد، شرط :keyword:`!else` اجرا می شود." #: ../../tutorial/controlflow.rst:208 -#, fuzzy msgid "" "In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " "loop finishes its final iteration, that is, if no break occurred." @@ -466,7 +431,6 @@ msgstr "" "تکرار حلقه اجرا می شود، یعنی اگر هیچ توقفی رخ نداده باشد." #: ../../tutorial/controlflow.rst:211 -#, fuzzy msgid "" "In a :keyword:`while` loop, it's executed after the loop's condition becomes" " false." @@ -475,7 +439,6 @@ msgstr "" "شود." #: ../../tutorial/controlflow.rst:213 -#, fuzzy msgid "" "In either kind of loop, the :keyword:`!else` clause is **not** executed if " "the loop was terminated by a :keyword:`break`. Of course, other ways of " @@ -488,7 +451,6 @@ msgstr "" "استثنا، نیز باعث می شوند که اجرای بخش :keyword:`else` نادیده گرفته شود." #: ../../tutorial/controlflow.rst:218 -#, fuzzy msgid "" "This is exemplified in the following :keyword:`!for` loop, which searches " "for prime numbers::" @@ -497,7 +459,6 @@ msgstr "" " است::" #: ../../tutorial/controlflow.rst:221 -#, fuzzy msgid "" ">>> for n in range(2, 10):\n" "... for x in range(2, n):\n" @@ -536,7 +497,6 @@ msgstr "" "9 برابر است با 3 * 3" #: ../../tutorial/controlflow.rst:239 -#, fuzzy msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the ``for`` loop, **not** the ``if`` statement.)" @@ -545,7 +505,6 @@ msgstr "" "دارد، **not** به عبارت ``if``.)" #: ../../tutorial/controlflow.rst:242 -#, fuzzy msgid "" "One way to think of the else clause is to imagine it paired with the ``if`` " "inside the loop. As the loop executes, it will run a sequence like " @@ -560,7 +519,6 @@ msgstr "" "اجرا خواهد شد." #: ../../tutorial/controlflow.rst:248 -#, fuzzy msgid "" "When used with a loop, the ``else`` clause has more in common with the " "``else`` clause of a :keyword:`try` statement than it does with that of " @@ -576,12 +534,10 @@ msgstr "" "بیشتر درباره دستور ``try`` و استثناها، به :ref:`tut-handling` مراجعه کنید." #: ../../tutorial/controlflow.rst:257 -#, fuzzy msgid ":keyword:`!pass` Statements" msgstr ":keyword:`!pass` دستورات" #: ../../tutorial/controlflow.rst:259 -#, fuzzy msgid "" "The :keyword:`pass` statement does nothing. It can be used when a statement " "is required syntactically but the program requires no action. For example::" @@ -591,7 +547,6 @@ msgstr "" "ندارد. برای مثال::" #: ../../tutorial/controlflow.rst:262 -#, fuzzy msgid "" ">>> while True:\n" "... pass # Busy-wait for keyboard interrupt (Ctrl+C)\n" @@ -602,12 +557,10 @@ msgstr "" "..." #: ../../tutorial/controlflow.rst:266 -#, fuzzy msgid "This is commonly used for creating minimal classes::" msgstr "این معمولاً برای ایجاد کلاس های حداقلی استفاده می شود::" #: ../../tutorial/controlflow.rst:268 -#, fuzzy msgid "" ">>> class MyEmptyClass:\n" "... pass\n" @@ -618,7 +571,6 @@ msgstr "" "..." #: ../../tutorial/controlflow.rst:272 -#, fuzzy msgid "" "Another place :keyword:`pass` can be used is as a place-holder for a " "function or conditional body when you are working on new code, allowing you " @@ -631,7 +583,6 @@ msgstr "" ":keyword:`!pass` به صورت خاموش نادیده گرفته می شود::" #: ../../tutorial/controlflow.rst:276 -#, fuzzy msgid "" ">>> def initlog(*args):\n" "... pass # Remember to implement this!\n" @@ -642,12 +593,10 @@ msgstr "" "..." #: ../../tutorial/controlflow.rst:284 -#, fuzzy msgid ":keyword:`!match` Statements" msgstr ":keyword:`!match` دستورات" #: ../../tutorial/controlflow.rst:286 -#, fuzzy msgid "" "A :keyword:`match` statement takes an expression and compares its value to " "successive patterns given as one or more case blocks. This is superficially" @@ -665,14 +614,12 @@ msgstr "" "اجزا (عناصر دنباله یا ویژگی های شیء) را از مقدار درون متغیرها استخراج کند." #: ../../tutorial/controlflow.rst:294 -#, fuzzy msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" "ساده ترین شکل، یک مقدار موضوع را با یک یا چند مقدار ثابت مقایسه می کند::" #: ../../tutorial/controlflow.rst:296 -#, fuzzy msgid "" "def http_error(status):\n" " match status:\n" @@ -697,7 +644,6 @@ msgstr "" " return \"Something's wrong with the internet\"" #: ../../tutorial/controlflow.rst:307 -#, fuzzy msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." @@ -707,7 +653,6 @@ msgstr "" "نداشته باشد، هیچ کدام از شاخه ها اجرا نمی شوند." #: ../../tutorial/controlflow.rst:310 -#, fuzzy msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" @@ -715,7 +660,6 @@ msgstr "" "ترکیب کنید::" #: ../../tutorial/controlflow.rst:312 -#, fuzzy msgid "" "case 401 | 403 | 404:\n" " return \"Not allowed\"" @@ -724,7 +668,6 @@ msgstr "" " return \"اجازه داده نمی شود\"" #: ../../tutorial/controlflow.rst:315 -#, fuzzy msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" @@ -733,7 +676,6 @@ msgstr "" "متغیرها استفاده شوند::" #: ../../tutorial/controlflow.rst:318 -#, fuzzy msgid "" "# point is an (x, y) tuple\n" "match point:\n" @@ -762,7 +704,6 @@ msgstr "" " raise ValueError(\"Not a point\")" #: ../../tutorial/controlflow.rst:331 -#, fuzzy msgid "" "Study that one carefully! The first pattern has two literals, and can be " "thought of as an extension of the literal pattern shown above. But the next" @@ -779,7 +720,6 @@ msgstr "" "باشد." #: ../../tutorial/controlflow.rst:338 -#, fuzzy msgid "" "If you are using classes to structure your data you can use the class name " "followed by an argument list resembling a constructor, but with the ability " @@ -790,7 +730,6 @@ msgstr "" "کند، اما با این قابلیت که ویژگی ها را در متغیرها ذخیره کنید::" #: ../../tutorial/controlflow.rst:342 -#, fuzzy msgid "" "class Point:\n" " def __init__(self, x, y):\n" @@ -829,7 +768,6 @@ msgstr "" " print(\"Not a point\")" #: ../../tutorial/controlflow.rst:360 -#, fuzzy 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 " @@ -846,7 +784,6 @@ msgstr "" "متصل می کنند):" #: ../../tutorial/controlflow.rst:366 -#, fuzzy msgid "" "Point(1, var)\n" "Point(1, y=var)\n" @@ -859,7 +796,6 @@ msgstr "" "Point(y=var, x=1)" #: ../../tutorial/controlflow.rst:371 -#, fuzzy msgid "" "A recommended way to read patterns is to look at them as an extended form of" " what you would put on the left of an assignment, to understand which " @@ -877,7 +813,6 @@ msgstr "" "شناخته می شوند مثل ``Point`` بالا) هرگز تخصیص داده نمی شوند." #: ../../tutorial/controlflow.rst:378 -#, fuzzy msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of" " Points, with ``__match_args__`` added, we could match it like this::" @@ -887,7 +822,6 @@ msgstr "" " می توانیم به این صورت آن را تطبیق دهیم::" #: ../../tutorial/controlflow.rst:381 -#, fuzzy msgid "" "class Point:\n" " __match_args__ = ('x', 'y')\n" @@ -926,7 +860,6 @@ msgstr "" " print(\"Something else\")" #: ../../tutorial/controlflow.rst:399 -#, fuzzy msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " @@ -937,7 +870,6 @@ msgstr "" "داشته باشید که جذب مقدار قبل از ارزیابی محافظ رخ می دهد::" #: ../../tutorial/controlflow.rst:403 -#, fuzzy msgid "" "match point:\n" " case Point(x, y) if x == y:\n" @@ -952,12 +884,10 @@ msgstr "" " print(f\"Not on the diagonal\")" #: ../../tutorial/controlflow.rst:409 -#, fuzzy msgid "Several other key features of this statement:" msgstr "چند ویژگی کلیدی دیگر این عبارت:" #: ../../tutorial/controlflow.rst:411 -#, fuzzy msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. An important exception is " @@ -968,7 +898,6 @@ msgstr "" "iteratorها یا رشته ها مطابقت ندارند." #: ../../tutorial/controlflow.rst:415 -#, fuzzy msgid "" "Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y," " *rest)`` work similar to unpacking assignments. The name after ``*`` may " @@ -981,7 +910,6 @@ msgstr "" "از حداقل دو آیتم مطابقت دارد بدون اینکه آیتم ها ی باقی مانده را متصل کند." #: ../../tutorial/controlflow.rst:420 -#, fuzzy msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike " @@ -994,17 +922,14 @@ msgstr "" " پشتیبانی می شود. (اما ``**_`` زائد خواهد بود، بنابراین مجاز نیست.)" #: ../../tutorial/controlflow.rst:425 -#, fuzzy msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "می توان الگوهای جزئی را با استفاده از کلیدواژه ``as`` ضبط کرد::" #: ../../tutorial/controlflow.rst:427 -#, fuzzy msgid "case (Point(x1, y1), Point(x2, y2) as p2): ..." msgstr "case (Point(x1, y1), Point(x2, y2) as p2): ..." #: ../../tutorial/controlflow.rst:429 -#, fuzzy msgid "" "will capture the second element of the input as ``p2`` (as long as the input" " is a sequence of two points)" @@ -1013,7 +938,6 @@ msgstr "" "دنباله از دو نقطه باشد)" #: ../../tutorial/controlflow.rst:432 -#, fuzzy msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." @@ -1022,7 +946,6 @@ msgstr "" "``False`` و ``None`` بر اساس هویت مقایسه می شوند." #: ../../tutorial/controlflow.rst:435 -#, fuzzy msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" @@ -1032,7 +955,6 @@ msgstr "" "شود::" #: ../../tutorial/controlflow.rst:438 -#, fuzzy msgid "" "from enum import Enum\n" "class Color(Enum):\n" @@ -1067,7 +989,6 @@ msgstr "" " print(\"I'm feeling the blues :(\")" #: ../../tutorial/controlflow.rst:454 -#, fuzzy msgid "" "For a more detailed explanation and additional examples, you can look into " ":pep:`636` which is written in a tutorial format." @@ -1076,12 +997,10 @@ msgstr "" "آموزش نوشته شده است، مراجعه کنید." #: ../../tutorial/controlflow.rst:460 -#, fuzzy msgid "Defining Functions" msgstr "تعریف توابع" #: ../../tutorial/controlflow.rst:462 -#, fuzzy msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" @@ -1089,7 +1008,6 @@ msgstr "" "ما می توانیم یک تابع ایجاد کنیم که سری فیبوناچی را تا یک مرز دلخواه بنویسد::" #: ../../tutorial/controlflow.rst:465 -#, fuzzy msgid "" ">>> def fib(n): # write Fibonacci series less than n\n" "... \"\"\"Print a Fibonacci series less than n.\"\"\"\n" @@ -1116,7 +1034,6 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597" #: ../../tutorial/controlflow.rst:482 -#, fuzzy msgid "" "The keyword :keyword:`def` introduces a function *definition*. It must be " "followed by the function name and the parenthesized list of formal " @@ -1128,7 +1045,6 @@ msgstr "" " را تشکیل می دهند باید در خط بعد شروع شوند و تورفتگی داشته باشند." #: ../../tutorial/controlflow.rst:487 -#, fuzzy msgid "" "The first statement of the function body can optionally be a string literal;" " this string literal is the function's documentation string, or " @@ -1147,7 +1063,6 @@ msgstr "" " خوبی است و این کار را به صورت عادت انجام دهید." #: ../../tutorial/controlflow.rst:494 -#, fuzzy msgid "" "The *execution* of a function introduces a new symbol table used for the " "local variables of the function. More precisely, all variable assignments " @@ -1171,7 +1086,6 @@ msgstr "" ":keyword:`nonlocal` نام گذاری شوند)، هرچند ممکن است به آن ها اشاره شود." #: ../../tutorial/controlflow.rst:505 -#, fuzzy msgid "" "The actual parameters (arguments) to a function call are introduced in the " "local symbol table of the called function when it is called; thus, arguments" @@ -1188,7 +1102,6 @@ msgstr "" "فراخوانی ایجاد می شود." #: ../../tutorial/controlflow.rst:512 -#, fuzzy msgid "" "A function definition associates the function name with the function object " "in the current symbol table. The interpreter recognizes the object pointed " @@ -1201,7 +1114,6 @@ msgstr "" "برای دسترسی به تابع استفاده شوند:" #: ../../tutorial/controlflow.rst:517 -#, fuzzy msgid "" ">>> fib\n" "\n" @@ -1216,7 +1128,6 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89" #: ../../tutorial/controlflow.rst:523 -#, fuzzy msgid "" "Coming from other languages, you might object that ``fib`` is not a function" " but a procedure since it doesn't return a value. In fact, even functions " @@ -1235,7 +1146,6 @@ msgstr "" ":func:`print` آن را ببینید." #: ../../tutorial/controlflow.rst:530 -#, fuzzy msgid "" ">>> fib(0)\n" ">>> print(fib(0))\n" @@ -1246,7 +1156,6 @@ msgstr "" "None" #: ../../tutorial/controlflow.rst:534 -#, fuzzy msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" @@ -1255,7 +1164,6 @@ msgstr "" "گرداند، ساده است::" #: ../../tutorial/controlflow.rst:537 -#, fuzzy msgid "" ">>> def fib2(n): # return Fibonacci series up to n\n" "... \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n" @@ -1284,12 +1192,10 @@ msgstr "" "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]" #: ../../tutorial/controlflow.rst:550 -#, fuzzy msgid "This example, as usual, demonstrates some new Python features:" msgstr "این مثال، طبق معمول، برخی ویژگی های جدید Python را نمایش می دهد:" #: ../../tutorial/controlflow.rst:552 -#, fuzzy msgid "" "The :keyword:`return` statement returns with a value from a function. " ":keyword:`!return` without an expression argument returns ``None``. Falling " @@ -1300,7 +1206,6 @@ msgstr "" " ``None`` را برمی گرداند." #: ../../tutorial/controlflow.rst:556 -#, fuzzy msgid "" "The statement ``result.append(a)`` calls a *method* of the list object " "``result``. A method is a function that 'belongs' to an object and is named" @@ -1326,12 +1231,10 @@ msgstr "" " مثال معادل ``result = result + [a]`` است، اما کارآمدتر." #: ../../tutorial/controlflow.rst:571 -#, fuzzy msgid "More on Defining Functions" msgstr "بیشتر درباره تعریف توابع" #: ../../tutorial/controlflow.rst:573 -#, fuzzy msgid "" "It is also possible to define functions with a variable number of arguments." " There are three forms, which can be combined." @@ -1340,12 +1243,10 @@ msgstr "" "وجود دارد که می توانند با هم ترکیب شوند." #: ../../tutorial/controlflow.rst:580 -#, fuzzy msgid "Default Argument Values" msgstr "مقادیر پیش فرض آرگومان ها" #: ../../tutorial/controlflow.rst:582 -#, fuzzy msgid "" "The most useful form is to specify a default value for one or more " "arguments. This creates a function that can be called with fewer arguments " @@ -1356,7 +1257,6 @@ msgstr "" "آنچه که تعریف شده فراخوانی کرد. به عنوان مثال:" #: ../../tutorial/controlflow.rst:586 -#, fuzzy msgid "" "def ask_ok(prompt, retries=4, reminder='Please try again!'):\n" " while True:\n" @@ -1383,19 +1283,16 @@ msgstr "" " print(reminder)" #: ../../tutorial/controlflow.rst:598 -#, fuzzy msgid "This function can be called in several ways:" msgstr "این تابع می تواند به روش های مختلفی فراخوانی شود:" #: ../../tutorial/controlflow.rst:600 -#, fuzzy msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to " "quit?')``" msgstr "فقط آرگومان اجباری را دادن: ``ask_ok('Do you really want to quit?')``" #: ../../tutorial/controlflow.rst:602 -#, fuzzy msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" @@ -1404,7 +1301,6 @@ msgstr "" "2)``" #: ../../tutorial/controlflow.rst:604 -#, fuzzy msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come" " on, only yes or no!')``" @@ -1413,7 +1309,6 @@ msgstr "" "'Come on, only yes or no!')``" #: ../../tutorial/controlflow.rst:607 -#, fuzzy msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." @@ -1422,7 +1317,6 @@ msgstr "" "کند که آیا یک دنباله شامل یک مقدار خاص است یا خیر." #: ../../tutorial/controlflow.rst:610 -#, fuzzy msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" @@ -1431,7 +1325,6 @@ msgstr "" "طوری که ::" #: ../../tutorial/controlflow.rst:613 -#, fuzzy msgid "" "i = 5\n" "\n" @@ -1450,12 +1343,10 @@ msgstr "" "f()" #: ../../tutorial/controlflow.rst:621 -#, fuzzy msgid "will print ``5``." msgstr "عبارت ``5`` را چاپ خواهد کرد." #: ../../tutorial/controlflow.rst:623 -#, fuzzy msgid "" "**Important warning:** The default value is evaluated only once. This makes" " a difference when the default is a mutable object such as a list, " @@ -1468,7 +1359,6 @@ msgstr "" "هایی که در فراخوانی های بعدی به آن ارسال می شوند را جمع آوری می کند::" #: ../../tutorial/controlflow.rst:628 -#, fuzzy msgid "" "def f(a, L=[]):\n" " L.append(a)\n" @@ -1487,12 +1377,10 @@ msgstr "" "print(f(3))" #: ../../tutorial/controlflow.rst:636 -#, fuzzy msgid "This will print ::" msgstr "این چاپ خواهد شد ::" #: ../../tutorial/controlflow.rst:638 -#, fuzzy msgid "" "[1]\n" "[1, 2]\n" @@ -1503,7 +1391,6 @@ msgstr "" "[1, 2, 3]" #: ../../tutorial/controlflow.rst:642 -#, fuzzy msgid "" "If you don't want the default to be shared between subsequent calls, you can" " write the function like this instead::" @@ -1512,7 +1399,6 @@ msgstr "" "توانید تابع را به این صورت بنویسید::" #: ../../tutorial/controlflow.rst:645 -#, fuzzy msgid "" "def f(a, L=None):\n" " if L is None:\n" @@ -1527,12 +1413,10 @@ msgstr "" " return L" #: ../../tutorial/controlflow.rst:655 -#, fuzzy msgid "Keyword Arguments" msgstr "آرگومان های کلیدواژه ای" #: ../../tutorial/controlflow.rst:657 -#, fuzzy msgid "" "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " @@ -1542,7 +1426,6 @@ msgstr "" "argument>` به فرم ``kwarg=value`` فراخوانی شوند. برای مثال، تابع زیر::" #: ../../tutorial/controlflow.rst:660 -#, fuzzy msgid "" "def parrot(voltage, state='a stiff', action='voom', type='Norwegian Blue'):\n" " print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -1557,7 +1440,6 @@ msgstr "" " print(\"-- It's\", state, \"!\")" #: ../../tutorial/controlflow.rst:666 -#, fuzzy msgid "" "accepts one required argument (``voltage``) and three optional arguments " "(``state``, ``action``, and ``type``). This function can be called in any " @@ -1568,7 +1450,6 @@ msgstr "" "شود::" #: ../../tutorial/controlflow.rst:670 -#, fuzzy msgid "" "parrot(1000) # 1 positional argument\n" "parrot(voltage=1000) # 1 keyword argument\n" @@ -1585,12 +1466,10 @@ msgstr "" "parrot('a thousand', state='pushing up the daisies') # 1 positional, 1 keyword" #: ../../tutorial/controlflow.rst:677 -#, fuzzy msgid "but all the following calls would be invalid::" msgstr "اما تمامی فراخوانی های زیر نامعتبر خواهند بود::" #: ../../tutorial/controlflow.rst:679 -#, fuzzy msgid "" "parrot() # required argument missing\n" "parrot(voltage=5.0, 'dead') # non-keyword argument after a keyword argument\n" @@ -1603,7 +1482,6 @@ msgstr "" "parrot(actor='John Cleese') # آرگومان کلیدی ناشناخته" #: ../../tutorial/controlflow.rst:684 -#, fuzzy 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" @@ -1622,7 +1500,6 @@ msgstr "" "یک مثال آورده شده که به دلیل این محدودیت شکست می خورد:" #: ../../tutorial/controlflow.rst:692 -#, fuzzy msgid "" ">>> def function(a):\n" "... pass\n" @@ -1641,7 +1518,6 @@ msgstr "" "TypeError: function() got multiple values for argument 'a'" #: ../../tutorial/controlflow.rst:700 -#, fuzzy msgid "" "When a final formal parameter of the form ``**name`` is present, it receives" " a dictionary (see :ref:`typesmapping`) containing all keyword arguments " @@ -1660,7 +1536,6 @@ msgstr "" "``**name`` ظاهر شود.) به عنوان مثال، اگر ما تابعی به این صورت تعریف کنیم:" #: ../../tutorial/controlflow.rst:708 -#, fuzzy msgid "" "def cheeseshop(kind, *arguments, **keywords):\n" " print(\"-- Do you have any\", kind, \"?\")\n" @@ -1681,12 +1556,10 @@ msgstr "" " print(kw, \":\", keywords[kw])" #: ../../tutorial/controlflow.rst:717 -#, fuzzy msgid "It could be called like this::" msgstr "می تواند به این صورت فراخوانی شود::" #: ../../tutorial/controlflow.rst:719 -#, fuzzy msgid "" "cheeseshop(\"Limburger\", \"It's very runny, sir.\",\n" " \"It's really very, VERY runny, sir.\",\n" @@ -1701,12 +1574,10 @@ msgstr "" " sketch=\"Cheese Shop Sketch\")" #: ../../tutorial/controlflow.rst:725 -#, fuzzy msgid "and of course it would print:" msgstr "و البته چاپ خواهد کرد:" #: ../../tutorial/controlflow.rst:727 -#, fuzzy msgid "" "-- Do you have any Limburger ?\n" "-- I'm sorry, we're all out of Limburger\n" @@ -1727,7 +1598,6 @@ msgstr "" "اسکچ: طرح پنیر فروشی" #: ../../tutorial/controlflow.rst:738 -#, fuzzy msgid "" "Note that the order in which the keyword arguments are printed is guaranteed" " to match the order in which they were provided in the function call." @@ -1736,12 +1606,10 @@ msgstr "" "فراخوانی تابع ارائه شده اند، تضمین می شود." #: ../../tutorial/controlflow.rst:742 -#, fuzzy msgid "Special parameters" msgstr "پارامترهای ویژه" #: ../../tutorial/controlflow.rst:744 -#, fuzzy msgid "" "By default, arguments may be passed to a Python function either by position " "or explicitly by keyword. For readability and performance, it makes sense to" @@ -1756,12 +1624,10 @@ msgstr "" "یا به صورت موقعیتی و کلیدواژه، یا به صورت کلیدواژه ارسال می شوند." #: ../../tutorial/controlflow.rst:750 -#, fuzzy msgid "A function definition may look like:" msgstr "تعریف یک تابع ممکن است به صورت زیر باشد:" #: ../../tutorial/controlflow.rst:752 -#, fuzzy msgid "" "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):\n" " ----------- ---------- ----------\n" @@ -1778,7 +1644,6 @@ msgstr "" " -- فقط مکانی" #: ../../tutorial/controlflow.rst:761 -#, fuzzy msgid "" "where ``/`` and ``*`` are optional. If used, these symbols indicate the kind" " of parameter by how the arguments may be passed to the function: " @@ -1791,12 +1656,10 @@ msgstr "" "همچنین به عنوان پارامترهای نام گذاری شده شناخته می شوند." #: ../../tutorial/controlflow.rst:768 -#, fuzzy msgid "Positional-or-Keyword Arguments" msgstr "آرگومان های موقعیتی-یا-کلیدواژه ای" #: ../../tutorial/controlflow.rst:770 -#, fuzzy msgid "" "If ``/`` and ``*`` are not present in the function definition, arguments may" " be passed to a function by position or by keyword." @@ -1805,12 +1668,10 @@ msgstr "" "صورت مکانی یا با استفاده از کلیدواژه به تابع ارسال شوند." #: ../../tutorial/controlflow.rst:775 -#, fuzzy msgid "Positional-Only Parameters" msgstr "پارامترهای فقط موقعیتی" #: ../../tutorial/controlflow.rst:777 -#, fuzzy 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" @@ -1829,7 +1690,6 @@ msgstr "" "داشت." #: ../../tutorial/controlflow.rst:785 -#, fuzzy msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." @@ -1838,7 +1698,6 @@ msgstr "" "*keyword-only* باشند." #: ../../tutorial/controlflow.rst:789 -#, fuzzy msgid "Keyword-Only Arguments" msgstr "" "استدلال های فقط کلیدواژه ای\n" @@ -1848,7 +1707,6 @@ msgstr "" "این ویژگی می تواند خوانایی کد را افزایش داده و جلوگیری از اشتباه را تسهیل کند." #: ../../tutorial/controlflow.rst:791 -#, fuzzy msgid "" "To mark parameters as *keyword-only*, indicating the parameters must be " "passed by keyword argument, place an ``*`` in the arguments list just before" @@ -1859,12 +1717,10 @@ msgstr "" "آرگومان ها درست قبل از اولین پارامتر *keyword-only* قرار دهید." #: ../../tutorial/controlflow.rst:797 -#, fuzzy msgid "Function Examples" msgstr "نمونه های تابع" #: ../../tutorial/controlflow.rst:799 -#, fuzzy msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" @@ -1873,7 +1729,6 @@ msgstr "" "``*`` دقت کنید::" #: ../../tutorial/controlflow.rst:802 -#, fuzzy msgid "" ">>> def standard_arg(arg):\n" "... print(arg)\n" @@ -1900,7 +1755,6 @@ msgstr "" "... print(pos_only, standard, kwd_only)" #: ../../tutorial/controlflow.rst:815 -#, fuzzy msgid "" "The first function definition, ``standard_arg``, the most familiar form, " "places no restrictions on the calling convention and arguments may be passed" @@ -1911,7 +1765,6 @@ msgstr "" "ارسال شوند:" #: ../../tutorial/controlflow.rst:819 -#, fuzzy msgid "" ">>> standard_arg(2)\n" "2\n" @@ -1926,7 +1779,6 @@ msgstr "" "2" #: ../../tutorial/controlflow.rst:825 -#, fuzzy msgid "" "The second function ``pos_only_arg`` is restricted to only use positional " "parameters as there is a ``/`` in the function definition::" @@ -1935,7 +1787,6 @@ msgstr "" "زیرا یک ``/`` در تعریف تابع قرار دارد::" #: ../../tutorial/controlflow.rst:828 -#, fuzzy msgid "" ">>> pos_only_arg(1)\n" "1\n" @@ -1954,7 +1805,6 @@ msgstr "" "TypeError: pos_only_arg() got some positional-only arguments passed as keyword arguments: 'arg'" #: ../../tutorial/controlflow.rst:836 -#, fuzzy msgid "" "The third function ``kwd_only_arg`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" @@ -1963,7 +1813,6 @@ msgstr "" " که با یک ``*`` در تعریف تابع نشان داده شده است::" #: ../../tutorial/controlflow.rst:839 -#, fuzzy msgid "" ">>> kwd_only_arg(3)\n" "Traceback (most recent call last):\n" @@ -1982,7 +1831,6 @@ msgstr "" "3" #: ../../tutorial/controlflow.rst:847 -#, fuzzy msgid "" "And the last uses all three calling conventions in the same function " "definition::" @@ -1990,7 +1838,6 @@ msgstr "" "و در آخر، هر سه قرارداد فراخوانی را در همان تعریف تابع استفاده می کند::" #: ../../tutorial/controlflow.rst:850 -#, fuzzy msgid "" ">>> combined_example(1, 2, 3)\n" "Traceback (most recent call last):\n" @@ -2025,7 +1872,6 @@ msgstr "" "TypeError: combined_example() برخی از آرگومان های فقط مکان دریافت کرده است که به صورت آرگومان های کلمه کلیدی ارسال شده اند: 'pos_only'" #: ../../tutorial/controlflow.rst:867 -#, fuzzy msgid "" "Finally, consider this function definition which has a potential collision " "between the positional argument ``name`` and ``**kwds`` which has ``name`` " @@ -2035,7 +1881,6 @@ msgstr "" " موقعیتی ``name`` و ``**kwds`` است که ``name`` را به عنوان یک کلید دارد::" #: ../../tutorial/controlflow.rst:869 -#, fuzzy msgid "" "def foo(name, **kwds):\n" " return 'name' in kwds" @@ -2044,7 +1889,6 @@ msgstr "" " return 'name' in kwds" #: ../../tutorial/controlflow.rst:872 -#, fuzzy msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" @@ -2053,7 +1897,6 @@ msgstr "" "همیشه به اولین پارامتر متصل می شود. برای مثال::" #: ../../tutorial/controlflow.rst:875 -#, fuzzy msgid "" ">>> foo(1, **{'name': 2})\n" "Traceback (most recent call last):\n" @@ -2068,7 +1911,6 @@ msgstr "" ">>>" #: ../../tutorial/controlflow.rst:881 -#, fuzzy 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 " @@ -2079,7 +1921,6 @@ msgstr "" " های کلیدواژه ای اجازه می دهد::" #: ../../tutorial/controlflow.rst:883 -#, fuzzy msgid "" ">>> def foo(name, /, **kwds):\n" "... return 'name' in kwds\n" @@ -2094,7 +1935,6 @@ msgstr "" "True" #: ../../tutorial/controlflow.rst:889 -#, fuzzy msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." @@ -2103,12 +1943,10 @@ msgstr "" "استفاده شود." #: ../../tutorial/controlflow.rst:894 -#, fuzzy msgid "Recap" msgstr "خلاصه" #: ../../tutorial/controlflow.rst:896 -#, fuzzy msgid "" "The use case will determine which parameters to use in the function " "definition::" @@ -2116,17 +1954,14 @@ msgstr "" "موارد استفاده تعیین می کنند که از کدام پارامترها در تعریف تابع استفاده شود:" #: ../../tutorial/controlflow.rst:898 -#, fuzzy msgid "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" msgstr "def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):" #: ../../tutorial/controlflow.rst:900 -#, fuzzy msgid "As guidance:" msgstr "به عنوان راهنمایی:" #: ../../tutorial/controlflow.rst:902 -#, fuzzy 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 " @@ -2140,7 +1975,6 @@ msgstr "" "دارید تعدادی پارامتر مکانی و کلیدواژه های دلخواه را بپذیرید." #: ../../tutorial/controlflow.rst:907 -#, fuzzy 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 " @@ -2151,7 +1985,6 @@ msgstr "" "موقعیت استدلالی که ارجاع می شود جلوگیری کنید." #: ../../tutorial/controlflow.rst:910 -#, fuzzy msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." @@ -2160,12 +1993,10 @@ msgstr "" "جلوگیری کنید اگر نام پارامتر در آینده تغییر کند." #: ../../tutorial/controlflow.rst:916 -#, fuzzy msgid "Arbitrary Argument Lists" msgstr "لیست های آرگومان دلخواه" #: ../../tutorial/controlflow.rst:921 -#, fuzzy msgid "" "Finally, the least frequently used option is to specify that a function can " "be called with an arbitrary number of arguments. These arguments will be " @@ -2178,7 +2009,6 @@ msgstr "" "متغیر، ممکن است هیچ یا چند آرگومان عادی نیز وجود داشته باشد." #: ../../tutorial/controlflow.rst:926 -#, fuzzy msgid "" "def write_multiple_items(file, separator, *args):\n" " file.write(separator.join(args))" @@ -2187,7 +2017,6 @@ msgstr "" " file.write(separator.join(args))" #: ../../tutorial/controlflow.rst:930 -#, fuzzy msgid "" "Normally, these *variadic* arguments will be last in the list of formal " "parameters, because they scoop up all remaining input arguments that are " @@ -2202,7 +2031,6 @@ msgstr "" " کلیدواژه ها استفاده شوند و نه به عنوان آرگومان موقعیتی. ::" #: ../../tutorial/controlflow.rst:936 -#, fuzzy msgid "" ">>> def concat(*args, sep=\"/\"):\n" "... return sep.join(args)\n" @@ -2221,12 +2049,10 @@ msgstr "" "'earth.mars.venus'" #: ../../tutorial/controlflow.rst:947 -#, fuzzy msgid "Unpacking Argument Lists" msgstr "باز کردن لیست آرگومان ها" #: ../../tutorial/controlflow.rst:949 -#, fuzzy 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 " @@ -2243,7 +2069,6 @@ msgstr "" "لیست یا تاپل جدا شوند:" #: ../../tutorial/controlflow.rst:956 -#, fuzzy msgid "" ">>> list(range(3, 6)) # normal call with separate arguments\n" "[3, 4, 5]\n" @@ -2258,7 +2083,6 @@ msgstr "" "[3, 4, 5]" #: ../../tutorial/controlflow.rst:965 -#, fuzzy msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" @@ -2267,7 +2091,6 @@ msgstr "" "``**``\\ ارائه دهند::" #: ../../tutorial/controlflow.rst:968 -#, fuzzy msgid "" ">>> def parrot(voltage, state='a stiff', action='voom'):\n" "... print(\"-- This parrot wouldn't\", action, end=' ')\n" @@ -2288,12 +2111,10 @@ msgstr "" "-- این طوطی حرکت نخواهد کرد اگر چهار میلیون ولت از آن عبور دهید. او کاملاً مرده است!" #: ../../tutorial/controlflow.rst:981 -#, fuzzy msgid "Lambda Expressions" msgstr "عبارات لامبدا" #: ../../tutorial/controlflow.rst:983 -#, fuzzy msgid "" "Small anonymous functions can be created with the :keyword:`lambda` keyword." " This function returns the sum of its two arguments: ``lambda a, b: a+b``. " @@ -2312,7 +2133,6 @@ msgstr "" "شاملشان ارجاع دهند::" #: ../../tutorial/controlflow.rst:991 -#, fuzzy msgid "" ">>> def make_incrementor(n):\n" "... return lambda x: x + n\n" @@ -2333,7 +2153,6 @@ msgstr "" "43" #: ../../tutorial/controlflow.rst:1000 -#, fuzzy msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument::" @@ -2342,7 +2161,6 @@ msgstr "" " دیگری این است که یک تابع کوچک را به عنوان یک آرگومان پاس دهید::" #: ../../tutorial/controlflow.rst:1003 -#, fuzzy msgid "" ">>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]\n" ">>> pairs.sort(key=lambda pair: pair[1])\n" @@ -2355,12 +2173,10 @@ msgstr "" "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]" #: ../../tutorial/controlflow.rst:1012 -#, fuzzy msgid "Documentation Strings" msgstr "رشته های مستندات" #: ../../tutorial/controlflow.rst:1019 -#, fuzzy msgid "" "Here are some conventions about the content and formatting of documentation " "strings." @@ -2369,7 +2185,6 @@ msgstr "" "شده است." #: ../../tutorial/controlflow.rst:1022 -#, fuzzy msgid "" "The first line should always be a short, concise summary of the object's " "purpose. For brevity, it should not explicitly state the object's name or " @@ -2383,7 +2198,6 @@ msgstr "" " باید با حرف بزرگ شروع شده و با نقطه پایان یابد." #: ../../tutorial/controlflow.rst:1028 -#, fuzzy msgid "" "If there are more lines in the documentation string, the second line should " "be blank, visually separating the summary from the rest of the description." @@ -2395,7 +2209,6 @@ msgstr "" "خطوط بعدی باید یک یا چند پاراگراف باشند که کنوانسیون های فراخوانی شی، اثرات جانبی آن و غیره را توضیح می دهند." #: ../../tutorial/controlflow.rst:1033 -#, fuzzy msgid "" "The Python parser does not strip indentation from multi-line string literals" " in Python, so tools that process documentation have to strip indentation if" @@ -2421,12 +2234,10 @@ msgstr "" "تب ها (به ۸ فاصله، معمولاً) بررسی شود." #: ../../tutorial/controlflow.rst:1045 -#, fuzzy msgid "Here is an example of a multi-line docstring::" msgstr "در اینجا یک مثال از یک رشته توضیح چند خطی ارائه شده است:" #: ../../tutorial/controlflow.rst:1047 -#, fuzzy msgid "" ">>> def my_function():\n" "... \"\"\"Do nothing, but document it.\n" @@ -2453,12 +2264,10 @@ msgstr "" " نه، واقعاً، هیچ کاری انجام نمی دهد." #: ../../tutorial/controlflow.rst:1063 -#, fuzzy msgid "Function Annotations" msgstr "حاشیه نویسی توابع" #: ../../tutorial/controlflow.rst:1071 -#, fuzzy msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " @@ -2469,7 +2278,6 @@ msgstr "" "بیشتر به :pep:`3107` و :pep:`484` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1075 -#, fuzzy msgid "" ":term:`Annotations ` are stored in the " ":attr:`!__annotations__` attribute of the function as a dictionary and have " @@ -2491,7 +2299,6 @@ msgstr "" "است:" #: ../../tutorial/controlflow.rst:1084 -#, fuzzy msgid "" ">>> def f(ham: str, eggs: str = 'eggs') -> str:\n" "... print(\"Annotations:\", f.__annotations__)\n" @@ -2514,12 +2321,10 @@ msgstr "" "'spam and eggs'" #: ../../tutorial/controlflow.rst:1097 -#, fuzzy msgid "Intermezzo: Coding Style" msgstr "میان پرده: سبک کدنویسی" #: ../../tutorial/controlflow.rst:1102 -#, fuzzy msgid "" "Now that you are about to write longer, more complex pieces of Python, it is" " a good time to talk about *coding style*. Most languages can be written " @@ -2534,7 +2339,6 @@ msgstr "" "ایده خوبی است و پیروی از یک سبک کدنویسی مناسب در این زمینه بسیار کمک می کند." #: ../../tutorial/controlflow.rst:1108 -#, fuzzy msgid "" "For Python, :pep:`8` has emerged as the style guide that most projects " "adhere to; it promotes a very readable and eye-pleasing coding style. Every" @@ -2547,7 +2351,6 @@ msgstr "" " مهم ترین نکات استخراج شده برای شما آورده شده است:" #: ../../tutorial/controlflow.rst:1113 -#, fuzzy msgid "Use 4-space indentation, and no tabs." msgstr "" "متغیرها در پایتون به صورت خودکار تایپ بندی می شوند. وقتی یک مقدار به یک متغیر اختصاص داده می شود، پایتون به صورت خودکار نوع داده های آن متغیر را تعیین می کند. به عنوان مثال، اگر یک عدد صحیح به متغیری داده شود، پایتون به صورت خودکار آن متغیر را از نوع \"int\" در نظر می گیرد.\n" @@ -2563,7 +2366,6 @@ msgstr "" " y = str(\"Hello, World!\")" #: ../../tutorial/controlflow.rst:1115 -#, fuzzy msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " @@ -2574,7 +2376,6 @@ msgstr "" "استفاده از تب ها می تواند گیج کننده باشد و بهتر است از آنها اجتناب شود." #: ../../tutorial/controlflow.rst:1119 -#, fuzzy msgid "Wrap lines so that they don't exceed 79 characters." msgstr "" "به منظور دستیابی به حداکثر قابلیت استفاده و سازگاری با دیگر سیستم های \n" @@ -2586,7 +2387,6 @@ msgstr "" "از PascalCase برای نام گذاری کلاس ها استفاده کنید.\"" #: ../../tutorial/controlflow.rst:1121 -#, fuzzy msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." @@ -2595,7 +2395,6 @@ msgstr "" " به صورت کنار هم روی نمایشگرهای بزرگ تر را فراهم می سازد." #: ../../tutorial/controlflow.rst:1124 -#, fuzzy msgid "" "Use blank lines to separate functions and classes, and larger blocks of code" " inside functions." @@ -2615,17 +2414,14 @@ msgstr "" "به خاطر داشته باشید، اگر سعی کنید مقداری را به یک متغیر قبل از تعریف صریح آن داخل تابع تخصیص دهید، ممکن است با خطای UnboundLocalError مواجه شوید." #: ../../tutorial/controlflow.rst:1127 -#, fuzzy msgid "When possible, put comments on a line of their own." msgstr "هنگامی که ممکن است، نظرات را در یک خط جداگانه قرار دهید." #: ../../tutorial/controlflow.rst:1129 -#, fuzzy msgid "Use docstrings." msgstr "از docstring ها استفاده کنید." #: ../../tutorial/controlflow.rst:1131 -#, fuzzy msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." @@ -2634,7 +2430,6 @@ msgstr "" "درون ساختار های براکت دار: ``a = f(1, 2) + g(3, 4)``." #: ../../tutorial/controlflow.rst:1134 -#, fuzzy msgid "" "Name your classes and functions consistently; the convention is to use " "``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " @@ -2648,7 +2443,6 @@ msgstr "" ":ref:`tut-firstclasses` مراجعه کنید)." #: ../../tutorial/controlflow.rst:1139 -#, fuzzy msgid "" "Don't use fancy encodings if your code is meant to be used in international " "environments. Python's default, UTF-8, or even plain ASCII work best in any" @@ -2659,7 +2453,6 @@ msgstr "" " شکل در هر شرایطی کار می کنند." #: ../../tutorial/controlflow.rst:1143 -#, fuzzy msgid "" "Likewise, don't use non-ASCII characters in identifiers if there is only the" " slightest chance people speaking a different language will read or maintain" @@ -2670,12 +2463,10 @@ msgstr "" "غیرASCII در شناسه ها استفاده نکنید." #: ../../tutorial/controlflow.rst:1149 -#, fuzzy msgid "Footnotes" msgstr "پانویس ها" #: ../../tutorial/controlflow.rst:1150 -#, fuzzy msgid "" "Actually, *call by object reference* would be a better description, since if" " a mutable object is passed, the caller will see any changes the callee " @@ -2687,17 +2478,14 @@ msgstr "" "می کند مشاهده خواهد شد." #: ../../tutorial/controlflow.rst:48 -#, fuzzy msgid "statement" msgstr "بیانیه" #: ../../tutorial/controlflow.rst:48 -#, fuzzy msgid "for" msgstr "برای" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 -#, fuzzy msgid "documentation strings" msgstr "" "رشته های مستندات (documentation strings)، که به سادگی داک استرینگ (docstring) نیز نامیده می شوند، راهی برای استفاده از قابلیت های یادداشت گذاری در پایتون هستند. رشته های مستندات به طور مستقیم پس از تعریف ماژول، کلاس یا تابع قرار می گیرند. اگر رشته مستنداتی وجود داشته باشد، مشخصات در زمان اجرا قابل دستیابی هستند. به عنوان مثال:\n" @@ -2715,42 +2503,34 @@ msgstr "" "در اینجا، داک استرینگ تابع kol_hajm_zekhira توضیحی مختصر از هدف تابع ارائه می دهد و اطلاعاتی درباره پارامترهای آن درج می کند." #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 -#, fuzzy msgid "docstrings" msgstr "رشته های مستندات" #: ../../tutorial/controlflow.rst:477 ../../tutorial/controlflow.rst:1014 -#, fuzzy msgid "strings, documentation" msgstr "رشته ها، مستندات" #: ../../tutorial/controlflow.rst:918 -#, fuzzy msgid "* (asterisk)" msgstr "* (ستاره)" #: ../../tutorial/controlflow.rst:918 ../../tutorial/controlflow.rst:962 -#, fuzzy msgid "in function calls" msgstr "در فراخوانی توابع" #: ../../tutorial/controlflow.rst:962 -#, fuzzy msgid "**" msgstr "" #: ../../tutorial/controlflow.rst:1066 -#, fuzzy msgid "function" msgstr "تابع" #: ../../tutorial/controlflow.rst:1066 -#, fuzzy msgid "annotations" msgstr "حاشیه نویسی ها" #: ../../tutorial/controlflow.rst:1066 -#, fuzzy msgid "->" msgstr "" "ماژول `math` یک منبع ثابت از توابع ریاضی در پایتون است. این ماژول شامل توابعی برای انجام محاسبات علمی و مهندسی مانند سینوس، کسینوس و لگاریتم است.\n" @@ -2764,21 +2544,17 @@ msgstr "" "```" #: ../../tutorial/controlflow.rst:1066 -#, fuzzy msgid "function annotations" msgstr "توضیحات توابع" #: ../../tutorial/controlflow.rst:1066 -#, fuzzy msgid ": (colon)" msgstr ": (کولون)" #: ../../tutorial/controlflow.rst:1100 -#, fuzzy msgid "coding" msgstr "کدگذاری" #: ../../tutorial/controlflow.rst:1100 -#, fuzzy msgid "style" msgstr "استایل" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index e2e205ae5..34fb79662 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/datastructures.rst:5 -#, fuzzy msgid "Data Structures" msgstr "ساختارهای داده" #: ../../tutorial/datastructures.rst:7 -#, fuzzy msgid "" "This chapter describes some things you've learned about already in more " "detail, and adds some new things as well." @@ -36,12 +33,10 @@ msgstr "" "کند و همچنین برخی از موارد جدید را نیز اضافه می کند." #: ../../tutorial/datastructures.rst:13 -#, fuzzy msgid "More on Lists" msgstr "بیشتر در مورد لیست ها" #: ../../tutorial/datastructures.rst:15 -#, fuzzy msgid "" "The list data type has some more methods. Here are all of the methods of " "list objects:" @@ -50,12 +45,10 @@ msgstr "" "دارد:" #: ../../tutorial/datastructures.rst:22 -#, fuzzy msgid "Add an item to the end of the list. Similar to ``a[len(a):] = [x]``." msgstr "یک آیتم به انتهای لیست اضافه کنید. مشابه با ``a[len(a):] = [x]``." #: ../../tutorial/datastructures.rst:28 -#, fuzzy msgid "" "Extend the list by appending all the items from the iterable. Similar to " "``a[len(a):] = iterable``." @@ -64,7 +57,6 @@ msgstr "" "``a[len(a):] = iterable``." #: ../../tutorial/datastructures.rst:35 -#, fuzzy msgid "" "Insert an item at a given position. The first argument is the index of the " "element before which to insert, so ``a.insert(0, x)`` inserts at the front " @@ -75,7 +67,6 @@ msgstr "" "شود و ``a.insert(len(a), x)`` معادل ``a.append(x)`` است." #: ../../tutorial/datastructures.rst:43 -#, fuzzy msgid "" "Remove the first item from the list whose value is equal to *x*. It raises " "a :exc:`ValueError` if there is no such item." @@ -84,7 +75,6 @@ msgstr "" "وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." #: ../../tutorial/datastructures.rst:50 -#, fuzzy msgid "" "Remove the item at the given position in the list, and return it. If no " "index is specified, ``a.pop()`` removes and returns the last item in the " @@ -97,12 +87,10 @@ msgstr "" ":exc:`IndexError` ایجاد می کند." #: ../../tutorial/datastructures.rst:59 -#, fuzzy msgid "Remove all items from the list. Similar to ``del a[:]``." msgstr "همه اقلام را از لیست حذف کنید. مشابه ``del a[:]``." #: ../../tutorial/datastructures.rst:65 -#, fuzzy msgid "" "Return zero-based index in the list of the first item whose value is equal " "to *x*. Raises a :exc:`ValueError` if there is no such item." @@ -111,7 +99,6 @@ msgstr "" "گرداند. اگر چنین موردی وجود نداشته باشد، یک :exc:`ValueError` ایجاد می کند." #: ../../tutorial/datastructures.rst:68 -#, fuzzy msgid "" "The optional arguments *start* and *end* are interpreted as in the slice " "notation and are used to limit the search to a particular subsequence of the" @@ -123,12 +110,10 @@ msgstr "" " نسبت به ابتدای کل توالی محاسبه می شود و نه نسبت به آرگومان *start*." #: ../../tutorial/datastructures.rst:77 -#, fuzzy msgid "Return the number of times *x* appears in the list." msgstr "تعداد دفعاتی که *x* در لیست ظاهر می شود را برگردان." #: ../../tutorial/datastructures.rst:83 -#, fuzzy msgid "" "Sort the items of the list in place (the arguments can be used for sort " "customization, see :func:`sorted` for their explanation)." @@ -137,22 +122,18 @@ msgstr "" "مرتب سازی استفاده کرد, برای توضیح آنها به :func:`sorted` مراجعه کنید)." #: ../../tutorial/datastructures.rst:90 -#, fuzzy msgid "Reverse the elements of the list in place." msgstr "عناصر لیست را به صورت در جا معکوس کنید." #: ../../tutorial/datastructures.rst:96 -#, fuzzy msgid "Return a shallow copy of the list. Similar to ``a[:]``." msgstr "برگشتی یک کپی سطحی از لیست. مشابه ``a[:]``." #: ../../tutorial/datastructures.rst:99 -#, fuzzy msgid "An example that uses most of the list methods::" msgstr "یک مثال که از اکثر متدهای لیست استفاده می کند::" #: ../../tutorial/datastructures.rst:101 -#, fuzzy msgid "" ">>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']\n" ">>> fruits.count('apple')\n" @@ -197,7 +178,6 @@ msgstr "" "'pear'" #: ../../tutorial/datastructures.rst:122 -#, fuzzy msgid "" "You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " "that only modify the list have no return value printed -- they return the " @@ -210,7 +190,6 @@ msgstr "" "ساختارهای داده قابل تغییر در پایتون است." #: ../../tutorial/datastructures.rst:127 -#, fuzzy msgid "" "Another thing you might notice is that not all data can be sorted or " "compared. For instance, ``[None, 'hello', 10]`` doesn't sort because " @@ -225,12 +204,10 @@ msgstr "" "ندارند. برای مثال، ``3+4j < 5+7j`` یک مقایسه معتبر نیست." #: ../../tutorial/datastructures.rst:138 -#, fuzzy msgid "Using Lists as Stacks" msgstr "استفاده از لیست ها به عنوان پشته ها" #: ../../tutorial/datastructures.rst:143 -#, fuzzy msgid "" "The list methods make it very easy to use a list as a stack, where the last " "element added is the first element retrieved (\"last-in, first-out\"). To " @@ -245,7 +222,6 @@ msgstr "" "استفاده کنید. برای مثال::" #: ../../tutorial/datastructures.rst:148 -#, fuzzy msgid "" ">>> stack = [3, 4, 5]\n" ">>> stack.append(6)\n" @@ -280,12 +256,10 @@ msgstr "" "[3, 4]" #: ../../tutorial/datastructures.rst:168 -#, fuzzy msgid "Using Lists as Queues" msgstr "استفاده از لیست ها به عنوان صف ها" #: ../../tutorial/datastructures.rst:172 -#, fuzzy msgid "" "It is also possible to use a list as a queue, where the first element added " "is the first element retrieved (\"first-in, first-out\"); however, lists are" @@ -301,7 +275,6 @@ msgstr "" "شوند)." #: ../../tutorial/datastructures.rst:178 -#, fuzzy msgid "" "To implement a queue, use :class:`collections.deque` which was designed to " "have fast appends and pops from both ends. For example::" @@ -310,7 +283,6 @@ msgstr "" "افزودن و حذف سریع از هر دو انتها طراحی شده است. برای مثال::" #: ../../tutorial/datastructures.rst:181 -#, fuzzy msgid "" ">>> from collections import deque\n" ">>> queue = deque([\"Eric\", \"John\", \"Michael\"])\n" @@ -335,12 +307,10 @@ msgstr "" "deque(['Michael', 'Terry', 'Graham'])" #: ../../tutorial/datastructures.rst:196 -#, fuzzy msgid "List Comprehensions" msgstr "لیست کامپرهنشن ها" #: ../../tutorial/datastructures.rst:198 -#, fuzzy msgid "" "List comprehensions provide a concise way to create lists. Common " "applications are to make new lists where each element is the result of some " @@ -353,13 +323,11 @@ msgstr "" "که یک شرط خاص را برآورده می کنند." #: ../../tutorial/datastructures.rst:203 -#, fuzzy msgid "For example, assume we want to create a list of squares, like::" msgstr "" "به عنوان مثال، فرض کنید می خواهیم فهرستی از مربعات ایجاد کنیم، مانند::" #: ../../tutorial/datastructures.rst:205 -#, fuzzy msgid "" ">>> squares = []\n" ">>> for x in range(10):\n" @@ -376,7 +344,6 @@ msgstr "" "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]" #: ../../tutorial/datastructures.rst:212 -#, fuzzy msgid "" "Note that this creates (or overwrites) a variable named ``x`` that still " "exists after the loop completes. We can calculate the list of squares " @@ -387,27 +354,22 @@ msgstr "" "اثر جانبی محاسبه کنیم با استفاده از::" #: ../../tutorial/datastructures.rst:216 -#, fuzzy msgid "squares = list(map(lambda x: x**2, range(10)))" msgstr "squares = list(map(lambda x: x**2, range(10)))" #: ../../tutorial/datastructures.rst:218 -#, fuzzy msgid "or, equivalently::" msgstr "یا به طور معادل::" #: ../../tutorial/datastructures.rst:220 -#, fuzzy msgid "squares = [x**2 for x in range(10)]" msgstr "squares = [x**2 for x in range(10)]" #: ../../tutorial/datastructures.rst:222 -#, fuzzy msgid "which is more concise and readable." msgstr "که مختصرتر و خواناتر است." #: ../../tutorial/datastructures.rst:224 -#, fuzzy msgid "" "A list comprehension consists of brackets containing an expression followed " "by a :keyword:`!for` clause, then zero or more :keyword:`!for` or " @@ -424,7 +386,6 @@ msgstr "" " می کند اگر آن ها برابر نباشند::" #: ../../tutorial/datastructures.rst:231 -#, fuzzy msgid "" ">>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]\n" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" @@ -433,12 +394,10 @@ msgstr "" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" #: ../../tutorial/datastructures.rst:234 -#, fuzzy msgid "and it's equivalent to::" msgstr "و معادل آن به این صورت است::" #: ../../tutorial/datastructures.rst:236 -#, fuzzy msgid "" ">>> combs = []\n" ">>> for x in [1,2,3]:\n" @@ -459,7 +418,6 @@ msgstr "" "[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]" #: ../../tutorial/datastructures.rst:245 -#, fuzzy msgid "" "Note how the order of the :keyword:`for` and :keyword:`if` statements is the" " same in both these snippets." @@ -468,7 +426,6 @@ msgstr "" "کدها مشابه است." #: ../../tutorial/datastructures.rst:248 -#, fuzzy msgid "" "If the expression is a tuple (e.g. the ``(x, y)`` in the previous example), " "it must be parenthesized. ::" @@ -477,7 +434,6 @@ msgstr "" "گیرد. ::" #: ../../tutorial/datastructures.rst:251 -#, fuzzy msgid "" ">>> vec = [-4, -2, 0, 2, 4]\n" ">>> # create a new list with the values doubled\n" @@ -536,7 +492,6 @@ msgstr "" "[1, 2, 3, 4, 5, 6, 7, 8, 9]" #: ../../tutorial/datastructures.rst:279 -#, fuzzy msgid "" "List comprehensions can contain complex expressions and nested functions::" msgstr "" @@ -544,7 +499,6 @@ msgstr "" "درک لیست ها می توانند شامل عبارات پیچیده و توابع تو در تو باشند::" #: ../../tutorial/datastructures.rst:281 -#, fuzzy msgid "" ">>> from math import pi\n" ">>> [str(round(pi, i)) for i in range(1, 6)]\n" @@ -555,12 +509,10 @@ msgstr "" "['3.1', '3.14', '3.142', '3.1416', '3.14159']" #: ../../tutorial/datastructures.rst:286 -#, fuzzy msgid "Nested List Comprehensions" msgstr "تودرتوی لیست درک ها (Nested List Comprehensions)" #: ../../tutorial/datastructures.rst:288 -#, fuzzy msgid "" "The initial expression in a list comprehension can be any arbitrary " "expression, including another list comprehension." @@ -569,7 +521,6 @@ msgstr "" "لیست دیگر." #: ../../tutorial/datastructures.rst:291 -#, fuzzy msgid "" "Consider the following example of a 3x4 matrix implemented as a list of 3 " "lists of length 4::" @@ -578,7 +529,6 @@ msgstr "" "پیاده سازی شده است::" #: ../../tutorial/datastructures.rst:294 -#, fuzzy msgid "" ">>> matrix = [\n" "... [1, 2, 3, 4],\n" @@ -593,12 +543,10 @@ msgstr "" "... ]" #: ../../tutorial/datastructures.rst:300 -#, fuzzy msgid "The following list comprehension will transpose rows and columns::" msgstr "فهمیدن فهرست هم قالب زیر ستون ها و سطرها را جابه جا می کند::" #: ../../tutorial/datastructures.rst:302 -#, fuzzy msgid "" ">>> [[row[i] for row in matrix] for i in range(4)]\n" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" @@ -607,7 +555,6 @@ msgstr "" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" #: ../../tutorial/datastructures.rst:305 -#, fuzzy msgid "" "As we saw in the previous section, the inner list comprehension is evaluated" " in the context of the :keyword:`for` that follows it, so this example is " @@ -618,7 +565,6 @@ msgstr "" "است با::" #: ../../tutorial/datastructures.rst:309 -#, fuzzy msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -635,12 +581,10 @@ msgstr "" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" #: ../../tutorial/datastructures.rst:316 -#, fuzzy msgid "which, in turn, is the same as::" msgstr "که به نوبه خود معادل زیر است::" #: ../../tutorial/datastructures.rst:318 -#, fuzzy msgid "" ">>> transposed = []\n" ">>> for i in range(4):\n" @@ -665,7 +609,6 @@ msgstr "" "[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]" #: ../../tutorial/datastructures.rst:329 -#, fuzzy msgid "" "In the real world, you should prefer built-in functions to complex flow " "statements. The :func:`zip` function would do a great job for this use " @@ -676,7 +619,6 @@ msgstr "" "داد::" #: ../../tutorial/datastructures.rst:332 -#, fuzzy msgid "" ">>> list(zip(*matrix))\n" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" @@ -685,7 +627,6 @@ msgstr "" "[(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]" #: ../../tutorial/datastructures.rst:335 -#, fuzzy msgid "" "See :ref:`tut-unpacking-arguments` for details on the asterisk in this line." msgstr "" @@ -693,12 +634,10 @@ msgstr "" "مراجعه کنید." #: ../../tutorial/datastructures.rst:340 -#, fuzzy msgid "The :keyword:`!del` statement" msgstr "بیانیه :keyword:`!del`" #: ../../tutorial/datastructures.rst:342 -#, fuzzy msgid "" "There is a way to remove an item from a list given its index instead of its " "value: the :keyword:`del` statement. This differs from the :meth:`!pop` " @@ -713,7 +652,6 @@ msgstr "" " انجام دادیم). برای مثال::" #: ../../tutorial/datastructures.rst:348 -#, fuzzy msgid "" ">>> a = [-1, 1, 66.25, 333, 333, 1234.5]\n" ">>> del a[0]\n" @@ -738,18 +676,15 @@ msgstr "" "[]" #: ../../tutorial/datastructures.rst:359 -#, fuzzy msgid ":keyword:`del` can also be used to delete entire variables::" msgstr "" ":keyword:`del` همچنین می تواند برای حذف کامل متغیرها نیز استفاده شود::" #: ../../tutorial/datastructures.rst:361 -#, fuzzy msgid ">>> del a" msgstr ">>> del a" #: ../../tutorial/datastructures.rst:363 -#, fuzzy msgid "" "Referencing the name ``a`` hereafter is an error (at least until another " "value is assigned to it). We'll find other uses for :keyword:`del` later." @@ -759,12 +694,10 @@ msgstr "" "پیدا خواهیم کرد." #: ../../tutorial/datastructures.rst:370 -#, fuzzy msgid "Tuples and Sequences" msgstr "Tuples and Sequences" #: ../../tutorial/datastructures.rst:372 -#, fuzzy msgid "" "We saw that lists and strings have many common properties, such as indexing " "and slicing operations. They are two examples of *sequence* data types (see" @@ -779,7 +712,6 @@ msgstr "" "وجود دارد: *tuple*." #: ../../tutorial/datastructures.rst:378 -#, fuzzy msgid "" "A tuple consists of a number of values separated by commas, for instance::" msgstr "" @@ -787,7 +719,6 @@ msgstr "" "مثال::" #: ../../tutorial/datastructures.rst:380 -#, fuzzy msgid "" ">>> t = 12345, 54321, 'hello!'\n" ">>> t[0]\n" @@ -828,7 +759,6 @@ msgstr "" "([1, 2, 3], [3, 2, 1])" #: ../../tutorial/datastructures.rst:400 -#, fuzzy msgid "" "As you see, on output tuples are always enclosed in parentheses, so that " "nested tuples are interpreted correctly; they may be input with or without " @@ -844,7 +774,6 @@ msgstr "" "هایی ایجاد کرد که شامل اشیاء قابل تغییر، مانند لیست ها باشند." #: ../../tutorial/datastructures.rst:407 -#, fuzzy msgid "" "Though tuples may seem similar to lists, they are often used in different " "situations and for different purposes. Tuples are :term:`immutable`, and " @@ -863,7 +792,6 @@ msgstr "" "فهرست به آن ها دسترسی پیدا می شود." #: ../../tutorial/datastructures.rst:415 -#, fuzzy msgid "" "A special problem is the construction of tuples containing 0 or 1 items: the" " syntax has some extra quirks to accommodate these. Empty tuples are " @@ -878,7 +806,6 @@ msgstr "" "زیبا نباشد، اما مؤثر است. برای مثال::" #: ../../tutorial/datastructures.rst:421 -#, fuzzy msgid "" ">>> empty = ()\n" ">>> singleton = 'hello', # <-- note trailing comma\n" @@ -899,7 +826,6 @@ msgstr "" "('hello',)" #: ../../tutorial/datastructures.rst:430 -#, fuzzy msgid "" "The statement ``t = 12345, 54321, 'hello!'`` is an example of *tuple " "packing*: the values ``12345``, ``54321`` and ``'hello!'`` are packed " @@ -910,12 +836,10 @@ msgstr "" "عملیات معکوس نیز امکان پذیر است::" #: ../../tutorial/datastructures.rst:434 -#, fuzzy msgid ">>> x, y, z = t" msgstr ">>> x, y, z = t" #: ../../tutorial/datastructures.rst:436 -#, fuzzy msgid "" "This is called, appropriately enough, *sequence unpacking* and works for any" " sequence on the right-hand side. Sequence unpacking requires that there " @@ -930,12 +854,10 @@ msgstr "" "است." #: ../../tutorial/datastructures.rst:446 -#, fuzzy msgid "Sets" msgstr "مجموعه ها" #: ../../tutorial/datastructures.rst:448 -#, fuzzy msgid "" "Python also includes a data type for *sets*. A set is an unordered " "collection with no duplicate elements. Basic uses include membership " @@ -949,7 +871,6 @@ msgstr "" "اشتراک، تفاضل و تفاضل متقارن پشتیبانی می کنند." #: ../../tutorial/datastructures.rst:453 -#, fuzzy msgid "" "Curly braces or the :func:`set` function can be used to create sets. Note: " "to create an empty set you have to use ``set()``, not ``{}``; the latter " @@ -962,12 +883,10 @@ msgstr "" "بررسی خواهیم کرد." #: ../../tutorial/datastructures.rst:457 -#, fuzzy msgid "Here is a brief demonstration::" msgstr "در اینجا یک نمایش مختصر ارائه شده است::" #: ../../tutorial/datastructures.rst:459 -#, fuzzy msgid "" ">>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}\n" ">>> print(basket) # show that duplicates have been removed\n" @@ -1016,7 +935,6 @@ msgstr "" "{'r', 'd', 'b', 'm', 'z', 'l'}" #: ../../tutorial/datastructures.rst:482 -#, fuzzy msgid "" "Similarly to :ref:`list comprehensions `, set comprehensions " "are also supported::" @@ -1025,7 +943,6 @@ msgstr "" "مجموعه نیز پشتیبانی می شوند::" #: ../../tutorial/datastructures.rst:485 -#, fuzzy msgid "" ">>> a = {x for x in 'abracadabra' if x not in 'abc'}\n" ">>> a\n" @@ -1036,12 +953,10 @@ msgstr "" "{'r', 'd'}" #: ../../tutorial/datastructures.rst:493 -#, fuzzy msgid "Dictionaries" msgstr "دایره المعارف ها" #: ../../tutorial/datastructures.rst:495 -#, fuzzy msgid "" "Another useful data type built into Python is the *dictionary* (see " ":ref:`typesmapping`). Dictionaries are sometimes found in other languages as" @@ -1067,7 +982,6 @@ msgstr "" ":meth:`!append` و :meth:`!extend` در محل تغییر کنند." #: ../../tutorial/datastructures.rst:506 -#, fuzzy msgid "" "It is best to think of a dictionary as a set of *key: value* pairs, with the" " requirement that the keys are unique (within one dictionary). A pair of " @@ -1083,7 +997,6 @@ msgstr "" "ها در خروجی نوشته می شوند." #: ../../tutorial/datastructures.rst:512 -#, fuzzy msgid "" "The main operations on a dictionary are storing a value with some key and " "extracting the value given the key. It is also possible to delete a " @@ -1098,7 +1011,6 @@ msgstr "" "کلید ناموجود یک خطا است." #: ../../tutorial/datastructures.rst:518 -#, fuzzy msgid "" "Performing ``list(d)`` on a dictionary returns a list of all the keys used " "in the dictionary, in insertion order (if you want it sorted, just use " @@ -1111,12 +1023,10 @@ msgstr "" " وجود دارد، از کلمه کلیدی :keyword:`in` استفاده کنید." #: ../../tutorial/datastructures.rst:523 -#, fuzzy msgid "Here is a small example using a dictionary::" msgstr "در اینجا یک مثال کوچک با استفاده از یک دیکشنری آمده است::" #: ../../tutorial/datastructures.rst:525 -#, fuzzy msgid "" ">>> tel = {'jack': 4098, 'sape': 4139}\n" ">>> tel['guido'] = 4127\n" @@ -1157,7 +1067,6 @@ msgstr "" "False" #: ../../tutorial/datastructures.rst:544 -#, fuzzy msgid "" "The :func:`dict` constructor builds dictionaries directly from sequences of " "key-value pairs::" @@ -1166,7 +1075,6 @@ msgstr "" " می سازد::" #: ../../tutorial/datastructures.rst:547 -#, fuzzy msgid "" ">>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" @@ -1175,7 +1083,6 @@ msgstr "" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" #: ../../tutorial/datastructures.rst:550 -#, fuzzy msgid "" "In addition, dict comprehensions can be used to create dictionaries from " "arbitrary key and value expressions::" @@ -1184,7 +1091,6 @@ msgstr "" " دلخواه کلید و مقدار استفاده کرد::" #: ../../tutorial/datastructures.rst:553 -#, fuzzy msgid "" ">>> {x: x**2 for x in (2, 4, 6)}\n" "{2: 4, 4: 16, 6: 36}" @@ -1193,7 +1099,6 @@ msgstr "" "{2: 4, 4: 16, 6: 36}" #: ../../tutorial/datastructures.rst:556 -#, fuzzy msgid "" "When the keys are simple strings, it is sometimes easier to specify pairs " "using keyword arguments::" @@ -1202,7 +1107,6 @@ msgstr "" " استفاده از آرگومان های کلیدواژه مشخص کنید::" #: ../../tutorial/datastructures.rst:559 -#, fuzzy msgid "" ">>> dict(sape=4139, guido=4127, jack=4098)\n" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" @@ -1211,12 +1115,10 @@ msgstr "" "{'sape': 4139, 'guido': 4127, 'jack': 4098}" #: ../../tutorial/datastructures.rst:566 -#, fuzzy msgid "Looping Techniques" msgstr "تکنیک های حلقه زدن" #: ../../tutorial/datastructures.rst:568 -#, fuzzy msgid "" "When looping through dictionaries, the key and corresponding value can be " "retrieved at the same time using the :meth:`~dict.items` method. ::" @@ -1225,7 +1127,6 @@ msgstr "" " از روش :meth:`~dict.items` بازیابی کرد. ::" #: ../../tutorial/datastructures.rst:571 -#, fuzzy msgid "" ">>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}\n" ">>> for k, v in knights.items():\n" @@ -1242,7 +1143,6 @@ msgstr "" "robin the brave" #: ../../tutorial/datastructures.rst:578 -#, fuzzy msgid "" "When looping through a sequence, the position index and corresponding value " "can be retrieved at the same time using the :func:`enumerate` function. ::" @@ -1251,7 +1151,6 @@ msgstr "" "با استفاده از تابع :func:`enumerate` دسترسی پیدا کرد. ::" #: ../../tutorial/datastructures.rst:581 -#, fuzzy msgid "" ">>> for i, v in enumerate(['tic', 'tac', 'toe']):\n" "... print(i, v)\n" @@ -1268,7 +1167,6 @@ msgstr "" "2 toe" #: ../../tutorial/datastructures.rst:588 -#, fuzzy msgid "" "To loop over two or more sequences at the same time, the entries can be " "paired with the :func:`zip` function. ::" @@ -1277,7 +1175,6 @@ msgstr "" "کردن ورودی ها استفاده کرد. ::" #: ../../tutorial/datastructures.rst:591 -#, fuzzy msgid "" ">>> questions = ['name', 'quest', 'favorite color']\n" ">>> answers = ['lancelot', 'the holy grail', 'blue']\n" @@ -1298,7 +1195,6 @@ msgstr "" "رنگ مورد علاقه ی شما چیست؟ آن blue است." #: ../../tutorial/datastructures.rst:600 -#, fuzzy msgid "" "To loop over a sequence in reverse, first specify the sequence in a forward " "direction and then call the :func:`reversed` function. ::" @@ -1307,7 +1203,6 @@ msgstr "" "جلو مشخص کرده و سپس تابع :func:`reversed` را فراخوانی کنید. ::" #: ../../tutorial/datastructures.rst:603 -#, fuzzy msgid "" ">>> for i in reversed(range(1, 10, 2)):\n" "... print(i)\n" @@ -1328,7 +1223,6 @@ msgstr "" "1" #: ../../tutorial/datastructures.rst:612 -#, fuzzy msgid "" "To loop over a sequence in sorted order, use the :func:`sorted` function " "which returns a new sorted list while leaving the source unaltered. ::" @@ -1338,7 +1232,6 @@ msgstr "" "نیافته باقی می گذارد. ::" #: ../../tutorial/datastructures.rst:615 -#, fuzzy msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for i in sorted(basket):\n" @@ -1363,7 +1256,6 @@ msgstr "" "pear" #: ../../tutorial/datastructures.rst:626 -#, fuzzy msgid "" "Using :func:`set` on a sequence eliminates duplicate elements. The use of " ":func:`sorted` in combination with :func:`set` over a sequence is an " @@ -1375,7 +1267,6 @@ msgstr "" "پیمایش بر روی عناصر منحصر به فرد دنباله به صورت مرتب شده است. ::" #: ../../tutorial/datastructures.rst:630 -#, fuzzy msgid "" ">>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']\n" ">>> for f in sorted(set(basket)):\n" @@ -1396,7 +1287,6 @@ msgstr "" "pear" #: ../../tutorial/datastructures.rst:639 -#, fuzzy msgid "" "It is sometimes tempting to change a list while you are looping over it; " "however, it is often simpler and safer to create a new list instead. ::" @@ -1405,7 +1295,6 @@ msgstr "" "ساده تر و ایمن تر است که به جای آن یک لیست جدید ایجاد کنید. ::" #: ../../tutorial/datastructures.rst:642 -#, fuzzy msgid "" ">>> import math\n" ">>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]\n" @@ -1428,12 +1317,10 @@ msgstr "" "[56.2, 51.7, 55.3, 52.5, 47.8]" #: ../../tutorial/datastructures.rst:656 -#, fuzzy msgid "More on Conditions" msgstr "بیشتر درباره شرایط" #: ../../tutorial/datastructures.rst:658 -#, fuzzy msgid "" "The conditions used in ``while`` and ``if`` statements can contain any " "operators, not just comparisons." @@ -1442,7 +1329,6 @@ msgstr "" "عملگرها باشند، نه فقط مقایسه ها." #: ../../tutorial/datastructures.rst:662 -#, fuzzy msgid "" "The comparison operators ``in`` and ``not in`` are membership tests that " "determine whether a value is in (or not in) a container. The operators " @@ -1457,7 +1343,6 @@ msgstr "" " است." #: ../../tutorial/datastructures.rst:668 -#, fuzzy msgid "" "Comparisons can be chained. For example, ``a < b == c`` tests whether ``a``" " is less than ``b`` and moreover ``b`` equals ``c``." @@ -1467,7 +1352,6 @@ msgstr "" "باشد." #: ../../tutorial/datastructures.rst:671 -#, fuzzy msgid "" "Comparisons may be combined using the Boolean operators ``and`` and ``or``, " "and the outcome of a comparison (or of any other Boolean expression) may be " @@ -1484,7 +1368,6 @@ msgstr "" "برای نشان دادن ترکیب مطلوب استفاده شوند." #: ../../tutorial/datastructures.rst:678 -#, fuzzy msgid "" "The Boolean operators ``and`` and ``or`` are so-called *short-circuit* " "operators: their arguments are evaluated from left to right, and evaluation " @@ -1501,7 +1384,6 @@ msgstr "" " *short-circuit* برابر با آخرین آرگومانی است که ارزیابی شده است." #: ../../tutorial/datastructures.rst:685 -#, fuzzy msgid "" "It is possible to assign the result of a comparison or other Boolean " "expression to a variable. For example, ::" @@ -1510,7 +1392,6 @@ msgstr "" " مثال، ::" #: ../../tutorial/datastructures.rst:688 -#, fuzzy msgid "" ">>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'\n" ">>> non_null = string1 or string2 or string3\n" @@ -1523,7 +1404,6 @@ msgstr "" "'Trondheim'" #: ../../tutorial/datastructures.rst:693 -#, fuzzy msgid "" "Note that in Python, unlike C, assignment inside expressions must be done " "explicitly with the :ref:`walrus operator `` is legal " "provided that the objects have appropriate comparison methods. For example," @@ -1604,12 +1480,10 @@ msgstr "" ":exc:`TypeError` ایجاد خواهد کرد." #: ../../tutorial/datastructures.rst:732 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../tutorial/datastructures.rst:733 -#, fuzzy msgid "" "Other languages may return the mutated object, which allows method chaining," " such as ``d->insert(\"a\")->remove(\"b\")->sort();``." diff --git a/tutorial/errors.po b/tutorial/errors.po index 439402691..5662d990c 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/errors.rst:5 -#, fuzzy msgid "Errors and Exceptions" msgstr "Errors and Exceptions" #: ../../tutorial/errors.rst:7 -#, fuzzy msgid "" "Until now error messages haven't been more than mentioned, but if you have " "tried out the examples you have probably seen some. There are (at least) " @@ -38,12 +35,10 @@ msgstr "" "قابل تمایز وجود دارد: *syntax errors* و *exceptions*." #: ../../tutorial/errors.rst:15 -#, fuzzy msgid "Syntax Errors" msgstr "خطاهای نحوی" #: ../../tutorial/errors.rst:17 -#, fuzzy msgid "" "Syntax errors, also known as parsing errors, are perhaps the most common " "kind of complaint you get while you are still learning Python::" @@ -52,7 +47,6 @@ msgstr "" " شکایتی هستند که هنگام یادگیری پایتون دریافت می کنید::" #: ../../tutorial/errors.rst:20 -#, fuzzy msgid "" ">>> while True print('Hello world')\n" " File \"\", line 1\n" @@ -67,7 +61,6 @@ msgstr "" "SyntaxError: syntax نامعتبر" #: ../../tutorial/errors.rst:26 -#, fuzzy msgid "" "The parser repeats the offending line and displays little arrows pointing at" " the token in the line where the error was detected. The error may be " @@ -84,12 +77,10 @@ msgstr "" "باید بررسی کنید، در صورتی که ورودی از یک اسکریپت آمده باشد." #: ../../tutorial/errors.rst:37 -#, fuzzy msgid "Exceptions" msgstr "استثناء ها" #: ../../tutorial/errors.rst:39 -#, fuzzy msgid "" "Even if a statement or expression is syntactically correct, it may cause an " "error when an attempt is made to execute it. Errors detected during " @@ -106,7 +97,6 @@ msgstr "" "همانطور که اینجا نمایش داده شده است::" #: ../../tutorial/errors.rst:45 -#, fuzzy msgid "" ">>> 10 * (1/0)\n" "Traceback (most recent call last):\n" @@ -147,7 +137,6 @@ msgstr "" "TypeError: can only concatenate str (not \"int\") to str" #: ../../tutorial/errors.rst:64 -#, fuzzy msgid "" "The last line of the error message indicates what happened. Exceptions come " "in different types, and the type is printed as part of the message: the " @@ -168,7 +157,6 @@ msgstr "" " کلیدی رزرو شده)." #: ../../tutorial/errors.rst:72 -#, fuzzy msgid "" "The rest of the line provides detail based on the type of exception and what" " caused it." @@ -176,7 +164,6 @@ msgstr "" "بقیه خط بر اساس نوع استثنا و چیزی که باعث آن شده است، جزئیات ارائه می دهد." #: ../../tutorial/errors.rst:75 -#, fuzzy msgid "" "The preceding part of the error message shows the context where the " "exception occurred, in the form of a stack traceback. In general it contains" @@ -189,7 +176,6 @@ msgstr "" "دهد." #: ../../tutorial/errors.rst:80 -#, fuzzy msgid "" ":ref:`bltin-exceptions` lists the built-in exceptions and their meanings." msgstr "" @@ -197,12 +183,10 @@ msgstr "" "دهد." #: ../../tutorial/errors.rst:86 -#, fuzzy msgid "Handling Exceptions" msgstr "مدیریت استثناها" #: ../../tutorial/errors.rst:88 -#, fuzzy msgid "" "It is possible to write programs that handle selected exceptions. Look at " "the following example, which asks the user for input until a valid integer " @@ -219,7 +203,6 @@ msgstr "" ":exc:`KeyboardInterrupt` اعلام می شود. ::" #: ../../tutorial/errors.rst:94 -#, fuzzy msgid "" ">>> while True:\n" "... try:\n" @@ -238,12 +221,10 @@ msgstr "" "..." #: ../../tutorial/errors.rst:102 -#, fuzzy msgid "The :keyword:`try` statement works as follows." msgstr "بیانیه :keyword:`try` به صورت زیر کار می کند." #: ../../tutorial/errors.rst:104 -#, fuzzy msgid "" "First, the *try clause* (the statement(s) between the :keyword:`try` and " ":keyword:`except` keywords) is executed." @@ -252,7 +233,6 @@ msgstr "" ":keyword:`except` قرار دارد) اجرا می شود." #: ../../tutorial/errors.rst:107 -#, fuzzy msgid "" "If no exception occurs, the *except clause* is skipped and execution of the " ":keyword:`try` statement is finished." @@ -261,7 +241,6 @@ msgstr "" ":keyword:`try` به پایان می رسد." #: ../../tutorial/errors.rst:110 -#, fuzzy msgid "" "If an exception occurs during execution of the :keyword:`try` clause, the " "rest of the clause is skipped. Then, if its type matches the exception " @@ -274,7 +253,6 @@ msgstr "" " برنامه بعد از بلوک try/except ادامه می یابد." #: ../../tutorial/errors.rst:115 -#, fuzzy msgid "" "If an exception occurs which does not match the exception named in the " "*except clause*, it is passed on to outer :keyword:`try` statements; if no " @@ -287,7 +265,6 @@ msgstr "" " می شود." #: ../../tutorial/errors.rst:119 -#, fuzzy msgid "" "A :keyword:`try` statement may have more than one *except clause*, to " "specify handlers for different exceptions. At most one handler will be " @@ -304,7 +281,6 @@ msgstr "" "ببرد، برای مثال::" #: ../../tutorial/errors.rst:125 -#, fuzzy msgid "" "... except (RuntimeError, TypeError, NameError):\n" "... pass" @@ -313,7 +289,6 @@ msgstr "" "... عبور" #: ../../tutorial/errors.rst:128 -#, fuzzy msgid "" "A class in an :keyword:`except` clause matches exceptions which are " "instances of the class itself or one of its derived classes (but not the " @@ -328,7 +303,6 @@ msgstr "" "خواهد کرد::" #: ../../tutorial/errors.rst:133 -#, fuzzy msgid "" "class B(Exception):\n" " pass\n" @@ -369,7 +343,6 @@ msgstr "" " print(\"B\")" #: ../../tutorial/errors.rst:152 -#, fuzzy msgid "" "Note that if the *except clauses* were reversed (with ``except B`` first), " "it would have printed B, B, B --- the first matching *except clause* is " @@ -380,7 +353,6 @@ msgstr "" "فعال می شود." #: ../../tutorial/errors.rst:155 -#, fuzzy msgid "" "When an exception occurs, it may have associated values, also known as the " "exception's *arguments*. The presence and types of the arguments depend on " @@ -391,7 +363,6 @@ msgstr "" "بستگی دارد." #: ../../tutorial/errors.rst:159 -#, fuzzy msgid "" "The *except clause* may specify a variable after the exception name. The " "variable is bound to the exception instance which typically has an ``args`` " @@ -405,7 +376,6 @@ msgstr "" "تعریف می کنند تا همه آرگومان ها را بدون دسترسی صریح به ``.args`` چاپ کند.::" #: ../../tutorial/errors.rst:165 -#, fuzzy msgid "" ">>> try:\n" "... raise Exception('spam', 'eggs')\n" @@ -442,7 +412,6 @@ msgstr "" "y = eggs" #: ../../tutorial/errors.rst:182 -#, fuzzy msgid "" "The exception's :meth:`~object.__str__` output is printed as the last part " "('detail') of the message for unhandled exceptions." @@ -451,7 +420,6 @@ msgstr "" "برای استثناهای مدیریت نشده چاپ می شود." #: ../../tutorial/errors.rst:185 -#, fuzzy msgid "" ":exc:`BaseException` is the common base class of all exceptions. One of its " "subclasses, :exc:`Exception`, is the base class of all the non-fatal " @@ -470,7 +438,6 @@ msgstr "" "متوقف کند." #: ../../tutorial/errors.rst:193 -#, fuzzy msgid "" ":exc:`Exception` can be used as a wildcard that catches (almost) everything." " However, it is good practice to be as specific as possible with the types " @@ -483,7 +450,6 @@ msgstr "" "غیرمنتظره ای به جلو برود." #: ../../tutorial/errors.rst:198 -#, fuzzy msgid "" "The most common pattern for handling :exc:`Exception` is to print or log the" " exception and then re-raise it (allowing a caller to handle the exception " @@ -494,7 +460,6 @@ msgstr "" "که به خطا رسیدگی کند)::" #: ../../tutorial/errors.rst:202 -#, fuzzy msgid "" "import sys\n" "\n" @@ -525,7 +490,6 @@ msgstr "" " raise" #: ../../tutorial/errors.rst:216 -#, fuzzy msgid "" "The :keyword:`try` ... :keyword:`except` statement has an optional *else " "clause*, which, when present, must follow all *except clauses*. It is " @@ -538,7 +502,6 @@ msgstr "" " مثال::" #: ../../tutorial/errors.rst:221 -#, fuzzy msgid "" "for arg in sys.argv[1:]:\n" " try:\n" @@ -559,7 +522,6 @@ msgstr "" " f.close()" #: ../../tutorial/errors.rst:230 -#, fuzzy msgid "" "The use of the :keyword:`!else` clause is better than adding additional code" " to the :keyword:`try` clause because it avoids accidentally catching an " @@ -572,7 +534,6 @@ msgstr "" "می کند." #: ../../tutorial/errors.rst:235 -#, fuzzy msgid "" "Exception handlers do not handle only exceptions that occur immediately in " "the *try clause*, but also those that occur inside functions that are called" @@ -583,7 +544,6 @@ msgstr "" "غیرمستقیم) در *try clause* فراخوانده می شوند نیز مدیریت می کنند. برای مثال::" #: ../../tutorial/errors.rst:239 -#, fuzzy msgid "" ">>> def this_fails():\n" "... x = 1/0\n" @@ -606,12 +566,10 @@ msgstr "" "Handling run-time error: division by zero" #: ../../tutorial/errors.rst:253 -#, fuzzy msgid "Raising Exceptions" msgstr "برخواستن استثنائات" #: ../../tutorial/errors.rst:255 -#, fuzzy msgid "" "The :keyword:`raise` statement allows the programmer to force a specified " "exception to occur. For example::" @@ -620,7 +578,6 @@ msgstr "" "را وادار به وقوع کند. به عنوان مثال::" #: ../../tutorial/errors.rst:258 -#, fuzzy msgid "" ">>> raise NameError('HiThere')\n" "Traceback (most recent call last):\n" @@ -635,7 +592,6 @@ msgstr "" "NameError: HiThere" #: ../../tutorial/errors.rst:264 -#, fuzzy msgid "" "The sole argument to :keyword:`raise` indicates the exception to be raised. " "This must be either an exception instance or an exception class (a class " @@ -650,12 +606,10 @@ msgstr "" "سازنده اش بدون آرگومان نمونه سازی می شود::" #: ../../tutorial/errors.rst:270 -#, fuzzy msgid "raise ValueError # shorthand for 'raise ValueError()'" msgstr "raise ValueError # shorthand for 'raise ValueError()'" #: ../../tutorial/errors.rst:272 -#, fuzzy msgid "" "If you need to determine whether an exception was raised but don't intend to" " handle it, a simpler form of the :keyword:`raise` statement allows you to " @@ -666,7 +620,6 @@ msgstr "" "می دهد استثنا را دوباره ایجاد کنید::" #: ../../tutorial/errors.rst:276 -#, fuzzy msgid "" ">>> try:\n" "... raise NameError('HiThere')\n" @@ -693,12 +646,10 @@ msgstr "" "NameError: HiThere" #: ../../tutorial/errors.rst:292 -#, fuzzy msgid "Exception Chaining" msgstr "زنجیره سازی استثنا ها" #: ../../tutorial/errors.rst:294 -#, fuzzy msgid "" "If an unhandled exception occurs inside an :keyword:`except` section, it " "will have the exception being handled attached to it and included in the " @@ -708,7 +659,6 @@ msgstr "" "حال پردازش به آن متصل می شود و در پیام خطا درج می گردد::" #: ../../tutorial/errors.rst:298 -#, fuzzy msgid "" ">>> try:\n" "... open(\"database.sqlite\")\n" @@ -747,7 +697,6 @@ msgstr "" "RuntimeError: unable to handle error" #: ../../tutorial/errors.rst:316 -#, fuzzy msgid "" "To indicate that an exception is a direct consequence of another, the " ":keyword:`raise` statement allows an optional :keyword:`from` " @@ -758,7 +707,6 @@ msgstr "" "دهد::" #: ../../tutorial/errors.rst:319 -#, fuzzy msgid "" "# exc must be exception instance or None.\n" "raise RuntimeError from exc" @@ -767,13 +715,11 @@ msgstr "" "raise RuntimeError from exc" #: ../../tutorial/errors.rst:322 -#, fuzzy msgid "This can be useful when you are transforming exceptions. For example::" msgstr "" "این می تواند زمانی که شما در حال تبدیل استثناها هستید مفید باشد. برای مثال::" #: ../../tutorial/errors.rst:324 -#, fuzzy msgid "" ">>> def func():\n" "... raise ConnectionError\n" @@ -820,7 +766,6 @@ msgstr "" "RuntimeError: Failed to open database" #: ../../tutorial/errors.rst:346 -#, fuzzy msgid "" "It also allows disabling automatic exception chaining using the ``from " "None`` idiom::" @@ -829,7 +774,6 @@ msgstr "" "ایدیوم ``from None``::" #: ../../tutorial/errors.rst:349 -#, fuzzy msgid "" ">>> try:\n" "... open('database.sqlite')\n" @@ -852,7 +796,6 @@ msgstr "" "RuntimeError" #: ../../tutorial/errors.rst:359 -#, fuzzy msgid "" "For more information about chaining mechanics, see :ref:`bltin-exceptions`." msgstr "" @@ -860,12 +803,10 @@ msgstr "" "مراجعه کنید." #: ../../tutorial/errors.rst:365 -#, fuzzy msgid "User-defined Exceptions" msgstr "استثناهای تعریف شده توسط کاربر" #: ../../tutorial/errors.rst:367 -#, fuzzy msgid "" "Programs may name their own exceptions by creating a new exception class " "(see :ref:`tut-classes` for more about Python classes). Exceptions should " @@ -878,7 +819,6 @@ msgstr "" ":exc:`Exception` مشتق شوند." #: ../../tutorial/errors.rst:371 -#, fuzzy msgid "" "Exception classes can be defined which do anything any other class can do, " "but are usually kept simple, often only offering a number of attributes that" @@ -891,7 +831,6 @@ msgstr "" "درباره خطا استخراج کنند." #: ../../tutorial/errors.rst:375 -#, fuzzy msgid "" "Most exceptions are defined with names that end in \"Error\", similar to the" " naming of the standard exceptions." @@ -900,7 +839,6 @@ msgstr "" "نام گذاری استثناهای استاندارد." #: ../../tutorial/errors.rst:378 -#, fuzzy msgid "" "Many standard modules define their own exceptions to report errors that may " "occur in functions they define." @@ -909,12 +847,10 @@ msgstr "" "ممکن است در توابعی که تعریف می کنند رخ دهند را گزارش دهند." #: ../../tutorial/errors.rst:385 -#, fuzzy msgid "Defining Clean-up Actions" msgstr "تعریف اقدامات پاکسازی" #: ../../tutorial/errors.rst:387 -#, fuzzy msgid "" "The :keyword:`try` statement has another optional clause which is intended " "to define clean-up actions that must be executed under all circumstances. " @@ -924,7 +860,6 @@ msgstr "" "برای پاکسازی است که باید تحت هر شرایطی اجرا شوند. برای مثال::" #: ../../tutorial/errors.rst:391 -#, fuzzy msgid "" ">>> try:\n" "... raise KeyboardInterrupt\n" @@ -949,7 +884,6 @@ msgstr "" "KeyboardInterrupt" #: ../../tutorial/errors.rst:402 -#, fuzzy msgid "" "If a :keyword:`finally` clause is present, the :keyword:`!finally` clause " "will execute as the last task before the :keyword:`try` statement completes." @@ -964,7 +898,6 @@ msgstr "" "قرار می دهند:" #: ../../tutorial/errors.rst:408 -#, fuzzy msgid "" "If an exception occurs during execution of the :keyword:`!try` clause, the " "exception may be handled by an :keyword:`except` clause. If the exception is" @@ -977,7 +910,6 @@ msgstr "" "شد." #: ../../tutorial/errors.rst:414 -#, fuzzy msgid "" "An exception could occur during execution of an :keyword:`!except` or " ":keyword:`!else` clause. Again, the exception is re-raised after the " @@ -988,7 +920,6 @@ msgstr "" "شود." #: ../../tutorial/errors.rst:418 -#, fuzzy msgid "" "If the :keyword:`!finally` clause executes a :keyword:`break`, " ":keyword:`continue` or :keyword:`return` statement, exceptions are not re-" @@ -998,7 +929,6 @@ msgstr "" "یا :keyword:`return` را اجرا کند، استثناها دوباره ایجاد نمی شوند." #: ../../tutorial/errors.rst:422 -#, fuzzy msgid "" "If the :keyword:`!try` statement reaches a :keyword:`break`, " ":keyword:`continue` or :keyword:`return` statement, the :keyword:`!finally` " @@ -1011,7 +941,6 @@ msgstr "" "خواهد شد." #: ../../tutorial/errors.rst:428 -#, fuzzy msgid "" "If a :keyword:`!finally` clause includes a :keyword:`!return` statement, the" " returned value will be the one from the :keyword:`!finally` clause's " @@ -1024,12 +953,10 @@ msgstr "" "عبارت :keyword:`!try`." #: ../../tutorial/errors.rst:434 -#, fuzzy msgid "For example::" msgstr "برای مثال::" #: ../../tutorial/errors.rst:436 -#, fuzzy msgid "" ">>> def bool_return():\n" "... try:\n" @@ -1050,12 +977,10 @@ msgstr "" "False" #: ../../tutorial/errors.rst:445 -#, fuzzy msgid "A more complicated example::" msgstr "یک مثال پیچیده تر::" #: ../../tutorial/errors.rst:447 -#, fuzzy msgid "" ">>> def divide(x, y):\n" "... try:\n" @@ -1112,7 +1037,6 @@ msgstr "" "TypeError: unsupported operand type(s) for /: 'str' and 'str'" #: ../../tutorial/errors.rst:474 -#, fuzzy msgid "" "As you can see, the :keyword:`finally` clause is executed in any event. The" " :exc:`TypeError` raised by dividing two strings is not handled by the " @@ -1125,7 +1049,6 @@ msgstr "" ":keyword:`!finally` دوباره منتشر می شود." #: ../../tutorial/errors.rst:479 -#, fuzzy msgid "" "In real world applications, the :keyword:`finally` clause is useful for " "releasing external resources (such as files or network connections), " @@ -1136,12 +1059,10 @@ msgstr "" "استفاده از منبع موفقیت آمیز بوده است یا خیر." #: ../../tutorial/errors.rst:487 -#, fuzzy msgid "Predefined Clean-up Actions" msgstr "اقدامات پاک سازی از پیش تعریف شده" #: ../../tutorial/errors.rst:489 -#, fuzzy msgid "" "Some objects define standard clean-up actions to be undertaken when the " "object is no longer needed, regardless of whether or not the operation using" @@ -1154,7 +1075,6 @@ msgstr "" "کند یک فایل را باز کرده و محتوای آن را به صفحه نمایش چاپ کند. ::" #: ../../tutorial/errors.rst:494 -#, fuzzy msgid "" "for line in open(\"myfile.txt\"):\n" " print(line, end=\"\")" @@ -1163,7 +1083,6 @@ msgstr "" " print(line, end=\"\")" #: ../../tutorial/errors.rst:497 -#, fuzzy msgid "" "The problem with this code is that it leaves the file open for an " "indeterminate amount of time after this part of the code has finished " @@ -1179,7 +1098,6 @@ msgstr "" "همواره به موقع و به درستی پاکسازی می شوند. ::" #: ../../tutorial/errors.rst:503 -#, fuzzy msgid "" "with open(\"myfile.txt\") as f:\n" " for line in f:\n" @@ -1190,7 +1108,6 @@ msgstr "" " print(line, end=\"\")" #: ../../tutorial/errors.rst:507 -#, fuzzy msgid "" "After the statement is executed, the file *f* is always closed, even if a " "problem was encountered while processing the lines. Objects which, like " @@ -1202,12 +1119,10 @@ msgstr "" "را ارائه می دهند، این را در مستندات خود نشان خواهند داد." #: ../../tutorial/errors.rst:515 -#, fuzzy msgid "Raising and Handling Multiple Unrelated Exceptions" msgstr "بالا بردن و مدیریت چندین استثنای نامرتبط" #: ../../tutorial/errors.rst:517 -#, fuzzy msgid "" "There are situations where it is necessary to report several exceptions that" " have occurred. This is often the case in concurrency frameworks, when " @@ -1222,7 +1137,6 @@ msgstr "" "است." #: ../../tutorial/errors.rst:523 -#, fuzzy msgid "" "The builtin :exc:`ExceptionGroup` wraps a list of exception instances so " "that they can be raised together. It is an exception itself, so it can be " @@ -1233,7 +1147,6 @@ msgstr "" "بنابراین می توان آن را مانند هر استثنای دیگری گرفت. ::" #: ../../tutorial/errors.rst:527 -#, fuzzy msgid "" ">>> def f():\n" "... excs = [OSError('error 1'), SystemError('error 2')]\n" @@ -1286,7 +1199,6 @@ msgstr "" ">>>" #: ../../tutorial/errors.rst:552 -#, fuzzy msgid "" "By using ``except*`` instead of ``except``, we can selectively handle only " "the exceptions in the group that match a certain type. In the following " @@ -1302,7 +1214,6 @@ msgstr "" "::" #: ../../tutorial/errors.rst:559 -#, fuzzy msgid "" ">>> def f():\n" "... raise ExceptionGroup(\n" @@ -1387,7 +1298,6 @@ msgstr "" ">>>" #: ../../tutorial/errors.rst:600 -#, fuzzy msgid "" "Note that the exceptions nested in an exception group must be instances, not" " types. This is because in practice the exceptions would typically be ones " @@ -1400,7 +1310,6 @@ msgstr "" "اعلام شده اند و روال کار معمولاً به صورت زیر است::" #: ../../tutorial/errors.rst:605 -#, fuzzy msgid "" ">>> excs = []\n" "... for test in tests:\n" @@ -1425,12 +1334,10 @@ msgstr "" "..." #: ../../tutorial/errors.rst:620 -#, fuzzy msgid "Enriching Exceptions with Notes" msgstr "غنی سازی استثناها با یادداشت ها" #: ../../tutorial/errors.rst:622 -#, fuzzy msgid "" "When an exception is created in order to be raised, it is usually " "initialized with information that describes the error that has occurred. " @@ -1448,7 +1355,6 @@ msgstr "" "یادداشت ها، به ترتیبی که اضافه شده اند، بعد از استثناء می باشد. ::" #: ../../tutorial/errors.rst:629 -#, fuzzy msgid "" ">>> try:\n" "... raise TypeError('bad type')\n" @@ -1481,7 +1387,6 @@ msgstr "" ">>>" #: ../../tutorial/errors.rst:644 -#, fuzzy msgid "" "For example, when collecting exceptions into an exception group, we may want" " to add context information for the individual errors. In the following each" @@ -1494,7 +1399,6 @@ msgstr "" " ::" #: ../../tutorial/errors.rst:648 -#, fuzzy msgid "" ">>> def f():\n" "... raise OSError('operation failed')\n" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index cb95228ee..c4fd779cd 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/floatingpoint.rst:10 -#, fuzzy msgid "Floating-Point Arithmetic: Issues and Limitations" msgstr "ممیز شناور: مشکلات و محدودیت ها" #: ../../tutorial/floatingpoint.rst:16 -#, fuzzy msgid "" "Floating-point numbers are represented in computer hardware as base 2 " "(binary) fractions. For example, the **decimal** fraction ``0.625`` has " @@ -43,7 +40,6 @@ msgstr "" "۱۰ نوشته شده و دومی در پایه ۲." #: ../../tutorial/floatingpoint.rst:23 -#, fuzzy msgid "" "Unfortunately, most decimal fractions cannot be represented exactly as " "binary fractions. A consequence is that, in general, the decimal floating-" @@ -56,7 +52,6 @@ msgstr "" "ذخیره می شوند، نمایش داده می شوند." #: ../../tutorial/floatingpoint.rst:28 -#, fuzzy msgid "" "The problem is easier to understand at first in base 10. Consider the " "fraction 1/3. You can approximate that as a base 10 fraction::" @@ -65,27 +60,22 @@ msgstr "" "توانید آن را به صورت یک کسر در مبنای ۱۰ تقریب بزنید::" #: ../../tutorial/floatingpoint.rst:31 -#, fuzzy msgid "0.3" msgstr "۰.۳" #: ../../tutorial/floatingpoint.rst:33 ../../tutorial/floatingpoint.rst:37 -#, fuzzy msgid "or, better, ::" msgstr "یا، بهتر است:" #: ../../tutorial/floatingpoint.rst:35 -#, fuzzy msgid "0.33" msgstr "۰.۳۳" #: ../../tutorial/floatingpoint.rst:39 -#, fuzzy msgid "0.333" msgstr "۰.۳۳۳" #: ../../tutorial/floatingpoint.rst:41 -#, fuzzy msgid "" "and so on. No matter how many digits you're willing to write down, the " "result will never be exactly 1/3, but will be an increasingly better " @@ -95,7 +85,6 @@ msgstr "" "1/3 نخواهد بود، بلکه به طور فزاینده ای تقریب بهتری از 1/3 خواهد بود." #: ../../tutorial/floatingpoint.rst:45 -#, fuzzy msgid "" "In the same way, no matter how many base 2 digits you're willing to use, the" " decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " @@ -106,12 +95,10 @@ msgstr "" "در مبنای ۲، 1/10 یک کسر بی نهایت تکرارشونده است::" #: ../../tutorial/floatingpoint.rst:49 -#, fuzzy msgid "0.0001100110011001100110011001100110011001100110011..." msgstr "0.0001100110011001100110011001100110011001100110011..." #: ../../tutorial/floatingpoint.rst:51 -#, fuzzy msgid "" "Stop at any finite number of bits, and you get an approximation. On most " "machines today, floats are approximated using a binary fraction with the " @@ -127,7 +114,6 @@ msgstr "" " / 2 ** 55`` است که نزدیک به اما دقیقا برابر با مقدار واقعی 1/10 نمی باشد." #: ../../tutorial/floatingpoint.rst:58 -#, fuzzy msgid "" "Many users are not aware of the approximation because of the way values are " "displayed. Python only prints a decimal approximation to the true decimal " @@ -141,7 +127,6 @@ msgstr "" " تقریب دودویی ذخیره شده برای 0.1 را چاپ کند، باید به صورت زیر نمایش دهد::" #: ../../tutorial/floatingpoint.rst:64 -#, fuzzy msgid "" ">>> 0.1\n" "0.1000000000000000055511151231257827021181583404541015625" @@ -150,7 +135,6 @@ msgstr "" "0.1000000000000000055511151231257827021181583404541015625" #: ../../tutorial/floatingpoint.rst:67 -#, fuzzy msgid "" "That is more digits than most people find useful, so Python keeps the number" " of digits manageable by displaying a rounded value instead:" @@ -159,7 +143,6 @@ msgstr "" "پایتون تعداد ارقام را با نمایش یک مقدار گرد شده کنترل می کند:" #: ../../tutorial/floatingpoint.rst:70 -#, fuzzy msgid "" ">>> 1 / 10\n" "0.1" @@ -168,7 +151,6 @@ msgstr "" "0.1" #: ../../tutorial/floatingpoint.rst:75 -#, fuzzy msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." @@ -177,7 +159,6 @@ msgstr "" "نظر می رسد، اما مقدار ذخیره شده واقعی نزدیک ترین کسر دودویی قابل نمایش است." #: ../../tutorial/floatingpoint.rst:78 -#, fuzzy msgid "" "Interestingly, there are many different decimal numbers that share the same " "nearest approximate binary fraction. For example, the numbers ``0.1`` and " @@ -195,7 +176,6 @@ msgstr "" "که همچنان ثابت ``eval(repr(x)) == x`` حفظ می شود." #: ../../tutorial/floatingpoint.rst:86 -#, fuzzy msgid "" "Historically, the Python prompt and built-in :func:`repr` function would " "choose the one with 17 significant digits, ``0.10000000000000001``. " @@ -208,7 +188,6 @@ msgstr "" "انتخاب کرده و به سادگی ``0.1`` را نمایش دهد." #: ../../tutorial/floatingpoint.rst:91 -#, fuzzy msgid "" "Note that this is in the very nature of binary floating point: this is not a" " bug in Python, and it is not a bug in your code either. You'll see the " @@ -223,7 +202,6 @@ msgstr "" "تمامی حالت های خروجی تفاوت را *display* نکنند)." #: ../../tutorial/floatingpoint.rst:97 -#, fuzzy msgid "" "For more pleasant output, you may wish to use string formatting to produce a" " limited number of significant digits:" @@ -232,7 +210,6 @@ msgstr "" "محدودی از ارقام مهم تولید کنید:" #: ../../tutorial/floatingpoint.rst:100 -#, fuzzy msgid "" ">>> format(math.pi, '.12g') # give 12 significant digits\n" "'3.14159265359'\n" @@ -253,7 +230,6 @@ msgstr "" "'3.141592653589793'" #: ../../tutorial/floatingpoint.rst:111 -#, fuzzy msgid "" "It's important to realize that this is, in a real sense, an illusion: you're" " simply rounding the *display* of the true machine value." @@ -262,7 +238,6 @@ msgstr "" "صرفاً مقدار `*display*` از مقدار واقعی ماشین را گرد می کنید." #: ../../tutorial/floatingpoint.rst:114 -#, fuzzy msgid "" "One illusion may beget another. For example, since 0.1 is not exactly 1/10," " summing three values of 0.1 may not yield exactly 0.3, either:" @@ -272,7 +247,6 @@ msgstr "" "نباشد:" #: ../../tutorial/floatingpoint.rst:117 -#, fuzzy msgid "" ">>> 0.1 + 0.1 + 0.1 == 0.3\n" "False" @@ -281,7 +255,6 @@ msgstr "" "False" #: ../../tutorial/floatingpoint.rst:122 -#, fuzzy msgid "" "Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3" " cannot get any closer to the exact value of 3/10, then pre-rounding with " @@ -292,7 +265,6 @@ msgstr "" "نمی کند:" #: ../../tutorial/floatingpoint.rst:126 -#, fuzzy msgid "" ">>> round(0.1, 1) + round(0.1, 1) + round(0.1, 1) == round(0.3, 1)\n" "False" @@ -301,7 +273,6 @@ msgstr "" "False" #: ../../tutorial/floatingpoint.rst:131 -#, fuzzy msgid "" "Though the numbers cannot be made closer to their intended exact values, the" " :func:`math.isclose` function can be useful for comparing inexact values:" @@ -310,7 +281,6 @@ msgstr "" ":func:`math.isclose` می تواند برای مقایسه مقادیر نادقیق مفید باشد:\n" #: ../../tutorial/floatingpoint.rst:134 -#, fuzzy msgid "" ">>> math.isclose(0.1 + 0.1 + 0.1, 0.3)\n" "True" @@ -319,7 +289,6 @@ msgstr "" "True" #: ../../tutorial/floatingpoint.rst:139 -#, fuzzy msgid "" "Alternatively, the :func:`round` function can be used to compare rough " "approximations:" @@ -328,7 +297,6 @@ msgstr "" "استفاده کرد:" #: ../../tutorial/floatingpoint.rst:142 -#, fuzzy msgid "" ">>> round(math.pi, ndigits=2) == round(22 / 7, ndigits=2)\n" "True" @@ -337,7 +305,6 @@ msgstr "" "True" #: ../../tutorial/floatingpoint.rst:147 -#, fuzzy msgid "" "Binary floating-point arithmetic holds many surprises like this. The " "problem with \"0.1\" is explained in precise detail below, in the " @@ -358,7 +325,6 @@ msgstr "" "کنید." #: ../../tutorial/floatingpoint.rst:156 -#, fuzzy msgid "" "As that says near the end, \"there are no easy answers.\" Still, don't be " "unduly wary of floating point! The errors in Python float operations are " @@ -376,7 +342,6 @@ msgstr "" "عملیات اعشاری می تواند دچار خطای گرد کردن جدیدی شود." #: ../../tutorial/floatingpoint.rst:163 -#, fuzzy msgid "" "While pathological cases do exist, for most casual use of floating-point " "arithmetic you'll see the result you expect in the end if you simply round " @@ -391,7 +356,6 @@ msgstr "" ":meth:`str.format` در :ref:`formatstrings` مراجعه کنید." #: ../../tutorial/floatingpoint.rst:169 -#, fuzzy msgid "" "For use cases which require exact decimal representation, try using the " ":mod:`decimal` module which implements decimal arithmetic suitable for " @@ -402,7 +366,6 @@ msgstr "" " و برنامه های با دقت بالا را پیاده سازی می کند." #: ../../tutorial/floatingpoint.rst:173 -#, fuzzy msgid "" "Another form of exact arithmetic is supported by the :mod:`fractions` module" " which implements arithmetic based on rational numbers (so the numbers like " @@ -413,7 +376,6 @@ msgstr "" "می توانند به طور دقیق نمایش داده شوند)." #: ../../tutorial/floatingpoint.rst:177 -#, fuzzy msgid "" "If you are a heavy user of floating-point operations you should take a look " "at the NumPy package and many other packages for mathematical and " @@ -425,7 +387,6 @@ msgstr "" "SciPy بیندازید. به مراجعه کنید." #: ../../tutorial/floatingpoint.rst:181 -#, fuzzy msgid "" "Python provides tools that may help on those rare occasions when you really " "*do* want to know the exact value of a float. The " @@ -438,7 +399,6 @@ msgstr "" " کند:" #: ../../tutorial/floatingpoint.rst:186 -#, fuzzy msgid "" ">>> x = 3.14159\n" ">>> x.as_integer_ratio()\n" @@ -449,7 +409,6 @@ msgstr "" "(3537115888337719, 1125899906842624)" #: ../../tutorial/floatingpoint.rst:192 -#, fuzzy msgid "" "Since the ratio is exact, it can be used to losslessly recreate the original" " value:" @@ -458,7 +417,6 @@ msgstr "" "استفاده کرد:" #: ../../tutorial/floatingpoint.rst:195 -#, fuzzy msgid "" ">>> x == 3537115888337719 / 1125899906842624\n" "True" @@ -467,7 +425,6 @@ msgstr "" "True" #: ../../tutorial/floatingpoint.rst:200 -#, fuzzy msgid "" "The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " "again giving the exact value stored by your computer:" @@ -476,7 +433,6 @@ msgstr "" " دهد و دقیقاً مقداری را که در رایانه شما ذخیره شده است نشان می دهد:" #: ../../tutorial/floatingpoint.rst:203 -#, fuzzy msgid "" ">>> x.hex()\n" "'0x1.921f9f01b866ep+1'" @@ -485,7 +441,6 @@ msgstr "" "'0x1.921f9f01b866ep+1'" #: ../../tutorial/floatingpoint.rst:208 -#, fuzzy msgid "" "This precise hexadecimal representation can be used to reconstruct the float" " value exactly:" @@ -494,7 +449,6 @@ msgstr "" "استفاده شود:" #: ../../tutorial/floatingpoint.rst:211 -#, fuzzy msgid "" ">>> x == float.fromhex('0x1.921f9f01b866ep+1')\n" "True" @@ -503,7 +457,6 @@ msgstr "" "True" #: ../../tutorial/floatingpoint.rst:216 -#, fuzzy msgid "" "Since the representation is exact, it is useful for reliably porting values " "across different versions of Python (platform independence) and exchanging " @@ -515,7 +468,6 @@ msgstr "" "پشتیبانی می کنند (مانند جاوا و C99) مفید است." #: ../../tutorial/floatingpoint.rst:220 -#, fuzzy msgid "" "Another helpful tool is the :func:`sum` function which helps mitigate loss-" "of-precision during summation. It uses extended precision for intermediate " @@ -530,7 +482,6 @@ msgstr "" "تأثیر بگذارند:" #: ../../tutorial/floatingpoint.rst:226 -#, fuzzy msgid "" ">>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 1.0\n" "False\n" @@ -543,7 +494,6 @@ msgstr "" "True" #: ../../tutorial/floatingpoint.rst:233 -#, fuzzy msgid "" "The :func:`math.fsum` goes further and tracks all of the \"lost digits\" as " "values are added onto a running total so that the result has only a single " @@ -558,7 +508,6 @@ msgstr "" "گذارند، دقیق تر خواهد بود:" #: ../../tutorial/floatingpoint.rst:239 -#, fuzzy msgid "" ">>> arr = [-0.10430216751806065, -266310978.67179024, 143401161448607.16,\n" "... -143401161400469.7, 266262841.31058735, -0.003244936839808227]\n" @@ -591,12 +540,10 @@ msgstr "" "-0.0051575902860057365" #: ../../tutorial/floatingpoint.rst:260 -#, fuzzy msgid "Representation Error" msgstr "خطای نمایش" #: ../../tutorial/floatingpoint.rst:262 -#, fuzzy msgid "" "This section explains the \"0.1\" example in detail, and shows how you can " "perform an exact analysis of cases like this yourself. Basic familiarity " @@ -607,7 +554,6 @@ msgstr "" "اعداد شناور دودویی فرض شده است." #: ../../tutorial/floatingpoint.rst:266 -#, fuzzy msgid "" ":dfn:`Representation error` refers to the fact that some (most, actually) " "decimal fractions cannot be represented exactly as binary (base 2) " @@ -621,7 +567,6 @@ msgstr "" "اغلب نمی توانند عدد اعشاری دقیقی را که انتظار دارید نمایش دهند." #: ../../tutorial/floatingpoint.rst:271 -#, fuzzy msgid "" "Why is that? 1/10 is not exactly representable as a binary fraction. Since" " at least 2000, almost all machines use IEEE 754 binary floating-point " @@ -640,22 +585,18 @@ msgstr "" "صحیح است که دقیقا شامل 53 بیت می باشد. بازنویسی ::" #: ../../tutorial/floatingpoint.rst:280 -#, fuzzy msgid "1 / 10 ~= J / (2**N)" msgstr "1 / 10 ~= J / (2**N)" #: ../../tutorial/floatingpoint.rst:282 -#, fuzzy msgid "as ::" msgstr "همانطور كه ::" #: ../../tutorial/floatingpoint.rst:284 -#, fuzzy msgid "J ~= 2**N / 10" msgstr "J ~= 2**N / 10" #: ../../tutorial/floatingpoint.rst:286 -#, fuzzy msgid "" "and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " "2**53``), the best value for *N* is 56:" @@ -664,7 +605,6 @@ msgstr "" "نیست), بهترین مقدار برای *N* برابر ۵۶ است:" #: ../../tutorial/floatingpoint.rst:289 -#, fuzzy msgid "" ">>> 2**52 <= 2**56 // 10 < 2**53\n" "True" @@ -673,7 +613,6 @@ msgstr "" "True" #: ../../tutorial/floatingpoint.rst:294 -#, fuzzy msgid "" "That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits." " The best possible value for *J* is then that quotient rounded:" @@ -682,7 +621,6 @@ msgstr "" "بهترین مقدار ممکن برای *J* سپس آن خارج قسمت گرد شده است:" #: ../../tutorial/floatingpoint.rst:297 -#, fuzzy msgid "" ">>> q, r = divmod(2**56, 10)\n" ">>> r\n" @@ -693,7 +631,6 @@ msgstr "" "6" #: ../../tutorial/floatingpoint.rst:303 -#, fuzzy msgid "" "Since the remainder is more than half of 10, the best approximation is " "obtained by rounding up:" @@ -702,7 +639,6 @@ msgstr "" "دست می آید:" #: ../../tutorial/floatingpoint.rst:306 -#, fuzzy msgid "" ">>> q+1\n" "7205759403792794" @@ -711,7 +647,6 @@ msgstr "" "7205759403792794" #: ../../tutorial/floatingpoint.rst:313 -#, fuzzy msgid "" "Therefore the best possible approximation to 1/10 in IEEE 754 double " "precision is::" @@ -719,24 +654,20 @@ msgstr "" "بنابراین بهترین تقریب ممکن برای 1/10 در دقت مضاعف IEEE 754 به صورت زیر است::" #: ../../tutorial/floatingpoint.rst:316 -#, fuzzy msgid "7205759403792794 / 2 ** 56" msgstr "7205759403792794 / 2 ** 56" #: ../../tutorial/floatingpoint.rst:318 -#, fuzzy msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" msgstr "" "با تقسیم همزمان صورت و مخرج بر عدد دو، کسر به فرم ساده تری تبدیل می شود::" #: ../../tutorial/floatingpoint.rst:320 -#, fuzzy msgid "3602879701896397 / 2 ** 55" msgstr "3602879701896397 / 2 ** 55" #: ../../tutorial/floatingpoint.rst:322 -#, fuzzy msgid "" "Note that since we rounded up, this is actually a little bit larger than " "1/10; if we had not rounded up, the quotient would have been a little bit " @@ -747,7 +678,6 @@ msgstr "" "بود. اما در هیچ صورت نمی تواند *exactly* 1/10 باشد!" #: ../../tutorial/floatingpoint.rst:326 -#, fuzzy msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best IEEE 754 double approximation it can get:" @@ -757,7 +687,6 @@ msgstr "" "بدست آورد:" #: ../../tutorial/floatingpoint.rst:329 -#, fuzzy msgid "" ">>> 0.1 * 2 ** 55\n" "3602879701896397.0" @@ -766,7 +695,6 @@ msgstr "" "3602879701896397.0" #: ../../tutorial/floatingpoint.rst:334 -#, fuzzy msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits:" @@ -775,7 +703,6 @@ msgstr "" "ببینیم:" #: ../../tutorial/floatingpoint.rst:337 -#, fuzzy msgid "" ">>> 3602879701896397 * 10 ** 55 // 2 ** 55\n" "1000000000000000055511151231257827021181583404541015625" @@ -784,7 +711,6 @@ msgstr "" "1000000000000000055511151231257827021181583404541015625" #: ../../tutorial/floatingpoint.rst:342 -#, fuzzy msgid "" "meaning that the exact number stored in the computer is equal to the decimal" " value 0.1000000000000000055511151231257827021181583404541015625. Instead of" @@ -797,7 +723,6 @@ msgstr "" "را به 17 رقم معنادار گرد می کنند:" #: ../../tutorial/floatingpoint.rst:347 -#, fuzzy msgid "" ">>> format(0.1, '.17f')\n" "'0.10000000000000001'" @@ -806,7 +731,6 @@ msgstr "" "'0.10000000000000001'" #: ../../tutorial/floatingpoint.rst:352 -#, fuzzy msgid "" "The :mod:`fractions` and :mod:`decimal` modules make these calculations " "easy:" @@ -814,7 +738,6 @@ msgstr "" "ماژول های :mod:`fractions` و :mod:`decimal` این محاسبات را آسان می کنند:" #: ../../tutorial/floatingpoint.rst:355 -#, fuzzy msgid "" ">>> from decimal import Decimal\n" ">>> from fractions import Fraction\n" diff --git a/tutorial/index.po b/tutorial/index.po index 55ddb0547..1a3c9f2ea 100644 --- a/tutorial/index.po +++ b/tutorial/index.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/index.rst:5 -#, fuzzy msgid "The Python Tutorial" msgstr "راهنمای پایتون" #: ../../tutorial/index.rst:7 -#, fuzzy msgid "" "Python is an easy to learn, powerful programming language. It has efficient " "high-level data structures and a simple but effective approach to object-" @@ -42,7 +39,6 @@ msgstr "" "برنامه ها در بسیاری از حوزه ها و بر روی اکثر پلتفرم ها تبدیل کرده است." #: ../../tutorial/index.rst:13 -#, fuzzy msgid "" "The Python interpreter and the extensive standard library are freely " "available in source or binary form for all major platforms from the Python " @@ -57,7 +53,6 @@ msgstr "" "پایتون شخص ثالث رایگان، برنامه ها و ابزارها و مستندات اضافی است." #: ../../tutorial/index.rst:19 -#, fuzzy msgid "" "The Python interpreter is easily extended with new functions and data types " "implemented in C or C++ (or other languages callable from C). Python is also" @@ -68,7 +63,6 @@ msgstr "" "همچنین به عنوان یک زبان الحاقی برای برنامه های قابل تنظیم مناسب است." #: ../../tutorial/index.rst:23 -#, fuzzy msgid "" "This tutorial introduces the reader informally to the basic concepts and " "features of the Python language and system. It helps to have a Python " @@ -81,7 +75,6 @@ msgstr "" "به صورت آفلاین نیز خواند." #: ../../tutorial/index.rst:28 -#, fuzzy msgid "" "For a description of standard objects and modules, see :ref:`library-index`." " :ref:`reference-index` gives a more formal definition of the language. To " @@ -95,7 +88,6 @@ msgstr "" "پرداخته اند." #: ../../tutorial/index.rst:33 -#, fuzzy msgid "" "This tutorial does not attempt to be comprehensive and cover every single " "feature, or even every commonly used feature. Instead, it introduces many of" @@ -112,6 +104,5 @@ msgstr "" "داده شده اند، بیشتر یاد بگیرید." #: ../../tutorial/index.rst:40 -#, fuzzy msgid "The :ref:`glossary` is also worth going through." msgstr "عبور از :ref:`glossary` نیز ارزش خود را دارد." diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 77a7fc739..1bdced058 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/inputoutput.rst:5 -#, fuzzy msgid "Input and Output" msgstr "Input and Output" #: ../../tutorial/inputoutput.rst:7 -#, fuzzy msgid "" "There are several ways to present the output of a program; data can be " "printed in a human-readable form, or written to a file for future use. This " @@ -38,12 +35,10 @@ msgstr "" "شود. این فصل به برخی از این امکانات خواهد پرداخت." #: ../../tutorial/inputoutput.rst:15 -#, fuzzy msgid "Fancier Output Formatting" msgstr "قالب بندی خروجی جذاب تر" #: ../../tutorial/inputoutput.rst:17 -#, fuzzy msgid "" "So far we've encountered two ways of writing values: *expression statements*" " and the :func:`print` function. (A third way is using the " @@ -58,7 +53,6 @@ msgstr "" "Reference.)" #: ../../tutorial/inputoutput.rst:22 -#, fuzzy msgid "" "Often you'll want more control over the formatting of your output than " "simply printing space-separated values. There are several ways to format " @@ -69,7 +63,6 @@ msgstr "" " کردن خروجی وجود دارد." #: ../../tutorial/inputoutput.rst:25 -#, fuzzy msgid "" "To use :ref:`formatted string literals `, begin a string with" " ``f`` or ``F`` before the opening quotation mark or triple quotation mark. " @@ -82,7 +75,6 @@ msgstr "" "که می تواند به متغیرها یا مقادیر صریح اشاره کند." #: ../../tutorial/inputoutput.rst:32 -#, fuzzy msgid "" ">>> year = 2016\n" ">>> event = 'Referendum'\n" @@ -95,7 +87,6 @@ msgstr "" "'Results of the 2016 Referendum'" #: ../../tutorial/inputoutput.rst:37 -#, fuzzy msgid "" "The :meth:`str.format` method of strings requires more manual effort. " "You'll still use ``{`` and ``}`` to mark where a variable will be " @@ -110,7 +101,6 @@ msgstr "" "چگونگی قالب بندی متغیرها وجود دارد:" #: ../../tutorial/inputoutput.rst:46 -#, fuzzy msgid "" ">>> yes_votes = 42_572_654\n" ">>> total_votes = 85_705_149\n" @@ -125,7 +115,6 @@ msgstr "" "' 42572654 YES votes 49.67%'" #: ../../tutorial/inputoutput.rst:52 -#, fuzzy msgid "" "Notice how the ``yes_votes`` are padded with spaces and a negative sign only" " for negative numbers. The example also prints ``percentage`` multiplied by " @@ -138,7 +127,6 @@ msgstr "" " ببینید)." #: ../../tutorial/inputoutput.rst:57 -#, fuzzy msgid "" "Finally, you can do all the string handling yourself by using string slicing" " and concatenation operations to create any layout you can imagine. The " @@ -151,7 +139,6 @@ msgstr "" "ها به عرض یک ستون مشخص انجام می دهند." #: ../../tutorial/inputoutput.rst:62 -#, fuzzy msgid "" "When you don't need fancy output but just want a quick display of some " "variables for debugging purposes, you can convert any value to a string with" @@ -159,7 +146,6 @@ msgid "" msgstr "" #: ../../tutorial/inputoutput.rst:66 -#, fuzzy msgid "" "The :func:`str` function is meant to return representations of values which " "are fairly human-readable, while :func:`repr` is meant to generate " @@ -180,12 +166,10 @@ msgstr "" "متمایز دارند." #: ../../tutorial/inputoutput.rst:75 -#, fuzzy msgid "Some examples::" msgstr "چند مثال::" #: ../../tutorial/inputoutput.rst:77 -#, fuzzy msgid "" ">>> s = 'Hello, world.'\n" ">>> str(s)\n" @@ -230,7 +214,6 @@ msgstr "" "\"(32.5, 40000, ('spam', 'eggs'))\"" #: ../../tutorial/inputoutput.rst:98 -#, fuzzy msgid "" "The :mod:`string` module contains a :class:`~string.Template` class that " "offers yet another way to substitute values into strings, using placeholders" @@ -243,12 +226,10 @@ msgstr "" "کنترل بسیار کمتری بر قالب بندی ارائه می دهد." #: ../../tutorial/inputoutput.rst:114 -#, fuzzy msgid "Formatted String Literals" msgstr "رشته های قالب بندی شده (Formatted String Literals)" #: ../../tutorial/inputoutput.rst:116 -#, fuzzy msgid "" ":ref:`Formatted string literals ` (also called f-strings for " "short) let you include the value of Python expressions inside a string by " @@ -261,7 +242,6 @@ msgstr "" "``F`` به رشته و نوشتن عبارات به صورت ``{expression}`` انجام می دهید." #: ../../tutorial/inputoutput.rst:121 -#, fuzzy msgid "" "An optional format specifier can follow the expression. This allows greater " "control over how the value is formatted. The following example rounds pi to " @@ -272,7 +252,6 @@ msgstr "" "اعشار گرد می کند::" #: ../../tutorial/inputoutput.rst:125 -#, fuzzy msgid "" ">>> import math\n" ">>> print(f'The value of pi is approximately {math.pi:.3f}.')\n" @@ -283,7 +262,6 @@ msgstr "" "مقدار pi تقریباً 3.142 است." #: ../../tutorial/inputoutput.rst:129 -#, fuzzy msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" @@ -292,7 +270,6 @@ msgstr "" " کاراکتر داشته باشد. این قابلیت برای هم تراز کردن ستون ها مفید است. ::" #: ../../tutorial/inputoutput.rst:132 -#, fuzzy msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}\n" ">>> for name, phone in table.items():\n" @@ -311,7 +288,6 @@ msgstr "" "Dcab ==> 7678" #: ../../tutorial/inputoutput.rst:140 -#, fuzzy msgid "" "Other modifiers can be used to convert the value before it is formatted. " "``'!a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " @@ -322,7 +298,6 @@ msgstr "" " را اعمال می کند، و ``'!r'`` تابع :func:`repr` را اعمال می کند::" #: ../../tutorial/inputoutput.rst:144 -#, fuzzy msgid "" ">>> animals = 'eels'\n" ">>> print(f'My hovercraft is full of {animals}.')\n" @@ -337,7 +312,6 @@ msgstr "" "هاورکرافت من پر از 'eels' است." #: ../../tutorial/inputoutput.rst:150 -#, fuzzy msgid "" "The ``=`` specifier can be used to expand an expression to the text of the " "expression, an equal sign, then the representation of the evaluated " @@ -347,7 +321,6 @@ msgstr "" "نمایش عبارت ارزیابی شده استفاده شود:" #: ../../tutorial/inputoutput.rst:159 -#, fuzzy msgid "" "See :ref:`self-documenting expressions ` for more " "information on the ``=`` specifier. For a reference on these format " @@ -358,17 +331,14 @@ msgstr "" "راهنمای مرجع :ref:`formatspec` مراجعه کنید." #: ../../tutorial/inputoutput.rst:166 -#, fuzzy msgid "The String format() Method" msgstr "متد String `format()`" #: ../../tutorial/inputoutput.rst:168 -#, fuzzy msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "استفاده ی پایه از روش :meth:`str.format` به این صورت است::" #: ../../tutorial/inputoutput.rst:170 -#, fuzzy msgid "" ">>> print('We are the {} who say \"{}!\"'.format('knights', 'Ni'))\n" "We are the knights who say \"Ni!\"" @@ -377,7 +347,6 @@ msgstr "" "We are the knights who say \"Ni!\"" #: ../../tutorial/inputoutput.rst:173 -#, fuzzy msgid "" "The brackets and characters within them (called format fields) are replaced " "with the objects passed into the :meth:`str.format` method. A number in the" @@ -390,7 +359,6 @@ msgstr "" ":meth:`str.format` استفاده شود. ::" #: ../../tutorial/inputoutput.rst:178 -#, fuzzy msgid "" ">>> print('{0} and {1}'.format('spam', 'eggs'))\n" "spam and eggs\n" @@ -403,7 +371,6 @@ msgstr "" "eggs and spam" #: ../../tutorial/inputoutput.rst:183 -#, fuzzy msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values" " are referred to by using the name of the argument. ::" @@ -412,7 +379,6 @@ msgstr "" " با استفاده از نام آرگومان ارجاع داده می شوند. ::" #: ../../tutorial/inputoutput.rst:186 -#, fuzzy msgid "" ">>> print('This {food} is {adjective}.'.format(\n" "... food='spam', adjective='absolutely horrible'))\n" @@ -423,12 +389,10 @@ msgstr "" "This spam is absolutely horrible." #: ../../tutorial/inputoutput.rst:190 -#, fuzzy msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "آرگومان های مکانی و کلیدی می توانند به صورت دلخواه ترکیب شوند::" #: ../../tutorial/inputoutput.rst:192 -#, fuzzy msgid "" ">>> print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',\n" "... other='Georg'))\n" @@ -439,7 +403,6 @@ msgstr "" "داستان Bill, Manfred و Georg." #: ../../tutorial/inputoutput.rst:196 -#, fuzzy msgid "" "If you have a really long format string that you don't want to split up, it " "would be nice if you could reference the variables to be formatted by name " @@ -452,7 +415,6 @@ msgstr "" "دسترسی به کلیدها انجام می شود. ::" #: ../../tutorial/inputoutput.rst:201 -#, fuzzy msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; '\n" @@ -465,7 +427,6 @@ msgstr "" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" #: ../../tutorial/inputoutput.rst:206 -#, fuzzy msgid "" "This could also be done by passing the ``table`` dictionary as keyword " "arguments with the ``**`` notation. ::" @@ -474,7 +435,6 @@ msgstr "" " کلیدی با نوتیشن ``**`` انجام شود. ::" #: ../../tutorial/inputoutput.rst:209 -#, fuzzy msgid "" ">>> table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}\n" ">>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))\n" @@ -485,7 +445,6 @@ msgstr "" "Jack: 4098; Sjoerd: 4127; Dcab: 8637678" #: ../../tutorial/inputoutput.rst:213 -#, fuzzy msgid "" "This is particularly useful in combination with the built-in function " ":func:`vars`, which returns a dictionary containing all local variables::" @@ -494,7 +453,6 @@ msgstr "" "تمام متغیرهای محلی را برمی گرداند::" #: ../../tutorial/inputoutput.rst:216 -#, fuzzy msgid "" ">>> table = {k: str(v) for k, v in vars().items()}\n" ">>> message = \" \".join([f'{k}: ' + '{' + k +'};' for k in table.keys()])\n" @@ -507,7 +465,6 @@ msgstr "" "__name__: __main__; __doc__: None; __package__: None; __loader__: ..." #: ../../tutorial/inputoutput.rst:221 -#, fuzzy msgid "" "As an example, the following lines produce a tidily aligned set of columns " "giving integers and their squares and cubes::" @@ -516,7 +473,6 @@ msgstr "" " کنند که عددهای صحیح و توان دوم و سوم آن ها را نشان می دهد::" #: ../../tutorial/inputoutput.rst:224 -#, fuzzy msgid "" ">>> for x in range(1, 11):\n" "... print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))\n" @@ -534,7 +490,6 @@ msgid "" msgstr "" #: ../../tutorial/inputoutput.rst:238 -#, fuzzy msgid "" "For a complete overview of string formatting with :meth:`str.format`, see " ":ref:`formatstrings`." @@ -543,19 +498,16 @@ msgstr "" ":ref:`formatstrings` مراجعه کنید." #: ../../tutorial/inputoutput.rst:243 -#, fuzzy msgid "Manual String Formatting" msgstr "فرمت بندی رشته به صورت دستی" #: ../../tutorial/inputoutput.rst:245 -#, fuzzy msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" "در اینجا همان جدول مربعات و مکعب ها قرار دارد که به صورت دستی قالب بندی شده " "است::" #: ../../tutorial/inputoutput.rst:247 -#, fuzzy msgid "" ">>> for x in range(1, 11):\n" "... print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')\n" @@ -590,7 +542,6 @@ msgstr "" "10 100 1000" #: ../../tutorial/inputoutput.rst:263 -#, fuzzy msgid "" "(Note that the one space between each column was added by the way " ":func:`print` works: it always adds spaces between its arguments.)" @@ -599,7 +550,6 @@ msgstr "" "این همیشه بین آرگومان هایش فاصله ایجاد می کند.)" #: ../../tutorial/inputoutput.rst:266 -#, fuzzy msgid "" "The :meth:`str.rjust` method of string objects right-justifies a string in a" " field of a given width by padding it with spaces on the left. There are " @@ -621,7 +571,6 @@ msgstr "" "``x.ljust(n)[:n]``.)" #: ../../tutorial/inputoutput.rst:275 -#, fuzzy msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" @@ -630,7 +579,6 @@ msgstr "" " صفرها پر می کند. این روش علامت های مثبت و منفی را می فهمد::" #: ../../tutorial/inputoutput.rst:278 -#, fuzzy msgid "" ">>> '12'.zfill(5)\n" "'00012'\n" @@ -647,12 +595,10 @@ msgstr "" "'3.14159265359'" #: ../../tutorial/inputoutput.rst:287 -#, fuzzy msgid "Old string formatting" msgstr "قالب بندی رشته ای قدیمی" #: ../../tutorial/inputoutput.rst:289 -#, fuzzy msgid "" "The % operator (modulo) can also be used for string formatting. Given " "``format % values`` (where *format* is a string), ``%`` conversion " @@ -666,7 +612,6 @@ msgstr "" "شناخته می شود. به عنوان مثال::" #: ../../tutorial/inputoutput.rst:296 -#, fuzzy msgid "" ">>> import math\n" ">>> print('The value of pi is approximately %5.3f.' % math.pi)\n" @@ -677,19 +622,16 @@ msgstr "" "مقدار pi تقریباً برابر با 3.142 است." #: ../../tutorial/inputoutput.rst:300 -#, fuzzy msgid "" "More information can be found in the :ref:`old-string-formatting` section." msgstr "" "اطلاعات بیشتر را می توانید در بخش :ref:`old-string-formatting` پیدا کنید." #: ../../tutorial/inputoutput.rst:306 -#, fuzzy msgid "Reading and Writing Files" msgstr "خواندن و نوشتن فایل ها" #: ../../tutorial/inputoutput.rst:312 -#, fuzzy msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two positional arguments and one keyword argument: ``open(filename, mode, " @@ -700,12 +642,10 @@ msgstr "" "encoding=None)``" #: ../../tutorial/inputoutput.rst:318 -#, fuzzy msgid ">>> f = open('workfile', 'w', encoding=\"utf-8\")" msgstr ">>> f = open('workfile', 'w', encoding=\"utf-8\")" #: ../../tutorial/inputoutput.rst:325 -#, fuzzy msgid "" "The first argument is a string containing the filename. The second argument" " is another string containing a few characters describing the way in which " @@ -725,7 +665,6 @@ msgstr "" " اختیاری است؛ اگر حذف شود، ``'r'`` در نظر گرفته خواهد شد." #: ../../tutorial/inputoutput.rst:334 -#, fuzzy msgid "" "Normally, files are opened in :dfn:`text mode`, that means, you read and " "write strings from and to the file, which are encoded in a specific " @@ -747,7 +686,6 @@ msgstr "" "باینری مشخص کنید." #: ../../tutorial/inputoutput.rst:344 -#, fuzzy msgid "" "In text mode, the default when reading is to convert platform-specific line " "endings (``\\n`` on Unix, ``\\r\\n`` on Windows) to just ``\\n``. When " @@ -766,7 +704,6 @@ msgstr "" "فایل هایی از حالت باینری استفاده کنید." #: ../../tutorial/inputoutput.rst:352 -#, fuzzy msgid "" "It is good practice to use the :keyword:`with` keyword when dealing with " "file objects. The advantage is that the file is properly closed after its " @@ -781,7 +718,6 @@ msgstr "" ":keyword:`finally` بلوک های معادل است::" #: ../../tutorial/inputoutput.rst:358 -#, fuzzy msgid "" ">>> with open('workfile', encoding=\"utf-8\") as f:\n" "... read_data = f.read()\n" @@ -798,7 +734,6 @@ msgstr "" "True" #: ../../tutorial/inputoutput.rst:365 -#, fuzzy msgid "" "If you're not using the :keyword:`with` keyword, then you should call " "``f.close()`` to close the file and immediately free up any system resources" @@ -809,7 +744,6 @@ msgstr "" "استفاده آن فراخوانی کنید." #: ../../tutorial/inputoutput.rst:370 -#, fuzzy msgid "" "Calling ``f.write()`` without using the :keyword:`!with` keyword or calling " "``f.close()`` **might** result in the arguments of ``f.write()`` not being " @@ -820,7 +754,6 @@ msgstr "" "طور کامل روی دیسک نوشته نشوند، حتی اگر برنامه با موفقیت خارج شود." #: ../../tutorial/inputoutput.rst:378 -#, fuzzy msgid "" "After a file object is closed, either by a :keyword:`with` statement or by " "calling ``f.close()``, attempts to use the file object will automatically " @@ -830,7 +763,6 @@ msgstr "" "``f.close()``، تلاش برای استفاده از شیء فایل به طور خودکار شکست می خورد. ::" #: ../../tutorial/inputoutput.rst:382 -#, fuzzy msgid "" ">>> f.close()\n" ">>> f.read()\n" @@ -840,12 +772,10 @@ msgid "" msgstr "" #: ../../tutorial/inputoutput.rst:392 -#, fuzzy msgid "Methods of File Objects" msgstr "روش های اشیاء فایل" #: ../../tutorial/inputoutput.rst:394 -#, fuzzy msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." @@ -854,7 +784,6 @@ msgstr "" "شده است." #: ../../tutorial/inputoutput.rst:397 -#, fuzzy msgid "" "To read a file's contents, call ``f.read(size)``, which reads some quantity " "of data and returns it as a string (in text mode) or bytes object (in binary" @@ -875,7 +804,6 @@ msgstr "" "(``''``) برمی گرداند. ::" #: ../../tutorial/inputoutput.rst:406 -#, fuzzy msgid "" ">>> f.read()\n" "'This is the entire file.\\n'\n" @@ -888,7 +816,6 @@ msgstr "" "''" #: ../../tutorial/inputoutput.rst:411 -#, fuzzy msgid "" "``f.readline()`` reads a single line from the file; a newline character " "(``\\n``) is left at the end of the string, and is only omitted on the last " @@ -905,7 +832,6 @@ msgstr "" "یک خط جدید دارد. ::" #: ../../tutorial/inputoutput.rst:418 -#, fuzzy msgid "" ">>> f.readline()\n" "'This is the first line of the file.\\n'\n" @@ -922,7 +848,6 @@ msgstr "" "''" #: ../../tutorial/inputoutput.rst:425 -#, fuzzy msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" @@ -931,7 +856,6 @@ msgstr "" "نظر حافظه بهینه، سریع و منجر به کد ساده می شود::" #: ../../tutorial/inputoutput.rst:428 -#, fuzzy msgid "" ">>> for line in f:\n" "... print(line, end='')\n" @@ -946,7 +870,6 @@ msgstr "" "خط دوم فایل" #: ../../tutorial/inputoutput.rst:434 -#, fuzzy msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." @@ -955,7 +878,6 @@ msgstr "" "``list(f)`` یا ``f.readlines()`` استفاده کنید." #: ../../tutorial/inputoutput.rst:437 -#, fuzzy msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" @@ -964,7 +886,6 @@ msgstr "" "نوشته شده را برمی گرداند. ::" #: ../../tutorial/inputoutput.rst:440 -#, fuzzy msgid "" ">>> f.write('This is a test\\n')\n" "15" @@ -973,7 +894,6 @@ msgstr "" "15" #: ../../tutorial/inputoutput.rst:443 -#, fuzzy msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" @@ -982,7 +902,6 @@ msgstr "" "شیء بایت (در حالت باینری) -- تبدیل شوند::" #: ../../tutorial/inputoutput.rst:446 -#, fuzzy msgid "" ">>> value = ('the answer', 42)\n" ">>> s = str(value) # convert the tuple to string\n" @@ -995,7 +914,6 @@ msgstr "" "18" #: ../../tutorial/inputoutput.rst:451 -#, fuzzy msgid "" "``f.tell()`` returns an integer giving the file object's current position in" " the file represented as number of bytes from the beginning of the file when" @@ -1006,7 +924,6 @@ msgstr "" "نامشخص در حالت متنی ارائه می شود." #: ../../tutorial/inputoutput.rst:455 -#, fuzzy msgid "" "To change the file object's position, use ``f.seek(offset, whence)``. The " "position is computed from adding *offset* to a reference point; the " @@ -1024,7 +941,6 @@ msgstr "" "ابتدای فایل به عنوان نقطه مرجع استفاده می کند. ::" #: ../../tutorial/inputoutput.rst:462 -#, fuzzy msgid "" ">>> f = open('workfile', 'rb+')\n" ">>> f.write(b'0123456789abcdef')\n" @@ -1051,7 +967,6 @@ msgstr "" "b'd'" #: ../../tutorial/inputoutput.rst:474 -#, fuzzy msgid "" "In text files (those opened without a ``b`` in the mode string), only seeks " "relative to the beginning of the file are allowed (the exception being " @@ -1066,7 +981,6 @@ msgstr "" "نامشخصی تولید می کند." #: ../../tutorial/inputoutput.rst:480 -#, fuzzy msgid "" "File objects have some additional methods, such as :meth:`~io.IOBase.isatty`" " and :meth:`~io.IOBase.truncate` which are less frequently used; consult the" @@ -1077,12 +991,10 @@ msgstr "" "راهنمای کامل در مورد کائنات فایل به مرجع کتابخانه مراجعه کنید." #: ../../tutorial/inputoutput.rst:488 -#, fuzzy msgid "Saving structured data with :mod:`json`" msgstr "ذخیره داده های ساختاریافته با :mod:`json`" #: ../../tutorial/inputoutput.rst:492 -#, fuzzy msgid "" "Strings can easily be written to and read from a file. Numbers take a bit " "more effort, since the :meth:`~io.TextIOBase.read` method only returns " @@ -1099,7 +1011,6 @@ msgstr "" " تجزیه و تحلیل و سریال سازی به صورت دستی پیچیده می شود." #: ../../tutorial/inputoutput.rst:499 -#, fuzzy msgid "" "Rather than having users constantly writing and debugging code to save " "complicated data types to files, Python allows you to use the popular data " @@ -1123,7 +1034,6 @@ msgstr "" " از طریق اتصال شبکه به دستگاهی دور ارسال شده باشد." #: ../../tutorial/inputoutput.rst:510 -#, fuzzy msgid "" "The JSON format is commonly used by modern applications to allow for data " "exchange. Many programmers are already familiar with it, which makes it a " @@ -1134,7 +1044,6 @@ msgstr "" "همکاری بین سیستم ها تبدیل می کند." #: ../../tutorial/inputoutput.rst:514 -#, fuzzy msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" @@ -1143,7 +1052,6 @@ msgstr "" " ساده مشاهده کنید::" #: ../../tutorial/inputoutput.rst:517 -#, fuzzy msgid "" ">>> import json\n" ">>> x = [1, 'simple', 'list']\n" @@ -1156,7 +1064,6 @@ msgstr "" "'[1, \"simple\", \"list\"]'" #: ../../tutorial/inputoutput.rst:522 -#, fuzzy msgid "" "Another variant of the :func:`~json.dumps` function, called " ":func:`~json.dump`, simply serializes the object to a :term:`text file`. So" @@ -1168,12 +1075,10 @@ msgstr "" "انجام دهیم::" #: ../../tutorial/inputoutput.rst:526 -#, fuzzy msgid "json.dump(x, f)" msgstr "json.dump(x, f)" #: ../../tutorial/inputoutput.rst:528 -#, fuzzy msgid "" "To decode the object again, if ``f`` is a :term:`binary file` or :term:`text" " file` object which has been opened for reading::" @@ -1182,12 +1087,10 @@ msgstr "" ":term:`text file` است که برای خواندن باز شده است::" #: ../../tutorial/inputoutput.rst:531 -#, fuzzy msgid "x = json.load(f)" msgstr "x = json.load(f)" #: ../../tutorial/inputoutput.rst:534 -#, fuzzy msgid "" "JSON files must be encoded in UTF-8. Use ``encoding=\"utf-8\"`` when opening" " JSON file as a :term:`text file` for both of reading and writing." @@ -1197,7 +1100,6 @@ msgstr "" " و نوشتن استفاده کنید." #: ../../tutorial/inputoutput.rst:537 -#, fuzzy msgid "" "This simple serialization technique can handle lists and dictionaries, but " "serializing arbitrary class instances in JSON requires a bit of extra " @@ -1209,12 +1111,10 @@ msgstr "" "ماژول :mod:`json` شامل توضیحی در مورد این موضوع است." #: ../../tutorial/inputoutput.rst:543 -#, fuzzy msgid ":mod:`pickle` - the pickle module" msgstr ":mod:`pickle` - ماژول pickle" #: ../../tutorial/inputoutput.rst:545 -#, fuzzy msgid "" "Contrary to :ref:`JSON `, *pickle* is a protocol which allows the " "serialization of arbitrarily complex Python objects. As such, it is " @@ -1231,32 +1131,26 @@ msgstr "" "کند، اگر داده ها توسط یک مهاجم ماهر ساخته شده باشند." #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "formatted string literal" msgstr "رشته قالب بندی شده" #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "interpolated string literal" msgstr "رشته متنی درونیابی شده" #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "string" msgstr "رشته" #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "formatted literal" msgstr "رشته قالب بندی شده" #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "interpolated literal" msgstr "رشته های متفاوت pítonیزه (interpolated literal)" #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "f-string" msgstr "" "رشته های f یا `f-string` در نسخه ی 3.6 پایتون معرفی شدند و روشی ساده و خوانا" @@ -1268,7 +1162,6 @@ msgstr "" "حاوی نمایش محاسبه شده ی عبارت هاست." #: ../../tutorial/inputoutput.rst:103 -#, fuzzy msgid "fstring" msgstr "" "رشته های قالب بندی شده (fstring) در پایتون به شما این امکان را می دهند که تعابیر را به آسانی درون رشته ها قرار دهید. این امر با پیشوند قرار دادن حرف `f` یا `F` قبل از رشته و استفاده از آکولاد های `{}` برای قرار دادن تعابیر امکان پذیر است. تعابیر داخل آکولاد ها ارزیابی شده، تبدیل به رشته می شوند، و در جای خود قرار می گیرند. \n" @@ -1283,32 +1176,26 @@ msgstr "" "در این کد، مقدار `name` و `age` به صورت مستقیم در رشته ای که به متغیر `greeting` اختصاص داده شده است، تزریق می شوند." #: ../../tutorial/inputoutput.rst:308 -#, fuzzy msgid "built-in function" msgstr "تابع داخلی" #: ../../tutorial/inputoutput.rst:308 -#, fuzzy msgid "open" msgstr "باز کردن" #: ../../tutorial/inputoutput.rst:308 -#, fuzzy msgid "object" msgstr "شیء" #: ../../tutorial/inputoutput.rst:308 -#, fuzzy msgid "file" msgstr "فایل" #: ../../tutorial/inputoutput.rst:490 -#, fuzzy msgid "module" msgstr "ماژول" #: ../../tutorial/inputoutput.rst:490 -#, fuzzy msgid "json" msgstr "" "جیسون یا «جاوا اسکریپت آبجکت نوتیشن» یک فرمت انتقال داده است که به سادگی خوانده و نوشته می شود. اصولا برای ارسال داده ها در وب استفاده می شود. جیسون ساختاری شبیه به یک دیکشنری در پایتون دارد و می تواند توسط اکثر زبان های برنامه نویسی قابل درک باشد.\n" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index cd66509f5..85bbd5e5d 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/interactive.rst:5 -#, fuzzy msgid "Interactive Input Editing and History Substitution" msgstr "ویرایش ورودی تعاملی و جایگزینی تاریخچه" #: ../../tutorial/interactive.rst:7 -#, fuzzy msgid "" "Some versions of the Python interpreter support editing of the current input" " line and history substitution, similar to facilities found in the Korn " @@ -42,12 +39,10 @@ msgstr "" "مخصوص به خود است که در اینجا تکرار نمی کنیم." #: ../../tutorial/interactive.rst:17 -#, fuzzy msgid "Tab Completion and History Editing" msgstr "تکمیل خودکار و ویرایش تاریخچه" #: ../../tutorial/interactive.rst:19 -#, fuzzy msgid "" "Completion of variable and module names is :ref:`automatically enabled " "` at interpreter startup so that the :kbd:`Tab` key " @@ -74,12 +69,10 @@ msgstr "" " دسترس خواهد بود." #: ../../tutorial/interactive.rst:36 -#, fuzzy msgid "Alternatives to the Interactive Interpreter" msgstr "گزینه هایی به جای مفسر تعاملی" #: ../../tutorial/interactive.rst:38 -#, fuzzy msgid "" "This facility is an enormous step forward compared to earlier versions of " "the interpreter; however, some wishes are left: It would be nice if the " @@ -96,7 +89,6 @@ msgstr "" "باشند نیز مفید خواهد بود." #: ../../tutorial/interactive.rst:45 -#, fuzzy msgid "" "One alternative enhanced interactive interpreter that has been around for " "quite some time is IPython_, which features tab completion, object " diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 865af16db..6cc9183c5 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,17 +21,14 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/interpreter.rst:5 -#, fuzzy msgid "Using the Python Interpreter" msgstr "استفاده از مفسر پایتون" #: ../../tutorial/interpreter.rst:11 -#, fuzzy msgid "Invoking the Interpreter" msgstr "اجرا کردن مفسر" #: ../../tutorial/interpreter.rst:13 -#, fuzzy msgid "" "The Python interpreter is usually installed as " "|usr_local_bin_python_x_dot_y_literal| on those machines where it is " @@ -45,12 +41,10 @@ msgstr "" "کنید:" #: ../../tutorial/interpreter.rst:17 -#, fuzzy msgid "python3.13" msgstr "پایتون3.13" #: ../../tutorial/interpreter.rst:21 -#, fuzzy msgid "" "to the shell. [#]_ Since the choice of the directory where the interpreter " "lives is an installation option, other places are possible; check with your " @@ -63,7 +57,6 @@ msgstr "" ":file:`/usr/local/python` یک مکان جایگزین محبوب است.)" #: ../../tutorial/interpreter.rst:26 -#, fuzzy msgid "" "On Windows machines where you have installed Python from the :ref:`Microsoft" " Store `, the |python_x_dot_y_literal| command will be " @@ -78,7 +71,6 @@ msgstr "" ":ref:`setting-envvars` مراجعه کنید." #: ../../tutorial/interpreter.rst:31 -#, fuzzy msgid "" "Typing an end-of-file character (:kbd:`Control-D` on Unix, :kbd:`Control-Z` " "on Windows) at the primary prompt causes the interpreter to exit with a zero" @@ -91,7 +83,6 @@ msgstr "" "شوید: ``quit()``." #: ../../tutorial/interpreter.rst:36 -#, fuzzy msgid "" "The interpreter's line-editing features include interactive editing, history" " substitution and code completion on systems that support the `GNU Readline " @@ -114,7 +105,6 @@ msgstr "" "برای حذف کاراکترها از خط جاری استفاده کنید." #: ../../tutorial/interpreter.rst:46 -#, fuzzy msgid "" "The interpreter operates somewhat like the Unix shell: when called with " "standard input connected to a tty device, it reads and executes commands " @@ -128,7 +118,6 @@ msgstr "" "می کند." #: ../../tutorial/interpreter.rst:51 -#, fuzzy msgid "" "A second way of starting the interpreter is ``python -c command [arg] ...``," " which executes the statement(s) in *command*, analogous to the shell's " @@ -142,7 +131,6 @@ msgstr "" "معمولاً توصیه می شود که *command* را به طور کامل نقل قول کنید." #: ../../tutorial/interpreter.rst:57 -#, fuzzy msgid "" "Some Python modules are also useful as scripts. These can be invoked using " "``python -m module [arg] ...``, which executes the source file for *module* " @@ -154,7 +142,6 @@ msgstr "" "اید." #: ../../tutorial/interpreter.rst:61 -#, fuzzy msgid "" "When a script file is used, it is sometimes useful to be able to run the " "script and enter interactive mode afterwards. This can be done by passing " @@ -165,18 +152,15 @@ msgstr "" ":option:`-i` قبل از اسکریپت انجام می شود." #: ../../tutorial/interpreter.rst:65 -#, fuzzy msgid "All command line options are described in :ref:`using-on-general`." msgstr "" "تمام گزینه های خط فرمان در :ref:`using-on-general` توضیح داده شده اند." #: ../../tutorial/interpreter.rst:71 -#, fuzzy msgid "Argument Passing" msgstr "انتقال آرگومان ها" #: ../../tutorial/interpreter.rst:73 -#, fuzzy msgid "" "When known to the interpreter, the script name and additional arguments " "thereafter are turned into a list of strings and assigned to the ``argv`` " @@ -205,12 +189,10 @@ msgstr "" "فرمان یا ماژول پردازش شوند." #: ../../tutorial/interpreter.rst:89 -#, fuzzy msgid "Interactive Mode" msgstr "حالت تعاملی" #: ../../tutorial/interpreter.rst:91 -#, fuzzy msgid "" "When commands are read from a tty, the interpreter is said to be in " "*interactive mode*. In this mode it prompts for the next command with the " @@ -227,7 +209,6 @@ msgstr "" "آمدگویی که شامل شماره نسخه و اطلاعیه حق تکثیر است را چاپ می کند." #: ../../tutorial/interpreter.rst:98 -#, fuzzy msgid "" "$ python3.13\n" "Python 3.13 (default, April 4 2023, 09:25:04)\n" @@ -242,7 +223,6 @@ msgstr "" ">>>" #: ../../tutorial/interpreter.rst:108 -#, fuzzy msgid "" "Continuation lines are needed when entering a multi-line construct. As an " "example, take a look at this :keyword:`if` statement::" @@ -251,7 +231,6 @@ msgstr "" "مثال، به این دستور :keyword:`if` نگاه کنید::" #: ../../tutorial/interpreter.rst:111 -#, fuzzy msgid "" ">>> the_world_is_flat = True\n" ">>> if the_world_is_flat:\n" @@ -266,23 +245,19 @@ msgstr "" "مراقب باشید که نیفتید!" #: ../../tutorial/interpreter.rst:118 -#, fuzzy msgid "For more on interactive mode, see :ref:`tut-interac`." msgstr "" "برای اطلاعات بیشتر در مورد حالت تعاملی، به :ref:`tut-interac` مراجعه کنید." #: ../../tutorial/interpreter.rst:124 -#, fuzzy msgid "The Interpreter and Its Environment" msgstr "مترجم و محیط آن" #: ../../tutorial/interpreter.rst:130 -#, fuzzy msgid "Source Code Encoding" msgstr "کدگذاری سورس کد" #: ../../tutorial/interpreter.rst:132 -#, fuzzy msgid "" "By default, Python source files are treated as encoded in UTF-8. In that " "encoding, characters of most languages in the world can be used " @@ -301,7 +276,6 @@ msgstr "" "فونتی استفاده کند که از همه کاراکترهای موجود در فایل پشتیبانی کند." #: ../../tutorial/interpreter.rst:140 -#, fuzzy msgid "" "To declare an encoding other than the default one, a special comment line " "should be added as the *first* line of the file. The syntax is as follows::" @@ -310,12 +284,10 @@ msgstr "" "خط *first* فایل اضافه شود. نحوه نوشتن آن به صورت زیر است::" #: ../../tutorial/interpreter.rst:143 -#, fuzzy msgid "# -*- coding: encoding -*-" msgstr "# -*- coding: encoding -*-" #: ../../tutorial/interpreter.rst:145 -#, fuzzy msgid "" "where *encoding* is one of the valid :mod:`codecs` supported by Python." msgstr "" @@ -323,7 +295,6 @@ msgstr "" "شود." #: ../../tutorial/interpreter.rst:147 -#, fuzzy msgid "" "For example, to declare that Windows-1252 encoding is to be used, the first " "line of your source code file should be::" @@ -332,12 +303,10 @@ msgstr "" " کد منبع شما باید به صورت زیر باشد::" #: ../../tutorial/interpreter.rst:150 -#, fuzzy msgid "# -*- coding: cp1252 -*-" msgstr "# -*- coding: cp1252 -*-" #: ../../tutorial/interpreter.rst:152 -#, fuzzy msgid "" "One exception to the *first line* rule is when the source code starts with a" " :ref:`UNIX \"shebang\" line `. In this case, the encoding " @@ -348,7 +317,6 @@ msgstr "" "باید به عنوان خط دوم فایل اضافه شود. به عنوان مثال::" #: ../../tutorial/interpreter.rst:156 -#, fuzzy msgid "" "#!/usr/bin/env python3\n" "# -*- coding: cp1252 -*-" @@ -357,12 +325,10 @@ msgstr "" "# -*- coding: cp1252 -*-" #: ../../tutorial/interpreter.rst:160 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../tutorial/interpreter.rst:161 -#, fuzzy msgid "" "On Unix, the Python 3.x interpreter is by default not installed with the " "executable named ``python``, so that it does not conflict with a " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index d5c8114d4..6594b9c20 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/introduction.rst:5 -#, fuzzy msgid "An Informal Introduction to Python" msgstr "یک معرفی غیررسمی به پایتون" #: ../../tutorial/introduction.rst:7 -#, fuzzy msgid "" "In the following examples, input and output are distinguished by the " "presence or absence of prompts (:term:`>>>` and :term:`...`): to repeat the " @@ -44,7 +41,6 @@ msgstr "" "این برای پایان دادن به یک دستور چند خطی استفاده می شود." #: ../../tutorial/introduction.rst:16 -#, fuzzy msgid "" "You can toggle the display of prompts and output by clicking on ``>>>`` in " "the upper-right corner of an example box. If you hide the prompts and " @@ -57,7 +53,6 @@ msgstr "" "کنید." #: ../../tutorial/introduction.rst:23 -#, fuzzy msgid "" "Many of the examples in this manual, even those entered at the interactive " "prompt, include comments. Comments in Python start with the hash character," @@ -76,12 +71,10 @@ msgstr "" "شوند." #: ../../tutorial/introduction.rst:31 -#, fuzzy msgid "Some examples::" msgstr "برخی از مثال ها::" #: ../../tutorial/introduction.rst:33 -#, fuzzy msgid "" "# this is the first comment\n" "spam = 1 # and this is the second comment\n" @@ -94,12 +87,10 @@ msgstr "" "text = \"# This is not a comment because it's inside quotes.\"" #: ../../tutorial/introduction.rst:42 -#, fuzzy msgid "Using Python as a Calculator" msgstr "استفاده از پایتون به عنوان یک ماشین حساب" #: ../../tutorial/introduction.rst:44 -#, fuzzy msgid "" "Let's try some simple Python commands. Start the interpreter and wait for " "the primary prompt, ``>>>``. (It shouldn't take long.)" @@ -108,12 +99,10 @@ msgstr "" "اعلان اولیه، ``>>>`` بمانید. (نباید زمان زیادی ببرد.)" #: ../../tutorial/introduction.rst:51 -#, fuzzy msgid "Numbers" msgstr "اعداد" #: ../../tutorial/introduction.rst:53 -#, fuzzy msgid "" "The interpreter acts as a simple calculator: you can type an expression at " "it and it will write the value. Expression syntax is straightforward: the " @@ -126,7 +115,6 @@ msgstr "" "پرانتزها (``()``) می توانند برای گروه بندی به کار روند. برای مثال:" #: ../../tutorial/introduction.rst:59 -#, fuzzy msgid "" ">>> 2 + 2\n" "4\n" @@ -147,7 +135,6 @@ msgstr "" "1.6" #: ../../tutorial/introduction.rst:68 -#, fuzzy msgid "" "The integer numbers (e.g. ``2``, ``4``, ``20``) have type :class:`int`, the " "ones with a fractional part (e.g. ``5.0``, ``1.6``) have type " @@ -158,7 +145,6 @@ msgstr "" " ادامه آموزش، بیشتر درباره انواع عددی صحبت خواهیم کرد." #: ../../tutorial/introduction.rst:72 -#, fuzzy msgid "" "Division (``/``) always returns a float. To do :term:`floor division` and " "get an integer result you can use the ``//`` operator; to calculate the " @@ -169,7 +155,6 @@ msgstr "" "برای محاسبه باقیمانده می توانید از ``%`` استفاده کنید::" #: ../../tutorial/introduction.rst:76 -#, fuzzy msgid "" ">>> 17 / 3 # classic division returns a float\n" "5.666666666666667\n" @@ -192,7 +177,6 @@ msgstr "" "17" #: ../../tutorial/introduction.rst:86 -#, fuzzy msgid "" "With Python, it is possible to use the ``**`` operator to calculate powers " "[#]_::" @@ -201,7 +185,6 @@ msgstr "" " [#]_:" #: ../../tutorial/introduction.rst:88 -#, fuzzy msgid "" ">>> 5 ** 2 # 5 squared\n" "25\n" @@ -214,7 +197,6 @@ msgstr "" "128" #: ../../tutorial/introduction.rst:93 -#, fuzzy msgid "" "The equal sign (``=``) is used to assign a value to a variable. Afterwards, " "no result is displayed before the next interactive prompt::" @@ -223,7 +205,6 @@ msgstr "" " از آن، هیچ نتیجه ای قبل از اعلان تعاملی بعدی نمایش داده نمی شود::" #: ../../tutorial/introduction.rst:96 -#, fuzzy msgid "" ">>> width = 20\n" ">>> height = 5 * 9\n" @@ -236,7 +217,6 @@ msgstr "" "900" #: ../../tutorial/introduction.rst:101 -#, fuzzy msgid "" "If a variable is not \"defined\" (assigned a value), trying to use it will " "give you an error::" @@ -245,7 +225,6 @@ msgstr "" "برای استفاده از آن به شما یک خطا می دهد:" #: ../../tutorial/introduction.rst:104 -#, fuzzy msgid "" ">>> n # try to access an undefined variable\n" "Traceback (most recent call last):\n" @@ -258,7 +237,6 @@ msgstr "" "NameError: name 'n' is not defined" #: ../../tutorial/introduction.rst:109 -#, fuzzy msgid "" "There is full support for floating point; operators with mixed type operands" " convert the integer operand to floating point::" @@ -267,7 +245,6 @@ msgstr "" " مختلف کار می کنند، عملوند صحیح را به عدد اعشاری تبدیل می کنند::" #: ../../tutorial/introduction.rst:112 -#, fuzzy msgid "" ">>> 4 * 3.75 - 1\n" "14.0" @@ -276,7 +253,6 @@ msgstr "" "14.0" #: ../../tutorial/introduction.rst:115 -#, fuzzy msgid "" "In interactive mode, the last printed expression is assigned to the variable" " ``_``. This means that when you are using Python as a desk calculator, it " @@ -287,7 +263,6 @@ msgstr "" "کنید، ادامه محاسبات تا حدی آسان تر است، به عنوان مثال:" #: ../../tutorial/introduction.rst:119 -#, fuzzy msgid "" ">>> tax = 12.5 / 100\n" ">>> price = 100.50\n" @@ -308,7 +283,6 @@ msgstr "" "113.06" #: ../../tutorial/introduction.rst:128 -#, fuzzy msgid "" "This variable should be treated as read-only by the user. Don't explicitly " "assign a value to it --- you would create an independent local variable with" @@ -319,7 +293,6 @@ msgstr "" "ایجاد می کنید که متغیر داخلی با رفتار خاصش را مخفی می کند." #: ../../tutorial/introduction.rst:132 -#, fuzzy msgid "" "In addition to :class:`int` and :class:`float`, Python supports other types " "of numbers, such as :class:`~decimal.Decimal` and " @@ -334,12 +307,10 @@ msgstr "" " استفاده می کند (مثلاً ``3+5j``)." #: ../../tutorial/introduction.rst:142 -#, fuzzy msgid "Text" msgstr "متن" #: ../../tutorial/introduction.rst:144 -#, fuzzy msgid "" "Python can manipulate text (represented by type :class:`str`, so-called " "\"strings\") as well as numbers. This includes characters \"``!``\", words " @@ -354,7 +325,6 @@ msgstr "" "گیومه های دوتایی (``\"...\"``) قرار گیرند و نتیجه یکسانی داشته باشند [#]_." #: ../../tutorial/introduction.rst:157 -#, fuzzy msgid "" "To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " "Alternatively, we can use the other type of quotation marks::" @@ -364,7 +334,6 @@ msgstr "" "کنیم::" #: ../../tutorial/introduction.rst:160 -#, fuzzy msgid "" ">>> 'doesn\\'t' # use \\' to escape the single quote...\n" "\"doesn't\"\n" @@ -389,7 +358,6 @@ msgstr "" "'\"Isn\\'t,\" they said.'" #: ../../tutorial/introduction.rst:171 -#, fuzzy msgid "" "In the Python shell, the string definition and output string can look " "different. The :func:`print` function produces a more readable output, by " @@ -401,7 +369,6 @@ msgstr "" "محصورکننده و با چاپ کاراکترهای خاص و فرار شده:" #: ../../tutorial/introduction.rst:175 -#, fuzzy msgid "" ">>> s = 'First line.\\nSecond line.' # \\n means newline\n" ">>> s # without print(), special characters are included in the string\n" @@ -418,7 +385,6 @@ msgstr "" "دومین خط." #: ../../tutorial/introduction.rst:182 -#, fuzzy msgid "" "If you don't want characters prefaced by ``\\`` to be interpreted as special" " characters, you can use *raw strings* by adding an ``r`` before the first " @@ -429,7 +395,6 @@ msgstr "" "اولین نقل قول استفاده کنید::" #: ../../tutorial/introduction.rst:186 -#, fuzzy msgid "" ">>> print('C:\\some\\name') # here \\n means newline!\n" "C:\\some\n" @@ -444,7 +409,6 @@ msgstr "" "C:\\some\\name" #: ../../tutorial/introduction.rst:192 -#, fuzzy msgid "" "There is one subtle aspect to raw strings: a raw string may not end in an " "odd number of ``\\`` characters; see :ref:`the FAQ entry ` مراجعه کنید." #: ../../tutorial/introduction.rst:197 -#, fuzzy msgid "" "String literals can span multiple lines. One way is using triple-quotes: " "``\"\"\"...\"\"\"`` or ``'''...'''``. End-of-line characters are " @@ -469,7 +432,6 @@ msgstr "" " توان از این کار جلوگیری کرد. در مثال زیر، خط جدید اولیه گنجانده نشده است::" #: ../../tutorial/introduction.rst:203 -#, fuzzy msgid "" ">>> print(\"\"\"\\\n" "... Usage: thingy [OPTIONS]\n" @@ -494,7 +456,6 @@ msgstr "" ">>>" #: ../../tutorial/introduction.rst:214 -#, fuzzy msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" @@ -502,7 +463,6 @@ msgstr "" "رشته ها می توانند با عملگر ``+`` به هم متصل شوند و با ``*`` تکرار شوند::" #: ../../tutorial/introduction.rst:217 -#, fuzzy msgid "" ">>> # 3 times 'un', followed by 'ium'\n" ">>> 3 * 'un' + 'ium'\n" @@ -513,7 +473,6 @@ msgstr "" "'unununium'" #: ../../tutorial/introduction.rst:221 -#, fuzzy msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" @@ -522,7 +481,6 @@ msgstr "" "اند) که کنار هم هستند به صورت خودکار با یکدیگر ترکیب می شوند. ::" #: ../../tutorial/introduction.rst:224 -#, fuzzy msgid "" ">>> 'Py' 'thon'\n" "'Python'" @@ -531,14 +489,12 @@ msgstr "" "'Python'" #: ../../tutorial/introduction.rst:227 -#, fuzzy msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" "این ویژگی به ویژه زمانی مفید است که می خواهید رشته های طولانی را بشکنید::" #: ../../tutorial/introduction.rst:229 -#, fuzzy msgid "" ">>> text = ('Put several strings within parentheses '\n" "... 'to have them joined together.')\n" @@ -551,14 +507,12 @@ msgstr "" "'Put several strings within parentheses to have them joined together.'" #: ../../tutorial/introduction.rst:234 -#, fuzzy msgid "" "This only works with two literals though, not with variables or " "expressions::" msgstr "این تنها با دو مقدار ثابت کار می کند، نه با متغیرها یا عبارات::" #: ../../tutorial/introduction.rst:236 -#, fuzzy msgid "" ">>> prefix = 'Py'\n" ">>> prefix 'thon' # can't concatenate a variable and a string literal\n" @@ -585,7 +539,6 @@ msgstr "" "SyntaxError: invalid syntax" #: ../../tutorial/introduction.rst:248 -#, fuzzy msgid "" "If you want to concatenate variables or a variable and a literal, use " "``+``::" @@ -594,7 +547,6 @@ msgstr "" "``+`` استفاده کنید::" #: ../../tutorial/introduction.rst:250 -#, fuzzy msgid "" ">>> prefix + 'thon'\n" "'Python'" @@ -603,7 +555,6 @@ msgstr "" "'Python'" #: ../../tutorial/introduction.rst:253 -#, fuzzy msgid "" "Strings can be *indexed* (subscripted), with the first character having " "index 0. There is no separate character type; a character is simply a string" @@ -614,7 +565,6 @@ msgstr "" " یک رشته با اندازه یک است::" #: ../../tutorial/introduction.rst:257 -#, fuzzy msgid "" ">>> word = 'Python'\n" ">>> word[0] # character in position 0\n" @@ -629,7 +579,6 @@ msgstr "" "'n'" #: ../../tutorial/introduction.rst:263 -#, fuzzy msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" @@ -637,7 +586,6 @@ msgstr "" "کنند::" #: ../../tutorial/introduction.rst:265 -#, fuzzy msgid "" ">>> word[-1] # last character\n" "'n'\n" @@ -654,14 +602,12 @@ msgstr "" "'P'" #: ../../tutorial/introduction.rst:272 -#, fuzzy msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" "توجه داشته باشید که از آنجا که -0 با 0 برابر است، اندیس های منفی از -1 شروع " "می شوند." #: ../../tutorial/introduction.rst:274 -#, fuzzy msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " "used to obtain individual characters, *slicing* allows you to obtain a " @@ -672,7 +618,6 @@ msgstr "" "دهد یک زیربرنامه به دست آورید::" #: ../../tutorial/introduction.rst:277 -#, fuzzy msgid "" ">>> word[0:2] # characters from position 0 (included) to 2 (excluded)\n" "'Py'\n" @@ -685,7 +630,6 @@ msgstr "" "'tho'" #: ../../tutorial/introduction.rst:282 -#, fuzzy msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero," " an omitted second index defaults to the size of the string being sliced. ::" @@ -695,7 +639,6 @@ msgstr "" "فرض به اندازه ی رشته ای که در حال برش دادن است، تنظیم می شود." #: ../../tutorial/introduction.rst:285 -#, fuzzy msgid "" ">>> word[:2] # character from the beginning to position 2 (excluded)\n" "'Py'\n" @@ -712,7 +655,6 @@ msgstr "" "'on'" #: ../../tutorial/introduction.rst:292 -#, fuzzy msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" @@ -721,7 +663,6 @@ msgstr "" "موضوع تضمین می کند که ``s[:i] + s[i:]`` همیشه مساوی با ``s`` است::" #: ../../tutorial/introduction.rst:295 -#, fuzzy msgid "" ">>> word[:2] + word[2:]\n" "'Python'\n" @@ -734,7 +675,6 @@ msgstr "" "'Python'" #: ../../tutorial/introduction.rst:300 -#, fuzzy msgid "" "One way to remember how slices work is to think of the indices as pointing " "*between* characters, with the left edge of the first character numbered 0. " @@ -747,7 +687,6 @@ msgstr "" "اندیس *n* است، برای مثال:" #: ../../tutorial/introduction.rst:305 -#, fuzzy msgid "" " +---+---+---+---+---+---+\n" " | P | y | t | h | o | n |\n" @@ -762,7 +701,6 @@ msgstr "" "-6 -5 -4 -3 -2 -1" #: ../../tutorial/introduction.rst:311 -#, fuzzy msgid "" "The first row of numbers gives the position of the indices 0...6 in the " "string; the second row gives the corresponding negative indices. The slice " @@ -774,7 +712,6 @@ msgstr "" "است که بین لبه های برچسب گذاری شده *i* و *j* قرار دارند." #: ../../tutorial/introduction.rst:316 -#, fuzzy msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " @@ -784,13 +721,11 @@ msgstr "" "هر دو در محدوده باشند. به عنوان مثال، طول ``word[1:3]`` برابر ۲ است." #: ../../tutorial/introduction.rst:320 -#, fuzzy msgid "Attempting to use an index that is too large will result in an error::" msgstr "" "استفاده از یک اندکس که بیش از حد بزرگ است منجر به ایجاد خطا خواهد شد::" #: ../../tutorial/introduction.rst:322 -#, fuzzy msgid "" ">>> word[42] # the word only has 6 characters\n" "Traceback (most recent call last):\n" @@ -803,7 +738,6 @@ msgstr "" "IndexError: string index out of range" #: ../../tutorial/introduction.rst:327 -#, fuzzy msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" @@ -812,7 +746,6 @@ msgstr "" "به طور ملایم مدیریت می شوند::" #: ../../tutorial/introduction.rst:330 -#, fuzzy msgid "" ">>> word[4:42]\n" "'on'\n" @@ -825,7 +758,6 @@ msgstr "" "''" #: ../../tutorial/introduction.rst:335 -#, fuzzy msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" @@ -834,7 +766,6 @@ msgstr "" "بنابراین، تخصیص به یک موقعیت معین در رشته منجر به خطا می شود::" #: ../../tutorial/introduction.rst:338 -#, fuzzy msgid "" ">>> word[0] = 'J'\n" "Traceback (most recent call last):\n" @@ -855,12 +786,10 @@ msgstr "" "TypeError: 'str' object does not support item assignment" #: ../../tutorial/introduction.rst:347 -#, fuzzy msgid "If you need a different string, you should create a new one::" msgstr "اگر به یک رشته متفاوت نیاز دارید، باید یک رشته جدید ایجاد کنید::" #: ../../tutorial/introduction.rst:349 -#, fuzzy msgid "" ">>> 'J' + word[1:]\n" "'Jython'\n" @@ -873,12 +802,10 @@ msgstr "" "'Pypy'" #: ../../tutorial/introduction.rst:354 -#, fuzzy msgid "The built-in function :func:`len` returns the length of a string::" msgstr "تابع داخلی :func:`len` طول یک رشته را برمی گرداند::" #: ../../tutorial/introduction.rst:356 -#, fuzzy msgid "" ">>> s = 'supercalifragilisticexpialidocious'\n" ">>> len(s)\n" @@ -889,12 +816,10 @@ msgstr "" "34" #: ../../tutorial/introduction.rst:363 -#, fuzzy msgid ":ref:`textseq`" msgstr ":ref:`textseq`" #: ../../tutorial/introduction.rst:364 -#, fuzzy msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." @@ -903,12 +828,10 @@ msgstr "" " معمول است، پشتیبانی می کنند." #: ../../tutorial/introduction.rst:367 -#, fuzzy msgid ":ref:`string-methods`" msgstr ":ref:`string-methods`" #: ../../tutorial/introduction.rst:368 -#, fuzzy msgid "" "Strings support a large number of methods for basic transformations and " "searching." @@ -916,32 +839,26 @@ msgstr "" "رشته ها از تعداد زیادی متد برای تغییرات پایه ای و جستجو پشتیبانی می کنند." #: ../../tutorial/introduction.rst:371 -#, fuzzy msgid ":ref:`f-strings`" msgstr ":ref:`f-strings`" #: ../../tutorial/introduction.rst:372 -#, fuzzy msgid "String literals that have embedded expressions." msgstr "رشته های متنی که شامل عبارات تعبیه شده هستند." #: ../../tutorial/introduction.rst:374 -#, fuzzy msgid ":ref:`formatstrings`" msgstr ":ref:`formatstrings`" #: ../../tutorial/introduction.rst:375 -#, fuzzy msgid "Information about string formatting with :meth:`str.format`." msgstr "اطلاعاتی درباره قالب بندی رشته با :meth:`str.format`." #: ../../tutorial/introduction.rst:377 -#, fuzzy msgid ":ref:`old-string-formatting`" msgstr ":ref:`old-string-formatting`" #: ../../tutorial/introduction.rst:378 -#, fuzzy msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." @@ -950,12 +867,10 @@ msgstr "" "``%`` هستند، به طور کامل تر در اینجا توضیح داده شده اند." #: ../../tutorial/introduction.rst:385 -#, fuzzy msgid "Lists" msgstr "لیست ها" #: ../../tutorial/introduction.rst:387 -#, fuzzy msgid "" "Python knows a number of *compound* data types, used to group together other" " values. The most versatile is the *list*, which can be written as a list " @@ -970,7 +885,6 @@ msgstr "" "از یک نوع هستند." #: ../../tutorial/introduction.rst:392 -#, fuzzy msgid "" ">>> squares = [1, 4, 9, 16, 25]\n" ">>> squares\n" @@ -981,7 +895,6 @@ msgstr "" "[1, 4, 9, 16, 25]" #: ../../tutorial/introduction.rst:396 -#, fuzzy msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" @@ -990,7 +903,6 @@ msgstr "" "فهرست بندی و برش داد::" #: ../../tutorial/introduction.rst:399 -#, fuzzy msgid "" ">>> squares[0] # indexing returns the item\n" "1\n" @@ -1007,12 +919,10 @@ msgstr "" "[9, 16, 25]" #: ../../tutorial/introduction.rst:406 -#, fuzzy msgid "Lists also support operations like concatenation::" msgstr "لیست ها همچنین عملیات هایی مانند الحاق را پشتیبانی می کنند::" #: ../../tutorial/introduction.rst:408 -#, fuzzy msgid "" ">>> squares + [36, 49, 64, 81, 100]\n" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" @@ -1021,7 +931,6 @@ msgstr "" "[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]" #: ../../tutorial/introduction.rst:411 -#, fuzzy msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" @@ -1030,7 +939,6 @@ msgstr "" "هستند، به این معنی که امکان تغییر محتوای آن ها وجود دارد::" #: ../../tutorial/introduction.rst:414 -#, fuzzy msgid "" ">>> cubes = [1, 8, 27, 65, 125] # something's wrong here\n" ">>> 4 ** 3 # the cube of 4 is 64, not 65!\n" @@ -1047,7 +955,6 @@ msgstr "" "[1, 8, 27, 64, 125]" #: ../../tutorial/introduction.rst:421 -#, fuzzy msgid "" "You can also add new items at the end of the list, by using the " ":meth:`!list.append` *method* (we will see more about methods later)::" @@ -1056,7 +963,6 @@ msgstr "" ":meth:`!list.append` *method* (ما بعداً بیشتر در مورد متدها خواهیم دید)::" #: ../../tutorial/introduction.rst:424 -#, fuzzy msgid "" ">>> cubes.append(216) # add the cube of 6\n" ">>> cubes.append(7 ** 3) # and the cube of 7\n" @@ -1069,7 +975,6 @@ msgstr "" "[1, 8, 27, 64, 125, 216, 343]" #: ../../tutorial/introduction.rst:429 -#, fuzzy msgid "" "Simple assignment in Python never copies data. When you assign a list to a " "variable, the variable refers to the *existing list*. Any changes you make " @@ -1082,7 +987,6 @@ msgstr "" "اشاره دارند دیده می شود." #: ../../tutorial/introduction.rst:434 -#, fuzzy msgid "" ">>> rgb = [\"Red\", \"Green\", \"Blue\"]\n" ">>> rgba = rgb\n" @@ -1101,7 +1005,6 @@ msgstr "" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" #: ../../tutorial/introduction.rst:442 -#, fuzzy msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a :ref:`shallow copy " @@ -1112,7 +1015,6 @@ msgstr "" " را بر می گرداند::" #: ../../tutorial/introduction.rst:446 -#, fuzzy msgid "" ">>> correct_rgba = rgba[:]\n" ">>> correct_rgba[-1] = \"Alpha\"\n" @@ -1129,7 +1031,6 @@ msgstr "" "[\"Red\", \"Green\", \"Blue\", \"Alph\"]" #: ../../tutorial/introduction.rst:453 -#, fuzzy msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" @@ -1138,7 +1039,6 @@ msgstr "" "آن را به طور کامل خالی کند:" #: ../../tutorial/introduction.rst:456 -#, fuzzy msgid "" ">>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']\n" ">>> letters\n" @@ -1173,12 +1073,10 @@ msgstr "" "[]" #: ../../tutorial/introduction.rst:472 -#, fuzzy msgid "The built-in function :func:`len` also applies to lists::" msgstr "تابع داخلی :func:`len` همچنین برای لیست ها نیز اعمال می شود::" #: ../../tutorial/introduction.rst:474 -#, fuzzy msgid "" ">>> letters = ['a', 'b', 'c', 'd']\n" ">>> len(letters)\n" @@ -1189,7 +1087,6 @@ msgstr "" "4" #: ../../tutorial/introduction.rst:478 -#, fuzzy msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" @@ -1198,7 +1095,6 @@ msgstr "" "دیگر باشند)، به عنوان مثال:" #: ../../tutorial/introduction.rst:481 -#, fuzzy msgid "" ">>> a = ['a', 'b', 'c']\n" ">>> n = [1, 2, 3]\n" @@ -1221,12 +1117,10 @@ msgstr "" "'b'" #: ../../tutorial/introduction.rst:494 -#, fuzzy msgid "First Steps Towards Programming" msgstr "اولین گام ها به سوی برنامه نویسی" #: ../../tutorial/introduction.rst:496 -#, fuzzy msgid "" "Of course, we can use Python for more complicated tasks than adding two and " "two together. For instance, we can write an initial sub-sequence of the " @@ -1239,7 +1133,6 @@ msgstr "" "بنویسیم::" #: ../../tutorial/introduction.rst:501 -#, fuzzy msgid "" ">>> # Fibonacci series:\n" ">>> # the sum of two elements defines the next\n" @@ -1272,12 +1165,10 @@ msgstr "" "8" #: ../../tutorial/introduction.rst:516 -#, fuzzy msgid "This example introduces several new features." msgstr "این مثال چند ویژگی جدید را معرفی می کند." #: ../../tutorial/introduction.rst:518 -#, fuzzy msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " "``b`` simultaneously get the new values 0 and 1. On the last line this is " @@ -1292,7 +1183,6 @@ msgstr "" "راست ارزیابی می شوند." #: ../../tutorial/introduction.rst:524 -#, fuzzy msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " "10``) remains true. In Python, like in C, any non-zero integer value is " @@ -1313,7 +1203,6 @@ msgstr "" "(نامساوی)." #: ../../tutorial/introduction.rst:533 -#, fuzzy msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " "grouping statements. At the interactive prompt, you have to type a tab or " @@ -1334,7 +1223,6 @@ msgstr "" " بلوک پایه باید به همان میزان تورفته باشد." #: ../../tutorial/introduction.rst:542 -#, fuzzy msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " "It differs from just writing the expression you want to write (as we did " @@ -1351,7 +1239,6 @@ msgstr "" "مانند زیر قالب بندی کنید:" #: ../../tutorial/introduction.rst:549 -#, fuzzy msgid "" ">>> i = 256*256\n" ">>> print('The value of i is', i)\n" @@ -1362,7 +1249,6 @@ msgstr "" "The value of i is 65536" #: ../../tutorial/introduction.rst:553 -#, fuzzy msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" @@ -1371,7 +1257,6 @@ msgstr "" "یا پایان دادن به خروجی با یک رشته متفاوت استفاده شود::" #: ../../tutorial/introduction.rst:556 -#, fuzzy msgid "" ">>> a, b = 0, 1\n" ">>> while a < 1000:\n" @@ -1388,12 +1273,10 @@ msgstr "" "0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987," #: ../../tutorial/introduction.rst:565 -#, fuzzy msgid "Footnotes" msgstr "پانوشت ها" #: ../../tutorial/introduction.rst:566 -#, fuzzy msgid "" "Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted" " as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you" @@ -1404,7 +1287,6 @@ msgstr "" " و دریافت ``9``، می توانید از ``(-3)**2`` استفاده کنید." #: ../../tutorial/introduction.rst:570 -#, fuzzy msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " "meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " @@ -1417,11 +1299,9 @@ msgstr "" "``\"`` را Escape کنید (اما باید ``\\'`` را Escape کنید) و بالعکس." #: ../../tutorial/introduction.rst:21 -#, fuzzy msgid "# (hash)" msgstr "# (hash)" #: ../../tutorial/introduction.rst:21 -#, fuzzy msgid "comment" msgstr "کامنت" diff --git a/tutorial/modules.po b/tutorial/modules.po index eed7e1a36..ef583d9e7 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/modules.rst:5 -#, fuzzy msgid "Modules" msgstr "ماژول ها" #: ../../tutorial/modules.rst:7 -#, fuzzy msgid "" "If you quit from the Python interpreter and enter it again, the definitions " "you have made (functions and variables) are lost. Therefore, if you want to " @@ -48,7 +45,6 @@ msgstr "" "اید استفاده کنید بدون اینکه تعریف آن را در هر برنامه کپی کنید." #: ../../tutorial/modules.rst:16 -#, fuzzy msgid "" "To support this, Python has a way to put definitions in a file and use them " "in a script or in an interactive instance of the interpreter. Such a file is" @@ -64,7 +60,6 @@ msgstr "" "دارید)." #: ../../tutorial/modules.rst:22 -#, fuzzy msgid "" "A module is a file containing Python definitions and statements. The file " "name is the module name with the suffix :file:`.py` appended. Within a " @@ -80,7 +75,6 @@ msgstr "" "دایرکتوری جاری با محتوای زیر ایجاد کنید::" #: ../../tutorial/modules.rst:28 -#, fuzzy msgid "" "# Fibonacci numbers module\n" "\n" @@ -117,19 +111,16 @@ msgstr "" " return result" #: ../../tutorial/modules.rst:45 -#, fuzzy msgid "" "Now enter the Python interpreter and import this module with the following " "command::" msgstr "حال وارد مفسر پایتون شوید و این ماژول را با فرمان زیر وارد کنید::" #: ../../tutorial/modules.rst:48 -#, fuzzy msgid ">>> import fibo" msgstr ">>> import fibo" #: ../../tutorial/modules.rst:50 -#, fuzzy msgid "" "This does not add the names of the functions defined in ``fibo`` directly " "to the current :term:`namespace` (see :ref:`tut-scopes` for more details); " @@ -142,7 +133,6 @@ msgstr "" "توانید به توابع دسترسی پیدا کنید::" #: ../../tutorial/modules.rst:55 -#, fuzzy msgid "" ">>> fibo.fib(1000)\n" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987\n" @@ -159,7 +149,6 @@ msgstr "" "'fibo'" #: ../../tutorial/modules.rst:62 -#, fuzzy msgid "" "If you intend to use a function often you can assign it to a local name::" msgstr "" @@ -167,7 +156,6 @@ msgstr "" " محلی اختصاص دهید::" #: ../../tutorial/modules.rst:64 -#, fuzzy msgid "" ">>> fib = fibo.fib\n" ">>> fib(500)\n" @@ -178,12 +166,10 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:72 -#, fuzzy msgid "More on Modules" msgstr "بیشتر در مورد ماژول ها" #: ../../tutorial/modules.rst:74 -#, fuzzy msgid "" "A module can contain executable statements as well as function definitions. " "These statements are intended to initialize the module. They are executed " @@ -196,7 +182,6 @@ msgstr "" "همچنین اگر فایل به صورت یک اسکریپت اجرا شود, نیز اجرا خواهند شد.)" #: ../../tutorial/modules.rst:79 -#, fuzzy msgid "" "Each module has its own private namespace, which is used as the global " "namespace by all functions defined in the module. Thus, the author of a " @@ -213,7 +198,6 @@ msgstr "" "متغیرهای سراسری یک ماژول دسترسی پیدا کنید." #: ../../tutorial/modules.rst:86 -#, fuzzy msgid "" "Modules can import other modules. It is customary but not required to place" " all :keyword:`import` statements at the beginning of a module (or script, " @@ -228,7 +212,6 @@ msgstr "" "شوند." #: ../../tutorial/modules.rst:91 -#, fuzzy msgid "" "There is a variant of the :keyword:`import` statement that imports names " "from a module directly into the importing module's namespace. For example::" @@ -237,7 +220,6 @@ msgstr "" "به فضای نام ماژول واردکننده وارد می کند. برای مثال::" #: ../../tutorial/modules.rst:94 -#, fuzzy msgid "" ">>> from fibo import fib, fib2\n" ">>> fib(500)\n" @@ -248,7 +230,6 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:98 -#, fuzzy msgid "" "This does not introduce the module name from which the imports are taken in " "the local namespace (so in the example, ``fibo`` is not defined)." @@ -257,14 +238,12 @@ msgstr "" "کند (بنابراین در مثال, ``fibo`` تعریف نشده است)." #: ../../tutorial/modules.rst:101 -#, fuzzy msgid "There is even a variant to import all names that a module defines::" msgstr "" "حتی یک نوع خاص برای وارد کردن تمامی اسامی که یک ماژول تعریف می کند وجود " "دارد::" #: ../../tutorial/modules.rst:103 -#, fuzzy msgid "" ">>> from fibo import *\n" ">>> fib(500)\n" @@ -275,7 +254,6 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:107 -#, fuzzy msgid "" "This imports all names except those beginning with an underscore (``_``). In" " most cases Python programmers do not use this facility since it introduces " @@ -288,7 +266,6 @@ msgstr "" " شدن بعضی از چیزهایی شود که شما قبلاً تعریف کرده اید." #: ../../tutorial/modules.rst:112 -#, fuzzy msgid "" "Note that in general the practice of importing ``*`` from a module or " "package is frowned upon, since it often causes poorly readable code. " @@ -300,7 +277,6 @@ msgstr "" "ندارد." #: ../../tutorial/modules.rst:116 -#, fuzzy msgid "" "If the module name is followed by :keyword:`!as`, then the name following " ":keyword:`!as` is bound directly to the imported module." @@ -309,7 +285,6 @@ msgstr "" "دنبال می شود به طور مستقیم به ماژول وارد شده متصل می شود." #: ../../tutorial/modules.rst:121 -#, fuzzy msgid "" ">>> import fibo as fib\n" ">>> fib.fib(500)\n" @@ -320,7 +295,6 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:125 -#, fuzzy msgid "" "This is effectively importing the module in the same way that ``import " "fibo`` will do, with the only difference of it being available as ``fib``." @@ -329,7 +303,6 @@ msgstr "" "می کند، با تنها تفاوت آن که به عنوان ``fib`` در دسترس است." #: ../../tutorial/modules.rst:128 -#, fuzzy msgid "" "It can also be used when utilising :keyword:`from` with similar effects::" msgstr "" @@ -337,7 +310,6 @@ msgstr "" "استفاده قرار گیرد::" #: ../../tutorial/modules.rst:130 -#, fuzzy msgid "" ">>> from fibo import fib as fibonacci\n" ">>> fibonacci(500)\n" @@ -348,7 +320,6 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377" #: ../../tutorial/modules.rst:137 -#, fuzzy msgid "" "For efficiency reasons, each module is only imported once per interpreter " "session. Therefore, if you change your modules, you must restart the " @@ -363,22 +334,18 @@ msgstr "" "importlib.reload(modulename)``." #: ../../tutorial/modules.rst:147 -#, fuzzy msgid "Executing modules as scripts" msgstr "اجرای ماژول ها به صورت اسکریپت" #: ../../tutorial/modules.rst:149 -#, fuzzy msgid "When you run a Python module with ::" msgstr "وقتی یک ماژول پایتون را اجرا می کنید با ::" #: ../../tutorial/modules.rst:151 -#, fuzzy msgid "python fibo.py " msgstr "python fibo.py " #: ../../tutorial/modules.rst:153 -#, fuzzy msgid "" "the code in the module will be executed, just as if you imported it, but " "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " @@ -389,7 +356,6 @@ msgstr "" "در انتهای ماژول خود::" #: ../../tutorial/modules.rst:157 -#, fuzzy msgid "" "if __name__ == \"__main__\":\n" " import sys\n" @@ -400,7 +366,6 @@ msgstr "" " fib(int(sys.argv[1]))" #: ../../tutorial/modules.rst:161 -#, fuzzy msgid "" "you can make the file usable as a script as well as an importable module, " "because the code that parses the command line only runs if the module is " @@ -412,7 +377,6 @@ msgstr "" " شود:" #: ../../tutorial/modules.rst:165 -#, fuzzy msgid "" "$ python fibo.py 50\n" "0 1 1 2 3 5 8 13 21 34" @@ -421,12 +385,10 @@ msgstr "" "0 1 1 2 3 5 8 13 21 34" #: ../../tutorial/modules.rst:170 -#, fuzzy msgid "If the module is imported, the code is not run::" msgstr "اگر ماژول ایمپورت شده باشد، کد اجرا نمی شود::" #: ../../tutorial/modules.rst:172 -#, fuzzy msgid "" ">>> import fibo\n" ">>>" @@ -435,7 +397,6 @@ msgstr "" ">>>" #: ../../tutorial/modules.rst:175 -#, fuzzy msgid "" "This is often used either to provide a convenient user interface to a " "module, or for testing purposes (running the module as a script executes a " @@ -446,12 +407,10 @@ msgstr "" "شود." #: ../../tutorial/modules.rst:182 -#, fuzzy msgid "The Module Search Path" msgstr "مسیر جستجوی ماژول" #: ../../tutorial/modules.rst:186 -#, fuzzy msgid "" "When a module named :mod:`!spam` is imported, the interpreter first searches" " for a built-in module with that name. These module names are listed in " @@ -467,7 +426,6 @@ msgstr "" "مقداردهی اولیه می شود:" #: ../../tutorial/modules.rst:192 -#, fuzzy msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." @@ -476,7 +434,6 @@ msgstr "" "مشخص نشده است)." #: ../../tutorial/modules.rst:194 -#, fuzzy msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the" " shell variable :envvar:`PATH`)." @@ -485,7 +442,6 @@ msgstr "" "شِل :envvar:`PATH`)." #: ../../tutorial/modules.rst:196 -#, fuzzy msgid "" "The installation-dependent default (by convention including a ``site-" "packages`` directory, handled by the :mod:`site` module)." @@ -494,12 +450,10 @@ msgstr "" "توسط ماژول :mod:`site` مدیریت می شود)." #: ../../tutorial/modules.rst:199 -#, fuzzy msgid "More details are at :ref:`sys-path-init`." msgstr "جزئیات بیشتر در :ref:`sys-path-init` قرار دارد." #: ../../tutorial/modules.rst:202 -#, fuzzy msgid "" "On file systems which support symlinks, the directory containing the input " "script is calculated after the symlink is followed. In other words the " @@ -510,7 +464,6 @@ msgstr "" " سیملینک به مسیر جستجوی ماژول اضافه می شود." #: ../../tutorial/modules.rst:206 -#, fuzzy msgid "" "After initialization, Python programs can modify :data:`sys.path`. The " "directory containing the script being run is placed at the beginning of the " @@ -527,12 +480,10 @@ msgstr "" " بخش :ref:`tut-standardmodules` مراجعه کنید." #: ../../tutorial/modules.rst:219 -#, fuzzy msgid "\"Compiled\" Python files" msgstr "فایل های پایتون \"کامپایل شده\"" #: ../../tutorial/modules.rst:221 -#, fuzzy msgid "" "To speed up loading modules, Python caches the compiled version of each " "module in the ``__pycache__`` directory under the name " @@ -552,7 +503,6 @@ msgstr "" "می دهد که در کنار هم وجود داشته باشند." #: ../../tutorial/modules.rst:229 -#, fuzzy msgid "" "Python checks the modification date of the source against the compiled " "version to see if it's out of date and needs to be recompiled. This is a " @@ -567,7 +517,6 @@ msgstr "" "شود." #: ../../tutorial/modules.rst:234 -#, fuzzy msgid "" "Python does not check the cache in two circumstances. First, it always " "recompiles and does not store the result for the module that's loaded " @@ -583,12 +532,10 @@ msgstr "" "شده باید در دایرکتوری منبع باشد و نباید ماژول منبعی وجود داشته باشد." #: ../../tutorial/modules.rst:241 -#, fuzzy msgid "Some tips for experts:" msgstr "نکاتی برای متخصصان:" #: ../../tutorial/modules.rst:243 -#, fuzzy msgid "" "You can use the :option:`-O` or :option:`-OO` switches on the Python command" " to reduce the size of a compiled module. The ``-O`` switch removes assert " @@ -608,7 +555,6 @@ msgstr "" "بهینه سازی را تغییر دهند." #: ../../tutorial/modules.rst:251 -#, fuzzy msgid "" "A program doesn't run any faster when it is read from a ``.pyc`` file than " "when it is read from a ``.py`` file; the only thing that's faster about " @@ -619,7 +565,6 @@ msgstr "" "``.pyc`` سریع تر است، سرعت بارگذاری آنهاست." #: ../../tutorial/modules.rst:255 -#, fuzzy msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." @@ -628,7 +573,6 @@ msgstr "" "دایرکتوری ایجاد کند." #: ../../tutorial/modules.rst:258 -#, fuzzy msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in :pep:`3147`." @@ -637,12 +581,10 @@ msgstr "" ":pep:`3147` وجود دارد." #: ../../tutorial/modules.rst:265 -#, fuzzy msgid "Standard Modules" msgstr "ماژول های استاندارد" #: ../../tutorial/modules.rst:269 -#, fuzzy msgid "" "Python comes with a library of standard modules, described in a separate " "document, the Python Library Reference (\"Library Reference\" hereafter). " @@ -668,7 +610,6 @@ msgstr "" "به عنوان پرامپت اولیه و ثانویه مورد استفاده قرار می گیرند را تعریف می کنند::" #: ../../tutorial/modules.rst:281 -#, fuzzy msgid "" ">>> import sys\n" ">>> sys.ps1\n" @@ -691,14 +632,12 @@ msgstr "" "C>" #: ../../tutorial/modules.rst:292 -#, fuzzy msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." msgstr "این دو متغیر تنها زمانی تعریف می شوند که مفسر در حالت تعاملی باشد." #: ../../tutorial/modules.rst:294 -#, fuzzy msgid "" "The variable ``sys.path`` is a list of strings that determines the " "interpreter's search path for modules. It is initialized to a default path " @@ -713,7 +652,6 @@ msgstr "" "استفاده از عملیات استاندارد لیست آن را تغییر دهید::" #: ../../tutorial/modules.rst:300 -#, fuzzy msgid "" ">>> import sys\n" ">>> sys.path.append('/ufs/guido/lib/python')" @@ -722,12 +660,10 @@ msgstr "" ">>> sys.path.append('/ufs/guido/lib/python')" #: ../../tutorial/modules.rst:307 -#, fuzzy msgid "The :func:`dir` Function" msgstr "تابع :func:`dir`" #: ../../tutorial/modules.rst:309 -#, fuzzy msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" @@ -736,7 +672,6 @@ msgstr "" "استفاده می شود. این تابع یک لیست مرتب شده از رشته ها را برمی گرداند::" #: ../../tutorial/modules.rst:312 -#, fuzzy msgid "" ">>> import fibo, sys\n" ">>> dir(fibo)\n" @@ -791,7 +726,6 @@ msgstr "" " 'warnoptions']" #: ../../tutorial/modules.rst:338 -#, fuzzy msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "" @@ -799,7 +733,6 @@ msgstr "" "کند::" #: ../../tutorial/modules.rst:340 -#, fuzzy msgid "" ">>> a = [1, 2, 3, 4, 5]\n" ">>> import fibo\n" @@ -814,7 +747,6 @@ msgstr "" "['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']" #: ../../tutorial/modules.rst:346 -#, fuzzy msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" @@ -822,7 +754,6 @@ msgstr "" "و غیره." #: ../../tutorial/modules.rst:350 -#, fuzzy msgid "" ":func:`dir` does not list the names of built-in functions and variables. If" " you want a list of those, they are defined in the standard module " @@ -832,7 +763,6 @@ msgstr "" " از آن ها هستید، آن ها در ماژول استاندارد :mod:`builtins` تعریف شده اند::" #: ../../tutorial/modules.rst:354 -#, fuzzy msgid "" ">>> import builtins\n" ">>> dir(builtins)\n" @@ -899,12 +829,10 @@ msgstr "" " 'zip']" #: ../../tutorial/modules.rst:389 -#, fuzzy msgid "Packages" msgstr "بسته ها" #: ../../tutorial/modules.rst:391 -#, fuzzy msgid "" "Packages are a way of structuring Python's module namespace by using " "\"dotted module names\". For example, the module name :mod:`!A.B` " @@ -923,7 +851,6 @@ msgstr "" "های ماژول یکدیگر بی نیاز می کند." #: ../../tutorial/modules.rst:399 -#, fuzzy msgid "" "Suppose you want to design a collection of modules (a \"package\") for the " "uniform handling of sound files and sound data. There are many different " @@ -950,7 +877,6 @@ msgstr "" "است):" #: ../../tutorial/modules.rst:410 -#, fuzzy msgid "" "sound/ Top-level package\n" " __init__.py Initialize the sound package\n" @@ -1001,7 +927,6 @@ msgstr "" " ..." #: ../../tutorial/modules.rst:436 -#, fuzzy msgid "" "When importing the package, Python searches through the directories on " "``sys.path`` looking for the package subdirectory." @@ -1010,7 +935,6 @@ msgstr "" "جستجو می کند تا زیردایرکتوری بسته را پیدا کند." #: ../../tutorial/modules.rst:439 -#, fuzzy msgid "" "The :file:`__init__.py` files are required to make Python treat directories " "containing the file as packages (unless using a :term:`namespace package`, a" @@ -1030,7 +954,6 @@ msgstr "" "داده خواهد شد ست کند." #: ../../tutorial/modules.rst:447 -#, fuzzy msgid "" "Users of the package can import individual modules from the package, for " "example::" @@ -1039,12 +962,10 @@ msgstr "" " به عنوان مثال::" #: ../../tutorial/modules.rst:450 -#, fuzzy msgid "import sound.effects.echo" msgstr "import sound.effects.echo" #: ../../tutorial/modules.rst:452 -#, fuzzy msgid "" "This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" @@ -1053,22 +974,18 @@ msgstr "" " به آن ارجاع داده شود. ::" #: ../../tutorial/modules.rst:455 -#, fuzzy msgid "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)" #: ../../tutorial/modules.rst:457 -#, fuzzy msgid "An alternative way of importing the submodule is::" msgstr "راه دیگری برای وارد کردن زیرماژول وجود دارد::" #: ../../tutorial/modules.rst:459 -#, fuzzy msgid "from sound.effects import echo" msgstr "from sound.effects import echo" #: ../../tutorial/modules.rst:461 -#, fuzzy msgid "" "This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" @@ -1077,12 +994,10 @@ msgstr "" "را در دسترس قرار می دهد، بنابراین می توان به صورت زیر از آن استفاده کرد::" #: ../../tutorial/modules.rst:464 -#, fuzzy msgid "echo.echofilter(input, output, delay=0.7, atten=4)" msgstr "echo.echofilter(input, output, delay=0.7, atten=4)" #: ../../tutorial/modules.rst:466 -#, fuzzy msgid "" "Yet another variation is to import the desired function or variable " "directly::" @@ -1090,12 +1005,10 @@ msgstr "" "یک تغییر دیگر این است که تابع یا متغیر مورد نظر را به طور مستقیم وارد کنید::" #: ../../tutorial/modules.rst:468 -#, fuzzy msgid "from sound.effects.echo import echofilter" msgstr "from sound.effects.echo import echofilter" #: ../../tutorial/modules.rst:470 -#, fuzzy msgid "" "Again, this loads the submodule :mod:`!echo`, but this makes its function " ":func:`!echofilter` directly available::" @@ -1104,12 +1017,10 @@ msgstr "" ":func:`!echofilter` به طور مستقیم در دسترس قرار می گیرد::" #: ../../tutorial/modules.rst:473 -#, fuzzy msgid "echofilter(input, output, delay=0.7, atten=4)" msgstr "echofilter(input, output, delay=0.7, atten=4)" #: ../../tutorial/modules.rst:475 -#, fuzzy msgid "" "Note that when using ``from package import item``, the item can be either a " "submodule (or subpackage) of the package, or some other name defined in the" @@ -1126,7 +1037,6 @@ msgstr "" ":exc:`ImportError` ایجاد می شود." #: ../../tutorial/modules.rst:482 -#, fuzzy msgid "" "Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " "item except for the last must be a package; the last item can be a module or" @@ -1139,12 +1049,10 @@ msgstr "" "باشد." #: ../../tutorial/modules.rst:491 -#, fuzzy msgid "Importing \\* From a Package" msgstr "وارد کردن \\* از یک بسته" #: ../../tutorial/modules.rst:495 -#, fuzzy msgid "" "Now what happens when the user writes ``from sound.effects import *``? " "Ideally, one would hope that this somehow goes out to the filesystem, finds " @@ -1160,7 +1068,6 @@ msgstr "" "است، رخ دهند." #: ../../tutorial/modules.rst:501 -#, fuzzy msgid "" "The only solution is for the package author to provide an explicit index of " "the package. The :keyword:`import` statement uses the following convention:" @@ -1183,12 +1090,10 @@ msgstr "" "شامل شود::" #: ../../tutorial/modules.rst:511 -#, fuzzy msgid "__all__ = [\"echo\", \"surround\", \"reverse\"]" msgstr "__all__ = [\"echo\", \"surround\", \"reverse\"]" #: ../../tutorial/modules.rst:513 -#, fuzzy msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`!sound.effects` package." @@ -1197,7 +1102,6 @@ msgstr "" " گذاری شده از بسته :mod:`!sound.effects` را وارد می کند." #: ../../tutorial/modules.rst:516 -#, fuzzy msgid "" "Be aware that submodules might become shadowed by locally defined names. For" " example, if you added a ``reverse`` function to the " @@ -1214,7 +1118,6 @@ msgstr "" "تعریف شده، تحت الشعاع قرار گرفته است::" #: ../../tutorial/modules.rst:523 -#, fuzzy msgid "" "__all__ = [\n" " \"echo\", # refers to the 'echo.py' file\n" @@ -1235,7 +1138,6 @@ msgstr "" " return msg[::-1] # in the case of a 'from sound.effects import *'" #: ../../tutorial/modules.rst:532 -#, fuzzy msgid "" "If ``__all__`` is not defined, the statement ``from sound.effects import *``" " does *not* import all submodules from the package :mod:`!sound.effects` " @@ -1258,7 +1160,6 @@ msgstr "" "بگیرید::" #: ../../tutorial/modules.rst:541 -#, fuzzy msgid "" "import sound.effects.echo\n" "import sound.effects.surround\n" @@ -1269,7 +1170,6 @@ msgstr "" "from sound.effects import *" #: ../../tutorial/modules.rst:545 -#, fuzzy msgid "" "In this example, the :mod:`!echo` and :mod:`!surround` modules are imported " "in the current namespace because they are defined in the " @@ -1282,7 +1182,6 @@ msgstr "" "تعریف شده باشد کار می کند.)" #: ../../tutorial/modules.rst:550 -#, fuzzy msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " @@ -1293,7 +1192,6 @@ msgstr "" " از این روش در کد تولیدی همچنان به عنوان یک عمل نامناسب در نظر گرفته می شود." #: ../../tutorial/modules.rst:554 -#, fuzzy msgid "" "Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " @@ -1306,12 +1204,10 @@ msgstr "" " باشد." #: ../../tutorial/modules.rst:563 -#, fuzzy msgid "Intra-package References" msgstr "ارجاعات درون بسته ای" #: ../../tutorial/modules.rst:565 -#, fuzzy msgid "" "When packages are structured into subpackages (as with the :mod:`!sound` " "package in the example), you can use absolute imports to refer to submodules" @@ -1327,7 +1223,6 @@ msgstr "" "تواند از ``from sound.effects import echo`` استفاده کند." #: ../../tutorial/modules.rst:571 -#, fuzzy msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " @@ -1340,7 +1235,6 @@ msgstr "" "ماژول :mod:`!surround`، ممکن است استفاده کنید::" #: ../../tutorial/modules.rst:576 -#, fuzzy msgid "" "from . import echo\n" "from .. import formats\n" @@ -1351,7 +1245,6 @@ msgstr "" "from ..filters import equalizer" #: ../../tutorial/modules.rst:580 -#, fuzzy msgid "" "Note that relative imports are based on the name of the current module. " "Since the name of the main module is always ``\"__main__\"``, modules " @@ -1364,12 +1257,10 @@ msgstr "" "واردات مطلق استفاده کنند." #: ../../tutorial/modules.rst:586 -#, fuzzy msgid "Packages in Multiple Directories" msgstr "پکیج ها در چندین دایرکتوری" #: ../../tutorial/modules.rst:588 -#, fuzzy msgid "" "Packages support one more special attribute, :attr:`~module.__path__`. This" " is initialized to be a :term:`sequence` of strings containing the name of " @@ -1384,7 +1275,6 @@ msgstr "" "برای ماژول ها و زیربسته های موجود در بسته را تحت تأثیر قرار می دهد." #: ../../tutorial/modules.rst:595 -#, fuzzy msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." @@ -1393,12 +1283,10 @@ msgstr "" "های موجود در یک پکیج استفاده شود." #: ../../tutorial/modules.rst:600 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../tutorial/modules.rst:601 -#, fuzzy msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition adds the function name to " @@ -1409,22 +1297,18 @@ msgstr "" #: ../../tutorial/modules.rst:184 ../../tutorial/modules.rst:267 #: ../../tutorial/modules.rst:348 -#, fuzzy msgid "module" msgstr "ماژول" #: ../../tutorial/modules.rst:184 -#, fuzzy msgid "search" msgstr "جستجو" #: ../../tutorial/modules.rst:184 -#, fuzzy msgid "path" msgstr "مسیر" #: ../../tutorial/modules.rst:267 -#, fuzzy msgid "sys" msgstr "" "سیستم: ماژولی در پایتون که به شما اجازه می دهد با ویژگی های مختلف سیستم در تعامل باشید.\n" @@ -1432,13 +1316,11 @@ msgstr "" "ماژول `sys` تعدادی پارامتر و توابع را تعریف می کند که می توانید برای دسترسی و کنترل اپلیکیشن های پایتون از آنها استفاده کنید. برخی از آنها عبارتند از: `sys.argv` که لیستی از آرگومان های خط فرمان را برمی گرداند، و ویژگی `sys.exit()` که اجرا را خاتمه می دهد و وضعیت خروج را تعیین می کند." #: ../../tutorial/modules.rst:348 -#, fuzzy msgid "builtins" msgstr "" "تابع های داخلی Python که به صورت پیش فرض در تمام محیط های Python در دسترس " "هستند و نیازی به وارد کردن ماژول خاصی ندارند." #: ../../tutorial/modules.rst:493 -#, fuzzy msgid "__all__" msgstr "__all__" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index b88c186b4..1e51d6de8 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,24 +21,20 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/stdlib.rst:5 -#, fuzzy msgid "Brief Tour of the Standard Library" msgstr "مروری کوتاه بر کتابخانه استاندارد" #: ../../tutorial/stdlib.rst:11 -#, fuzzy msgid "Operating System Interface" msgstr "رابط کاربری سیستم عامل" #: ../../tutorial/stdlib.rst:13 -#, fuzzy msgid "" "The :mod:`os` module provides dozens of functions for interacting with the " "operating system::" msgstr "ماژول :mod:`os` ده ها تابع برای تعامل با سیستم عامل فراهم می کند::" #: ../../tutorial/stdlib.rst:16 -#, fuzzy msgid "" ">>> import os\n" ">>> os.getcwd() # Return the current working directory\n" @@ -56,7 +51,6 @@ msgstr "" "0" #: ../../tutorial/stdlib.rst:23 -#, fuzzy msgid "" "Be sure to use the ``import os`` style instead of ``from os import *``. " "This will keep :func:`os.open` from shadowing the built-in :func:`open` " @@ -67,7 +61,6 @@ msgstr "" "جلوگیری می کند که به شکل بسیار متفاوتی عمل می کند." #: ../../tutorial/stdlib.rst:29 -#, fuzzy msgid "" "The built-in :func:`dir` and :func:`help` functions are useful as " "interactive aids for working with large modules like :mod:`os`::" @@ -76,7 +69,6 @@ msgstr "" "ماژول های بزرگ مانند :mod:`os` مفید هستند::" #: ../../tutorial/stdlib.rst:32 -#, fuzzy msgid "" ">>> import os\n" ">>> dir(os)\n" @@ -91,7 +83,6 @@ msgstr "" "<یک صفحه راهنمای جامع که از مستندات داخلی ماژول ایجاد شده است را برمی گرداند>" #: ../../tutorial/stdlib.rst:38 -#, fuzzy msgid "" "For daily file and directory management tasks, the :mod:`shutil` module " "provides a higher level interface that is easier to use::" @@ -100,7 +91,6 @@ msgstr "" " ارائه می دهد که استفاده از آن آسان تر است::" #: ../../tutorial/stdlib.rst:41 -#, fuzzy msgid "" ">>> import shutil\n" ">>> shutil.copyfile('data.db', 'archive.db')\n" @@ -115,12 +105,10 @@ msgstr "" "'installdir'" #: ../../tutorial/stdlib.rst:51 -#, fuzzy msgid "File Wildcards" msgstr "کارت های جایگزین فایل" #: ../../tutorial/stdlib.rst:53 -#, fuzzy msgid "" "The :mod:`glob` module provides a function for making file lists from " "directory wildcard searches::" @@ -129,7 +117,6 @@ msgstr "" "دایرکتوری فراهم می کند::" #: ../../tutorial/stdlib.rst:56 -#, fuzzy msgid "" ">>> import glob\n" ">>> glob.glob('*.py')\n" @@ -140,12 +127,10 @@ msgstr "" "['primes.py', 'random.py', 'quote.py']" #: ../../tutorial/stdlib.rst:64 -#, fuzzy msgid "Command Line Arguments" msgstr "آرگومان های خط فرمان" #: ../../tutorial/stdlib.rst:66 -#, fuzzy msgid "" "Common utility scripts often need to process command line arguments. These " "arguments are stored in the :mod:`sys` module's *argv* attribute as a list." @@ -156,7 +141,6 @@ msgstr "" "می شوند. به عنوان مثال، بیایید فایل زیر :file:`demo.py` را در نظر بگیریم::" #: ../../tutorial/stdlib.rst:70 -#, fuzzy msgid "" "# File demo.py\n" "import sys\n" @@ -167,7 +151,6 @@ msgstr "" "print(sys.argv)" #: ../../tutorial/stdlib.rst:74 -#, fuzzy msgid "" "Here is the output from running ``python demo.py one two three`` at the " "command line::" @@ -175,12 +158,10 @@ msgstr "" "در اینجا خروجی اجرای ``python demo.py one two three`` در خط فرمان آمده است::" #: ../../tutorial/stdlib.rst:77 -#, fuzzy msgid "['demo.py', 'one', 'two', 'three']" msgstr "['demo.py', 'one', 'two', 'three']" #: ../../tutorial/stdlib.rst:79 -#, fuzzy msgid "" "The :mod:`argparse` module provides a more sophisticated mechanism to " "process command line arguments. The following script extracts one or more " @@ -191,7 +172,6 @@ msgstr "" "نمایش استخراج می کند::" #: ../../tutorial/stdlib.rst:83 -#, fuzzy msgid "" "import argparse\n" "\n" @@ -214,7 +194,6 @@ msgstr "" "print(args)" #: ../../tutorial/stdlib.rst:93 -#, fuzzy msgid "" "When run at the command line with ``python top.py --lines=5 alpha.txt " "beta.txt``, the script sets ``args.lines`` to ``5`` and ``args.filenames`` " @@ -225,12 +204,10 @@ msgstr "" "``['alpha.txt', 'beta.txt']`` تنظیم می کند." #: ../../tutorial/stdlib.rst:101 -#, fuzzy msgid "Error Output Redirection and Program Termination" msgstr "انتقال خروجی خطا و خاتمه برنامه" #: ../../tutorial/stdlib.rst:103 -#, fuzzy msgid "" "The :mod:`sys` module also has attributes for *stdin*, *stdout*, and " "*stderr*. The latter is useful for emitting warnings and error messages to " @@ -241,7 +218,6 @@ msgstr "" " *stdout* هدایت شده است قابل مشاهده کند::" #: ../../tutorial/stdlib.rst:107 -#, fuzzy msgid "" ">>> sys.stderr.write('Warning, log file not found starting a new one\\n')\n" "Warning, log file not found starting a new one" @@ -250,18 +226,15 @@ msgstr "" "هشدار، فایل گزارش پیدا نشد، یک فایل جدید شروع می شود" #: ../../tutorial/stdlib.rst:110 -#, fuzzy msgid "The most direct way to terminate a script is to use ``sys.exit()``." msgstr "" "مستقیم ترین راه برای پایان دادن به یک اسکریپت استفاده از ``sys.exit()`` است." #: ../../tutorial/stdlib.rst:116 -#, fuzzy msgid "String Pattern Matching" msgstr "تطبیق الگوهای رشته ای" #: ../../tutorial/stdlib.rst:118 -#, fuzzy msgid "" "The :mod:`re` module provides regular expression tools for advanced string " "processing. For complex matching and manipulation, regular expressions offer" @@ -272,7 +245,6 @@ msgstr "" "بهینه ارائه می دهند::" #: ../../tutorial/stdlib.rst:122 -#, fuzzy msgid "" ">>> import re\n" ">>> re.findall(r'\\bf[a-z]*', 'which foot or hand fell fastest')\n" @@ -287,7 +259,6 @@ msgstr "" "'cat in the hat'" #: ../../tutorial/stdlib.rst:128 -#, fuzzy msgid "" "When only simple capabilities are needed, string methods are preferred " "because they are easier to read and debug::" @@ -296,7 +267,6 @@ msgstr "" "خواندن و اشکال زدایی آن ها آسان تر است::" #: ../../tutorial/stdlib.rst:131 -#, fuzzy msgid "" ">>> 'tea for too'.replace('too', 'two')\n" "'tea for two'" @@ -305,12 +275,10 @@ msgstr "" "'tea for two'" #: ../../tutorial/stdlib.rst:138 -#, fuzzy msgid "Mathematics" msgstr "ریاضیات" #: ../../tutorial/stdlib.rst:140 -#, fuzzy msgid "" "The :mod:`math` module gives access to the underlying C library functions " "for floating-point math::" @@ -319,7 +287,6 @@ msgstr "" " دهد::" #: ../../tutorial/stdlib.rst:143 -#, fuzzy msgid "" ">>> import math\n" ">>> math.cos(math.pi / 4)\n" @@ -334,13 +301,11 @@ msgstr "" "10.0" #: ../../tutorial/stdlib.rst:149 -#, fuzzy msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" "ماژول :mod:`random` ابزارهایی را برای انجام انتخاب های تصادفی فراهم می کند::" #: ../../tutorial/stdlib.rst:151 -#, fuzzy msgid "" ">>> import random\n" ">>> random.choice(['apple', 'pear', 'banana'])\n" @@ -363,7 +328,6 @@ msgstr "" "4" #: ../../tutorial/stdlib.rst:161 -#, fuzzy msgid "" "The :mod:`statistics` module calculates basic statistical properties (the " "mean, median, variance, etc.) of numeric data::" @@ -372,7 +336,6 @@ msgstr "" "داده های عددی را محاسبه می کند::" #: ../../tutorial/stdlib.rst:164 -#, fuzzy msgid "" ">>> import statistics\n" ">>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]\n" @@ -393,7 +356,6 @@ msgstr "" "1.3720238095238095" #: ../../tutorial/stdlib.rst:173 -#, fuzzy msgid "" "The SciPy project has many other modules for numerical " "computations." @@ -401,12 +363,10 @@ msgstr "" "پروژه SciPy شامل ماژول های بسیاری برای محاسبات عددی است." #: ../../tutorial/stdlib.rst:179 -#, fuzzy msgid "Internet Access" msgstr "دسترسی به اینترنت" #: ../../tutorial/stdlib.rst:181 -#, fuzzy msgid "" "There are a number of modules for accessing the internet and processing " "internet protocols. Two of the simplest are :mod:`urllib.request` for " @@ -417,7 +377,6 @@ msgstr "" "URLها و :mod:`smtplib` برای ارسال ایمیل هستند::" #: ../../tutorial/stdlib.rst:185 -#, fuzzy msgid "" ">>> from urllib.request import urlopen\n" ">>> with urlopen('http://worldtimeapi.org/api/timezone/etc/UTC.txt') as response:\n" @@ -458,7 +417,6 @@ msgstr "" ">>> server.quit()" #: ../../tutorial/stdlib.rst:204 -#, fuzzy msgid "" "(Note that the second example needs a mailserver running on localhost.)" msgstr "" @@ -466,12 +424,10 @@ msgstr "" "«localhost» نیاز دارد.)" #: ../../tutorial/stdlib.rst:210 -#, fuzzy msgid "Dates and Times" msgstr "Dates and Times" #: ../../tutorial/stdlib.rst:212 -#, fuzzy msgid "" "The :mod:`datetime` module supplies classes for manipulating dates and times" " in both simple and complex ways. While date and time arithmetic is " @@ -485,7 +441,6 @@ msgstr "" "این ماژول همچنین از اشیایی که به منطقه زمانی آگاه هستند پشتیبانی می کند. ::" #: ../../tutorial/stdlib.rst:218 -#, fuzzy msgid "" ">>> # dates are easily constructed and formatted\n" ">>> from datetime import date\n" @@ -516,12 +471,10 @@ msgstr "" "14368" #: ../../tutorial/stdlib.rst:236 -#, fuzzy msgid "Data Compression" msgstr "فشرده سازی داده ها" #: ../../tutorial/stdlib.rst:238 -#, fuzzy msgid "" "Common data archiving and compression formats are directly supported by " "modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, " @@ -532,7 +485,6 @@ msgstr "" ":mod:`tarfile` پشتیبانی می شوند. ::" #: ../../tutorial/stdlib.rst:242 -#, fuzzy msgid "" ">>> import zlib\n" ">>> s = b'witch which has which witches wrist watch'\n" @@ -559,12 +511,10 @@ msgstr "" "226805979" #: ../../tutorial/stdlib.rst:258 -#, fuzzy msgid "Performance Measurement" msgstr "اندازه گیری عملکرد" #: ../../tutorial/stdlib.rst:260 -#, fuzzy msgid "" "Some Python users develop a deep interest in knowing the relative " "performance of different approaches to the same problem. Python provides a " @@ -575,7 +525,6 @@ msgstr "" " به طور فوری پاسخ می دهد." #: ../../tutorial/stdlib.rst:264 -#, fuzzy msgid "" "For example, it may be tempting to use the tuple packing and unpacking " "feature instead of the traditional approach to swapping arguments. The " @@ -586,7 +535,6 @@ msgstr "" " ماژول :mod:`timeit` به سرعت یک مزیت عملکردی نسبی را نشان می دهد::" #: ../../tutorial/stdlib.rst:268 -#, fuzzy msgid "" ">>> from timeit import Timer\n" ">>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()\n" @@ -601,7 +549,6 @@ msgstr "" "0.54962537085770791" #: ../../tutorial/stdlib.rst:274 -#, fuzzy msgid "" "In contrast to :mod:`timeit`'s fine level of granularity, the :mod:`profile`" " and :mod:`pstats` modules provide tools for identifying time critical " @@ -612,12 +559,10 @@ msgstr "" "بزرگتر کد ارائه می دهند." #: ../../tutorial/stdlib.rst:282 -#, fuzzy msgid "Quality Control" msgstr "کنترل کیفیت" #: ../../tutorial/stdlib.rst:284 -#, fuzzy msgid "" "One approach for developing high quality software is to write tests for each" " function as it is developed and to run those tests frequently during the " @@ -627,7 +572,6 @@ msgstr "" "زمان توسعه و اجرای مکرر آن ها در طی فرآیند توسعه است." #: ../../tutorial/stdlib.rst:288 -#, fuzzy msgid "" "The :mod:`doctest` module provides a tool for scanning a module and " "validating tests embedded in a program's docstrings. Test construction is " @@ -643,7 +587,6 @@ msgstr "" "مطمئن شود که کد همچنان با مستندات همخوانی دارد::" #: ../../tutorial/stdlib.rst:295 -#, fuzzy msgid "" "def average(values):\n" " \"\"\"Computes the arithmetic mean of a list of numbers.\n" @@ -668,7 +611,6 @@ msgstr "" "doctest.testmod() # automatically validate the embedded tests" #: ../../tutorial/stdlib.rst:306 -#, fuzzy msgid "" "The :mod:`unittest` module is not as effortless as the :mod:`doctest` " "module, but it allows a more comprehensive set of tests to be maintained in " @@ -678,7 +620,6 @@ msgstr "" "تا مجموعه جامع تری از تست ها را در یک فایل جداگانه نگهداری کنید::" #: ../../tutorial/stdlib.rst:310 -#, fuzzy msgid "" "import unittest\n" "\n" @@ -709,12 +650,10 @@ msgstr "" "unittest.main() # Calling from the command line invokes all tests" #: ../../tutorial/stdlib.rst:328 -#, fuzzy msgid "Batteries Included" msgstr "شامل بودن کتابخانه ها" #: ../../tutorial/stdlib.rst:330 -#, fuzzy msgid "" "Python has a \"batteries included\" philosophy. This is best seen through " "the sophisticated and robust capabilities of its larger packages. For " @@ -724,7 +663,6 @@ msgstr "" "قابلیت های پیشرفته و قوی بسته های بزرگ تر آن دیده می شود. برای مثال:" #: ../../tutorial/stdlib.rst:333 -#, fuzzy msgid "" "The :mod:`xmlrpc.client` and :mod:`xmlrpc.server` modules make implementing " "remote procedure calls into an almost trivial task. Despite the modules' " @@ -735,7 +673,6 @@ msgstr "" "ماژول ها، هیچ گونه دانش مستقیم یا مدیریت XML مورد نیاز نیست." #: ../../tutorial/stdlib.rst:337 -#, fuzzy msgid "" "The :mod:`email` package is a library for managing email messages, including" " MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " @@ -751,7 +688,6 @@ msgstr "" "پیاده سازی پروتکل های رمزگذاری و سربرگ اینترنت دارد." #: ../../tutorial/stdlib.rst:344 -#, fuzzy msgid "" "The :mod:`json` package provides robust support for parsing this popular " "data interchange format. The :mod:`csv` module supports direct reading and " @@ -770,7 +706,6 @@ msgstr "" " ابزارها را به طور قابل توجهی ساده می کنند." #: ../../tutorial/stdlib.rst:353 -#, fuzzy msgid "" "The :mod:`sqlite3` module is a wrapper for the SQLite database library, " "providing a persistent database that can be updated and accessed using " @@ -781,7 +716,6 @@ msgstr "" "غیر استاندارد به روزرسانی و دسترسی پیدا کرد." #: ../../tutorial/stdlib.rst:357 -#, fuzzy msgid "" "Internationalization is supported by a number of modules including " ":mod:`gettext`, :mod:`locale`, and the :mod:`codecs` package." @@ -790,11 +724,9 @@ msgstr "" "بسته :mod:`codecs` پشتیبانی می شود." #: ../../tutorial/stdlib.rst:27 -#, fuzzy msgid "built-in function" msgstr "تابع داخلی" #: ../../tutorial/stdlib.rst:27 -#, fuzzy msgid "help" msgstr "کمک" diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 5709ff3bd..f9170b3f3 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/stdlib2.rst:5 -#, fuzzy msgid "Brief Tour of the Standard Library --- Part II" msgstr "گشتی سریع در کتابخانه استاندارد --- بخش دوم" #: ../../tutorial/stdlib2.rst:7 -#, fuzzy msgid "" "This second tour covers more advanced modules that support professional " "programming needs. These modules rarely occur in small scripts." @@ -37,12 +34,10 @@ msgstr "" "شوند." #: ../../tutorial/stdlib2.rst:14 -#, fuzzy msgid "Output Formatting" msgstr "فرمت دهی خروجی" #: ../../tutorial/stdlib2.rst:16 -#, fuzzy msgid "" "The :mod:`reprlib` module provides a version of :func:`repr` customized for " "abbreviated displays of large or deeply nested containers::" @@ -51,7 +46,6 @@ msgstr "" "مختصر محتوای بزرگ یا به شدت تودرتو سفارشی شده است::" #: ../../tutorial/stdlib2.rst:19 -#, fuzzy msgid "" ">>> import reprlib\n" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" @@ -62,7 +56,6 @@ msgstr "" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" #: ../../tutorial/stdlib2.rst:23 -#, fuzzy msgid "" "The :mod:`pprint` module offers more sophisticated control over printing " "both built-in and user defined objects in a way that is readable by the " @@ -75,7 +68,6 @@ msgstr "" "ساختار داده به وضوح بیشتری نمایش داده شود::" #: ../../tutorial/stdlib2.rst:28 -#, fuzzy msgid "" ">>> import pprint\n" ">>> t = [[[['black', 'cyan'], 'white', ['green', 'red']], [['magenta',\n" @@ -100,7 +92,6 @@ msgstr "" " 'blue']]]" #: ../../tutorial/stdlib2.rst:39 -#, fuzzy msgid "" "The :mod:`textwrap` module formats paragraphs of text to fit a given screen " "width::" @@ -109,7 +100,6 @@ msgstr "" "جا بگیرند::" #: ../../tutorial/stdlib2.rst:42 -#, fuzzy msgid "" ">>> import textwrap\n" ">>> doc = \"\"\"The wrap() method is just like fill() except that it returns\n" @@ -132,7 +122,6 @@ msgstr "" "لیستی از رشته ها را برمی گرداند." #: ../../tutorial/stdlib2.rst:53 -#, fuzzy msgid "" "The :mod:`locale` module accesses a database of culture specific data " "formats. The grouping attribute of locale's format function provides a " @@ -143,7 +132,6 @@ msgstr "" "اعداد با جداکننده های گروه ارائه می دهد::" #: ../../tutorial/stdlib2.rst:57 -#, fuzzy msgid "" ">>> import locale\n" ">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" @@ -168,12 +156,10 @@ msgstr "" "'$1,234,567.80'" #: ../../tutorial/stdlib2.rst:72 -#, fuzzy msgid "Templating" msgstr "الگوگذاری" #: ../../tutorial/stdlib2.rst:74 -#, fuzzy msgid "" "The :mod:`string` module includes a versatile :class:`~string.Template` " "class with a simplified syntax suitable for editing by end-users. This " @@ -186,7 +172,6 @@ msgstr "" "برنامه سفارشی کنند." #: ../../tutorial/stdlib2.rst:78 -#, fuzzy msgid "" "The format uses placeholder names formed by ``$`` with valid Python " "identifiers (alphanumeric characters and underscores). Surrounding the " @@ -201,7 +186,6 @@ msgstr "" "کند::" #: ../../tutorial/stdlib2.rst:83 -#, fuzzy msgid "" ">>> from string import Template\n" ">>> t = Template('${village}folk send $$10 to $cause.')\n" @@ -214,7 +198,6 @@ msgstr "" "'Nottinghamfolk send $10 to the ditch fund.'" #: ../../tutorial/stdlib2.rst:88 -#, fuzzy msgid "" "The :meth:`~string.Template.substitute` method raises a :exc:`KeyError` when" " a placeholder is not supplied in a dictionary or a keyword argument. For " @@ -230,7 +213,6 @@ msgstr "" "اگر داده ها ناقص باشند::" #: ../../tutorial/stdlib2.rst:94 -#, fuzzy msgid "" ">>> t = Template('Return the $item to $owner.')\n" ">>> d = dict(item='unladen swallow')\n" @@ -251,7 +233,6 @@ msgstr "" "'بازگرداندن unladen swallow به $owner.'" #: ../../tutorial/stdlib2.rst:103 -#, fuzzy msgid "" "Template subclasses can specify a custom delimiter. For example, a batch " "renaming utility for a photo browser may elect to use percent signs for " @@ -264,7 +245,6 @@ msgstr "" "یا فرمت فایل استفاده کند::" #: ../../tutorial/stdlib2.rst:107 -#, fuzzy msgid "" ">>> import time, os.path\n" ">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" @@ -305,7 +285,6 @@ msgstr "" "img_1077.jpg --> Ashley_2.jpg" #: ../../tutorial/stdlib2.rst:126 -#, fuzzy msgid "" "Another application for templating is separating program logic from the " "details of multiple output formats. This makes it possible to substitute " @@ -316,12 +295,10 @@ msgstr "" " ساده و گزارش های وب HTML را فراهم می کند." #: ../../tutorial/stdlib2.rst:134 -#, fuzzy msgid "Working with Binary Data Record Layouts" msgstr "کار با طرح بندی داده های باینری رکوردها" #: ../../tutorial/stdlib2.rst:136 -#, fuzzy msgid "" "The :mod:`struct` module provides :func:`~struct.pack` and " ":func:`~struct.unpack` functions for working with variable length binary " @@ -339,7 +316,6 @@ msgstr "" "که آن ها اندازه استاندارد و به ترتیب بایت کوچک اندین هستند::" #: ../../tutorial/stdlib2.rst:144 -#, fuzzy msgid "" "import struct\n" "\n" @@ -380,12 +356,10 @@ msgstr "" " start += extra_size + comp_size # skip to the next header" #: ../../tutorial/stdlib2.rst:167 -#, fuzzy msgid "Multi-threading" msgstr "چند نخی" #: ../../tutorial/stdlib2.rst:169 -#, fuzzy msgid "" "Threading is a technique for decoupling tasks which are not sequentially " "dependent. Threads can be used to improve the responsiveness of " @@ -400,7 +374,6 @@ msgstr "" "(I/O) به صورت موازی با محاسبات در یک موضوع دیگر است." #: ../../tutorial/stdlib2.rst:174 -#, fuzzy msgid "" "The following code shows how the high level :mod:`threading` module can run " "tasks in background while the main program continues to run::" @@ -409,7 +382,6 @@ msgstr "" "را در پس زمینه اجرا کند در حالی که برنامه اصلی به اجرای خود ادامه می دهد::" #: ../../tutorial/stdlib2.rst:177 -#, fuzzy msgid "" "import threading, zipfile\n" "\n" @@ -454,7 +426,6 @@ msgstr "" "print('Main program waited until background was done.')" #: ../../tutorial/stdlib2.rst:198 -#, fuzzy msgid "" "The principal challenge of multi-threaded applications is coordinating " "threads that share data or other resources. To that end, the threading " @@ -467,7 +438,6 @@ msgstr "" "را فراهم می کند." #: ../../tutorial/stdlib2.rst:203 -#, fuzzy msgid "" "While those tools are powerful, minor design errors can result in problems " "that are difficult to reproduce. So, the preferred approach to task " @@ -486,12 +456,10 @@ msgstr "" "قابلیت اطمینان بیشتری دارند." #: ../../tutorial/stdlib2.rst:214 -#, fuzzy msgid "Logging" msgstr "ورود به سیستم" #: ../../tutorial/stdlib2.rst:216 -#, fuzzy msgid "" "The :mod:`logging` module offers a full featured and flexible logging " "system. At its simplest, log messages are sent to a file or to " @@ -502,7 +470,6 @@ msgstr "" "شوند::" #: ../../tutorial/stdlib2.rst:219 -#, fuzzy msgid "" "import logging\n" "logging.debug('Debugging information')\n" @@ -519,12 +486,10 @@ msgstr "" "logging.critical('Critical error -- shutting down')" #: ../../tutorial/stdlib2.rst:226 -#, fuzzy msgid "This produces the following output:" msgstr "این خروجی زیر را تولید می کند:" #: ../../tutorial/stdlib2.rst:228 -#, fuzzy msgid "" "WARNING:root:Warning:config file server.conf not found\n" "ERROR:root:Error occurred\n" @@ -535,7 +500,6 @@ msgstr "" "بحرانی:root:خطای بحرانی -- در حال خاموش کردن " #: ../../tutorial/stdlib2.rst:234 -#, fuzzy msgid "" "By default, informational and debugging messages are suppressed and the " "output is sent to standard error. Other output options include routing " @@ -552,7 +516,6 @@ msgstr "" " :const:`~logging.CRITICAL`." #: ../../tutorial/stdlib2.rst:241 -#, fuzzy msgid "" "The logging system can be configured directly from Python or can be loaded " "from a user editable configuration file for customized logging without " @@ -563,12 +526,10 @@ msgstr "" "تغییر در برنامه سفارشی سازی شود." #: ../../tutorial/stdlib2.rst:249 -#, fuzzy msgid "Weak References" msgstr "مراجع ضعیف" #: ../../tutorial/stdlib2.rst:251 -#, fuzzy msgid "" "Python does automatic memory management (reference counting for most objects" " and :term:`garbage collection` to eliminate cycles). The memory is freed " @@ -579,7 +540,6 @@ msgstr "" " پس از حذف آخرین مرجع به آن آزاد می شود." #: ../../tutorial/stdlib2.rst:255 -#, fuzzy msgid "" "This approach works fine for most applications but occasionally there is a " "need to track objects only as long as they are being used by something else." @@ -599,7 +559,6 @@ msgstr "" "کردن اشیائی است که ایجاد آنها هزینه بر است::" #: ../../tutorial/stdlib2.rst:263 -#, fuzzy msgid "" ">>> import weakref, gc\n" ">>> class A:\n" @@ -648,12 +607,10 @@ msgstr "" "KeyError: 'primary'" #: ../../tutorial/stdlib2.rst:290 -#, fuzzy msgid "Tools for Working with Lists" msgstr "ابزارهایی برای کار با لیست ها" #: ../../tutorial/stdlib2.rst:292 -#, fuzzy msgid "" "Many data structure needs can be met with the built-in list type. However, " "sometimes there is a need for alternative implementations with different " @@ -664,7 +621,6 @@ msgstr "" "متفاوت وجود دارد." #: ../../tutorial/stdlib2.rst:296 -#, fuzzy msgid "" "The :mod:`array` module provides an :class:`~array.array` object that is " "like a list that stores only homogeneous data and stores it more compactly." @@ -680,7 +636,6 @@ msgstr "" "پایتون است::" #: ../../tutorial/stdlib2.rst:302 -#, fuzzy msgid "" ">>> from array import array\n" ">>> a = array('H', [4000, 10, 700, 22222])\n" @@ -697,7 +652,6 @@ msgstr "" "array('H', [10, 700])" #: ../../tutorial/stdlib2.rst:309 -#, fuzzy msgid "" "The :mod:`collections` module provides a :class:`~collections.deque` object " "that is like a list with faster appends and pops from the left side but " @@ -710,7 +664,6 @@ msgstr "" "ها و جستجو به روش اول سطح درخت به خوبی مناسب هستند::" #: ../../tutorial/stdlib2.rst:314 -#, fuzzy msgid "" ">>> from collections import deque\n" ">>> d = deque([\"task1\", \"task2\", \"task3\"])\n" @@ -725,7 +678,6 @@ msgstr "" "Handling task1" #: ../../tutorial/stdlib2.rst:322 -#, fuzzy msgid "" "unsearched = deque([starting_node])\n" "def breadth_first_search(unsearched):\n" @@ -744,7 +696,6 @@ msgstr "" " unsearched.append(m)" #: ../../tutorial/stdlib2.rst:330 -#, fuzzy msgid "" "In addition to alternative list implementations, the library also offers " "other tools such as the :mod:`bisect` module with functions for manipulating" @@ -754,7 +705,6 @@ msgstr "" "می دهد مثل ماژول :mod:`bisect` با توابعی برای دستکاری لیست های مرتب شده::" #: ../../tutorial/stdlib2.rst:334 -#, fuzzy msgid "" ">>> import bisect\n" ">>> scores = [(100, 'perl'), (200, 'tcl'), (400, 'lua'), (500, 'python')]\n" @@ -769,7 +719,6 @@ msgstr "" "[(100, 'perl'), (200, 'tcl'), (300, 'ruby'), (400, 'lua'), (500, 'python')]" #: ../../tutorial/stdlib2.rst:340 -#, fuzzy msgid "" "The :mod:`heapq` module provides functions for implementing heaps based on " "regular lists. The lowest valued entry is always kept at position zero. " @@ -782,7 +731,6 @@ msgstr "" "خواهند یک مرتب سازی کامل لیست اجرا کنند، مفید است::" #: ../../tutorial/stdlib2.rst:345 -#, fuzzy msgid "" ">>> from heapq import heapify, heappop, heappush\n" ">>> data = [1, 3, 5, 7, 9, 2, 4, 6, 8, 0]\n" @@ -799,12 +747,10 @@ msgstr "" "[-5, 0, 1]" #: ../../tutorial/stdlib2.rst:356 -#, fuzzy msgid "Decimal Floating-Point Arithmetic" msgstr "محاسبات اعشاری با نقطه شناور" #: ../../tutorial/stdlib2.rst:358 -#, fuzzy msgid "" "The :mod:`decimal` module offers a :class:`~decimal.Decimal` datatype for " "decimal floating-point arithmetic. Compared to the built-in :class:`float` " @@ -815,7 +761,6 @@ msgstr "" ":class:`float` برای اعداد با نقطه شناور دودویی، این کلاس به ویژه برای..." #: ../../tutorial/stdlib2.rst:362 -#, fuzzy msgid "" "financial applications and other uses which require exact decimal " "representation," @@ -824,22 +769,18 @@ msgstr "" "دارند،" #: ../../tutorial/stdlib2.rst:364 -#, fuzzy msgid "control over precision," msgstr "کنترل بر دقت،" #: ../../tutorial/stdlib2.rst:365 -#, fuzzy msgid "control over rounding to meet legal or regulatory requirements," msgstr "کنترل بر گرد کردن به منظور رعایت الزامات قانونی یا مقرراتی،" #: ../../tutorial/stdlib2.rst:366 -#, fuzzy msgid "tracking of significant decimal places, or" msgstr "ردیابی ارقام اعشاری قابل توجه، یا" #: ../../tutorial/stdlib2.rst:367 -#, fuzzy msgid "" "applications where the user expects the results to match calculations done " "by hand." @@ -848,7 +789,6 @@ msgstr "" "تطابق داشته باشند." #: ../../tutorial/stdlib2.rst:370 -#, fuzzy msgid "" "For example, calculating a 5% tax on a 70 cent phone charge gives different " "results in decimal floating point and binary floating point. The difference " @@ -859,7 +799,6 @@ msgstr "" "زمانی که نتایج به نزدیک ترین سنت گرد شوند به وضوح قابل توجه خواهد بود::" #: ../../tutorial/stdlib2.rst:374 -#, fuzzy msgid "" ">>> from decimal import *\n" ">>> round(Decimal('0.70') * Decimal('1.05'), 2)\n" @@ -874,7 +813,6 @@ msgstr "" "0.73" #: ../../tutorial/stdlib2.rst:380 -#, fuzzy msgid "" "The :class:`~decimal.Decimal` result keeps a trailing zero, automatically " "inferring four place significance from multiplicands with two place " @@ -889,7 +827,6 @@ msgstr "" "جلوگیری می کند." #: ../../tutorial/stdlib2.rst:386 -#, fuzzy msgid "" "Exact representation enables the :class:`~decimal.Decimal` class to perform " "modulo calculations and equality tests that are unsuitable for binary " @@ -900,7 +837,6 @@ msgstr "" "انجام دهد::" #: ../../tutorial/stdlib2.rst:390 -#, fuzzy msgid "" ">>> Decimal('1.00') % Decimal('.10')\n" "Decimal('0.00')\n" @@ -923,14 +859,12 @@ msgstr "" "False" #: ../../tutorial/stdlib2.rst:400 -#, fuzzy msgid "" "The :mod:`decimal` module provides arithmetic with as much precision as " "needed::" msgstr "ماژول :mod:`decimal` محاسبات ریاضی را با دقت مورد نیاز فراهم می کند::" #: ../../tutorial/stdlib2.rst:402 -#, fuzzy msgid "" ">>> getcontext().prec = 36\n" ">>> Decimal(1) / Decimal(7)\n" diff --git a/tutorial/venv.po b/tutorial/venv.po index fe9e7ad89..87f587164 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,17 +21,14 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/venv.rst:6 -#, fuzzy msgid "Virtual Environments and Packages" msgstr "محیط های مجازی و پکیج ها" #: ../../tutorial/venv.rst:9 -#, fuzzy msgid "Introduction" msgstr "مقدمه" #: ../../tutorial/venv.rst:11 -#, fuzzy msgid "" "Python applications will often use packages and modules that don't come as " "part of the standard library. Applications will sometimes need a specific " @@ -47,7 +43,6 @@ msgstr "" "کتابخانه نوشته شده باشد." #: ../../tutorial/venv.rst:17 -#, fuzzy msgid "" "This means it may not be possible for one Python installation to meet the " "requirements of every application. If application A needs version 1.0 of a " @@ -62,7 +57,6 @@ msgstr "" "شود." #: ../../tutorial/venv.rst:23 -#, fuzzy msgid "" "The solution for this problem is to create a :term:`virtual environment`, a " "self-contained directory tree that contains a Python installation for a " @@ -73,7 +67,6 @@ msgstr "" "اضافی می باشد." #: ../../tutorial/venv.rst:27 -#, fuzzy msgid "" "Different applications can then use different virtual environments. To " "resolve the earlier example of conflicting requirements, application A can " @@ -89,12 +82,10 @@ msgstr "" "موضوع بر محیط برنامه A تأثیری نخواهد داشت." #: ../../tutorial/venv.rst:36 -#, fuzzy msgid "Creating Virtual Environments" msgstr "ایجاد محیط های مجازی" #: ../../tutorial/venv.rst:38 -#, fuzzy msgid "" "The module used to create and manage virtual environments is called " ":mod:`venv`. :mod:`venv` will install the Python version from which the " @@ -108,7 +99,6 @@ msgstr "" "فرمان با ``python3.12`` نسخه 3.12 را نصب خواهد کرد." #: ../../tutorial/venv.rst:44 -#, fuzzy msgid "" "To create a virtual environment, decide upon a directory where you want to " "place it, and run the :mod:`venv` module as a script with the directory " @@ -119,12 +109,10 @@ msgstr "" " اجرا کنید::" #: ../../tutorial/venv.rst:47 -#, fuzzy msgid "python -m venv tutorial-env" msgstr "پایتون -m venv tutorial-env" #: ../../tutorial/venv.rst:49 -#, fuzzy msgid "" "This will create the ``tutorial-env`` directory if it doesn't exist, and " "also create directories inside it containing a copy of the Python " @@ -135,7 +123,6 @@ msgstr "" " Python و فایل های پشتیبانی مختلف هستند." #: ../../tutorial/venv.rst:53 -#, fuzzy msgid "" "A common directory location for a virtual environment is ``.venv``. This " "name keeps the directory typically hidden in your shell and thus out of the " @@ -150,32 +137,26 @@ msgstr "" "آن ها پشتیبانی می کنند، جلوگیری می کند." #: ../../tutorial/venv.rst:59 -#, fuzzy msgid "Once you've created a virtual environment, you may activate it." msgstr "پس از ایجاد یک محیط مجازی، می توانید آن را فعال کنید." #: ../../tutorial/venv.rst:61 -#, fuzzy msgid "On Windows, run::" msgstr "در ویندوز، اجرا کنید::" #: ../../tutorial/venv.rst:63 -#, fuzzy msgid "tutorial-env\\Scripts\\activate" msgstr "" #: ../../tutorial/venv.rst:65 -#, fuzzy msgid "On Unix or MacOS, run::" msgstr "در Unix یا MacOS، اجرا کنید::" #: ../../tutorial/venv.rst:67 -#, fuzzy msgid "source tutorial-env/bin/activate" msgstr "source tutorial-env/bin/activate" #: ../../tutorial/venv.rst:69 -#, fuzzy msgid "" "(This script is written for the bash shell. If you use the :program:`csh` " "or :program:`fish` shells, there are alternate ``activate.csh`` and " @@ -186,7 +167,6 @@ msgstr "" "``activate.csh`` و ``activate.fish`` استفاده کنید.)" #: ../../tutorial/venv.rst:74 -#, fuzzy msgid "" "Activating the virtual environment will change your shell's prompt to show " "what virtual environment you're using, and modify the environment so that " @@ -198,7 +178,6 @@ msgstr "" "نسخه و نصب خاصی از پایتون را برای شما فراهم کند. به عنوان مثال:" #: ../../tutorial/venv.rst:79 -#, fuzzy msgid "" "$ source ~/envs/tutorial-env/bin/activate\n" "(tutorial-env) $ python\n" @@ -221,19 +200,16 @@ msgstr "" ">>>" #: ../../tutorial/venv.rst:91 -#, fuzzy msgid "To deactivate a virtual environment, type::" msgstr "برای غیرفعال کردن یک محیط مجازی، تایپ کنید::" #: ../../tutorial/venv.rst:93 -#, fuzzy msgid "deactivate" msgstr "" "\n" "غیرفعال کردن" #: ../../tutorial/venv.rst:95 -#, fuzzy msgid "into the terminal." msgstr "" "متغیرهای ``f-string`` در پایتون قابلیت قالب بندی رشته ها را با استفاده از مشخصات ارائه شده در قالب بندی ارائه می دهند. برای استفاده از این ویژگی، قبل از شروع یک رشته با استفاده از یک ``f``، شروع به معرفی یک ``f-string`` می کنیم. مقادیر دلخواه را می توان به راحتی توسط آکولادها محصور کرد که می توانند شامل هر بیان پایتون باشند. برای مثال::\n" @@ -245,12 +221,10 @@ msgstr "" "این ویژگی قالب بندی را می توان برای اکثر اشیاء در پایتون به طور مستقیم استفاده کرد، تنها با اضافه کردن یک رشته قالب بندی مرتب در داخل آکولادها، مانند ``{value:.2f}`` برای قالب بندی اعداد اعشاری با دو رقم اعشار." #: ../../tutorial/venv.rst:98 -#, fuzzy msgid "Managing Packages with pip" msgstr "مدیریت بسته ها با استفاده از pip" #: ../../tutorial/venv.rst:100 -#, fuzzy msgid "" "You can install, upgrade, and remove packages using a program called " ":program:`pip`. By default ``pip`` will install packages from the `Python " @@ -263,7 +237,6 @@ msgstr "" "به فهرست بسته های پایتون دسترسی پیدا کنید." #: ../../tutorial/venv.rst:105 -#, fuzzy msgid "" "``pip`` has a number of subcommands: \"install\", \"uninstall\", \"freeze\"," " etc. (Consult the :ref:`installing-index` guide for complete documentation" @@ -273,14 +246,12 @@ msgstr "" " (برای مستندات کامل ``pip`` به راهنمای :ref:`installing-index` مراجعه کنید.)" #: ../../tutorial/venv.rst:109 -#, fuzzy msgid "" "You can install the latest version of a package by specifying a package's " "name:" msgstr "می توانید جدیدترین نسخه یک بسته را با مشخص کردن نام بسته نصب کنید:" #: ../../tutorial/venv.rst:111 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip install novas\n" "Collecting novas\n" @@ -297,7 +268,6 @@ msgstr "" "Successfully installed novas-3.1.1.3" #: ../../tutorial/venv.rst:120 -#, fuzzy msgid "" "You can also install a specific version of a package by giving the package " "name followed by ``==`` and the version number:" @@ -306,7 +276,6 @@ msgstr "" "``==`` و شماره نسخه نصب کنید:" #: ../../tutorial/venv.rst:123 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip install requests==2.6.0\n" "Collecting requests==2.6.0\n" @@ -321,7 +290,6 @@ msgstr "" "requests-2.6.0 با موفقیت نصب شد" #: ../../tutorial/venv.rst:131 -#, fuzzy msgid "" "If you re-run this command, ``pip`` will notice that the requested version " "is already installed and do nothing. You can supply a different version " @@ -334,7 +302,6 @@ msgstr "" "install --upgrade`` بسته را به آخرین نسخه ارتقا دهید:" #: ../../tutorial/venv.rst:136 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip install --upgrade requests\n" "Collecting requests\n" @@ -353,7 +320,6 @@ msgstr "" "نصب موفقیت آمیز requests-2.7.0" #: ../../tutorial/venv.rst:146 -#, fuzzy msgid "" "``python -m pip uninstall`` followed by one or more package names will " "remove the packages from the virtual environment." @@ -362,13 +328,11 @@ msgstr "" "بسته ها را از محیط مجازی حذف می کند." #: ../../tutorial/venv.rst:149 -#, fuzzy msgid "" "``python -m pip show`` will display information about a particular package:" msgstr "``python -m pip show`` اطلاعات مربوط به یک بسته خاص را نمایش می دهد:" #: ../../tutorial/venv.rst:151 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip show requests\n" "---\n" @@ -397,7 +361,6 @@ msgstr "" "نیازمندی ها:" #: ../../tutorial/venv.rst:166 -#, fuzzy msgid "" "``python -m pip list`` will display all of the packages installed in the " "virtual environment:" @@ -405,7 +368,6 @@ msgstr "" "``python -m pip list`` تمامی بسته های نصب شده در محیط مجازی را نمایش می دهد:" #: ../../tutorial/venv.rst:169 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip list\n" "novas (3.1.1.3)\n" @@ -422,7 +384,6 @@ msgstr "" "setuptools (16.0)" #: ../../tutorial/venv.rst:178 -#, fuzzy msgid "" "``python -m pip freeze`` will produce a similar list of the installed " "packages, but the output uses the format that ``python -m pip install`` " @@ -434,7 +395,6 @@ msgstr "" " که این فهرست را در یک فایل ``requirements.txt`` قرار دهید:" #: ../../tutorial/venv.rst:182 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip freeze > requirements.txt\n" "(tutorial-env) $ cat requirements.txt\n" @@ -449,7 +409,6 @@ msgstr "" "requests==2.7.0" #: ../../tutorial/venv.rst:190 -#, fuzzy msgid "" "The ``requirements.txt`` can then be committed to version control and " "shipped as part of an application. Users can then install all the necessary" @@ -460,7 +419,6 @@ msgstr "" "تمامی بسته های ضروری را نصب کنند:" #: ../../tutorial/venv.rst:194 -#, fuzzy msgid "" "(tutorial-env) $ python -m pip install -r requirements.txt\n" "Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))\n" @@ -485,7 +443,6 @@ msgstr "" "با موفقیت نصب شد: novas-3.1.1.3 numpy-1.9.2 requests-2.7.0" #: ../../tutorial/venv.rst:207 -#, fuzzy msgid "" "``pip`` has many more options. Consult the :ref:`installing-index` guide " "for complete documentation for ``pip``. When you've written a package and " diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index b8c0d0611..f04df88f3 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -6,7 +6,6 @@ # Translators: # Alireza Shabani (Revisto) , 2025 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" @@ -22,12 +21,10 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../../tutorial/whatnow.rst:5 -#, fuzzy msgid "What Now?" msgstr "حال چه کنیم؟" #: ../../tutorial/whatnow.rst:7 -#, fuzzy msgid "" "Reading this tutorial has probably reinforced your interest in using Python " "--- you should be eager to apply Python to solving your real-world problems." @@ -38,7 +35,6 @@ msgstr "" " برای یادگیری بیشتر کجا باید بروید؟" #: ../../tutorial/whatnow.rst:11 -#, fuzzy msgid "" "This tutorial is part of Python's documentation set. Some other documents " "in the set are:" @@ -47,12 +43,10 @@ msgstr "" "مجموعه عبارتند از:" #: ../../tutorial/whatnow.rst:14 -#, fuzzy msgid ":ref:`library-index`:" msgstr "" #: ../../tutorial/whatnow.rst:16 -#, fuzzy msgid "" "You should browse through this manual, which gives complete (though terse) " "reference material about types, functions, and the modules in the standard " @@ -70,7 +64,6 @@ msgstr "" "مرور اجمالی از مرجع کتابخانه به شما ایده ای از آنچه موجود است خواهد داد." #: ../../tutorial/whatnow.rst:24 -#, fuzzy msgid "" ":ref:`installing-index` explains how to install additional modules written " "by other Python users." @@ -79,7 +72,6 @@ msgstr "" "کاربران دیگر پایتون را نصب کنیم." #: ../../tutorial/whatnow.rst:27 -#, fuzzy msgid "" ":ref:`reference-index`: A detailed explanation of Python's syntax and " "semantics. It's heavy reading, but is useful as a complete guide to the " @@ -89,12 +81,10 @@ msgstr "" "متن سنگین است، اما به عنوان یک راهنمای کامل برای خود زبان مفید می باشد." #: ../../tutorial/whatnow.rst:31 -#, fuzzy msgid "More Python resources:" msgstr "منابع بیشتر برای پایتون:" #: ../../tutorial/whatnow.rst:33 -#, fuzzy msgid "" "https://www.python.org: The major Python web site. It contains code, " "documentation, and pointers to Python-related pages around the web." @@ -103,12 +93,10 @@ msgstr "" "و پیوندهایی به صفحات مرتبط با پایتون در سراسر وب می باشد." #: ../../tutorial/whatnow.rst:36 -#, fuzzy msgid "https://docs.python.org: Fast access to Python's documentation." msgstr "https://docs.python.org: دسترسی سریع به مستندات پایتون." #: ../../tutorial/whatnow.rst:38 -#, fuzzy msgid "" "https://pypi.org: The Python Package Index, previously also nicknamed the " "Cheese Shop [#]_, is an index of user-created Python modules that are " @@ -121,7 +109,6 @@ msgstr "" "آنها را اینجا ثبت کنید تا دیگران بتوانند آن را پیدا کنند." #: ../../tutorial/whatnow.rst:43 -#, fuzzy msgid "" "https://code.activestate.com/recipes/langs/python/: The Python Cookbook is a" " sizable collection of code examples, larger modules, and useful scripts. " @@ -134,7 +121,6 @@ msgstr "" "O'Reilly & Associates, ISBN 0-596-00797-3) گردآوری شده اند." #: ../../tutorial/whatnow.rst:48 -#, fuzzy msgid "" "https://pyvideo.org collects links to Python-related videos from conferences" " and user-group meetings." @@ -143,7 +129,6 @@ msgstr "" "جلسات گروه های کاربری جمع آوری می کند." #: ../../tutorial/whatnow.rst:51 -#, fuzzy msgid "" "https://scipy.org: The Scientific Python project includes modules for fast " "array computations and manipulations plus a host of packages for such things" @@ -156,7 +141,6 @@ msgstr "" "تحلیل آماری و موارد مشابه است." #: ../../tutorial/whatnow.rst:56 -#, fuzzy msgid "" "For Python-related questions and problem reports, you can post to the " "newsgroup :newsgroup:`comp.lang.python`, or send them to the mailing list at" @@ -176,7 +160,6 @@ msgstr "" "هستند." #: ../../tutorial/whatnow.rst:64 -#, fuzzy msgid "" "Before posting, be sure to check the list of :ref:`Frequently Asked " "Questions ` (also called the FAQ). The FAQ answers many of the " @@ -189,12 +172,10 @@ msgstr "" "در بر داشته باشد." #: ../../tutorial/whatnow.rst:70 -#, fuzzy msgid "Footnotes" msgstr "پاورقی ها" #: ../../tutorial/whatnow.rst:71 -#, fuzzy msgid "" "\"Cheese Shop\" is a Monty Python's sketch: a customer enters a cheese shop," " but whatever cheese he asks for, the clerk says it's missing."