Skip to content

Translate howto/sorting from section 'Decorate-Sort-Undecorate' to end #580

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 3 commits into from
Aug 18, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 44 additions & 11 deletions howto/sorting.po
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: Python 3.12\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-24 00:03+0000\n"
"PO-Revision-Date: 2023-08-09 18:16+0800\n"
"PO-Revision-Date: 2023-08-12 15:09+0800\n"
"Last-Translator: Adrian Liaw <[email protected]>\n"
"Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
"tw)\n"
Expand Down Expand Up @@ -216,51 +216,57 @@ msgstr ""

#: ../../howto/sorting.rst:190
msgid "Decorate-Sort-Undecorate"
msgstr ""
msgstr "裝飾-排序-移除裝飾 (decorate-sort-undecorate)"

#: ../../howto/sorting.rst:192
msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:"
msgstr ""
msgstr "這個用語的來源是因為它做了以下三件事情:"

#: ../../howto/sorting.rst:194
msgid ""
"First, the initial list is decorated with new values that control the sort "
"order."
msgstr ""
msgstr "首先,原始串列會裝飾 (decorated) 上新的值用來控制排序的順序。"

#: ../../howto/sorting.rst:196
msgid "Second, the decorated list is sorted."
msgstr ""
msgstr "接下來,排序裝飾過的串列。"

#: ../../howto/sorting.rst:198
msgid ""
"Finally, the decorations are removed, creating a list that contains only the "
"initial values in the new order."
msgstr ""
msgstr "最後,裝飾會被移除,並以新的順序產生一個只包含原始值的串列。"

#: ../../howto/sorting.rst:201
msgid ""
"For example, to sort the student data by *grade* using the DSU approach:"
msgstr ""
msgstr "例如用上面說的方式來以 *grade* 排序學生資料:"

#: ../../howto/sorting.rst:208
msgid ""
"This idiom works because tuples are compared lexicographically; the first "
"items are compared; if they are the same then the second items are compared, "
"and so on."
msgstr ""
"這個方式會有效是因為元組是依照字典順序來比較;先比較第一個項目;如果一樣再比"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這邊感覺可以把原文加上去
依照字典順序 (lexicographically) 來比較
因為怕會跟 Python 中的 dictionary 搞混

"較第二個項目,並依此類推。"

#: ../../howto/sorting.rst:212
msgid ""
"It is not strictly necessary in all cases to include the index *i* in the "
"decorated list, but including it gives two benefits:"
msgstr ""
"在所有情況下都把索引 *i* 加入已裝飾的串列並不是絕對需要的,但這樣做會有兩個好"
"處:"

#: ../../howto/sorting.rst:215
msgid ""
"The sort is stable -- if two items have the same key, their order will be "
"preserved in the sorted list."
msgstr ""
"排序會是穩定的——如果兩個項目有相同的鍵,它們在排序好的串列中會保持原來的順"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這邊改成
排序會是穩定的 - 如果兩個項目有相同的鍵
感覺會比較清楚一點

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確認一下是指把破折號改成 hyphen 嗎

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

嗯嗯
因為原本的會是這樣
截圖 2023-08-15 下午5 09 14

改成 hyphen 會是這樣
截圖 2023-08-15 下午5 22 59

看起來比較清楚一點

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這邊想順便問一下~
原文裡面會出現一個、兩個或三個 hyphen
什麼情況下要翻成破折號,什麼情況下要翻成一個 hyphen
什麼情況下要維持跟原文一樣的 hyphen 數
這個有一個規則嗎,還是就是每次遇到就看情況?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm 我好像也沒有特別注意過這件事,幾乎都是看原文有幾個譯文就放幾個

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我習慣是遇到 一一 就翻譯成 - ,不過如果要翻譯成 -- 應該也沒問題

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

如果不翻破折號的,這邊我先照原文的 hyphen 數量

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

嗯嗯 沒問題~
再麻煩你了🙏

"序。"

#: ../../howto/sorting.rst:218
msgid ""
Expand All @@ -269,29 +275,34 @@ msgid ""
"example the original list could contain complex numbers which cannot be "
"sorted directly."
msgstr ""
"原始項目不需要是可以比較的,因為最多只會用到前兩個項目就能決定裝飾過的元組的"
"順序。例如原始串列可以包含不能直接用來排序的複數。"

#: ../../howto/sorting.rst:223
msgid ""
"Another name for this idiom is `Schwartzian transform <https://en.wikipedia."
"org/wiki/Schwartzian_transform>`_\\, after Randal L. Schwartz, who "
"popularized it among Perl programmers."
msgstr ""
"這個用語的另一個名字是 `Schwartzian transform <https://en.wikipedia.org/wiki/"
"Schwartzian_transform>`_\\ ,是由於 Randal L. Schwartz 讓這個方法在 Perl 程式"
"設計師間普及。"

#: ../../howto/sorting.rst:227
msgid ""
"Now that Python sorting provides key-functions, this technique is not often "
"needed."
msgstr ""
msgstr "而因為 Python 的排序提供了鍵函式,已經不太常需要這個方法了。"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這邊把原文也放上去比較好
而因為 Python 的排序提供了鍵函式 (key-functions)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

因為上半部的翻譯已經出現過鍵函式的原文
所以這裡就不放了~

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這邊改成 已經不太需要這個方法了。 感覺比較通順一點


#: ../../howto/sorting.rst:230
msgid "Comparison Functions"
msgstr ""
msgstr "比較函式 (comparison functions)"

#: ../../howto/sorting.rst:232
msgid ""
"Unlike key functions that return an absolute value for sorting, a comparison "
"function computes the relative ordering for two inputs."
msgstr ""
msgstr "不像鍵函式回傳一個用來排序的值,比較函式計算兩個輸入間的相對順序。"

#: ../../howto/sorting.rst:235
msgid ""
Expand All @@ -301,6 +312,10 @@ msgid ""
"function such as ``cmp(a, b)`` will return a negative value for less-than, "
"zero if the inputs are equal, or a positive value for greater-than."
msgstr ""
"例如\\ `天秤 <https://upload.wikimedia.org/wikipedia/commons/1/17/"
"Balance_à_tabac_1850.JPG>`_\\ 比較兩邊樣本並給出相對的順序:較輕、相同、或較"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

較輕、相同或較重

"重。同樣地,像是 ``cmp(a, b)`` 這樣的比較函式會回傳負數代表小於、0 代表輸入相"
"同、或正數代表大於。"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

同,或正數代表大於。

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

還是說跟上面 較輕、相同或較重 一樣改成 同或正數代表大於?
或者前面的 負數代表小於 後面也要一起改成逗號?


#: ../../howto/sorting.rst:242
msgid ""
Expand All @@ -309,17 +324,23 @@ msgid ""
"part of their API. For example, :func:`locale.strcoll` is a comparison "
"function."
msgstr ""
"當從其它語言翻譯演算法的時候常看到比較函式。有些函式庫也會提供比較函式作為其 "
"API 的一部份,例如 :func:`locale.strcoll` 就是一個比較函式。"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

啊這邊多一個空白我下次一起改


#: ../../howto/sorting.rst:246
msgid ""
"To accommodate those situations, Python provides :class:`functools."
"cmp_to_key` to wrap the comparison function to make it usable as a key "
"function::"
msgstr ""
"為了滿足這些情境,Python 提供 :class:`functools.cmp_to_key` 來包裝比較函式,"
"讓其可以當作鍵函式來使用:\n"
"\n"
"::"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我也要把陷阱卡的效果轉嫁給你了

可以參考這些討論

Suggested change
"讓其可以當作鍵函式來使用:\n"
"\n"
"::"
"讓其可以當作鍵函式來使用: ::"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

已修改,我之前看的 pr 也有一樣的用法 (line 96, 436) 有需要改嗎
https://github.com/python/python-docs-zh-tw/pull/572/files

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

之前的 PR 你有空再改也可以,因為這種寫法只是更簡潔方便而已, render 出來的效果是一樣的。


#: ../../howto/sorting.rst:253
msgid "Odds and Ends"
msgstr ""
msgstr "零星雜事"
Copy link
Collaborator Author

@mindihx mindihx Aug 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這不知道怎麼翻比較適合,很不像文件的用詞 :p

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

改成 雜項說明 如何?


#: ../../howto/sorting.rst:255
msgid ""
Expand All @@ -328,6 +349,9 @@ msgid ""
"\"alphabetical\" sort orderings can vary across cultures even if the "
"underlying alphabet is the same."
msgstr ""
"要處理能理解本地語系 (locale aware) 的排序可以使用 :func:`locale.strxfrm` 當"
"作鍵函式,或 :func:`locale.strcoll` 當作比較函式。這樣做是必要的,因為在不同"
"文化中就算是相同的字母,按「字母順序」排序的結果也各不相同。"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這邊要改成全形引號
按「字母順序」排序的結果也各不相同。

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

原來我打出來的不是全形,就想說怎麼看起來有點窄...


#: ../../howto/sorting.rst:260
msgid ""
Expand All @@ -336,19 +360,26 @@ msgid ""
"simulated without the parameter by using the builtin :func:`reversed` "
"function twice:"
msgstr ""
"*reverse* 參數依然會維持排序穩定性(即有相同鍵的資料會保持原來順序)。有趣的"
"是,不加這個參數也可以模擬這個效果,只要使用內建的 :func:`reversed` 函式兩"
"次:"

#: ../../howto/sorting.rst:274
msgid ""
"The sort routines use ``<`` when making comparisons between two objects. So, "
"it is easy to add a standard sort order to a class by defining an :meth:"
"`~object.__lt__` method:"
msgstr ""
"排序時會使用 ``<`` 來比較兩個物件,因此要在類別裡面加入順序比較基準是簡單的,"
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

這個 standard sort order 不確定怎麼翻比較好

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

翻成 因此要在類別裡面加入排序順序比較規則是簡單的 如何?

"只要透過定義 :meth:`~object.__lt__` 方法:"

#: ../../howto/sorting.rst:284
msgid ""
"However, note that ``<`` can fall back to using :meth:`~object.__gt__` if :"
"meth:`~object.__lt__` is not implemented (see :func:`object.__lt__`)."
msgstr ""
"然而,需要注意如果沒有實作 :meth:`~object.__lt__`,則 ``<`` 會退而使用 :meth:"
"`~object.__gt__`\\ (參見 :func:`object.__lt__`)。"

#: ../../howto/sorting.rst:287
msgid ""
Expand All @@ -357,3 +388,5 @@ msgid ""
"grades are stored in a dictionary, they can be used to sort a separate list "
"of student names:"
msgstr ""
"鍵函式不需要直接依賴用來排序的物件。鍵函式也可以存取外部資源,例如如果學生成"
"績儲存在字典裡,它可以用來排序一個單獨的學生姓名串列:"