diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index a86387c4f..745bf1a81 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -12,35 +12,39 @@ msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-07-25 12:59+0330\n" -"PO-Revision-Date: 2021-06-28 01:50+0000\n" +"PO-Revision-Date: 2026-07-30 18:01+0330\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" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.6\n" #: ../../tutorial/stdlib2.rst:5 msgid "Brief tour of the standard library --- part II" -msgstr "" +msgstr "مروری کوتاه بر کتابخانهٔ استاندارد — بخش دوم" #: ../../tutorial/stdlib2.rst:7 msgid "" -"This second tour covers more advanced modules that support professional " -"programming needs. These modules rarely occur in small scripts." +"This second tour covers more advanced modules that support professional programming needs. These modules rarely " +"occur in small scripts." msgstr "" +"این بخش دوم از مرور، ماژول‌های پیشرفته‌تری را معرفی می‌کند که نیازهای برنامه‌نویسی حرفه‌ای را پوشش می‌دهند. این ماژول‌ها " +"به‌ندرت در اسکریپت‌های کوچک استفاده می‌شوند." #: ../../tutorial/stdlib2.rst:14 msgid "Output formatting" -msgstr "" +msgstr "قالب‌بندی خروجی" #: ../../tutorial/stdlib2.rst:16 msgid "" -"The :mod:`reprlib` module provides a version of :func:`repr` customized for " -"abbreviated displays of large or deeply nested containers::" +"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 msgid "" @@ -48,14 +52,19 @@ msgid "" ">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" "\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" msgstr "" +">>> import reprlib\n" +">>> reprlib.repr(set('supercalifragilisticexpialidocious'))\n" +"\"{'a', 'c', 'd', 'e', 'f', 'g', ...}\"" #: ../../tutorial/stdlib2.rst:23 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::" +"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::" msgstr "" +"ماژول :mod:`pprint` کنترل پیشرفته‌تری برای چاپ اشیای داخلی و اشیای تعریف‌شده توسط کاربر، به شکلی که برای مفسر " +"قابل‌خواندن باشد، فراهم می‌کند. اگر خروجی بیش از یک خط باشد، «چاپگر زیبا» (pretty printer) با افزودن شکست خط و " +"تورفتگی، ساختار داده را واضح‌تر نمایش می‌دهد::" #: ../../tutorial/stdlib2.rst:28 msgid "" @@ -70,18 +79,25 @@ msgid "" " [['magenta', 'yellow'],\n" " 'blue']]]" msgstr "" +">>> 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']]]" #: ../../tutorial/stdlib2.rst:39 -msgid "" -"The :mod:`textwrap` module formats paragraphs of text to fit a given screen " -"width::" -msgstr "" +msgid "The :mod:`textwrap` module formats paragraphs of text to fit a given screen width::" +msgstr "ماژول :mod:`textwrap` پاراگراف‌های متنی را طوری قالب‌بندی می‌کند که در عرض مشخصی از صفحه جا بگیرند::" #: ../../tutorial/stdlib2.rst:42 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,13 +107,24 @@ msgid "" "instead of one big string with newlines\n" "to separate the wrapped lines." msgstr "" +">>> import textwrap\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" +">>> print(textwrap.fill(doc, width=40))\n" +"The wrap() method is just like fill()\n" +"except that it returns a list of strings\n" +"instead of one big string with newlines\n" +"to separate the wrapped lines." #: ../../tutorial/stdlib2.rst:53 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::" +"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` به پایگاه داده‌ای از قالب‌های دادهٔ وابسته به زبان و منطقهٔ جغرافیایی دسترسی دارد. ویژگی grouping " +"در تابع format این ماژول، روشی مستقیم برای قالب‌بندی اعداد با جداکنندهٔ گروه‌ها فراهم می‌کند::" #: ../../tutorial/stdlib2.rst:57 msgid "" @@ -112,27 +139,40 @@ msgid "" "... conv['frac_digits'], x), grouping=True)\n" "'$1,234,567.80'" msgstr "" +">>> import locale\n" +">>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')\n" +"'English_United States.1252'\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" +">>> locale.format_string(\"%s%.*f\", (conv['currency_symbol'],\n" +"... conv['frac_digits'], x), grouping=True)\n" +"'$1,234,567.80'" #: ../../tutorial/stdlib2.rst:72 msgid "Templating" -msgstr "" +msgstr "قالب‌های متنی" #: ../../tutorial/stdlib2.rst:74 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 " +"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 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 " -"``$``::" +"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 ``$``::" msgstr "" +"در این قالب، نام جای‌نگهدارها با استفاده از ``$`` و شناسه‌های معتبر پایتون (شامل حروف، ارقام و زیرخط) ساخته می‌شوند. " +"اگر جای‌نگهدار را درون آکولاد قرار دهید، می‌توانید بدون فاصله، بلافاصله پس از آن حروف یا ارقام بیشتری بیاورید. " +"همچنین، نوشتن ``$$`` یک نویسهٔ ``$`` فراردهی‌شده ایجاد می‌کند::" #: ../../tutorial/stdlib2.rst:83 msgid "" @@ -141,15 +181,22 @@ msgid "" ">>> t.substitute(village='Nottingham', cause='the ditch fund')\n" "'Nottinghamfolk send $10 to the ditch fund.'" msgstr "" +">>> 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.'" #: ../../tutorial/stdlib2.rst:88 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 " -"--- it will leave placeholders unchanged if data is missing::" +"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` ایجاد می‌کند. در برنامه‌هایی مانند ادغام نامه‌ها (mail merge) که ممکن است داده‌های واردشده " +"توسط کاربر ناقص باشند، استفاده از متد :meth:`~string.Template.safe_substitute` مناسب‌تر است؛ زیرا در صورت نبود " +"داده، جای‌نگهدارها را بدون تغییر باقی می‌گذارد::" #: ../../tutorial/stdlib2.rst:94 msgid "" @@ -162,14 +209,22 @@ msgid "" ">>> t.safe_substitute(d)\n" "'Return the unladen swallow to $owner.'" msgstr "" +">>> t = Template('Return the $item to $owner.')\n" +">>> d = dict(item='unladen swallow')\n" +">>> t.substitute(d)\n" +"Traceback (most recent call last):\n" +" ...\n" +"KeyError: 'owner'\n" +">>> t.safe_substitute(d)\n" +"'Return the unladen swallow to $owner.'" #: ../../tutorial/stdlib2.rst:103 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::" +"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 msgid "" @@ -192,28 +247,49 @@ msgid "" "img_1076.jpg --> Ashley_1.jpg\n" "img_1077.jpg --> Ashley_2.jpg" msgstr "" +">>> import time, os.path\n" +">>> photofiles = ['img_1074.jpg', 'img_1076.jpg', 'img_1077.jpg']\n" +">>> class BatchRename(Template):\n" +"... delimiter = '%'\n" +"...\n" +">>> fmt = input('Enter rename style (%d-date %n-seqnum %f-format): ')\n" +"Enter rename style (%d-date %n-seqnum %f-format): 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" #: ../../tutorial/stdlib2.rst:126 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." +"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 msgid "Working with binary data record layouts" -msgstr "" +msgstr "کار با ساختار رکوردهای دادهٔ دودویی" #: ../../tutorial/stdlib2.rst:136 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::" +"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 msgid "" @@ -236,25 +312,46 @@ msgid "" "\n" " start += extra_size + comp_size # skip to the next header" msgstr "" +"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): # show the first 3 file headers\n" +" start += 14\n" +" fields = struct.unpack('>> 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) # create a reference\n" +">>> d = weakref.WeakValueDictionary()\n" +">>> d['primary'] = a # does not create a reference\n" +">>> d['primary'] # fetch the object if it is still alive\n" +"10\n" +">>> del a # remove the one reference\n" +">>> gc.collect() # run garbage collection right away\n" +"0\n" +">>> d['primary'] # entry was automatically removed\n" +"Traceback (most recent call last):\n" +" File \"\", line 1, in \n" +" d['primary'] # entry was automatically removed\n" +" File \"C:/python314/lib/weakref.py\", line 46, in __getitem__\n" +" o = self.data[key]()\n" +"KeyError: 'primary'" #: ../../tutorial/stdlib2.rst:289 msgid "Tools for working with lists" @@ -402,18 +562,16 @@ msgstr "" #: ../../tutorial/stdlib2.rst:291 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." +"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:295 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::" +"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::" msgstr "" #: ../../tutorial/stdlib2.rst:301 @@ -428,10 +586,9 @@ msgstr "" #: ../../tutorial/stdlib2.rst:308 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::" +"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::" msgstr "" #: ../../tutorial/stdlib2.rst:313 @@ -456,9 +613,8 @@ msgstr "" #: ../../tutorial/stdlib2.rst:329 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::" +"In addition to alternative list implementations, the library also offers other tools such as the :mod:`bisect` " +"module with functions for manipulating sorted lists::" msgstr "" #: ../../tutorial/stdlib2.rst:333 @@ -472,10 +628,9 @@ msgstr "" #: ../../tutorial/stdlib2.rst:339 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::" +"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::" msgstr "" #: ../../tutorial/stdlib2.rst:344 @@ -494,15 +649,13 @@ msgstr "" #: ../../tutorial/stdlib2.rst:357 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" +"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 "" #: ../../tutorial/stdlib2.rst:361 -msgid "" -"financial applications and other uses which require exact decimal " -"representation," +msgid "financial applications and other uses which require exact decimal representation," msgstr "" #: ../../tutorial/stdlib2.rst:363 @@ -518,16 +671,13 @@ msgid "tracking of significant decimal places, or" msgstr "" #: ../../tutorial/stdlib2.rst:366 -msgid "" -"applications where the user expects the results to match calculations done " -"by hand." +msgid "applications where the user expects the results to match calculations done by hand." msgstr "" #: ../../tutorial/stdlib2.rst:369 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::" +"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:373 @@ -541,18 +691,15 @@ msgstr "" #: ../../tutorial/stdlib2.rst:379 msgid "" -"The :class:`~decimal.Decimal` result keeps a trailing zero, automatically " -"inferring four place significance from multiplicands with two place " -"significance. Decimal reproduces mathematics as done by hand and avoids " -"issues that can arise when binary floating point cannot exactly represent " -"decimal quantities." +"The :class:`~decimal.Decimal` result keeps a trailing zero, automatically inferring four place significance from " +"multiplicands with two place significance. Decimal reproduces mathematics as done by hand and avoids issues that " +"can arise when binary floating point cannot exactly represent decimal quantities." msgstr "" #: ../../tutorial/stdlib2.rst:385 msgid "" -"Exact representation enables the :class:`~decimal.Decimal` class to perform " -"modulo calculations and equality tests that are unsuitable for binary " -"floating point::" +"Exact representation enables the :class:`~decimal.Decimal` class to perform modulo calculations and equality tests " +"that are unsuitable for binary floating point::" msgstr "" #: ../../tutorial/stdlib2.rst:389 @@ -569,9 +716,7 @@ msgid "" msgstr "" #: ../../tutorial/stdlib2.rst:399 -msgid "" -"The :mod:`decimal` module provides arithmetic with as much precision as " -"needed::" +msgid "The :mod:`decimal` module provides arithmetic with as much precision as needed::" msgstr "" #: ../../tutorial/stdlib2.rst:401