From 33b80746baa5c68daba2975bb18637345316b70f Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Wed, 26 May 2021 21:31:40 +0800 Subject: [PATCH 1/7] Translate inputoutput.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. rst:330 was not updated. 2. Fix a "一" (注音文) in datastructures.po --- tutorial/datastructures.po | 4 +- tutorial/inputoutput.po | 217 ++++++++++++++++++++++++++++++++++--- 2 files changed, 203 insertions(+), 18 deletions(-) diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index b34c9beecb..1606fdb623 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -15,7 +15,7 @@ msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-05-21 15:41+0800\n" -"PO-Revision-Date: 2021-05-24 11:34+0800\n" +"PO-Revision-Date: 2021-05-26 20:56+0800\n" "Last-Translator: Steven Hsu \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -809,7 +809,7 @@ msgid "" msgstr "" "序列物件通常可以拿來和其他相同類型的物件做比較。這種比較使用\\ *詞典式 " "(lexicographical)* 順序:首先比較各自最前面的那項,若不相同,便可決定結果;若" -"相同,則比較下ㄧ項,以此類推,直到其中一個序列完全用完。如果被拿出來比較的兩" +"相同,則比較下一項,以此類推,直到其中一個序列完全用完。如果被拿出來比較的兩" "項本身又是相同的序列類型,則詞典式比較會遞迴地執行。如果兩個序列所有的項目都" "相等,則此兩個序列被認為是相等的。如果其中一個序列是另一個的子序列,則較短的" "那個序列為較小的序列。字串的詞典式順序使用 Unicode 的碼位 (code point) 編號來" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 45d37e8097..0e9d9cc61d 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -6,10 +6,10 @@ # jerrychen , 2016 msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-20 18:08+0800\n" -"PO-Revision-Date: 2018-10-17 00:07+0800\n" +"PO-Revision-Date: 2021-05-26 20:32+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -18,7 +18,7 @@ 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.2\n" +"X-Generator: Poedit 2.4.3\n" #: ../../tutorial/inputoutput.rst:5 msgid "Input and Output" @@ -44,9 +44,9 @@ msgid "" "method of file objects; the standard output file can be referenced as ``sys." "stdout``. See the Library Reference for more information on this.)" msgstr "" -"目前為止我們已經學過兩種寫值的方式:*表示式陳述 (expression statements)* 與 :" +"目前為止我們已經學過兩種寫值的方式:*運算式陳述 (expression statements)* 與 :" "func:`print` 函式。(第三種方法是使用檔案物件的 :meth:`write` 方法;標準輸出" -"的檔案是使用 ``sys.stdout`` 來達成的。詳細的資訊請參考對應的函示庫說明。)" +"的檔案是使用 ``sys.stdout`` 來達成的。詳細的資訊請參考對應的函式庫說明。)" #: ../../tutorial/inputoutput.rst:22 msgid "" @@ -54,7 +54,7 @@ msgid "" "simply printing space-separated values. There are several ways to format " "output." msgstr "" -"通常你會想要對輸出格式有更多地控制;而不是僅列印出以空格隔開的值。以下是幾種" +"通常你會想要對輸出格式有更多地控制,而不是僅列印出以空格隔開的值。以下是幾種" "格式化輸出的方式。" #: ../../tutorial/inputoutput.rst:25 @@ -64,6 +64,10 @@ msgid "" "Inside this string, you can write a Python expression between ``{`` and ``}" "`` characters that can refer to variables or literal values." msgstr "" +"要使用\\ :ref:`格式化的字串文本 (formatted string literals) `" +"\\ ,需在字串開始前的引號或連續三個引號前加上 ``f`` 或 ``F``。你可以在這個字" +"串中使用 ``{`` 與 ``}`` 包夾 Python 的運算式,引用變數或其他字面值 (literal " +"values)。" #: ../../tutorial/inputoutput.rst:37 msgid "" @@ -72,6 +76,9 @@ msgid "" "substituted and can provide detailed formatting directives, but you'll also " "need to provide the information to be formatted." msgstr "" +"字串的 :meth:`str.format` method 需要更多手動操作。你還是可以用 ``{`` 和 ``}" +"`` 標示欲替代變數的位置,且可給予詳細的格式指令,但你也需提供要被格式化的資" +"訊。" #: ../../tutorial/inputoutput.rst:50 msgid "" @@ -80,6 +87,9 @@ msgid "" "string type has some methods that perform useful operations for padding " "strings to a given column width." msgstr "" +"最後,你還可以自己用字串切片 (slicing) 和序連 (concatenation) 運算,完成所有" +"的字串處理,建立任何你能想像的排版格式。字串類型有一些 method ,能以給定的欄" +"寬填補字串,這些運算也很有用。" #: ../../tutorial/inputoutput.rst:55 msgid "" @@ -87,6 +97,8 @@ msgid "" "variables for debugging purposes, you can convert any value to a string with " "the :func:`repr` or :func:`str` functions." msgstr "" +"如果你不需要華麗的輸出,只想快速顯示變數以進行除錯,可以用 :func:`repr` 或 :" +"func:`str` 函式把任何的值轉換為字串。" #: ../../tutorial/inputoutput.rst:59 msgid "" @@ -99,6 +111,11 @@ msgid "" "structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" +":func:`str` 函式會將值以人類易讀的表示法回傳,而 :func:`repr` 則會產生直譯器" +"可讀取的表示法(如果沒有等效的語法,則強制執行 :exc:`SyntaxError`\\ )。如果" +"物件沒有人類易讀的特定表示法,\\ :func:`str` 會回傳與 :func:`repr` 相同的值。" +"有許多的值,像是數字,或 list 及 dictionary 等結構,使用這兩個函式會有相同的" +"表示法。而字串,則較為特別,有兩種不同的表示法。" #: ../../tutorial/inputoutput.rst:68 msgid "Some examples::" @@ -114,6 +131,9 @@ msgid "" "like ``$x`` and replacing them with values from a dictionary, but offers " "much less control of the formatting." msgstr "" +":mod:`string` 模組包含一個 :class:`~string.Template` class(類別),提供了將" +"值替代為字串的另一種方法。該方法使用 ``$x`` 佔位字元,並以 dictionary 的值進" +"行取代,但對格式的控制明顯較少。" #: ../../tutorial/inputoutput.rst:100 msgid "Formatted String Literals" @@ -126,6 +146,9 @@ msgid "" "prefixing the string with ``f`` or ``F`` and writing expressions as " "``{expression}``." msgstr "" +":ref:`格式化的字串文本 `\\ (簡稱為 f-字串),透過在字串加入前綴 " +"``f`` 或 ``F``,並將運算式編寫為 ``{expression}``\\ ,讓你可以在字串內加入 " +"Python 運算式的值。" #: ../../tutorial/inputoutput.rst:107 msgid "" @@ -133,12 +156,17 @@ msgid "" "control over how the value is formatted. The following example rounds pi to " "three places after the decimal::" msgstr "" +"格式說明符 (format specifier) 是可選的,寫在運算式後面,可以更好地控制值的格" +"式化方式。以下範例將 pi 捨入到小數點後三位:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:115 msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" +"在 ``':'`` 後傳遞一個整數,可為該欄設置最低字元寬度,常用於將欄位對齊:" #: ../../tutorial/inputoutput.rst:126 msgid "" @@ -146,20 +174,27 @@ msgid "" "a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" +"還有一些修飾符可以在格式化前轉換值。\\ ``'!a'`` 應用 :func:`ascii`\\ ,\\ " +"``'!s'`` 應用 :func:`str`\\ ,\\ ``'!r'`` 應用 :func:`repr`\\ :\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:136 msgid "" "For a reference on these format specifications, see the reference guide for " "the :ref:`formatspec`." -msgstr "" +msgstr "關於格式化規格的參考資料,詳見 :ref:`formatspec` 參考指引。" #: ../../tutorial/inputoutput.rst:142 msgid "The String format() Method" -msgstr "" +msgstr "字串的 format() method" #: ../../tutorial/inputoutput.rst:144 msgid "Basic usage of the :meth:`str.format` method looks like this::" msgstr "" +":meth:`str.format` method 的基本用法如下:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:149 msgid "" @@ -168,16 +203,28 @@ msgid "" "brackets can be used to refer to the position of the object passed into the :" "meth:`str.format` method. ::" msgstr "" +"大括號及其內的字元(稱為格式欄位)會被取代為傳遞給 :meth:`str.format` method " +"的物件。大括號中的數字可引用物件在傳遞給 :meth:`str.format` method 時的位" +"置。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:159 msgid "" "If keyword arguments are used in the :meth:`str.format` method, their values " "are referred to by using the name of the argument. ::" msgstr "" +"如果在 :meth:`str.format` method 中使用關鍵字引數,可以使用引數名稱去引用它們" +"的值。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:166 msgid "Positional and keyword arguments can be arbitrarily combined::" msgstr "" +"位置引數和關鍵字引數可以任意組合:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:172 msgid "" @@ -186,44 +233,64 @@ msgid "" "instead of by position. This can be done by simply passing the dict and " "using square brackets ``'[]'`` to access the keys. ::" msgstr "" +"如果你有一個不想分割的長格式化字串,比較好的方式是按名稱而不是按位置來引用變" +"數。這項操作可以透過傳遞字典 (dict),並用方括號 ``'[]'`` 存取鍵 (key) 來輕鬆" +"完成。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:182 msgid "" "This could also be done by passing the table as keyword arguments with the " "'**' notation. ::" msgstr "" +"用 '**' 符號,把 table 當作關鍵字引數來傳遞,也有一樣的結果。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:189 msgid "" "This is particularly useful in combination with the built-in function :func:" "`vars`, which returns a dictionary containing all local variables." msgstr "" +"與內建函式 :func:`vars` 組合使用時,這種方式特別實用。該函式可以回傳一個包含" +"所有區域變數的 dictionary。" #: ../../tutorial/inputoutput.rst:192 msgid "" "As an example, the following lines produce a tidily-aligned set of columns " "giving integers and their squares and cubes::" msgstr "" +"例如,下面的程式碼產生一組排列整齊的欄,列出整數及其平方與立方:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:209 msgid "" "For a complete overview of string formatting with :meth:`str.format`, see :" "ref:`formatstrings`." msgstr "" +"關於使用 :meth:`str.format` 進行字串格式化的完整概述,請見\\ :ref:" +"`formatstrings`\\ 。" #: ../../tutorial/inputoutput.rst:214 msgid "Manual String Formatting" -msgstr "" +msgstr "手動格式化字串" #: ../../tutorial/inputoutput.rst:216 msgid "Here's the same table of squares and cubes, formatted manually::" msgstr "" +"下面是以手動格式化完成的同一個平方及立方的表:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:234 msgid "" "(Note that the one space between each column was added by the way :func:" "`print` works: it always adds spaces between its arguments.)" msgstr "" +"(請注意,使用 :func:`print` 讓每欄之間加入一個空格的方法:這種方法總是在其引" +"數間加入空格。)" #: ../../tutorial/inputoutput.rst:237 msgid "" @@ -236,16 +303,26 @@ msgid "" "would be lying about a value. (If you really want truncation you can always " "add a slice operation, as in ``x.ljust(n)[:n]``.)" msgstr "" +"字串物件的 :meth:`str.rjust` method 透過在左側填補空格,使字串以給定的欄寬進" +"行靠右對齊。類似的 method 還有 :meth:`str.ljust` 和 :meth:`str.center`\\ 。這" +"些 method 不寫入任何內容,只回傳一個新字串,如果輸入的字串太長,它們不會截斷" +"字串,而是不做任何改變地回傳;雖然這樣會弄亂欄的布置,但這通常還是比另一種情" +"況好,那種情況會讓值變得不正確。(如果你真的想截斷字串,可以加入像 ``x." +"ljust(n)[:n]`` 這樣的切片運算。)" #: ../../tutorial/inputoutput.rst:246 msgid "" "There is another method, :meth:`str.zfill`, which pads a numeric string on " "the left with zeros. It understands about plus and minus signs::" msgstr "" +"另一種 method 是 :meth:`str.zfill`\\ ,可在數值字串的左邊填補零,且能識別正負" +"號:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:258 msgid "Old string formatting" -msgstr "" +msgstr "格式化字串的舊方法" #: ../../tutorial/inputoutput.rst:260 msgid "" @@ -254,21 +331,28 @@ msgid "" "zero or more elements of ``values``. This operation is commonly known as " "string interpolation. For example::" msgstr "" +"% 運算子(modulo,模數)也可用於字串格式化。在 ``'string' % values`` 中,\\ " +"``string`` 的實例 ``%`` 會被 ``values`` 的零個或多個元素所取代。此運算常被稱" +"為字串內插 (string interpolation)。例如:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:269 msgid "" "More information can be found in the :ref:`old-string-formatting` section." -msgstr "" +msgstr "更多資訊請見 :ref:`old-string-formatting`\\ 小節。" #: ../../tutorial/inputoutput.rst:275 msgid "Reading and Writing Files" -msgstr "" +msgstr "讀寫檔案" #: ../../tutorial/inputoutput.rst:281 msgid "" ":func:`open` returns a :term:`file object`, and is most commonly used with " "two arguments: ``open(filename, mode)``." msgstr "" +":func:`open` 回傳一個 :term:`file object`\\ ,而它最常使用的兩個引數是:\\ " +"``open(filename, mode)``。" #: ../../tutorial/inputoutput.rst:293 msgid "" @@ -281,6 +365,11 @@ msgid "" "reading and writing. The *mode* argument is optional; ``'r'`` will be " "assumed if it's omitted." msgstr "" +"第一個引數是一個包含檔案名稱的字串。第二個引數是另一個字串,包含了描述檔案使" +"用方式的幾個字元。\\ *mode* 為 ``'r'`` 時,表示檔案唯讀;為 ``'w'`` 時,表示" +"檔案唯寫(已存在的同名檔案會被抹除);為 ``'a'`` 時,以附加內容為目的開啟檔" +"案,任何寫入檔案的資料會自動被加入到檔案的結尾。\\ ``'r+'`` 可以開啟檔案並進" +"行讀取和寫入。\\ *mode* 引數是可選的,若省略時會預設為 ``'r'``。" #: ../../tutorial/inputoutput.rst:302 msgid "" @@ -291,6 +380,11 @@ msgid "" "`binary mode`: now the data is read and written in the form of bytes " "objects. This mode should be used for all files that don't contain text." msgstr "" +"通常,檔案以 :dfn:`text mode` 開啟,意即,從檔案中讀取或寫入字串時,都以特定" +"編碼方式進行編碼。如未指定編碼方式,則預設值會取決於平台 (platform dependent)" +"(見 :func:`open`\\ )。在 mode 加上 ``'b'`` 會以 :dfn:`binary mode` 開啟檔" +"案:此時,資料以位元組物件 (bytes object) 的形式被讀寫。此模式應該使用於所有" +"不含文字的檔案。" #: ../../tutorial/inputoutput.rst:309 msgid "" @@ -302,6 +396,11 @@ msgid "" "file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " "reading and writing such files." msgstr "" +"在文字模式 (text mode) 下,讀取時會預設把平台指定的 (platform-specific) 行尾" +"結束符號(Unix 上為 ``\\n``,Windows 上為 ``\\r\\n``)轉換為 ``\\n``。在文字" +"模式下寫入時,預設會把 ``\\n`` 出現之處轉換回平台指定的行尾結束符號。這種在幕" +"後對檔案資料的修改方式對文字檔案來說沒有問題,但會毀壞像是 :file:`JPEG` 或 :" +"file:`EXE` 檔案中的二進制資料。在讀寫此類檔案時,注意一定要使用二進制模式。" #: ../../tutorial/inputoutput.rst:317 msgid "" @@ -311,6 +410,11 @@ msgid "" "keyword:`!with` is also much shorter than writing equivalent :keyword:`try`" "\\ -\\ :keyword:`finally` blocks::" msgstr "" +"在處理檔案物件時,使用 :keyword:`with` 關鍵字是個好習慣。優點是,當它的套件結" +"束後,即使在某個時刻引發了異常,檔案仍會正確地被關閉。使用 :keyword:`!with` " +"也比寫等效的 :keyword:`try`\\ -\\ :keyword:`finally` 塊,來得簡短許多:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:330 msgid "" @@ -321,6 +425,10 @@ msgid "" "file may stay open for a while. Another risk is that different Python " "implementations will do this clean-up at different times." msgstr "" +"如果你沒有使用 :keyword:`with` 關鍵字,則應呼叫 ``f.close()`` 關閉檔案,可以" +"立即釋放被它所使用的系統資源。如果你沒有顯式關閉一個檔案,Python 的廢料收集" +"器 (garbage collector) 最終仍會銷毀物件並關閉你所開啟的檔案,但檔案可能會維持" +"開啟一陣子。另一個風險是,不同的 Python 實作會在不同的時機執行這個清理動作。" #: ../../tutorial/inputoutput.rst:338 msgid "" @@ -328,16 +436,20 @@ msgid "" "calling ``f.close()``, attempts to use the file object will automatically " "fail. ::" msgstr "" +"不論是透過 :keyword:`with` 陳述式,或呼叫 ``f.close()`` 關閉一個檔案物件之" +"後,嘗試使用該檔案物件將會自動失效。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:352 msgid "Methods of File Objects" -msgstr "" +msgstr "檔案物件的 method" #: ../../tutorial/inputoutput.rst:354 msgid "" "The rest of the examples in this section will assume that a file object " "called ``f`` has already been created." -msgstr "" +msgstr "本節其餘的範例皆假設一個名為 ``f`` 的檔案物件已被建立。" #: ../../tutorial/inputoutput.rst:357 msgid "" @@ -350,6 +462,14 @@ msgid "" "binary mode) are read and returned. If the end of the file has been reached, " "``f.read()`` will return an empty string (``''``). ::" msgstr "" +"要讀取檔案的內容,可呼叫 ``f.read(size)``,它可讀取一部份的資料,並以字串(文" +"字模式)或位元組物件(二進制模式)形式回傳。\\ *size* 是個可選的數字引數。當 " +"*size* 被省略或為負數時,檔案的全部內容會被讀取並回傳;如果檔案是機器記憶體容" +"量的兩倍大時,這會是你的問題。否則,最多只有等同於 *size* 數量的字元(文字模" +"式)或 *size* 數量的位元組(二進制模式)會被讀取及回傳。如果之前已經到達檔案" +"的末端,\\ ``f.read()`` 會回傳空字串(``''``)。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:371 msgid "" @@ -360,30 +480,49 @@ msgid "" "end of the file has been reached, while a blank line is represented by " "``'\\n'``, a string containing only a single newline. ::" msgstr "" +"``f.readline()`` 從檔案中讀取單獨一行;換行字元(``\\n``)會被留在字串的結" +"尾,只有當檔案末端不是換行字元時,它才會在檔案的最後一行被省略。這種方式讓回" +"傳值清晰明確;只要 ``f.readline()`` 回傳一個空字串,就表示已經到達了檔案末" +"端,而空白行的表示法是 ``'\\n'``,也就是只含一個換行字元的字串。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:385 msgid "" "For reading lines from a file, you can loop over the file object. This is " "memory efficient, fast, and leads to simple code::" msgstr "" +"想從檔案中讀取多行時,可以對檔案物件進行迴圈。這種方法能有效地使用記憶體、快" +"速,且程式碼簡潔:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:394 msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." msgstr "" +"如果你想要在一個 list 中讀取檔案的所有行,可以用 ``list(f)`` 或 ``f." +"readlines()``。" #: ../../tutorial/inputoutput.rst:397 msgid "" "``f.write(string)`` writes the contents of *string* to the file, returning " "the number of characters written. ::" msgstr "" +"``f.write(string)`` 把 *string* 的內容寫入檔案,並回傳寫入的字元數。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:403 msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" +"寫入其他類型的物件之前,要先把它們轉換為字串(文字模式)或位元組物件(二進制" +"模式):\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:411 msgid "" @@ -391,6 +530,9 @@ msgid "" "the file represented as number of bytes from the beginning of the file when " "in binary mode and an opaque number when in text mode." msgstr "" +"``f.tell()`` 回傳一個整數,它給出檔案物件在檔案中的當前位置,在二進制模式下表" +"示為檔案開始至今的位元組數,在文字模式下表示為一個意義不明的數字 (opaque " +"number)。" #: ../../tutorial/inputoutput.rst:415 msgid "" @@ -402,6 +544,12 @@ msgid "" "omitted and defaults to 0, using the beginning of the file as the reference " "point. ::" msgstr "" +"使用 ``f.seek(offset, whence)`` 可以改變檔案物件的位置。位置計算方法是從一個" +"參考點增加 *offset* 的偏移量;參考點則由引數 *whence* 來選擇。當 *whence* 值" +"為 0 時,表示使用檔案開頭,1 表示使用當前的檔案位置,2 表示使用檔案末端作為參" +"考點。\\ *whence* 可省略,其預設值為 0,即以檔案開頭作為參考點。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:434 msgid "" @@ -411,6 +559,10 @@ msgid "" "*offset* values are those returned from the ``f.tell()``, or zero. Any other " "*offset* value produces undefined behaviour." msgstr "" +"在文字檔案(開啟時模式字串未加入 ``b`` 的檔案)中,只允許以檔案開頭為參考點進" +"行尋找(但 ``seek(0, 2)`` 尋找檔案最末端是例外),且只有從 ``f.tell()`` 回傳" +"的值,或是 0,才是有效的 *offset* 值。其他任何 *offset* 值都會產生未定義的行" +"為。" #: ../../tutorial/inputoutput.rst:440 msgid "" @@ -418,10 +570,12 @@ msgid "" "meth:`~file.truncate` which are less frequently used; consult the Library " "Reference for a complete guide to file objects." msgstr "" +"檔案物件還有一些附加的 method,像是較不常使用的 :meth:`~file.isatty` 和 :" +"meth:`~file.truncate`\\ ;檔案物件的完整指南詳見程式庫參考手冊。" #: ../../tutorial/inputoutput.rst:448 msgid "Saving structured data with :mod:`json`" -msgstr "" +msgstr "使用 :mod:`json` 儲存結構化資料" #: ../../tutorial/inputoutput.rst:452 msgid "" @@ -432,6 +586,10 @@ msgid "" "complex data types like nested lists and dictionaries, parsing and " "serializing by hand becomes complicated." msgstr "" +"字串可以簡單地從檔案中被寫入和讀取。數字則稍嫌麻煩,因為 :meth:`read` method " +"只回傳字串,這些字串必須傳遞給像 :func:`int` 這樣的函式,它接受 ``'123'`` 這" +"樣的字串,並回傳數值 123。當你想儲存像是巢狀 list 和 dictionary(字典)等複雜" +"的資料類型時,手動剖析 (parsing) 和序列化 (serializing) 就變得複雜。" #: ../../tutorial/inputoutput.rst:459 msgid "" @@ -445,6 +603,12 @@ msgid "" "deserializing, the string representing the object may have been stored in a " "file or data, or sent over a network connection to some distant machine." msgstr "" +"相較於讓使用者不斷地編寫和除錯程式碼才能把複雜的資料類型儲存到檔案,Python 支" +"援一個普及的資料交換格式,稱為 `JSON (JavaScript Object Notation) `_\\ 。標準模組 :mod:`json` 可接收 Python 資料階層,並將它們轉換為字" +"串表示法;這個過程稱為 :dfn:`serializing`\\ (序列化)。從字串表示法中重建資" +"料則稱為 :dfn:`deserializing`\\ (反序列化)。在序列化和反序列化之間,表示物" +"件的字串可以被儲存在檔案或資料中,或通過網路連接發送到遠端的機器。" #: ../../tutorial/inputoutput.rst:470 msgid "" @@ -452,12 +616,17 @@ msgid "" "exchange. Many programmers are already familiar with it, which makes it a " "good choice for interoperability." msgstr "" +"JSON 格式經常地使用於現代應用程式的資料交換。許多程序設計師早已對它耳熟能詳," +"使它成為提升互操作性 (interoperability) 的好選擇。" #: ../../tutorial/inputoutput.rst:474 msgid "" "If you have an object ``x``, you can view its JSON string representation " "with a simple line of code::" msgstr "" +"如果你有一個物件 ``x``,只需一行簡單的程式碼即可檢視它的 JSON 字串表示法:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:481 msgid "" @@ -465,12 +634,21 @@ msgid "" "dump`, simply serializes the object to a :term:`text file`. So if ``f`` is " "a :term:`text file` object opened for writing, we can do this::" msgstr "" +":func:`~json.dumps` 函式有一個變體,稱為 :func:`~json.dump`\\ ,它單純地將物" +"件序列化為 :term:`text file`\\ 。因此,如果 ``f`` 是一個為了寫入而開啟的 :" +"term:`text file` 物件,我們可以這樣做:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:487 msgid "" "To decode the object again, if ``f`` is a :term:`text file` object which has " "been opened for reading::" msgstr "" +"若 ``f`` 是一個已開啟、可讀取的 :term:`text file` 物件,要再次解碼物件的" +"話:\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:492 msgid "" @@ -479,10 +657,13 @@ msgid "" "effort. The reference for the :mod:`json` module contains an explanation of " "this." msgstr "" +"這種簡單的序列化技術可以處理 list 和 dictionary,但要在 JSON 中序列化任意的 " +"class(類別)實例,則需要一些額外的工作。\\ :mod:`json` 模組的參考資料包含對" +"此的說明。" #: ../../tutorial/inputoutput.rst:498 msgid ":mod:`pickle` - the pickle module" -msgstr "" +msgstr ":mod:`pickle` - 泡菜模組" #: ../../tutorial/inputoutput.rst:500 msgid "" @@ -493,3 +674,7 @@ msgid "" "pickle data coming from an untrusted source can execute arbitrary code, if " "the data was crafted by a skilled attacker." msgstr "" +"與 :ref:`JSON ` 不同,\\ *pickle* 是一種允許對任意的複雜 Python 物" +"件進行序列化的協定。因此,它為 Python 所特有,不能用於與其他語言編寫的應用程" +"式溝通。在預設情況,它也是不安全的:如果資料是由手段高明的攻擊者精心設計,將" +"這段來自於不受信任來源的 pickle 資料反序列化,可以執行任意的程式碼。" From fd4d416c43a511b2ee2c779bdb1a4adb9de8f2a4 Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Wed, 26 May 2021 21:43:09 +0800 Subject: [PATCH 2/7] Add translator --- tutorial/inputoutput.po | 1 + 1 file changed, 1 insertion(+) diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 0e9d9cc61d..a245a6abe9 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -4,6 +4,7 @@ # # Translators: # jerrychen , 2016 +# Steven Hsu , 2021 msgid "" msgstr "" "Project-Id-Version: Python 3.9\n" From 5714974fc60df6b3d82950c9dc5a95447ebe0017 Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Wed, 26 May 2021 22:27:19 +0800 Subject: [PATCH 3/7] Update year of Copyright --- tutorial/inputoutput.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index a245a6abe9..a1e04c5a9f 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -1,5 +1,5 @@ # 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: From 7ccc5c318887fda756e953a8529a8a581e03e478 Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Thu, 27 May 2021 15:40:01 +0800 Subject: [PATCH 4/7] Update datastructures.po MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Only change 「」 marks. Thanks! --- tutorial/datastructures.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 1606fdb623..1894f1710e 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -15,7 +15,7 @@ msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-05-21 15:41+0800\n" -"PO-Revision-Date: 2021-05-26 20:56+0800\n" +"PO-Revision-Date: 2021-05-27 15:39+0800\n" "Last-Translator: Steven Hsu \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -555,12 +555,12 @@ msgid "" "`append` and :meth:`extend`." msgstr "" "下一個常用的 Python 內建資料類型為 *dictionary*\\ (請參考\\ :ref:" -"`typesmapping`\\ )。 Dictionary 有時被稱為 \"關聯記憶體\" (associative " -"memories) 或 \"關聯陣列\" (associative arrays)。不像序列是由一個範圍內的數字" -"當作索引,dictionary 是由\\ *鍵* (key) 來當索引,鍵可以是任何不可變的類型;字" -"串和數字都可以當作鍵。Tuple 也可以當作鍵,如果他們只含有字串、數字或 tuple;" -"若一個 tuple 直接或間接地含有任何可變的物件,它就不能當作鍵。你無法使用 list " -"當作鍵,因為 list 可以經由索引指派 (index assignment)、切片指派 (slice " +"`typesmapping`\\ )。 Dictionary 有時被稱為「關聯記憶體」(associative " +"memories) 或「關聯陣列」(associative arrays)。不像序列是由一個範圍內的數字當" +"作索引,dictionary 是由\\ *鍵* (key) 來當索引,鍵可以是任何不可變的類型;字串" +"和數字都可以當作鍵。Tuple 也可以當作鍵,如果他們只含有字串、數字或 tuple;若" +"一個 tuple 直接或間接地含有任何可變的物件,它就不能當作鍵。你無法使用 list 當" +"作鍵,因為 list 可以經由索引指派 (index assignment)、切片指派 (slice " "assignment) 或是像 :meth:`append` 和 :meth:`extend` 等 method 被修改。" #: ../../tutorial/datastructures.rst:507 From 14e4d2a37b5a135ce95af9d304f87dbdf3b172d0 Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Sat, 29 May 2021 22:36:06 +0800 Subject: [PATCH 5/7] Update inputoutput.po Update msgid of rst:330, 335. Completed. --- tutorial/inputoutput.po | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index a1e04c5a9f..80ebf826bc 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-20 18:08+0800\n" -"PO-Revision-Date: 2021-05-26 20:32+0800\n" +"PO-Revision-Date: 2021-05-29 22:14+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -421,17 +421,22 @@ msgstr "" msgid "" "If you're not using the :keyword:`with` keyword, then you should call ``f." "close()`` to close the file and immediately free up any system resources " -"used by it. If you don't explicitly close a file, Python's garbage collector " -"will eventually destroy the object and close the open file for you, but the " -"file may stay open for a while. Another risk is that different Python " -"implementations will do this clean-up at different times." +"used by it." msgstr "" "如果你沒有使用 :keyword:`with` 關鍵字,則應呼叫 ``f.close()`` 關閉檔案,可以" -"立即釋放被它所使用的系統資源。如果你沒有顯式關閉一個檔案,Python 的廢料收集" -"器 (garbage collector) 最終仍會銷毀物件並關閉你所開啟的檔案,但檔案可能會維持" -"開啟一陣子。另一個風險是,不同的 Python 實作會在不同的時機執行這個清理動作。" +"立即釋放被它所使用的系統資源。" -#: ../../tutorial/inputoutput.rst:338 +#: ../../tutorial/inputoutput.rst:335 +msgid "" +"Calling ``f.write()`` without using the :keyword:`!with` keyword or calling " +"``f.close()`` **might** result in the arguments of ``f.write()`` not being " +"completely written to the disk, even if the program exits successfully." +msgstr "" +"呼叫 ``f.write()`` 時,若未使用 :keyword:`!with` 關鍵字或呼叫 ``f.close()``," +"即使程式成功退出,也\\ **可能**\\ 導致 ``f.write()`` 的引數沒有被完全寫入磁" +"碟。" + +#: ../../tutorial/inputoutput.rst:343 msgid "" "After a file object is closed, either by a :keyword:`with` statement or by " "calling ``f.close()``, attempts to use the file object will automatically " From 420db6408eac63b5cc3c35757508834b40d209e7 Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Mon, 7 Jun 2021 20:43:11 +0800 Subject: [PATCH 6/7] Update inputoutput.po Above suggestions were applied. --- tutorial/inputoutput.po | 74 ++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 80ebf826bc..3133be750c 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-20 18:08+0800\n" -"PO-Revision-Date: 2021-05-29 22:14+0800\n" +"PO-Revision-Date: 2021-06-07 20:39+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -45,9 +45,10 @@ msgid "" "method of file objects; the standard output file can be referenced as ``sys." "stdout``. See the Library Reference for more information on this.)" msgstr "" -"目前為止我們已經學過兩種寫值的方式:*運算式陳述 (expression statements)* 與 :" -"func:`print` 函式。(第三種方法是使用檔案物件的 :meth:`write` 方法;標準輸出" -"的檔案是使用 ``sys.stdout`` 來達成的。詳細的資訊請參考對應的函式庫說明。)" +"目前為止我們已經學過兩種寫值的方式:\\ *運算式陳述 (expression statements)* " +"與 :func:`print` 函式。(第三種方法是使用檔案物件的 :meth:`write` 方法;標準" +"輸出的檔案是使用 ``sys.stdout`` 來達成的。詳細的資訊請參考對應的函式庫說" +"明。)" #: ../../tutorial/inputoutput.rst:22 msgid "" @@ -65,7 +66,7 @@ msgid "" "Inside this string, you can write a Python expression between ``{`` and ``}" "`` characters that can refer to variables or literal values." msgstr "" -"要使用\\ :ref:`格式化的字串文本 (formatted string literals) `" +"要使用\\ :ref:`格式化字串文本 (formatted string literals) `" "\\ ,需在字串開始前的引號或連續三個引號前加上 ``f`` 或 ``F``。你可以在這個字" "串中使用 ``{`` 與 ``}`` 包夾 Python 的運算式,引用變數或其他字面值 (literal " "values)。" @@ -88,9 +89,9 @@ msgid "" "string type has some methods that perform useful operations for padding " "strings to a given column width." msgstr "" -"最後,你還可以自己用字串切片 (slicing) 和序連 (concatenation) 運算,完成所有" -"的字串處理,建立任何你能想像的排版格式。字串類型有一些 method ,能以給定的欄" -"寬填補字串,這些運算也很有用。" +"最後,你還可以自己用字串切片 (slicing) 和串接 (concatenation) 操作,完成所有" +"的字串處理,建立任何你能想像的排版格式。字串型別有一些 method,能以給定的欄寬" +"填補字串,這些運算也很有用。" #: ../../tutorial/inputoutput.rst:55 msgid "" @@ -112,11 +113,11 @@ msgid "" "structures like lists and dictionaries, have the same representation using " "either function. Strings, in particular, have two distinct representations." msgstr "" -":func:`str` 函式會將值以人類易讀的表示法回傳,而 :func:`repr` 則會產生直譯器" -"可讀取的表示法(如果沒有等效的語法,則強制執行 :exc:`SyntaxError`\\ )。如果" -"物件沒有人類易讀的特定表示法,\\ :func:`str` 會回傳與 :func:`repr` 相同的值。" -"有許多的值,像是數字,或 list 及 dictionary 等結構,使用這兩個函式會有相同的" -"表示法。而字串,則較為特別,有兩種不同的表示法。" +":func:`str` 函式的用意是回傳一個人類易讀的表示法,而 :func:`repr` 的用意是產" +"生直譯器可讀取的表示法(如果沒有等效的語法,則造成 :exc:`SyntaxError`\\ )。" +"如果物件沒有人類易讀的特定表示法,\\ :func:`str` 會回傳與 :func:`repr` 相同的" +"值。有許多的值,像是數字,或 list 及 dictionary 等結構,使用這兩個函式會有相" +"同的表示法。而字串,則較為特別,有兩種不同的表示法。" #: ../../tutorial/inputoutput.rst:68 msgid "Some examples::" @@ -133,7 +134,7 @@ msgid "" "much less control of the formatting." msgstr "" ":mod:`string` 模組包含一個 :class:`~string.Template` class(類別),提供了將" -"值替代為字串的另一種方法。該方法使用 ``$x`` 佔位字元,並以 dictionary 的值進" +"值替代為字串的另一種方法。該方法使用 ``$x`` 佔位符號,並以 dictionary 的值進" "行取代,但對格式的控制明顯較少。" #: ../../tutorial/inputoutput.rst:100 @@ -157,8 +158,8 @@ msgid "" "control over how the value is formatted. The following example rounds pi to " "three places after the decimal::" msgstr "" -"格式說明符 (format specifier) 是可選的,寫在運算式後面,可以更好地控制值的格" -"式化方式。以下範例將 pi 捨入到小數點後三位:\n" +"格式說明符 (format specifier) 是選擇性的,寫在運算式後面,可以更好地控制值的" +"格式化方式。以下範例將 pi 捨入到小數點後三位:\n" "\n" "::" @@ -167,7 +168,10 @@ msgid "" "Passing an integer after the ``':'`` will cause that field to be a minimum " "number of characters wide. This is useful for making columns line up. ::" msgstr "" -"在 ``':'`` 後傳遞一個整數,可為該欄設置最低字元寬度,常用於將欄位對齊:" +"在 ``':'`` 後傳遞一個整數,可以設定該欄位至少為幾個字元寬,常用於將每一欄對" +"齊。\n" +"\n" +"::" #: ../../tutorial/inputoutput.rst:126 msgid "" @@ -175,8 +179,9 @@ msgid "" "a'`` applies :func:`ascii`, ``'!s'`` applies :func:`str`, and ``'!r'`` " "applies :func:`repr`::" msgstr "" -"還有一些修飾符可以在格式化前轉換值。\\ ``'!a'`` 應用 :func:`ascii`\\ ,\\ " -"``'!s'`` 應用 :func:`str`\\ ,\\ ``'!r'`` 應用 :func:`repr`\\ :\n" +"還有一些修飾符號可以在格式化前先將值轉換過。\\ ``'!a'`` 會套用 :func:`ascii`" +"\\ ,\\ ``'!s'`` 會套用 :func:`str`\\ ,\\ ``'!r'`` 會套用 :func:`repr`\\ " +":\n" "\n" "::" @@ -184,7 +189,7 @@ msgstr "" msgid "" "For a reference on these format specifications, see the reference guide for " "the :ref:`formatspec`." -msgstr "關於格式化規格的參考資料,詳見 :ref:`formatspec` 參考指引。" +msgstr "若要參考這些格式化字串的規格,詳見 :ref:`formatspec` 參考指南。" #: ../../tutorial/inputoutput.rst:142 msgid "The String format() Method" @@ -205,7 +210,7 @@ msgid "" "meth:`str.format` method. ::" msgstr "" "大括號及其內的字元(稱為格式欄位)會被取代為傳遞給 :meth:`str.format` method " -"的物件。大括號中的數字可引用物件在傳遞給 :meth:`str.format` method 時的位" +"的物件。大括號中的數字表示該物件在傳遞給 :meth:`str.format` method 時所在的位" "置。\n" "\n" "::" @@ -235,7 +240,7 @@ msgid "" "using square brackets ``'[]'`` to access the keys. ::" msgstr "" "如果你有一個不想分割的長格式化字串,比較好的方式是按名稱而不是按位置來引用變" -"數。這項操作可以透過傳遞字典 (dict),並用方括號 ``'[]'`` 存取鍵 (key) 來輕鬆" +"數。這項操作可以透過傳遞字典 (dict),並用方括號 ``'[]'`` 使用鍵 (key) 來輕鬆" "完成。\n" "\n" "::" @@ -307,7 +312,7 @@ msgstr "" "字串物件的 :meth:`str.rjust` method 透過在左側填補空格,使字串以給定的欄寬進" "行靠右對齊。類似的 method 還有 :meth:`str.ljust` 和 :meth:`str.center`\\ 。這" "些 method 不寫入任何內容,只回傳一個新字串,如果輸入的字串太長,它們不會截斷" -"字串,而是不做任何改變地回傳;雖然這樣會弄亂欄的布置,但這通常還是比另一種情" +"字串,而是不做任何改變地回傳;雖然這樣會弄亂欄的編排,但這通常還是比另一種情" "況好,那種情況會讓值變得不正確。(如果你真的想截斷字串,可以加入像 ``x." "ljust(n)[:n]`` 這樣的切片運算。)" @@ -333,8 +338,8 @@ msgid "" "string interpolation. For example::" msgstr "" "% 運算子(modulo,模數)也可用於字串格式化。在 ``'string' % values`` 中,\\ " -"``string`` 的實例 ``%`` 會被 ``values`` 的零個或多個元素所取代。此運算常被稱" -"為字串內插 (string interpolation)。例如:\n" +"``string`` 中所有的 ``%`` 會被 ``values`` 的零個或多個元素所取代。此運算常被" +"稱為字串插值 (string interpolation)。例如:\n" "\n" "::" @@ -367,10 +372,11 @@ msgid "" "assumed if it's omitted." msgstr "" "第一個引數是一個包含檔案名稱的字串。第二個引數是另一個字串,包含了描述檔案使" -"用方式的幾個字元。\\ *mode* 為 ``'r'`` 時,表示檔案唯讀;為 ``'w'`` 時,表示" -"檔案唯寫(已存在的同名檔案會被抹除);為 ``'a'`` 時,以附加內容為目的開啟檔" -"案,任何寫入檔案的資料會自動被加入到檔案的結尾。\\ ``'r+'`` 可以開啟檔案並進" -"行讀取和寫入。\\ *mode* 引數是可選的,若省略時會預設為 ``'r'``。" +"用方式的幾個字元。\\ *mode* 為 ``'r'`` 時,表示以唯讀模式開啟檔案;為 " +"``'w'`` 時,表示以唯寫模式開啟檔案(已存在的同名檔案會被抹除);為 ``'a'`` " +"時,以附加內容為目的開啟檔案,任何寫入檔案的資料會自動被加入到檔案的結尾。\\ " +"``'r+'`` 可以開啟檔案並進行讀取和寫入。\\ *mode* 引數是選擇性的,若省略時會預" +"設為 ``'r'``。" #: ../../tutorial/inputoutput.rst:302 msgid "" @@ -469,11 +475,11 @@ msgid "" "``f.read()`` will return an empty string (``''``). ::" msgstr "" "要讀取檔案的內容,可呼叫 ``f.read(size)``,它可讀取一部份的資料,並以字串(文" -"字模式)或位元組物件(二進制模式)形式回傳。\\ *size* 是個可選的數字引數。當 " -"*size* 被省略或為負數時,檔案的全部內容會被讀取並回傳;如果檔案是機器記憶體容" -"量的兩倍大時,這會是你的問題。否則,最多只有等同於 *size* 數量的字元(文字模" -"式)或 *size* 數量的位元組(二進制模式)會被讀取及回傳。如果之前已經到達檔案" -"的末端,\\ ``f.read()`` 會回傳空字串(``''``)。\n" +"字模式)或位元組物件(二進制模式)形式回傳。\\ *size* 是個選擇性的數字引數。" +"當 *size* 被省略或為負數時,檔案的全部內容會被讀取並回傳;如果檔案是機器記憶" +"體容量的兩倍大時,這會是你的問題。否則,最多只有等同於 *size* 數量的字元(文" +"字模式)或 *size* 數量的位元組(二進制模式)會被讀取及回傳。如果之前已經到達" +"檔案的末端,\\ ``f.read()`` 會回傳空字串(``''``)。\n" "\n" "::" From d3305617baca764920a8d7f1ffff0313354f83e9 Mon Sep 17 00:00:00 2001 From: Steven Hsu <81967953+StevenHsuYL@users.noreply.github.com> Date: Sun, 27 Jun 2021 20:51:55 +0800 Subject: [PATCH 7/7] Update inputoutput.po Fixed as suggestion. --- tutorial/inputoutput.po | 46 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 3133be750c..7ea6c7ed9b 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-06-20 18:08+0800\n" -"PO-Revision-Date: 2021-06-07 20:39+0800\n" +"PO-Revision-Date: 2021-06-27 20:51+0800\n" "Last-Translator: Adrian Liaw \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" @@ -388,10 +388,9 @@ msgid "" "objects. This mode should be used for all files that don't contain text." msgstr "" "通常,檔案以 :dfn:`text mode` 開啟,意即,從檔案中讀取或寫入字串時,都以特定" -"編碼方式進行編碼。如未指定編碼方式,則預設值會取決於平台 (platform dependent)" -"(見 :func:`open`\\ )。在 mode 加上 ``'b'`` 會以 :dfn:`binary mode` 開啟檔" -"案:此時,資料以位元組物件 (bytes object) 的形式被讀寫。此模式應該使用於所有" -"不含文字的檔案。" +"編碼方式進行編碼。如未指定編碼方式,則預設值會取決於系統平台(見 :func:`open`" +"\\ )。在 mode 加上 ``'b'`` 會以 :dfn:`binary mode` 開啟檔案:此時,資料以位" +"元組串物件 (bytes object) 的形式被讀寫。此模式應該使用於所有不含文字的檔案。" #: ../../tutorial/inputoutput.rst:309 msgid "" @@ -403,11 +402,11 @@ msgid "" "file:`JPEG` or :file:`EXE` files. Be very careful to use binary mode when " "reading and writing such files." msgstr "" -"在文字模式 (text mode) 下,讀取時會預設把平台指定的 (platform-specific) 行尾" -"結束符號(Unix 上為 ``\\n``,Windows 上為 ``\\r\\n``)轉換為 ``\\n``。在文字" -"模式下寫入時,預設會把 ``\\n`` 出現之處轉換回平台指定的行尾結束符號。這種在幕" -"後對檔案資料的修改方式對文字檔案來說沒有問題,但會毀壞像是 :file:`JPEG` 或 :" -"file:`EXE` 檔案中的二進制資料。在讀寫此類檔案時,注意一定要使用二進制模式。" +"在文字模式 (text mode) 下,讀取時會預設把平台特定的行尾符號(Unix 上為 ``" +"\\n``,Windows 上為 ``\\r\\n``)轉換為 ``\\n``。在文字模式下寫入時,預設會把 " +"``\\n`` 出現之處轉換回平台特定的行尾符號。這種在幕後對檔案資料的修改方式對文" +"字檔案來說沒有問題,但會毀壞像是 :file:`JPEG` 或 :file:`EXE` 檔案中的二進制資" +"料。在讀寫此類檔案時,注意一定要使用二進制模式。" #: ../../tutorial/inputoutput.rst:317 msgid "" @@ -418,8 +417,8 @@ msgid "" "\\ -\\ :keyword:`finally` blocks::" msgstr "" "在處理檔案物件時,使用 :keyword:`with` 關鍵字是個好習慣。優點是,當它的套件結" -"束後,即使在某個時刻引發了異常,檔案仍會正確地被關閉。使用 :keyword:`!with` " -"也比寫等效的 :keyword:`try`\\ -\\ :keyword:`finally` 塊,來得簡短許多:\n" +"束後,即使在某個時刻引發了例外,檔案仍會正確地被關閉。使用 :keyword:`!with` " +"也比寫等效的 :keyword:`try`\\ -\\ :keyword:`finally` 區塊,來得簡短許多:\n" "\n" "::" @@ -439,7 +438,7 @@ msgid "" "completely written to the disk, even if the program exits successfully." msgstr "" "呼叫 ``f.write()`` 時,若未使用 :keyword:`!with` 關鍵字或呼叫 ``f.close()``," -"即使程式成功退出,也\\ **可能**\\ 導致 ``f.write()`` 的引數沒有被完全寫入磁" +"即使程式成功退出,也\\ **可能**\\ 導致 ``f.write()`` 的引數沒有被完全寫入硬" "碟。" #: ../../tutorial/inputoutput.rst:343 @@ -475,11 +474,11 @@ msgid "" "``f.read()`` will return an empty string (``''``). ::" msgstr "" "要讀取檔案的內容,可呼叫 ``f.read(size)``,它可讀取一部份的資料,並以字串(文" -"字模式)或位元組物件(二進制模式)形式回傳。\\ *size* 是個選擇性的數字引數。" -"當 *size* 被省略或為負數時,檔案的全部內容會被讀取並回傳;如果檔案是機器記憶" -"體容量的兩倍大時,這會是你的問題。否則,最多只有等同於 *size* 數量的字元(文" -"字模式)或 *size* 數量的位元組(二進制模式)會被讀取及回傳。如果之前已經到達" -"檔案的末端,\\ ``f.read()`` 會回傳空字串(``''``)。\n" +"字模式)或位元組串物件(二進制模式)形式回傳。\\ *size* 是個選擇性的數字引" +"數。當 *size* 被省略或為負數時,檔案的全部內容會被讀取並回傳;如果檔案是機器" +"記憶體容量的兩倍大時,這會是你的問題。否則,最多只有等同於 *size* 數量的字元" +"(文字模式)或 *size* 數量的位元組串(二進制模式)會被讀取及回傳。如果之前已" +"經到達檔案的末端,\\ ``f.read()`` 會回傳空字串(``''``)。\n" "\n" "::" @@ -514,7 +513,7 @@ msgid "" "If you want to read all the lines of a file in a list you can also use " "``list(f)`` or ``f.readlines()``." msgstr "" -"如果你想要在一個 list 中讀取檔案的所有行,可以用 ``list(f)`` 或 ``f." +"如果你想把一個檔案的所有行讀進一個 list 裡,可以用 ``list(f)`` 或 ``f." "readlines()``。" #: ../../tutorial/inputoutput.rst:397 @@ -531,8 +530,8 @@ msgid "" "Other types of objects need to be converted -- either to a string (in text " "mode) or a bytes object (in binary mode) -- before writing them::" msgstr "" -"寫入其他類型的物件之前,要先把它們轉換為字串(文字模式)或位元組物件(二進制" -"模式):\n" +"寫入其他類型的物件之前,要先把它們轉換為字串(文字模式)或位元組串物件(二進" +"制模式):\n" "\n" "::" @@ -543,8 +542,7 @@ msgid "" "in binary mode and an opaque number when in text mode." msgstr "" "``f.tell()`` 回傳一個整數,它給出檔案物件在檔案中的當前位置,在二進制模式下表" -"示為檔案開始至今的位元組數,在文字模式下表示為一個意義不明的數字 (opaque " -"number)。" +"示為檔案開始至今的位元組數,在文字模式下表示為一個意義不明的數字。" #: ../../tutorial/inputoutput.rst:415 msgid "" @@ -675,7 +673,7 @@ msgstr "" #: ../../tutorial/inputoutput.rst:498 msgid ":mod:`pickle` - the pickle module" -msgstr ":mod:`pickle` - 泡菜模組" +msgstr ":mod:`pickle` - pickle 模組" #: ../../tutorial/inputoutput.rst:500 msgid ""