-
-
Notifications
You must be signed in to change notification settings - Fork 224
Expand file tree
/
Copy pathatexit.po
More file actions
246 lines (224 loc) · 9.56 KB
/
atexit.po
File metadata and controls
246 lines (224 loc) · 9.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
# Copyright (C) 2001 Python Software Foundation
# This file is distributed under the same license as the Python package.
#
# Translators:
# Matt Wang <[email protected]>, 2024
msgid ""
msgstr ""
"Project-Id-Version: Python 3.14\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-07 00:19+0000\n"
"PO-Revision-Date: 2016-01-31 07:13+0000\n"
"Last-Translator: Matt Wang <[email protected]>\n"
"Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-"
"tw)\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ../../library/atexit.rst:2
msgid ":mod:`!atexit` --- Exit handlers"
msgstr ":mod:`!atexit` --- 退出處理函式"
#: ../../library/atexit.rst:12
msgid ""
"The :mod:`!atexit` module defines functions to register and unregister "
"cleanup functions. Functions thus registered are automatically executed "
"upon normal interpreter termination. :mod:`!atexit` runs these functions in "
"the *reverse* order in which they were registered; if you register ``A``, "
"``B``, and ``C``, at interpreter termination time they will be run in the "
"order ``C``, ``B``, ``A``."
msgstr ""
":mod:`!atexit` 模組定義了註冊和註銷清理函式 (cleanup function) 的函式,這樣的"
"註冊函式會在直譯器正常終止時自動執行。:mod:`!atexit` 按照這些函式註冊之\\ *反"
"序*\\ 來運行這些函式;如果你有註冊 ``A``、``B`` 和 ``C``,則在直譯器終止時它"
"們將按 ``C``、``B``、``A`` 的順序運行。"
#: ../../library/atexit.rst:19
msgid ""
"**Note:** The functions registered via this module are not called when the "
"program is killed by a signal not handled by Python, when a Python fatal "
"internal error is detected, or when :func:`os._exit` is called."
msgstr ""
"**注意:**\\ 當程式被一個不是來自 Python 的訊號終止、偵測到有 Python 嚴重內部"
"錯誤時或者 :func:`os._exit` 被呼叫時,透過此模組註冊的函式就不會被呼叫。"
#: ../../library/atexit.rst:23
msgid ""
"**Note:** The effect of registering or unregistering functions from within a "
"cleanup function is undefined."
msgstr "**注意:**\\ 在清理函式中註冊或註銷函式的作用並未定義。"
#: ../../library/atexit.rst:26
msgid ""
"When used with C-API subinterpreters, registered functions are local to the "
"interpreter they were registered in."
msgstr ""
"當與 C-API 子直譯器 (subinterpreter) 一起使用時,已註冊函式對於它們所註冊的直"
"譯器來說是區域的 (local)。"
#: ../../library/atexit.rst:32
msgid ""
"Register *func* as a function to be executed at termination. Any optional "
"arguments that are to be passed to *func* must be passed as arguments to :"
"func:`register`. It is possible to register the same function and arguments "
"more than once."
msgstr ""
"將 *func* 註冊為要在終止時執行的函式。任何要傳遞給 *func* 的可選引數都必須作"
"為引數傳遞給 :func:`register`。可以多次註冊相同的函式和引數。"
#: ../../library/atexit.rst:37
msgid ""
"At normal program termination (for instance, if :func:`sys.exit` is called "
"or the main module's execution completes), all functions registered are "
"called in last in, first out order. The assumption is that lower level "
"modules will normally be imported before higher level modules and thus must "
"be cleaned up later."
msgstr ""
"在程式正常終止時(例如呼叫 :func:`sys.exit` 或主要模組執行完成),所有已註冊"
"函式都會依照後進先出的順序呼叫。這邊做的假設是較低階的模組通常會在較高階模組"
"之前被引入,因此較低階模組必須在比較後面才被清理。"
#: ../../library/atexit.rst:43
msgid ""
"If an exception is raised during execution of the exit handlers, a traceback "
"is printed (unless :exc:`SystemExit` is raised) and the exception "
"information is saved. After all exit handlers have had a chance to run, the "
"last exception to be raised is re-raised."
msgstr ""
"如果在執行退出處理函式期間引發例外,則會列印回溯 (traceback)(除非引發 :exc:"
"`SystemExit`)並儲存例外資訊。在所有退出處理函式都有嘗試運作過後,將重新引發"
"最後一個引發的例外。"
#: ../../library/atexit.rst:48
msgid ""
"This function returns *func*, which makes it possible to use it as a "
"decorator."
msgstr "該函式回傳 *func*,這使得可以將其作為裝飾器使用。"
#: ../../library/atexit.rst:52
msgid ""
"Starting new threads or calling :func:`os.fork` from a registered function "
"can lead to race condition between the main Python runtime thread freeing "
"thread states while internal :mod:`threading` routines or the new process "
"try to use that state. This can lead to crashes rather than clean shutdown."
msgstr ""
"啟動新執行緒或從已註冊函式呼叫 :func:`os.fork` 可能會導致 Python 主要 "
"runtime 執行緒釋放執行緒狀態,而內部 :mod:`threading` 例程或新行程嘗試使用該"
"狀態所形成的競態條件 (race condition)。這可能會導致崩潰 (crash) 而不是完整關"
"閉中止。"
#: ../../library/atexit.rst:58
msgid ""
"Attempts to start a new thread or :func:`os.fork` a new process in a "
"registered function now leads to :exc:`RuntimeError`."
msgstr ""
"嘗試在已註冊函式中啟動新執行緒或 :func:`os.fork` 新行程現在會導致 :exc:"
"`RuntimeError`。"
#: ../../library/atexit.rst:64
msgid ""
"Remove *func* from the list of functions to be run at interpreter shutdown. :"
"func:`unregister` silently does nothing if *func* was not previously "
"registered. If *func* has been registered more than once, every occurrence "
"of that function in the :mod:`!atexit` call stack will be removed. Equality "
"comparisons (``==``) are used internally during unregistration, so function "
"references do not need to have matching identities."
msgstr ""
"從在直譯器中止時會執行之函式串列中刪除 *func*。如果 *func* 先前未被註冊,則 :"
"func:`unregister` 不會執行任何操作。如果 *func* 已被註冊多次,則該函式在 :"
"mod:`!atexit` 呼叫堆疊 (call stack) 中的所有存在都會被刪除。會在註銷期間於內部"
"使用相等性比較 (``==``),因此函式參照不需要具有匹配的識別性。"
#: ../../library/atexit.rst:74
msgid "Module :mod:`readline`"
msgstr ":mod:`readline` 模組"
#: ../../library/atexit.rst:75
msgid ""
"Useful example of :mod:`!atexit` to read and write :mod:`readline` history "
"files."
msgstr ""
":mod:`!atexit` 用於讀取和寫入 :mod:`readline` 歷史檔案的一個不錯的範例。"
#: ../../library/atexit.rst:82
msgid ":mod:`!atexit` Example"
msgstr ":mod:`!atexit` 範例"
#: ../../library/atexit.rst:84
msgid ""
"The following simple example demonstrates how a module can initialize a "
"counter from a file when it is imported and save the counter's updated value "
"automatically when the program terminates without relying on the application "
"making an explicit call into this module at termination. ::"
msgstr ""
"以下的簡單範例示範了模組如何在被引入時以檔案來初始化計數器,並在程式終止時自"
"動儲存計數器的更新值,而不需要仰賴應用程式在終止時明確呼叫該模組。 ::"
#: ../../library/atexit.rst:89
msgid ""
"try:\n"
" with open('counterfile') as infile:\n"
" _count = int(infile.read())\n"
"except FileNotFoundError:\n"
" _count = 0\n"
"\n"
"def incrcounter(n):\n"
" global _count\n"
" _count = _count + n\n"
"\n"
"def savecounter():\n"
" with open('counterfile', 'w') as outfile:\n"
" outfile.write('%d' % _count)\n"
"\n"
"import atexit\n"
"\n"
"atexit.register(savecounter)"
msgstr ""
"try:\n"
" with open('counterfile') as infile:\n"
" _count = int(infile.read())\n"
"except FileNotFoundError:\n"
" _count = 0\n"
"\n"
"def incrcounter(n):\n"
" global _count\n"
" _count = _count + n\n"
"\n"
"def savecounter():\n"
" with open('counterfile', 'w') as outfile:\n"
" outfile.write('%d' % _count)\n"
"\n"
"import atexit\n"
"\n"
"atexit.register(savecounter)"
#: ../../library/atexit.rst:107
msgid ""
"Positional and keyword arguments may also be passed to :func:`register` to "
"be passed along to the registered function when it is called::"
msgstr ""
"位置引數和關鍵字引數也可以被傳遞給 :func:`register`,以便在呼叫時也傳遞給已註"
"冊函式: ::"
#: ../../library/atexit.rst:110
msgid ""
"def goodbye(name, adjective):\n"
" print('Goodbye %s, it was %s to meet you.' % (name, adjective))\n"
"\n"
"import atexit\n"
"\n"
"atexit.register(goodbye, 'Donny', 'nice')\n"
"# or:\n"
"atexit.register(goodbye, adjective='nice', name='Donny')"
msgstr ""
"def goodbye(name, adjective):\n"
" print('Goodbye %s, it was %s to meet you.' % (name, adjective))\n"
"\n"
"import atexit\n"
"\n"
"atexit.register(goodbye, 'Donny', 'nice')\n"
"# 或是:\n"
"atexit.register(goodbye, adjective='nice', name='Donny')"
#: ../../library/atexit.rst:119
msgid "Usage as a :term:`decorator`::"
msgstr "作為\\ :term:`裝飾器 <decorator>`\\ 使用: ::"
#: ../../library/atexit.rst:121
msgid ""
"import atexit\n"
"\n"
"@atexit.register\n"
"def goodbye():\n"
" print('You are now leaving the Python sector.')"
msgstr ""
"import atexit\n"
"\n"
"@atexit.register\n"
"def goodbye():\n"
" print('You are now leaving the Python sector.')"
#: ../../library/atexit.rst:127
msgid "This only works with functions that can be called without arguments."
msgstr "這只適用於可以不帶引數呼叫的函式。"