From f6c5c176e2962317cfeebb61f1f53db990ac4320 Mon Sep 17 00:00:00 2001 From: "Matt.Wang" Date: Thu, 3 Mar 2022 11:41:50 +0800 Subject: [PATCH] translate `library/asyncio-stream.po` --- library/asyncio-stream.po | 161 ++++++++++++++++++++++++++++---------- 1 file changed, 118 insertions(+), 43 deletions(-) diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 405eb6486e..aed779710c 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -1,15 +1,16 @@ -# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2022, Python Software Foundation # This file is distributed under the same license as the Python package. # # Translators: +# Adrian Liaw , 2018 +# Matt Wang , 2022 msgid "" msgstr "" "Project-Id-Version: Python 3.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-15 00:13+0000\n" -"PO-Revision-Date: 2022-02-20 12:39+0800\n" -"Last-Translator: Adrian Liaw \n" +"POT-Creation-Date: 2022-02-19 00:13+0000\n" +"PO-Revision-Date: 2022-06-11 15:06+0800\n" +"Last-Translator: Matt Wang \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" "Language: zh_TW\n" @@ -17,11 +18,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 3.0.1\n" +"X-Generator: Poedit 3.1\n" #: ../../library/asyncio-stream.rst:7 msgid "Streams" -msgstr "" +msgstr "串流" #: ../../library/asyncio-stream.rst:9 msgid "**Source code:** :source:`Lib/asyncio/streams.py`" @@ -33,48 +34,58 @@ msgid "" "connections. Streams allow sending and receiving data without using " "callbacks or low-level protocols and transports." msgstr "" +"串流是支援 async/await (async/await-ready) 的高階原始物件 (high-level " +"primitive),用於處理網路連線。串流不需要使用回呼 (callback) 或低階協定和傳輸 " +"(transport) 就能夠傳送和接收資料。" #: ../../library/asyncio-stream.rst:19 msgid "Here is an example of a TCP echo client written using asyncio streams::" msgstr "" +"這是一個使用 asyncio 串流編寫的 TCP echo 客戶端範例:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:42 msgid "See also the `Examples`_ section below." -msgstr "另請參閱下方\\ `Examples`_\\ 。" +msgstr "另請參閱下方 `Examples`_ 段落。" #: ../../library/asyncio-stream.rst:46 msgid "Stream Functions" -msgstr "" +msgstr "串流函式" #: ../../library/asyncio-stream.rst:47 msgid "" "The following top-level asyncio functions can be used to create and work " "with streams:" -msgstr "" +msgstr "下面的高階 asyncio 函式可以用來建立和處理串流:" #: ../../library/asyncio-stream.rst:57 msgid "" "Establish a network connection and return a pair of ``(reader, writer)`` " "objects." -msgstr "" +msgstr "建立網路連線並回傳一對 ``(reader, writer)`` 物件。" #: ../../library/asyncio-stream.rst:60 msgid "" "The returned *reader* and *writer* objects are instances of :class:" "`StreamReader` and :class:`StreamWriter` classes." msgstr "" +"回傳的 *reader* 和 *writer* 物件是 :class:`StreamReader` 和 :class:" +"`StreamWriter` 類別的實例。" #: ../../library/asyncio-stream.rst:63 ../../library/asyncio-stream.rst:99 msgid "" "*limit* determines the buffer size limit used by the returned :class:" "`StreamReader` instance. By default the *limit* is set to 64 KiB." msgstr "" +"*limit* 指定了回傳的 :class:`StreamReader` 實例所使用的緩衝區 (buffer) 大小限" +"制。*limit* 預設為 64 KiB。" #: ../../library/asyncio-stream.rst:67 msgid "" "The rest of the arguments are passed directly to :meth:`loop." "create_connection`." -msgstr "" +msgstr "其餘的引數會直接傳遞到 :meth:`loop.create_connection`。" #: ../../library/asyncio-stream.rst:70 msgid "Added the *ssl_handshake_timeout* parameter." @@ -87,11 +98,11 @@ msgstr "" #: ../../library/asyncio-stream.rst:76 ../../library/asyncio-stream.rst:109 #: ../../library/asyncio-stream.rst:132 ../../library/asyncio-stream.rst:152 msgid "Removed the *loop* parameter." -msgstr "" +msgstr "移除 *loop* 參數。" #: ../../library/asyncio-stream.rst:88 msgid "Start a socket server." -msgstr "" +msgstr "啟動 socket 伺服器。" #: ../../library/asyncio-stream.rst:90 msgid "" @@ -100,6 +111,9 @@ msgid "" "arguments, instances of the :class:`StreamReader` and :class:`StreamWriter` " "classes." msgstr "" +"當一個新的客戶端連線被建立時,回呼函式 *client_connected_cb* 就會被呼叫。該函" +"式會接收到一對引數 ``(reader, writer)``,分別為 :class:`StreamReader` 和 :" +"class:`StreamWriter` 的實例。" #: ../../library/asyncio-stream.rst:95 msgid "" @@ -107,11 +121,14 @@ msgid "" "`; if it is a coroutine function, it will be automatically " "scheduled as a :class:`Task`." msgstr "" +"*client_connected_cb* 既可以是普通的可呼叫物件 (callable),也可以是一個\\ :" +"ref:`協程函式 `;如果它是一個協程函式,它將自動作為 :class:`Task` " +"來被排程。" #: ../../library/asyncio-stream.rst:103 msgid "" "The rest of the arguments are passed directly to :meth:`loop.create_server`." -msgstr "" +msgstr "剩下的引數將會直接傳遞給 :meth:`loop.create_server`。" #: ../../library/asyncio-stream.rst:106 msgid "Added the *ssl_handshake_timeout* and *start_serving* parameters." @@ -119,16 +136,16 @@ msgstr "新增 *ssl_handshake_timeout* 與 *start_serving* 參數。" #: ../../library/asyncio-stream.rst:114 msgid "Unix Sockets" -msgstr "" +msgstr "Unix Sockets" #: ../../library/asyncio-stream.rst:119 msgid "" "Establish a Unix socket connection and return a pair of ``(reader, writer)``." -msgstr "" +msgstr "建立一個 Unix socket 連線並回傳一對 ``(reader, writer)``。" #: ../../library/asyncio-stream.rst:122 msgid "Similar to :func:`open_connection` but operates on Unix sockets." -msgstr "" +msgstr "與 :func:`open_connection` 相似,但是是操作 Unix sockets。" #: ../../library/asyncio-stream.rst:124 msgid "See also the documentation of :meth:`loop.create_unix_connection`." @@ -143,16 +160,16 @@ msgid "" "Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " "a :term:`path-like object`" msgstr "" -"新增 *ssl_handshake_timeout* 參數。\\ *path* 參數現在可以是個\\ :term:`path-" -"like object`" +"新增 *ssl_handshake_timeout* 參數。*path* 參數現在可以是個 :term:`path-like " +"object`" #: ../../library/asyncio-stream.rst:140 msgid "Start a Unix socket server." -msgstr "" +msgstr "啟動一個 Unix socket 伺服器。" #: ../../library/asyncio-stream.rst:142 msgid "Similar to :func:`start_server` but works with Unix sockets." -msgstr "" +msgstr "與 :func:`start_server` 相似,但會是操作 Unix sockets。" #: ../../library/asyncio-stream.rst:144 msgid "See also the documentation of :meth:`loop.create_unix_server`." @@ -163,8 +180,8 @@ msgid "" "Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " "parameter can now be a :term:`path-like object`." msgstr "" -"新增 *ssl_handshake_timeout* 與 *start_serving* 參數。\\ *path* 參數現在可以" -"是個 :term:`path-like object`\\ 。" +"新增 *ssl_handshake_timeout* 與 *start_serving* 參數。*path* 參數現在可以是" +"個 :term:`path-like object`。" #: ../../library/asyncio-stream.rst:157 msgid "StreamReader" @@ -174,46 +191,50 @@ msgstr "StreamReader" msgid "" "Represents a reader object that provides APIs to read data from the IO " "stream." -msgstr "" +msgstr "表示一個有提供 API 來從 IO 串流中讀取資料的 reader 物件。" #: ../../library/asyncio-stream.rst:164 msgid "" "It is not recommended to instantiate *StreamReader* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." msgstr "" +"不建議直接實例化 *StreamReader* 物件;使用 :func:`open_connection` 和 :func:" +"`start_server` 會是較好的做法。" #: ../../library/asyncio-stream.rst:170 msgid "" "Read up to *n* bytes. If *n* is not provided, or set to ``-1``, read until " "EOF and return all read bytes." msgstr "" +"讀取至多 *n* 個位元組。如果沒有設定 *n* 或被設為 ``-1``,則表示要持續讀取直" +"到 EOF 並回傳所有已讀取的位元組。" #: ../../library/asyncio-stream.rst:173 msgid "" "If EOF was received and the internal buffer is empty, return an empty " "``bytes`` object." -msgstr "" +msgstr "如果讀取到 EOF 且內部緩衝區是空的,則回傳一個空的 ``bytes`` 物件。" #: ../../library/asyncio-stream.rst:178 msgid "" "Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." -msgstr "" +msgstr "讀取一行,其中\"行\"指的是以 ``\\n`` 結尾的位元組序列。" #: ../../library/asyncio-stream.rst:181 msgid "" "If EOF is received and ``\\n`` was not found, the method returns partially " "read data." -msgstr "" +msgstr "如果讀取到 EOF 而沒有找到 ``\\n``,該方法會回傳部分的已讀取資料。" #: ../../library/asyncio-stream.rst:184 msgid "" "If EOF is received and the internal buffer is empty, return an empty " "``bytes`` object." -msgstr "" +msgstr "如果讀取到 EOF 且內部緩衝區是空的,則回傳一個空的 ``bytes`` 物件。" #: ../../library/asyncio-stream.rst:189 msgid "Read exactly *n* bytes." -msgstr "" +msgstr "讀取剛好 *n* 個位元組。" #: ../../library/asyncio-stream.rst:191 msgid "" @@ -221,16 +242,21 @@ msgid "" "read. Use the :attr:`IncompleteReadError.partial` attribute to get the " "partially read data." msgstr "" +"如果在讀取完 *n* 個位元組之前讀取到 EOF,則會引發 :exc:" +"`IncompleteReadError`。使用 :attr:`IncompleteReadError.partial` 屬性來獲取串" +"流結束前已讀取的部分資料。" #: ../../library/asyncio-stream.rst:197 msgid "Read data from the stream until *separator* is found." -msgstr "" +msgstr "從串流中持續讀取資料直到出現 *separator*。" #: ../../library/asyncio-stream.rst:199 msgid "" "On success, the data and separator will be removed from the internal buffer " "(consumed). Returned data will include the separator at the end." msgstr "" +"成功後,資料和 separator(分隔符號)會從內部緩衝區中刪除(或者說是被消費掉 " +"(consumed))。回傳的資料在末尾會有一個 separator。" #: ../../library/asyncio-stream.rst:203 msgid "" @@ -238,6 +264,8 @@ msgid "" "`LimitOverrunError` exception is raised, and the data is left in the " "internal buffer and can be read again." msgstr "" +"如果讀取的資料量超過了設定的串流限制,將會引發 :exc:`LimitOverrunError` 例" +"外,資料將被留在內部緩衝區中,並可以再次被讀取。" #: ../../library/asyncio-stream.rst:207 msgid "" @@ -246,10 +274,13 @@ msgid "" "reset. The :attr:`IncompleteReadError.partial` attribute may contain a " "portion of the separator." msgstr "" +"如果在完整的 separator 被找到之前就讀取到 EOF,則會引發 :exc:" +"`IncompleteReadError` 例外,且內部緩衝區會被重置。:attr:`IncompleteReadError." +"partial` 屬性可能包含一部分的 separator。" #: ../../library/asyncio-stream.rst:216 msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." -msgstr "" +msgstr "如果緩衝區是空的且 :meth:`feed_eof` 曾被呼叫則回傳 ``True``。" #: ../../library/asyncio-stream.rst:221 msgid "StreamWriter" @@ -258,13 +289,15 @@ msgstr "StreamWriter" #: ../../library/asyncio-stream.rst:225 msgid "" "Represents a writer object that provides APIs to write data to the IO stream." -msgstr "" +msgstr "表示一個有提供 API 來將資料寫入 IO 串流的 writer 物件。" #: ../../library/asyncio-stream.rst:228 msgid "" "It is not recommended to instantiate *StreamWriter* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." msgstr "" +"不建議直接實例化 *StreamWriter* 物件;使用 :func:`open_connection` 和 :func:" +"`start_server` 會是較好的做法。" #: ../../library/asyncio-stream.rst:234 msgid "" @@ -272,10 +305,15 @@ msgid "" "immediately. If that fails, the data is queued in an internal write buffer " "until it can be sent." msgstr "" +"此方法會嘗試立即將 *data* 寫入到底層的 socket。如果失敗,資料會被放到內部寫入" +"緩衝中排隊等待 (queue),直到它可被發送。" #: ../../library/asyncio-stream.rst:238 ../../library/asyncio-stream.rst:250 msgid "The method should be used along with the ``drain()`` method::" msgstr "" +"此方法應當與 ``drain()`` 方法一起使用:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:245 msgid "" @@ -283,39 +321,49 @@ msgid "" "immediately. If that fails, the data is queued in an internal write buffer " "until it can be sent." msgstr "" +"此方法會立即嘗試將一個位元組 list(或任何可疊代物件 (iterable))寫入到底層的 " +"socket。如果失敗,資料會被放到內部寫入緩衝中排隊等待,直到它可被發送。" #: ../../library/asyncio-stream.rst:257 msgid "The method closes the stream and the underlying socket." -msgstr "" +msgstr "此方法會關閉串流以及底層的 socket。" #: ../../library/asyncio-stream.rst:259 msgid "The method should be used along with the ``wait_closed()`` method::" msgstr "" +"此方法應與 ``wait_closed()`` 方法一起使用:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:266 msgid "" "Return ``True`` if the underlying transport supports the :meth:`write_eof` " "method, ``False`` otherwise." msgstr "" +"如果底層的傳輸支援 :meth:`write_eof` 方法就回傳 ``True``,否則回傳 " +"``False``。" #: ../../library/asyncio-stream.rst:271 msgid "" "Close the write end of the stream after the buffered write data is flushed." -msgstr "" +msgstr "在已緩衝的寫入資料被清理 (flush) 後關閉串流的寫入端。" #: ../../library/asyncio-stream.rst:276 msgid "Return the underlying asyncio transport." -msgstr "" +msgstr "回傳底層的 asyncio 傳輸。" #: ../../library/asyncio-stream.rst:280 msgid "" "Access optional transport information; see :meth:`BaseTransport." "get_extra_info` for details." -msgstr "" +msgstr "存取可選的傳輸資訊;詳情請見 :meth:`BaseTransport.get_extra_info`。" #: ../../library/asyncio-stream.rst:285 msgid "Wait until it is appropriate to resume writing to the stream. Example::" msgstr "" +"等待直到可以繼續寫入到串流。範例:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:291 msgid "" @@ -325,21 +373,24 @@ msgid "" "writing can be resumed. When there is nothing to wait for, the :meth:" "`drain` returns immediately." msgstr "" +"這是一個與底層 IO 寫入緩衝區互動的流程控制方法。當緩衝區大小達到最高標記位 " +"(high watermark) 時,*drain()* 會阻塞直到緩衝區大小減少至最低標記位 (low " +"watermark) 以便繼續寫入。當沒有要等待的資料時,:meth:`drain` 會立即回傳。" #: ../../library/asyncio-stream.rst:300 msgid "" "Return ``True`` if the stream is closed or in the process of being closed." -msgstr "" +msgstr "如果串流已被關閉或正在被關閉則回傳 ``True``。" #: ../../library/asyncio-stream.rst:307 msgid "Wait until the stream is closed." -msgstr "" +msgstr "等待直到串流被關閉。" #: ../../library/asyncio-stream.rst:309 msgid "" "Should be called after :meth:`close` to wait until the underlying connection " "is closed." -msgstr "" +msgstr "應當在 :meth:`close` 之後才被呼叫,這會持續等待直到底層的連線被關閉。" #: ../../library/asyncio-stream.rst:316 msgid "Examples" @@ -347,11 +398,14 @@ msgstr "範例" #: ../../library/asyncio-stream.rst:321 msgid "TCP echo client using streams" -msgstr "" +msgstr "使用串流的 TCP echo 客戶端" #: ../../library/asyncio-stream.rst:323 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "" +"使用 :func:`asyncio.open_connection` 函式的 TCP echo 客戶端:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:345 msgid "" @@ -359,14 +413,19 @@ msgid "" "` example uses the low-level :meth:" "`loop.create_connection` method." msgstr "" +"使用低階 :meth:`loop.create_connection` 方法的 :ref:`TCP echo 客戶端協定 " +"`\\ 範例。" #: ../../library/asyncio-stream.rst:352 msgid "TCP echo server using streams" -msgstr "" +msgstr "使用串流的 TCP echo 伺服器" #: ../../library/asyncio-stream.rst:354 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "" +"TCP echo 伺服器使用 :func:`asyncio.start_server` 函式:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:387 msgid "" @@ -374,15 +433,20 @@ msgid "" "` example uses the :meth:`loop." "create_server` method." msgstr "" +"使用 :meth:`loop.create_server` 方法的 :ref:`TCP echo 伺服器協定 " +"` 範例。" #: ../../library/asyncio-stream.rst:392 msgid "Get HTTP headers" -msgstr "" +msgstr "獲取 HTTP 標頭" #: ../../library/asyncio-stream.rst:394 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" +"查詢自命令列傳入之 URL 所帶有 HTTP 標頭的簡單範例:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:432 msgid "Usage::" @@ -394,16 +458,22 @@ msgstr "" #: ../../library/asyncio-stream.rst:436 msgid "or with HTTPS::" msgstr "" +"或使用 HTTPS:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:444 msgid "Register an open socket to wait for data using streams" -msgstr "" +msgstr "註冊一個使用串流來等待資料的開放 socket" #: ../../library/asyncio-stream.rst:446 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" msgstr "" +"等待直到 socket 透過使用 :func:`open_connection` 函式接收到資料的協程:\n" +"\n" +"::" #: ../../library/asyncio-stream.rst:480 msgid "" @@ -411,6 +481,9 @@ msgid "" "` example uses a low-level protocol and " "the :meth:`loop.create_connection` method." msgstr "" +"在\\ :ref:`註冊一個開啟的 socket 以等待有使用協定的資料 " +"`\\ 範例中,有使用了低階協定以及 :meth:" +"`loop.create_connection` 方法。" #: ../../library/asyncio-stream.rst:484 msgid "" @@ -418,3 +491,5 @@ msgid "" "` example uses the low-level :meth:`loop." "add_reader` method to watch a file descriptor." msgstr "" +"在\\ :ref:`監視檔案描述器以讀取事件 `\\ 範例中,有" +"使用低階的 :meth:`loop.add_reader` 方法來監視檔案描述器。"