Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3868ede

Browse files
Translate tutorial/controlflow.po (#283)
* translate match statementin tutorial/controlflow.po* Apply suggestions from code reviewCo-authored-by: Ezio Melotti <ezio.melotti@gmail.com>* Update controlflow.poUpdate match section after Sync with CPython 3.10* Apply suggestions from code reviewAll suggestions were applied.Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
1 parent8873b71 commit3868ede

File tree

1 file changed

+74
-25
lines changed

1 file changed

+74
-25
lines changed

‎tutorial/controlflow.po

Lines changed: 74 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@
66
# Liang-Bo Wang <me@liang2.tw>, 2015
77
# Liang-Bo Wang <me@liang2.tw>, 2016
88
# hsiao yi <hsiaoyi0504@gmail.com>, 2015
9-
# Steven Hsu <hsuhaochun@gmail.com>, 2021
9+
# Steven Hsu <hsuhaochun@gmail.com>, 2021-2022
1010
msgid ""
1111
msgstr ""
1212
"Project-Id-Version:Python 3.10\n"
1313
"Report-Msgid-Bugs-To:\n"
1414
"POT-Creation-Date:2022-06-22 00:18+0000\n"
15-
"PO-Revision-Date:2021-06-01 22:43+0800\n"
16-
"Last-Translator:Adrian Liaw <adrianliaw2000@gmail.com>\n"
15+
"PO-Revision-Date:2022-07-24 14:52+0800\n"
16+
"Last-Translator:Steven Hsu <hsuhaochun@gmail.com>\n"
1717
"Language-Team:Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
1818
"tw)\n"
1919
"Language:zh_TW\n"
2020
"MIME-Version:1.0\n"
2121
"Content-Type:text/plain; charset=UTF-8\n"
2222
"Content-Transfer-Encoding:8bit\n"
2323
"Plural-Forms:nplurals=1; plural=0;\n"
24-
"X-Generator:Poedit2.4.3\n"
24+
"X-Generator:Poedit3.1.1\n"
2525

2626
#:../../tutorial/controlflow.rst:5
2727
msgid"More Control Flow Tools"
@@ -67,6 +67,8 @@ msgid ""
6767
"specific types or attributes, you may also find the :keyword:`!match` "
6868
"statement useful. For more details see :ref:`tut-match`."
6969
msgstr""
70+
"如果你要將同一個值與多個常數進行比較,或者檢查特定的型別或屬性,你可能會發"
71+
"現 :keyword:`!match` 陳述式也很有用。更多的細節,請參閱 :ref:`tut-match`。"
7072

7173
#:../../tutorial/controlflow.rst:46
7274
msgid":keyword:`!for` Statements"
@@ -295,28 +297,45 @@ msgid ""
295297
"also extract components (sequence elements or object attributes) from the "
296298
"value into variables."
297299
msgstr""
300+
":keyword:`match` 陳述式會拿取一個運算式,並將其值與多個連續的模式 (pattern) "
301+
"進行比較,這些模式是以一個或多個 case 區塊來表示。表面上,這類似 C、Java 或 "
302+
"JavaScript(以及許多其他語言)中的 switch 陳述式,但它與 Rust 或 Haskell 等語"
303+
"言中的模式匹配 (pattern matching) 更為相近。只有第一個匹配成功的模式會被執"
304+
"行,而它也可以將成分(序列元素或物件屬性)從值中提取到變數中。"
298305

299306
#:../../tutorial/controlflow.rst:261
300307
msgid""
301308
"The simplest form compares a subject value against one or more literals::"
302309
msgstr""
310+
"最簡單的形式,是將一個主題值 (subject value) 與一個或多個字面值 (literal) 進"
311+
"行比較:\n"
312+
"\n"
313+
"::"
303314

304315
#:../../tutorial/controlflow.rst:274
305316
msgid""
306317
"Note the last block: the\"variable name\" ``_`` acts as a *wildcard* and "
307318
"never fails to match. If no case matches, none of the branches is executed."
308319
msgstr""
320+
"請注意最後一段:「變數名稱」\\ ``_`` 是作為\\ *通用字元 (wildcard)*\\ 的角"
321+
"色,且永遠不會匹配失敗。如果沒有 case 匹配成功,則不會執行任何的分支。"
309322

310323
#:../../tutorial/controlflow.rst:277
311324
msgid""
312325
"You can combine several literals in a single pattern using ``|`` (\"or\")::"
313326
msgstr""
327+
"你可以使用 ``|``\\ (「或」)來將多個字面值組合在單一模式中:\n"
328+
"\n"
329+
"::"
314330

315331
#:../../tutorial/controlflow.rst:282
316332
msgid""
317333
"Patterns can look like unpacking assignments, and can be used to bind "
318334
"variables::"
319335
msgstr""
336+
"模式可以看起來像是拆解賦值 (unpacking assignment),且可以用來連結變數:\n"
337+
"\n"
338+
"::"
320339

321340
#:../../tutorial/controlflow.rst:298
322341
msgid""
@@ -327,13 +346,21 @@ msgid ""
327346
"which makes it conceptually similar to the unpacking assignment ``(x, y) = "
328347
"point``."
329348
msgstr""
349+
"請仔細研究那個例子!第一個模式有兩個字面值,可以想作是之前所述的字面值模式的"
350+
"延伸。但是接下來的兩個模式結合了一個字面值和一個變數,且該變數\\ *繫結 "
351+
"(bind)*\\ 了來自主題 (``point``) 的一個值。第四個模式會擷取兩個值,這使得它在"
352+
"概念上類似於拆解賦值 ``(x, y) = point``。"
330353

331354
#:../../tutorial/controlflow.rst:305
332355
msgid""
333356
"If you are using classes to structure your data you can use the class name "
334357
"followed by an argument list resembling a constructor, but with the ability "
335358
"to capture attributes into variables::"
336359
msgstr""
360+
"如果你要用 class 來結構化你的資料,你可以使用該 class 的名稱加上一個引數列"
361+
"表,類似一個建構式 (constructor),但它能夠將屬性擷取到變數中:\n"
362+
"\n"
363+
"::"
337364

338365
#:../../tutorial/controlflow.rst:326
339366
msgid""
@@ -344,6 +371,12 @@ msgid ""
344371
"\"y\"), the following patterns are all equivalent (and all bind the ``y`` "
345372
"attribute to the ``var`` variable)::"
346373
msgstr""
374+
"你可以將位置參數 (positional parameter) 與一些能夠排序其屬性的內建 class(例"
375+
"如 dataclasses)一起使用。你也可以透過在 class 中設定特殊屬性 "
376+
"``__match_args__``,來定義模式中屬性們的特定位置。如果它被設定為 (\"x\",\"y"
377+
"\"),則以下的模式都是等價的(且都會將屬性 ``y`` 連結到變數 ``var``):\n"
378+
"\n"
379+
"::"
347380

348381
#:../../tutorial/controlflow.rst:337
349382
msgid""
@@ -355,30 +388,46 @@ msgid ""
355388
"(recognized by the\"(...)\" next to them like ``Point`` above) are never "
356389
"assigned to."
357390
msgstr""
391+
"理解模式的一種推薦方法,是將它們看作是你會放在賦值 (assignment) 左側內容的一"
392+
"種延伸形式,這樣就可以了解哪些變數會被設為何值。只有獨立的名稱(像是上面的 "
393+
"``var``)能被 match 陳述式賦值。點分隔名稱(如 ``foo.bar``)、屬性名稱(上面"
394+
"的 ``x=`` 及 ``y=``)或 class 名稱(由它們後面的\"(...)\" 被辨識,如上面的 "
395+
"``Point``)則永遠無法被賦值。"
358396

359397
#:../../tutorial/controlflow.rst:344
360398
msgid""
361399
"Patterns can be arbitrarily nested. For example, if we have a short list of "
362400
"points, we could match it like this::"
363401
msgstr""
402+
"模式可以任意地被巢套 (nested)。例如,如果我們有一個由某些點所組成的簡短 "
403+
"list,我們就可以像這樣來對它進行匹配:\n"
404+
"\n"
405+
"::"
364406

365407
#:../../tutorial/controlflow.rst:359
366408
msgid""
367409
"We can add an ``if`` clause to a pattern, known as a\"guard\". If the "
368410
"guard is false, ``match`` goes on to try the next case block. Note that "
369411
"value capture happens before the guard is evaluated::"
370412
msgstr""
413+
"我們可以在模式中加入一個 ``if`` 子句,稱為「防護 (guard)」。如果該防護為假,"
414+
"則 ``match`` 會繼續嘗試下一個 case 區塊。請注意,值的擷取會發生在防護的評估之"
415+
"前:\n"
416+
"\n"
417+
"::"
371418

372419
#:../../tutorial/controlflow.rst:369
373420
msgid"Several other key features of this statement:"
374-
msgstr""
421+
msgstr"此種陳述式的其他幾個重要特色:"
375422

376423
#:../../tutorial/controlflow.rst:371
377424
msgid""
378425
"Like unpacking assignments, tuple and list patterns have exactly the same "
379426
"meaning and actually match arbitrary sequences. An important exception is "
380427
"that they don't match iterators or strings."
381428
msgstr""
429+
"與拆解賦值的情況類似,tuple(元組)和 list 模式具有完全相同的意義,而且實際上"
430+
"可以匹配任意的序列。一個重要的例外,是它們不能匹配疊代器 (iterator) 或字串。"
382431

383432
#:../../tutorial/controlflow.rst:375
384433
msgid""
@@ -387,6 +436,10 @@ msgid ""
387436
"also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two items "
388437
"without binding the remaining items."
389438
msgstr""
439+
"序列模式 (sequence pattern) 可支援擴充拆解 (extended unpacking):\\ ``[x, y, "
440+
"*rest]`` 與 ``(x, y, *rest)`` 的作用類似於拆解賦值。\\ ``*`` 後面的名稱也可以"
441+
"是 ``_``,所以 ``(x, y, *_)`` 會匹配一個至少兩項的序列,且不會連結那兩項以外"
442+
"的其餘項。"
390443

391444
#:../../tutorial/controlflow.rst:380
392445
msgid""
@@ -395,34 +448,50 @@ msgid ""
395448
"sequence patterns, extra keys are ignored. An unpacking like ``**rest`` is "
396449
"also supported. (But ``**_`` would be redundant, so it is not allowed.)"
397450
msgstr""
451+
"映射模式 (mapping pattern):\\ ``{\"bandwidth\": b,\"latency\": l}`` 能從一"
452+
"個 dictionary(字典)中擷取 ``\"bandwidth\"`` 及 ``\"latency\"`` 的值。與序列"
453+
"模式不同,額外的鍵 (key) 會被忽略。一種像是 ``**rest`` 的拆解方式,也是可被支"
454+
"援的。(但 ``**_`` 則是多餘的做法,所以它並不被允許。)"
398455

399456
#:../../tutorial/controlflow.rst:385
400457
msgid"Subpatterns may be captured using the ``as`` keyword::"
401458
msgstr""
459+
"使用關鍵字 ``as`` 可以擷取子模式 (subpattern):\n"
460+
"\n"
461+
"::"
402462

403463
#:../../tutorial/controlflow.rst:389
404464
msgid""
405465
"will capture the second element of the input as ``p2`` (as long as the input "
406466
"is a sequence of two points)"
407467
msgstr""
468+
"將會擷取輸入的第二個元素作為 ``p2``\\ (只要該輸入是一個由兩個點所組成的序"
469+
"列)。"
408470

409471
#:../../tutorial/controlflow.rst:392
410472
msgid""
411473
"Most literals are compared by equality, however the singletons ``True``, "
412474
"``False`` and ``None`` are compared by identity."
413475
msgstr""
476+
"大部分的字面值是藉由相等性 (equality) 來比較,但是單例物件 (singleton) "
477+
"``True``\\\\ ``False`` 和 ``None`` 是藉由標識值 (identity) 來比較。"
414478

415479
#:../../tutorial/controlflow.rst:395
416480
msgid""
417481
"Patterns may use named constants. These must be dotted names to prevent "
418482
"them from being interpreted as capture variable::"
419483
msgstr""
484+
"模式可以使用附名常數 (named constant)。這些模式必須是點分隔名稱,以免它們被解"
485+
"釋為擷取變數:\n"
486+
"\n"
487+
"::"
420488

421489
#:../../tutorial/controlflow.rst:414
422490
msgid""
423491
"For a more detailed explanation and additional examples, you can look into :"
424492
"pep:`636` which is written in a tutorial format."
425493
msgstr""
494+
"關於更詳細的解釋和其他範例,你可以閱讀 :pep:`636`,它是以教學的格式編寫而成。"
426495

427496
#:../../tutorial/controlflow.rst:420
428497
msgid"Defining Functions"
@@ -1275,23 +1344,3 @@ msgstr ""
12751344
"實際上,\\ *傳址呼叫 (call by object reference)* 的說法可能較為貼切。因為,若"
12761345
"傳遞的是一個可變物件時,呼叫者將看得見被呼叫者對物件做出的任何改變(例如被插"
12771346
"入 list 內的新項目)。"
1278-
1279-
#~ msgid ""
1280-
#~ "If you need to modify the sequence you are iterating over while inside "
1281-
#~ "the loop (for example to duplicate selected items), it is recommended "
1282-
#~ "that you first make a copy. Iterating over a sequence does not "
1283-
#~ "implicitly make a copy. The slice notation makes this especially "
1284-
#~ "convenient::"
1285-
#~ msgstr ""
1286-
#~ "如果你在迴圈中需要修改一個你正在疊代的序列(例如重複一些選擇的元素),那麼"
1287-
#~ "會建議你先建立一個序列的拷貝。疊代序列並不暗示建立新的拷貝。此時 slice 語"
1288-
#~ "法就讓這件事十分容易完成:\n"
1289-
#~ "\n"
1290-
#~ "::"
1291-
1292-
#~ msgid ""
1293-
#~ "With ``for w in words:``, the example would attempt to create an infinite "
1294-
#~ "list, inserting ``defenestrate`` over and over again."
1295-
#~ msgstr ""
1296-
#~ "在 ``for w in words:`` 的情況,這個例子會試著重覆不斷地插入 "
1297-
#~ "``defenestrate``,產生一個無限長的 list。"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp