Skip to content

Translate library/queue.po #187

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Sep 29, 2022
126 changes: 114 additions & 12 deletions library/queue.po
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,28 @@
# This file is distributed under the same license as the Python package.
#
# Translators:
# Adrian Liaw <adrianliaw2000@gmail.com>, 2018
# Allen Wu <allen91.wu@gmail.com>, 2021
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3.10\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-07-02 00:16+0000\n"
"PO-Revision-Date: 2018-05-23 16:08+0000\n"
"Last-Translator: Adrian Liaw <adrianliaw2000@gmail.com>\n"
"POT-Creation-Date: 2022-04-15 00:13+0000\n"
"PO-Revision-Date: 2022-09-27 00:12+0800\n"
"Last-Translator: Allen Wu <allen91.wu@gmail.com>\n"
"Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
"tw)\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.0.1\n"

#: ../../library/queue.rst:2
msgid ":mod:`queue` --- A synchronized queue class"
msgstr ""
msgstr ":mod:`queue` --- 同步佇列 (queue) class(類別)"

#: ../../library/queue.rst:7
msgid "**Source code:** :source:`Lib/queue.py`"
Expand All @@ -33,6 +37,9 @@ msgid ""
"exchanged safely between multiple threads. The :class:`Queue` class in this "
"module implements all the required locking semantics."
msgstr ""
":mod:`queue` module(模組)實作多生產者、多消費者佇列。在執行緒程式設計中,必"
"須在多執行緒之間安全地交換資訊時,特別有用。此 module 中的 :class:`Queue` "
"class 實作所有必需的鎖定語義 (locking semantics)。"

#: ../../library/queue.rst:16
msgid ""
Expand All @@ -44,24 +51,33 @@ msgid ""
"sorted (using the :mod:`heapq` module) and the lowest valued entry is "
"retrieved first."
msgstr ""
"此 module 實作三種型別的佇列,它們僅在取出條目的順序上有所不同。在 :abbr:"
"`FIFO (first-in, first-out)` 佇列中,先加入的任務是第一個被取出的。在 :abbr:"
"`LIFO (last-in, first-out)` 佇列中,最近被加入的條目是第一個被取出的(像堆疊 "
"(stack) 一樣操作)。使用優先佇列 (priority queue) 時,條目將保持排序狀態(使"
"用 :mod:`heapq` module),並先取出最低值條目。"

#: ../../library/queue.rst:24
msgid ""
"Internally, those three types of queues use locks to temporarily block "
"competing threads; however, they are not designed to handle reentrancy "
"within a thread."
msgstr ""
"在內部,這三種型別的佇列使用鎖 (lock) 來暫時阻塞競爭執行緒;但是,它們並不是"
"被設計來處理執行緒內的 reentrancy(可重入)。"

#: ../../library/queue.rst:28
msgid ""
"In addition, the module implements a \"simple\" :abbr:`FIFO (first-in, first-"
"out)` queue type, :class:`SimpleQueue`, whose specific implementation "
"provides additional guarantees in exchange for the smaller functionality."
msgstr ""
"此外,此 module 實作一個「簡單」的 :abbr:`FIFO (first-in, first-out)` 佇列型"
"別 :class:`SimpleQueue`,其特定的實作是以較少的功能為代價,來提供額外的保證。"

#: ../../library/queue.rst:33
msgid "The :mod:`queue` module defines the following classes and exceptions:"
msgstr ""
msgstr ":mod:`queue` module 定義了以下的 class 和例外:"

#: ../../library/queue.rst:37
msgid ""
Expand All @@ -71,6 +87,9 @@ msgid ""
"until queue items are consumed. If *maxsize* is less than or equal to zero, "
"the queue size is infinite."
msgstr ""
":abbr:`FIFO (first-in, first-out)` 佇列的建構子 (constructor)。*maxsize* 是一"
"個整數,用於設置佇列中可放置的項目數的上限。一旦達到此大小,插入將會阻塞,直"
"到佇列中的項目被消耗。如果 *maxsize* 小於或等於零,則佇列大小為無限。"

#: ../../library/queue.rst:45
msgid ""
Expand All @@ -80,6 +99,9 @@ msgid ""
"until queue items are consumed. If *maxsize* is less than or equal to zero, "
"the queue size is infinite."
msgstr ""
":abbr:`LIFO (last-in, first-out)` 佇列的建構子。*maxsize* 是一個整數,用於設"
"置佇列中可放置的項目數的上限。一旦達到此大小,插入將被鎖定,到佇列中的項目被"
"消耗。如果 *maxsize* 小於或等於零,則佇列大小為無限。"

#: ../../library/queue.rst:54
msgid ""
Expand All @@ -89,54 +111,73 @@ msgid ""
"consumed. If *maxsize* is less than or equal to zero, the queue size is "
"infinite."
msgstr ""
"優先佇列的建構子。*maxsize* 是一個整數,用於設置佇列中可放置的項目數的上限。"
"一旦達到此大小,插入將被阻塞,直到佇列中的項目被消耗。如果 *maxsize* 小於或等"
"於零,則佇列大小為無限。"

#: ../../library/queue.rst:59
msgid ""
"The lowest valued entries are retrieved first (the lowest valued entry is "
"the one returned by ``sorted(list(entries))[0]``). A typical pattern for "
"entries is a tuple in the form: ``(priority_number, data)``."
msgstr ""
"最低值的條目會最先被取出(最低值的條目是被 ``sorted(list(entries))[0]`` 回傳"
"的)。條目的典型模式是格式為 ``(priority_number, data)`` 的 tuple(元組)。"

#: ../../library/queue.rst:63
msgid ""
"If the *data* elements are not comparable, the data can be wrapped in a "
"class that ignores the data item and only compares the priority number::"
msgstr ""
"如果 *data* 元素為不可比較的,則可以將資料包裝在一個 class 中,該 class 忽略"
"資料項目並僅比較優先數:\n"
"\n"
"::"

#: ../../library/queue.rst:76
msgid ""
"Constructor for an unbounded :abbr:`FIFO (first-in, first-out)` queue. "
"Simple queues lack advanced functionality such as task tracking."
msgstr ""
"無界的 :abbr:`FIFO (first-in, first-out)` 佇列的建構子。簡單佇列缺少任務追蹤"
"等進階功能。"

#: ../../library/queue.rst:84
msgid ""
"Exception raised when non-blocking :meth:`~Queue.get` (or :meth:`~Queue."
"get_nowait`) is called on a :class:`Queue` object which is empty."
msgstr ""
"當對一個空的 :class:`Queue` 物件呼叫非阻塞的 (non-blocking) :meth:`~Queue."
"get`\\ (或 :meth:`~Queue.get_nowait`\\ )將引發此例外。"

#: ../../library/queue.rst:91
msgid ""
"Exception raised when non-blocking :meth:`~Queue.put` (or :meth:`~Queue."
"put_nowait`) is called on a :class:`Queue` object which is full."
msgstr ""
"當對一個已滿的 :class:`Queue` 物件呼叫非阻塞的 :meth:`~Queue.put`\\ (或 :"
"meth:`~Queue.put_nowait`\\ )將引發此例外。"

#: ../../library/queue.rst:99
msgid "Queue Objects"
msgstr ""
msgstr "佇列物件"

#: ../../library/queue.rst:101
msgid ""
"Queue objects (:class:`Queue`, :class:`LifoQueue`, or :class:"
"`PriorityQueue`) provide the public methods described below."
msgstr ""
"佇列物件(:class:`Queue`、:class:`LifoQueue`、:class:`PriorityQueue`)提供下"
"面描述的公用 method。"

#: ../../library/queue.rst:107
msgid ""
"Return the approximate size of the queue. Note, qsize() > 0 doesn't "
"guarantee that a subsequent get() will not block, nor will qsize() < maxsize "
"guarantee that put() will not block."
msgstr ""
"回傳佇列的近似大小。注意,qsize() > 0 並不能保證後續的 get() 不會阻塞,"
"qsize() < maxsize 也不會保證 put() 不會阻塞。"

#: ../../library/queue.rst:114
msgid ""
Expand All @@ -145,6 +186,9 @@ msgid ""
"not block. Similarly, if empty() returns ``False`` it doesn't guarantee "
"that a subsequent call to get() will not block."
msgstr ""
"如果佇列為空,則回傳 ``True``,否則回傳 ``False``。如果 empty() 回傳 "
"``True``,則不保證後續呼叫 put() 不會阻塞。同樣,如果 empty() 回傳 "
"``False``,則不保證後續呼叫 get() 不會阻塞。"

#: ../../library/queue.rst:122
msgid ""
Expand All @@ -153,6 +197,9 @@ msgid ""
"not block. Similarly, if full() returns ``False`` it doesn't guarantee that "
"a subsequent call to put() will not block."
msgstr ""
"如果佇列已滿,則回傳 ``True`` ,否則回傳 ``False``。如果 full() 回傳 "
"``True``,則不保證後續呼叫 get() 不會阻塞。同樣,如果 full() 回傳 ``False``,"
"則不保證後續呼叫 put() 不會阻塞。"

#: ../../library/queue.rst:130
msgid ""
Expand All @@ -164,10 +211,15 @@ msgid ""
"is immediately available, else raise the :exc:`Full` exception (*timeout* is "
"ignored in that case)."
msgstr ""
"將 *item* 放入佇列中。如果可選的 args *block* 為 true、*timeout* 為 ``None``"
"\\ (預設值),則在必要時阻塞,直到自由槽 (free slot) 可用。如果 *timeout* 為"
"正數,則最多阻塞 *timeout* 秒,如果該時間內沒有可用的自由槽,則會引發 :exc:"
"`Full` 例外。否則(*block* 為 false),如果自由槽立即可用,則將項目放在佇列"
"中,否則引發 :exc:`Full` 例外(在這種情況下,*timeout* 將被忽略)。"

#: ../../library/queue.rst:141
msgid "Equivalent to ``put(item, block=False)``."
msgstr ""
msgstr "等效於 ``put(item, block=False)``。"

#: ../../library/queue.rst:146
msgid ""
Expand All @@ -179,6 +231,11 @@ msgid ""
"immediately available, else raise the :exc:`Empty` exception (*timeout* is "
"ignored in that case)."
msgstr ""
"從佇列中移除並回傳一個項目。如果可選的 args *block* 為 true,且 *timeout* 為 "
"``None``\\ (預設值),則在必要時阻塞,直到有可用的項目。如果 *timeout* 是正"
"數,則最多會阻塞 *timeout* 秒,如果該時間內沒有可用的項目,則會引發 :exc:"
"`Empty` 例外。否則(*block* 為 false),如果立即可用,則回傳一個項目,否則引"
"發 :exc:`Empty` 例外(在這種情況下,*timeout* 將被忽略)。"

#: ../../library/queue.rst:153
msgid ""
Expand All @@ -188,40 +245,49 @@ msgid ""
"can occur, and in particular a SIGINT will not trigger a :exc:"
"`KeyboardInterrupt`."
msgstr ""
"在 POSIX 系統的 3.0 版之前,以及 Windows 的所有版本,如果 *block* 為 true 且 "
"*timeout* 為 ``None``,則此操作將在底層鎖上進入不間斷等待。這意味著不會發生例"
"外,特別是 SIGINT(中斷訊號)不會觸發 :exc:`KeyboardInterrupt`。"

#: ../../library/queue.rst:161 ../../library/queue.rst:268
msgid "Equivalent to ``get(False)``."
msgstr ""
msgstr "等效於 ``get(False)``。"

#: ../../library/queue.rst:163
msgid ""
"Two methods are offered to support tracking whether enqueued tasks have been "
"fully processed by daemon consumer threads."
msgstr ""
"有兩個 method 可以支援追蹤放入佇列的任務是否已由常駐消費者執行緒 (daemon "
"consumer threads) 完全處理。"

#: ../../library/queue.rst:169
msgid ""
"Indicate that a formerly enqueued task is complete. Used by queue consumer "
"threads. For each :meth:`get` used to fetch a task, a subsequent call to :"
"meth:`task_done` tells the queue that the processing on the task is complete."
msgstr ""
"表示先前放入佇列的任務已完成。由佇列消費者執行緒使用。對於用來提取任務的每"
"個 :meth:`get`,隨後呼叫 :meth:`task_done` 告訴佇列任務的處理已完成。"

#: ../../library/queue.rst:173
msgid ""
"If a :meth:`join` is currently blocking, it will resume when all items have "
"been processed (meaning that a :meth:`task_done` call was received for every "
"item that had been :meth:`put` into the queue)."
msgstr ""
"如果目前 :meth:`join` 阻塞,它將會在所有項目都已處理完畢後恢復(代表對於以 :"
"meth:`put` 放進佇列的每個項目,都要收到 :meth:`task_done` 的呼叫)。"

#: ../../library/queue.rst:177
msgid ""
"Raises a :exc:`ValueError` if called more times than there were items placed "
"in the queue."
msgstr ""
msgstr "如果呼叫次數超過佇列中放置的項目數量,則引發 :exc:`ValueError`。"

#: ../../library/queue.rst:183
msgid "Blocks until all items in the queue have been gotten and processed."
msgstr ""
msgstr "持續阻塞直到佇列中的所有項目都已被獲取並處理完畢。"

#: ../../library/queue.rst:185
msgid ""
Expand All @@ -231,10 +297,16 @@ msgid ""
"complete. When the count of unfinished tasks drops to zero, :meth:`join` "
"unblocks."
msgstr ""
"每當項目被加到佇列中時,未完成任務的計數都會增加。每當消費者執行緒呼叫 :meth:"
"`task_done` 以指示該項目已被取出並且對其的所有工作都已完成時,計數就會下降。"
"當未完成任務的計數降至零時,:meth:`join` 將停止阻塞。"

#: ../../library/queue.rst:191
msgid "Example of how to wait for enqueued tasks to be completed::"
msgstr ""
"如何等待放入佇列的任務完成的範例:\n"
"\n"
"::"

#: ../../library/queue.rst:218
msgid "SimpleQueue Objects"
Expand All @@ -243,20 +315,23 @@ msgstr "SimpleQueue 物件"
#: ../../library/queue.rst:220
msgid ""
":class:`SimpleQueue` objects provide the public methods described below."
msgstr ""
msgstr ":class:`SimpleQueue` 物件提供下面描述的公用 method。"

#: ../../library/queue.rst:224
msgid ""
"Return the approximate size of the queue. Note, qsize() > 0 doesn't "
"guarantee that a subsequent get() will not block."
msgstr ""
"傳回佇列的近似大小。注意,qsize() > 0 並不能保證後續的 get() 不會阻塞。"

#: ../../library/queue.rst:230
msgid ""
"Return ``True`` if the queue is empty, ``False`` otherwise. If empty() "
"returns ``False`` it doesn't guarantee that a subsequent call to get() will "
"not block."
msgstr ""
"如果佇列為空,則回傳 ``True``,否則回傳 ``False``。如果 empty() 回傳 "
"``False``,則不保證後續呼叫 get() 不會阻塞。"

#: ../../library/queue.rst:237
msgid ""
Expand All @@ -265,12 +340,29 @@ msgid ""
"The optional args *block* and *timeout* are ignored and only provided for "
"compatibility with :meth:`Queue.put`."
msgstr ""
"將 *item* 放入佇列中。此 method 從不阻塞,並且都會成功(除了潛在的低階錯誤,"
"像是分配記憶體失敗)。可選的 args *block* 和 *timeout* 會被忽略,它們僅是為了"
"與 :meth:`Queue.put` 相容才存在。"

#: ../../library/queue.rst:243
msgid ""
"This method has a C implementation which is reentrant. That is, a ``put()`` "
"or ``get()`` call can be interrupted by another ``put()`` call in the same "
"thread without deadlocking or corrupting internal state inside the queue. "
"This makes it appropriate for use in destructors such as ``__del__`` methods "
"or :mod:`weakref` callbacks."
msgstr ""
"此 method 有一個可重入 (reentrant) 的 C 實作。意思就是,一個 ``put()`` 或 "
"``get()`` 呼叫,可以被同一執行緒中的另一個 ``put()`` 呼叫中斷,而不會造成死"
"鎖 (deadlock) 或損壞佇列中的內部狀態。這使得它適合在解構子 (destructor) 中使"
"用,像是 ``__del__`` method 或 :mod:`weakref` 回呼函式 (callback)。"

#: ../../library/queue.rst:252
msgid ""
"Equivalent to ``put(item, block=False)``, provided for compatibility with :"
"meth:`Queue.put_nowait`."
msgstr ""
"等效於 ``put(item, block=False)``,用於與 :meth:`Queue.put_nowait` 相容。"

#: ../../library/queue.rst:258
msgid ""
Expand All @@ -282,16 +374,23 @@ msgid ""
"immediately available, else raise the :exc:`Empty` exception (*timeout* is "
"ignored in that case)."
msgstr ""
"從佇列中移除並回傳一個項目。如果可選的 args *block* 為 true,且 *timeout* 為 "
"``None``\\ (預設值),則在必要時阻塞,直到有可用的項目。如果 *timeout* 是正"
"數,則最多會阻塞 *timeout* 秒,如果該時間內沒有可用的項目,則會引發 :exc:"
"`Empty` 例外。否則(*block* 為 false),如果立即可用,則回傳一個項目,否則引"
"發 :exc:`Empty` 例外(在這種情況下,*timeout* 將被忽略)。"

#: ../../library/queue.rst:275
msgid "Class :class:`multiprocessing.Queue`"
msgstr ":class:`multiprocessing.Queue` 類型"
msgstr "Class :class:`multiprocessing.Queue`"

#: ../../library/queue.rst:274
msgid ""
"A queue class for use in a multi-processing (rather than multi-threading) "
"context."
msgstr ""
"用於多行程處理 (multi-processing)(而非多執行緒)情境 (context) 的佇列 "
"class。"

#: ../../library/queue.rst:277
msgid ""
Expand All @@ -300,3 +399,6 @@ msgid ""
"`~collections.deque.popleft` operations that do not require locking and also "
"support indexing."
msgstr ""
":class:`collections.deque` 是無界佇列的替代實作,有快速且具原子性 (atomic) "
"的 :meth:`~collections.deque.append` 和 :meth:`~collections.deque.popleft` 操"
"作,這些操作不需要鎖定,並且還支持索引。"