From fcd2769367a099bf3642c561b12eb0ab82fa4c79 Mon Sep 17 00:00:00 2001 From: weijay Date: Thu, 3 Aug 2023 20:50:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(howto/sockets.po):=20=E7=BF=BB?= =?UTF-8?q?=E8=AD=AF=20`Binary=20Data`=20=E5=92=8C=20`Disconnecting`=20?= =?UTF-8?q?=E5=8D=80=E5=A1=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gh-466 --- howto/sockets.po | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/howto/sockets.po b/howto/sockets.po index 4f17400d73..b98a103a33 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.11\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-06-10 00:16+0000\n" -"PO-Revision-Date: 2023-07-19 20:17+0800\n" +"PO-Revision-Date: 2023-08-03 18:11+0800\n" "Last-Translator: Jay \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -417,7 +417,7 @@ msgstr "" #: ../../howto/sockets.rst:252 msgid "Binary Data" -msgstr "" +msgstr "二進制資料" #: ../../howto/sockets.rst:254 msgid "" @@ -430,6 +430,12 @@ msgid "" "little-endian, with the least significant byte first - that same ``1`` would " "be ``01 00``." msgstr "" +"使用 socket 傳輸二進制資料完全是可行的。最主要的問題在於不同機器使用不同的二" +"進制資料格式。例如,`網路二進制順序 `_ 採用的是「大端序 big-endian」最大的位元組排在前面," +"所以一個值為 ``1`` 的 16 位元整數會表示成兩個 16 進位的位元組 ``00 01``。然而" +"大多數常見的處理器 (x86/AMD64,ARM,RISC-V) 採用的是「小端序 little-" +"endian」,最小的位元組排在前面 - 所以相同的 ``1`` 會被表示成 ``01 00``。" #: ../../howto/sockets.rst:262 msgid "" @@ -439,6 +445,10 @@ msgid "" "these do nothing, but where the machine is byte-reversed, these swap the " "bytes around appropriately." msgstr "" +"Socket 函式庫提供了用於轉換 16 位元和 32 位元整數的函式 - ``ntohl, htonl, " +"ntohs, htons``,其中 \"n\" 表示 *網路*,\"h\" 表示 *主機*,\"s\" 表示 " +"*short*,\"l\" 表示 *long*。當網路的位元組順序和主機位元組順序相同時,這些函" +"式不會做任何操作,但當主機的位元組順序相反時,這些函式會適當的交換位元組順序。" #: ../../howto/sockets.rst:268 msgid "" @@ -449,10 +459,14 @@ msgid "" "be 8. Of course, this doesn't fit well with fixed-length messages. " "Decisions, decisions." msgstr "" +"在現今的 64 位元機器中,二進制資料的 ASCII 表示通常會比二進制表示要小,這是因" +"為在很多情況下,大多數整數的值為 0 或者 1。例如,字串形式的 ``\"0\"`` 是兩個" +"位元組,而完整的 64 位元整數則是 8 個位元組。當然,這對固定長度的訊息來說不太" +"適合,需要自行決定。" #: ../../howto/sockets.rst:277 msgid "Disconnecting" -msgstr "" +msgstr "結束連線" #: ../../howto/sockets.rst:279 msgid "" @@ -465,6 +479,12 @@ msgid "" "same as ``shutdown(); close()``. So in most situations, an explicit " "``shutdown`` is not needed." msgstr "" +"嚴格來說,在關閉 socket 前,你應該使用 ``shutdown`` 函式。``shutdown`` 函式是" +"發送給 socket 另一端的一個提醒。根據你傳遞的參數,它可以表示「我不會再發送任" +"何訊息了,但我仍然會持續監聽」,或者是「我不會再繼續監聽了,真讚!」。然而," +"大多數的 socket 函式庫或程式設計師都習慣忽略這種禮節,因為通常情況下 " +"``close`` 跟 ``shutdown(); close()`` 是一樣的。所以在大多數情況下,不需要再特" +"地使用 ``shutdown`` 了。" #: ../../howto/sockets.rst:287 msgid "" @@ -475,6 +495,11 @@ msgid "" "complete request. The server sends a reply. If the ``send`` completes " "successfully then, indeed, the client was still receiving." msgstr "" +"有效使用 ``shutdown`` 的一種方法是在類似 HTTP 的交換中,用戶端發送請求後,然" +"後使用 ``shutdown(1)``。這告訴伺服器「這個用戶端已經發送完成,但仍可以接" +"收」。伺服器可以通過接收「零位元組」來檢測 \"EOF\"。這樣它就可以確定已經接收到" +"完整的請求。伺服器發送回覆,如果 ``send`` 成功完成,那麼用戶端確實在持續接" +"收。" #: ../../howto/sockets.rst:294 msgid "" @@ -485,6 +510,11 @@ msgid "" "indefinitely, thinking you're just being slow. *Please* ``close`` your " "sockets when you're done." msgstr "" +"Python 更近一步地採取自動關閉的步驟,並且當 socket 被回收機制回收時,如果需要" +"的話,他會自動執行 ``close``。但依賴這個機制是一個非常不好的習慣,如果你的 " +"socket 在沒有 ``close`` 的情況下消失了,那麼另一端的 socket 可能會認為你只是" +"慢了一步,而無期限的等待。*請務必* \\在使用完畢後使用 ``close`` 關閉你的 " +"sockets。" #: ../../howto/sockets.rst:302 msgid "When Sockets Die" From 9aaaf33241f0f9df635d4d21414c03f0aff782f9 Mon Sep 17 00:00:00 2001 From: weijay Date: Tue, 8 Aug 2023 19:31:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(howto/sockets.po):=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E6=96=87=E6=B3=95=E3=80=81=E5=B0=88=E6=9C=89?= =?UTF-8?q?=E5=90=8D=E8=A9=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gh-466 --- howto/sockets.po | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/howto/sockets.po b/howto/sockets.po index b98a103a33..f061aec37f 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -417,7 +417,7 @@ msgstr "" #: ../../howto/sockets.rst:252 msgid "Binary Data" -msgstr "二進制資料" +msgstr "二進位資料" #: ../../howto/sockets.rst:254 msgid "" @@ -430,12 +430,13 @@ msgid "" "little-endian, with the least significant byte first - that same ``1`` would " "be ``01 00``." msgstr "" -"使用 socket 傳輸二進制資料完全是可行的。最主要的問題在於不同機器使用不同的二" -"進制資料格式。例如,`網路二進制順序 `_ 採用的是「大端序 big-endian」最大的位元組排在前面," +"使用 socket 傳輸二進位資料完全是可行的。最主要的問題在於不同機器使用不同的二" +"進位資料格式。例如,`網路二進位順序 `_ 採用的是「大端序 big-endian」," "所以一個值為 ``1`` 的 16 位元整數會表示成兩個 16 進位的位元組 ``00 01``。然而" "大多數常見的處理器 (x86/AMD64,ARM,RISC-V) 採用的是「小端序 little-" -"endian」,最小的位元組排在前面 - 所以相同的 ``1`` 會被表示成 ``01 00``。" +"endian」,所以相同的 ``1`` 會被表示成 ``01 00``。" +"(譯者注:將一個多位數的低位放在較小的位址處,高位放在較大的位址處,則稱小端序;反之則稱大端序。)" #: ../../howto/sockets.rst:262 msgid "" @@ -446,7 +447,7 @@ msgid "" "bytes around appropriately." msgstr "" "Socket 函式庫提供了用於轉換 16 位元和 32 位元整數的函式 - ``ntohl, htonl, " -"ntohs, htons``,其中 \"n\" 表示 *網路*,\"h\" 表示 *主機*,\"s\" 表示 " +"ntohs, htons``,其中 \"n\" 表示 *network*,\"h\" 表示 *host*,\"s\" 表示 " "*short*,\"l\" 表示 *long*。當網路的位元組順序和主機位元組順序相同時,這些函" "式不會做任何操作,但當主機的位元組順序相反時,這些函式會適當的交換位元組順序。" @@ -459,7 +460,7 @@ msgid "" "be 8. Of course, this doesn't fit well with fixed-length messages. " "Decisions, decisions." msgstr "" -"在現今的 64 位元機器中,二進制資料的 ASCII 表示通常會比二進制表示要小,這是因" +"在現今的 64 位元機器中,二進位資料的 ASCII 表示通常會比二進位表示要小,這是因" "為在很多情況下,大多數整數的值為 0 或者 1。例如,字串形式的 ``\"0\"`` 是兩個" "位元組,而完整的 64 位元整數則是 8 個位元組。當然,這對固定長度的訊息來說不太" "適合,需要自行決定。" @@ -480,7 +481,7 @@ msgid "" "``shutdown`` is not needed." msgstr "" "嚴格來說,在關閉 socket 前,你應該使用 ``shutdown`` 函式。``shutdown`` 函式是" -"發送給 socket 另一端的一個提醒。根據你傳遞的參數,它可以表示「我不會再發送任" +"發送給 socket 另一端的一個提醒。根據你傳遞的引數,它可以表示「我不會再發送任" "何訊息了,但我仍然會持續監聽」,或者是「我不會再繼續監聽了,真讚!」。然而," "大多數的 socket 函式庫或程式設計師都習慣忽略這種禮節,因為通常情況下 " "``close`` 跟 ``shutdown(); close()`` 是一樣的。所以在大多數情況下,不需要再特" @@ -495,7 +496,7 @@ msgid "" "complete request. The server sends a reply. If the ``send`` completes " "successfully then, indeed, the client was still receiving." msgstr "" -"有效使用 ``shutdown`` 的一種方法是在類似 HTTP 的交換中,用戶端發送請求後,然" +"有效使用 ``shutdown`` 的一種方式是在類似 HTTP 的交換中,用戶端發送請求後,然" "後使用 ``shutdown(1)``。這告訴伺服器「這個用戶端已經發送完成,但仍可以接" "收」。伺服器可以通過接收「零位元組」來檢測 \"EOF\"。這樣它就可以確定已經接收到" "完整的請求。伺服器發送回覆,如果 ``send`` 成功完成,那麼用戶端確實在持續接" @@ -510,7 +511,7 @@ msgid "" "indefinitely, thinking you're just being slow. *Please* ``close`` your " "sockets when you're done." msgstr "" -"Python 更近一步地採取自動關閉的步驟,並且當 socket 被回收機制回收時,如果需要" +"Python 更進一步地採取自動關閉的步驟,並且當 socket 被垃圾回收機制回收時,如果需要" "的話,他會自動執行 ``close``。但依賴這個機制是一個非常不好的習慣,如果你的 " "socket 在沒有 ``close`` 的情況下消失了,那麼另一端的 socket 可能會認為你只是" "慢了一步,而無期限的等待。*請務必* \\在使用完畢後使用 ``close`` 關閉你的 "