diff --git a/tutorial/stdlib2.po b/tutorial/stdlib2.po index 160941e1a0..b3c0aeac5d 100644 --- a/tutorial/stdlib2.po +++ b/tutorial/stdlib2.po @@ -1,15 +1,17 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001-2018, Python Software Foundation +# Copyright (C) 2001-2021, Python Software Foundation # This file is distributed under the same license as the Python package. # # Translators: # woodrow-shen , 2016 +# machineCYC, 2018 +# Steven Hsu , 2021 msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-26 18:54+0800\n" -"PO-Revision-Date: 2018-05-23 16:18+0000\n" +"PO-Revision-Date: 2021-06-19 14:24+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -18,10 +20,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.4.3\n" #: ../../tutorial/stdlib2.rst:5 msgid "Brief Tour of the Standard Library --- Part II" -msgstr "" +msgstr "Python 標準函式庫概覽——第二部份" #: ../../tutorial/stdlib2.rst:7 msgid "" @@ -33,13 +36,17 @@ msgstr "" #: ../../tutorial/stdlib2.rst:14 msgid "Output Formatting" -msgstr "" +msgstr "輸出格式化 (Output Formatting)" #: ../../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::" msgstr "" +":mod:`reprlib` 模組提供了一個 :func:`repr` 的版本,專門用來以簡短的形式顯示大" +"型或深層的巢狀容器:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:23 msgid "" @@ -48,12 +55,20 @@ 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` 模組能對內建和使用者自定的物件提供更複雜的列印控制,並且是以直" +"譯器可讀的方式。當結果超過一行時,「漂亮的印表機」會加入換行和縮排,以更清楚" +"地顯示資料結構:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:39 msgid "" "The :mod:`textwrap` module formats paragraphs of text to fit a given screen " "width::" msgstr "" +":mod:`textwrap` 模組能夠格式化文本的段落,以符合指定的螢幕寬度:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:53 msgid "" @@ -61,10 +76,15 @@ msgid "" "formats. The grouping attribute of locale's format function provides a " "direct way of formatting numbers with group separators::" msgstr "" +":mod:`locale` 模組能存取一個含有特定文化相關資料格式的資料庫。locale 模組的 " +"format 函式有一個 grouping 屬性,可直接以群分隔符 (group separator) 將數字格" +"式化:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:72 msgid "Templating" -msgstr "" +msgstr "模板化 (Templating)" #: ../../tutorial/stdlib2.rst:74 msgid "" @@ -73,6 +93,9 @@ msgid "" "allows users to customize their applications without having to alter the " "application." msgstr "" +":mod:`string` 模組包含一個多功能的 :class:`~string.Template` class,提供的簡化語法" +"適合使用者進行編輯時使用。它容許使用者客製化自己的應用程式,但不必對原應用程" +"式做出變更。" #: ../../tutorial/stdlib2.rst:78 msgid "" @@ -82,6 +105,12 @@ msgid "" "letters with no intervening spaces. Writing ``$$`` creates a single escaped " "``$``::" msgstr "" +"格式化方式是使用佔位符號名稱 (placeholder name),它是由 ``$`` 加上合法的 " +"Python 識別符(字母、數字和下底線)構成。使用大括號包覆佔位符號以允許" +"在後面接上更多的字母和數字而無需插入空格。使用 ``$$`` 將會跳脫為單一字元 `" +"$`:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:88 msgid "" @@ -91,6 +120,13 @@ msgid "" "meth:`~string.Template.safe_substitute` method may be more appropriate --- " "it will leave placeholders unchanged if data is missing::" msgstr "" +"如果在 dictionary 或關鍵字引數中未提供某個佔位符號的值,那麼 :meth:`~string." +"Template.substitute` method 將引發 :exc:`KeyError`\\ 。對於郵件合併 (mail-" +"merge) 類型的應用程式,使用者提供的資料有可能是不完整的,此時使用 :meth:" +"`~string.Template.safe_substitute` method 會更適當——如果資料有缺少,它會保持" +"佔位符號不變:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:103 msgid "" @@ -99,6 +135,11 @@ msgid "" "placeholders such as the current date, image sequence number, or file " "format::" msgstr "" +"Template 的 subclass(子類別)可以指定自訂的分隔符號 (delimiter)。例如,一個" +"相片瀏覽器的批次重新命名功能,可以選擇用百分號作為現在日期、照片序號或檔案格" +"式的佔位符號:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:125 msgid "" @@ -106,10 +147,12 @@ 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:133 msgid "Working with Binary Data Record Layouts" -msgstr "" +msgstr "二進制資料記錄編排 (Binary Data Record Layouts) " #: ../../tutorial/stdlib2.rst:135 msgid "" @@ -120,10 +163,18 @@ msgid "" "\"`` 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 檔案中的標頭資訊 (header " +"information)。壓縮程式碼 ``\"H\"`` 和 ``\"I\"`` 分別代表兩個和四個位元組的無" +"符號數 (unsigned number)。\\ ``\"<\"`` 表示它們是標準大小,並使用小端 " +"(little-endian) 位元組順序:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:166 msgid "Multi-threading" -msgstr "" +msgstr "多執行緒 (Multi-threading)" #: ../../tutorial/stdlib2.rst:168 msgid "" @@ -133,12 +184,20 @@ msgid "" "background. A related use case is running I/O in parallel with computations " "in another thread." msgstr "" +"執行緒是一種用來對非順序相依 (sequentially dependent) 的多個任務進" +"行解耦 (decoupling) 的技術。當其他任務在背景執行時,多執行緒可以用來提升應用程式在接" +"收使用者輸入時的反應能力。一個相關的用例是,運行 I/O 的同時,在另一個執行緒中" +"進行計算。" #: ../../tutorial/stdlib2.rst:173 msgid "" "The following code shows how the high level :mod:`threading` module can run " "tasks in background while the main program continues to run::" msgstr "" +"以下程式碼顯示了高階的 :mod:`threading` 模組如何在背景運行任務,而主程式同時" +"繼續運行:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:197 msgid "" @@ -147,6 +206,9 @@ msgid "" "module provides a number of synchronization primitives including locks, " "events, condition variables, and semaphores." msgstr "" +"多執行緒應用程式的主要挑戰是,要協調多個彼此共享資料或資源的執行緒。為此," +"threading 模組提供了多個同步處理原始物件 (synchronization primitive),包括鎖 " +"(lock)、事件 (event)、條件變數 (condition variable) 和號誌 (semaphore)。" #: ../../tutorial/stdlib2.rst:202 msgid "" @@ -158,10 +220,14 @@ msgid "" "thread communication and coordination are easier to design, more readable, " "and more reliable." msgstr "" +"儘管這些工具很強大,但很小的設計錯誤也可能導致一些難以重現的問題。所以,任務" +"協調的首選方法是,把所有對資源的存取集中到單一的執行緒中,然後使用 :mod:" +"`queue` 模組向該執行緒饋送來自其他執行緒的請求。應用程式若使用 :class:" +"`~queue.Queue` 物件進行執行緒間的通信和協調,會更易於設計、更易讀、更可靠。" #: ../../tutorial/stdlib2.rst:213 msgid "Logging" -msgstr "" +msgstr "日誌記錄 (Logging)" #: ../../tutorial/stdlib2.rst:215 msgid "" @@ -169,10 +235,14 @@ msgid "" "system. At its simplest, log messages are sent to a file or to ``sys." "stderr``::" msgstr "" +":mod:`logging` 模組提供功能齊全且富彈性的日誌記錄系統。在最簡單的情況下,日誌" +"訊息會被發送到檔案或 ``sys.stderr``:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:225 msgid "This produces the following output:" -msgstr "" +msgstr "這會產生以下輸出:" #: ../../tutorial/stdlib2.rst:233 msgid "" @@ -183,6 +253,12 @@ msgid "" "`~logging.DEBUG`, :const:`~logging.INFO`, :const:`~logging.WARNING`, :const:" "`~logging.ERROR`, and :const:`~logging.CRITICAL`." msgstr "" +"在預設情況,資訊和除錯訊息不會被顯示,其輸出會被發送到標準錯誤 (standard " +"error)。其他輸出選項包括,將訊息轉發到電子郵件、資料報 (datagram)、網路插座 " +"(socket) 或 HTTP 伺服器。新的過濾器可以根據訊息的優先順序,選擇不同的路由 " +"(routing) 方式:\\ :const:`~logging.DEBUG`\\ ,\\ :const:`~logging.INFO`" +"\\ ,\\ :const:`~logging.WARNING`\\ ,\\ :const:`~logging.ERROR`\\ ,及 :" +"const:`~logging.CRITICAL`\\ 。" #: ../../tutorial/stdlib2.rst:240 msgid "" @@ -190,10 +266,12 @@ msgid "" "from a user editable configuration file for customized logging without " "altering the application." msgstr "" +"日誌記錄系統可以直接從 Python 配置,也可以透過載入使用者可編輯的配置檔案以進" +"行客製化的日誌記錄,而無須對應用程式做出變更。" #: ../../tutorial/stdlib2.rst:248 msgid "Weak References" -msgstr "" +msgstr "弱引用 (Weak References)" #: ../../tutorial/stdlib2.rst:250 msgid "" @@ -201,6 +279,9 @@ msgid "" "and :term:`garbage collection` to eliminate cycles). The memory is freed " "shortly after the last reference to it has been eliminated." msgstr "" +"Python 會自動進行記憶體管理(對大多數物件進行參照計數 (reference counting) 並" +"使用 :term:`garbage collection` 來消除循環參照)。當一個參照從記憶體被移除後" +"不久,該記憶體就會被釋出。" #: ../../tutorial/stdlib2.rst:254 msgid "" @@ -213,10 +294,18 @@ msgid "" "weakref objects. Typical applications include caching objects that are " "expensive to create::" msgstr "" +"此方式對大多數應用程式來說都沒問題,但偶爾也需要在物件仍然被其他物件所使用時" +"持續追蹤它們。可惜的是,儘管只是追蹤它們,也會建立一個使它們永久化 " +"(permanent) 的參照。\\ :mod:`weakref` 模組提供的工具可以不必建立參照就能追蹤" +"物件。當該物件不再被需要時,它會自動從一個弱引用表 (weakref table) 中被移除," +"並為弱引用物件觸發一個回呼 (callback)。典型的應用包括暫存 (cache) 那些成本較為" +"昂貴的物件:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:289 msgid "Tools for Working with Lists" -msgstr "" +msgstr "使用於 List 的工具" #: ../../tutorial/stdlib2.rst:291 msgid "" @@ -224,6 +313,8 @@ msgid "" "sometimes there is a need for alternative implementations with different " "performance trade-offs." msgstr "" +"許多對於資料結構的需求,可以透過內建的 list(串列)型別來滿足。但是,有時也會" +"根據效能的各種取捨,需要一些替代的實作。" #: ../../tutorial/stdlib2.rst:295 msgid "" @@ -233,6 +324,12 @@ msgid "" "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()` 物件,它像是 list,但只能" +"儲存同類的資料且能緊密地儲存。下面的範例展示一個數值陣列 (array),以兩個位元" +"組的無符號二進數 (unsigned binary numbers) 為儲存單位(類型碼為 ``\"H\"``)," +"而在 Python 整數物件的正規 list 中,每個項目通常使用 16 個位元組:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:308 msgid "" @@ -241,6 +338,12 @@ msgid "" "but slower lookups in the middle. These objects are well suited for " "implementing queues and breadth first tree searches::" msgstr "" +":mod:`collections` 模組提供了一個 :class:`~collections.deque()` 物件,它像是 " +"list,但從左側加入 (append) 和彈出 (pop) 的速度較快,而在中間查找的速度則較" +"慢。這種物件適用於實作佇列 (queue) 和廣度優先搜尋法 (breadth first tree " +"search):\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:329 msgid "" @@ -248,6 +351,10 @@ msgid "" "other tools such as the :mod:`bisect` module with functions for manipulating " "sorted lists::" msgstr "" +"除了替代的 list 實作以外,函式庫也提供了其他工具,例如 :mod:`bisect` 模組,具" +"有能夠操作 sorted list(已排序串列)的函式:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:339 msgid "" @@ -256,10 +363,15 @@ msgid "" "This is useful for applications which repeatedly access the smallest element " "but do not want to run a full list sort::" msgstr "" +":mod:`heapq` 模組提供了一些函式,能基於正規 list 來實作堆積 (heap)。最小值的" +"項目會永遠保持在位置零。對於一些需要多次存取最小元素,但不想要對整個 list 進" +"行排序的應用程式來說,這會很有用:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:355 msgid "Decimal Floating Point Arithmetic" -msgstr "" +msgstr "十進制 (Decimal) 浮點數運算" #: ../../tutorial/stdlib2.rst:357 msgid "" @@ -267,30 +379,32 @@ msgid "" "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` 實作,該 class 特別適用於下列情境" #: ../../tutorial/stdlib2.rst:361 msgid "" "financial applications and other uses which require exact decimal " "representation," -msgstr "" +msgstr "金融應用程式及其他需要準確十進位制表示法的應用," #: ../../tutorial/stdlib2.rst:363 msgid "control over precision," -msgstr "" +msgstr "對於精確度 (precision) 的控制," #: ../../tutorial/stdlib2.rst:364 msgid "control over rounding to meet legal or regulatory requirements," -msgstr "" +msgstr "控制四捨五入,以滿足法律或監管規範," #: ../../tutorial/stdlib2.rst:365 msgid "tracking of significant decimal places, or" -msgstr "" +msgstr "追蹤有效的小數位數 (decimal place),或" #: ../../tutorial/stdlib2.rst:366 msgid "" "applications where the user expects the results to match calculations done " "by hand." -msgstr "" +msgstr "使用者會期望計算結果與手工計算相符的應用程式。" #: ../../tutorial/stdlib2.rst:369 msgid "" @@ -298,6 +412,11 @@ msgid "" "results in decimal floating point and binary floating point. The difference " "becomes significant if the results are rounded to the nearest cent::" msgstr "" +"例如,要計算 70 美分的手機充電加上 5% 稅金的總價,使用十進制浮點數和二進制浮" +"點數,會算出不同的答案。如果把計算結果四捨五入到最接近的美分,兩者的差異會更" +"顯著:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:379 msgid "" @@ -307,6 +426,9 @@ msgid "" "issues that can arise when binary floating point cannot exactly represent " "decimal quantities." msgstr "" +":class:`~decimal.Decimal` 的運算結果會保留尾部的零,也會根據有兩個有效位數的" +"被乘數自動推斷出有四個有效位數的乘積。Decimal 可以重現手工計算的結果,以避免" +"產生二進制浮點數無法準確表示十進制數值時會導致的問題。" #: ../../tutorial/stdlib2.rst:385 msgid "" @@ -314,9 +436,16 @@ msgid "" "modulo calculations and equality tests that are unsuitable for binary " "floating point::" msgstr "" +"準確的表示法使得 :class:`~decimal.Decimal` class 能夠執行對於二進制浮點數不適" +"用的模數計算和相等性檢測:\n" +"\n" +"::" #: ../../tutorial/stdlib2.rst:399 msgid "" "The :mod:`decimal` module provides arithmetic with as much precision as " "needed::" msgstr "" +":mod:`decimal` 模組可提供運算中需要的足夠精確度:\n" +"\n" +"::"