Skip to content

translate c-api/contextvars #1053 #1054

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

Open
wants to merge 1 commit into
base: 3.13
Choose a base branch
from
Open
Changes from all commits
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
66 changes: 48 additions & 18 deletions c-api/contextvars.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,29 @@ msgstr ""
"Project-Id-Version: Python 3.13\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-09-01 22:24+0800\n"
"PO-Revision-Date: 2018-07-15 18:56+0800\n"
"PO-Revision-Date: 2025-06-18 22:07+0800\n"
"Last-Translator: \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"
"X-Generator: Poedit 3.6\n"

#: ../../c-api/contextvars.rst:6
msgid "Context Variables Objects"
msgstr "情境變數物件"
msgstr "情境變數物件(Context Variables Objects)"

#: ../../c-api/contextvars.rst:15
msgid ""
"In Python 3.7.1 the signatures of all context variables C APIs were "
"**changed** to use :c:type:`PyObject` pointers instead of :c:type:"
"`PyContext`, :c:type:`PyContextVar`, and :c:type:`PyContextToken`, e.g.::"
msgstr ""
"在 Python 3.7.1 中所有情境變數 C API 的簽名都被 **改為** 使用 :c:type:"
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: 通常會希望中文字間不要空格

Suggested change
"在 Python 3.7.1 中所有情境變數 C API 的簽名都被 **改為** 使用 :c:type:"
"在 Python 3.7.1 中所有情境變數 C API 的簽名都被\\ **改為**\\ 使用 :c:type:"

"`PyObject` 指標,而不是 :c:type:`PyContext`、:c:type:`PyContextVar` 或 :c:"
"type:`PyContextToken`,例如:"

#: ../../c-api/contextvars.rst:20
msgid ""
Expand All @@ -34,6 +38,11 @@ msgid ""
"// in 3.7.1+:\n"
"PyObject *PyContext_New(void);"
msgstr ""
"// 在 3.7.0:\n"
"PyContext *PyContext_New(void);\n"
"\n"
"// 在 3.7.1+:\n"
"PyObject *PyContext_New(void);"

#: ../../c-api/contextvars.rst:26
msgid "See :issue:`34762` for more details."
Expand All @@ -42,94 +51,103 @@ msgstr "更多細節請見 :issue:`34762`。"
#: ../../c-api/contextvars.rst:29
msgid ""
"This section details the public C API for the :mod:`contextvars` module."
msgstr ""
msgstr "本節詳述 :mod:`contextvars` 模組的公用 C API。"
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: public ㄧ詞以前好像比較常翻成「公開」,比較偏向代表有 expose 出來


#: ../../c-api/contextvars.rst:33
msgid ""
"The C structure used to represent a :class:`contextvars.Context` object."
msgstr ""
msgstr "用來代表 :class:`contextvars.Context` 物件的 C 結構。"
Copy link
Collaborator

Choose a reason for hiding this comment

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

這裡的 present 如果翻成「表示」或「表現」會不會比較貼切?


#: ../../c-api/contextvars.rst:38
msgid ""
"The C structure used to represent a :class:`contextvars.ContextVar` object."
msgstr ""
msgstr "用來代表 :class:`contextvars.ContextVar` 物件的 C 結構。"

#: ../../c-api/contextvars.rst:43
msgid "The C structure used to represent a :class:`contextvars.Token` object."
msgstr ""
msgstr "用來代表 :class:`contextvars.Token` 物件的 C 結構。"

#: ../../c-api/contextvars.rst:47
msgid "The type object representing the *context* type."
msgstr ""
msgstr "代表 *context* 型別的型別物件。"

#: ../../c-api/contextvars.rst:51
msgid "The type object representing the *context variable* type."
msgstr ""
msgstr "代表 *情境變數* 型別的型別物件。"

#: ../../c-api/contextvars.rst:55
msgid "The type object representing the *context variable token* type."
msgstr ""
msgstr "代表 *情境變數 token* 型別的型別物件。"

#: ../../c-api/contextvars.rst:58
msgid "Type-check macros:"
msgstr ""
msgstr "型別檢查巨集:"

#: ../../c-api/contextvars.rst:62
msgid ""
"Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be "
"``NULL``. This function always succeeds."
msgstr ""
"如果 *o* 的型別為 :c:data:`PyContext_Type` 則回傳 true。*o* 不得為 ``NULL``。"
"此函式一定會成功回傳。"

#: ../../c-api/contextvars.rst:67
msgid ""
"Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be "
"``NULL``. This function always succeeds."
msgstr ""
"如果 *o* 的類型為 :c:data:`PyContextVar_Type` 則回傳 true。*o* 不得為 "
"``NULL``。此函式一定會成功回傳。"

#: ../../c-api/contextvars.rst:72
msgid ""
"Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be "
"``NULL``. This function always succeeds."
msgstr ""
"如果 *o* 的類型為 :c:data:`PyContextToken_Type` 則回傳 true。 *o* 不得為 "
"``NULL``。此函式一定會成功回傳。"

#: ../../c-api/contextvars.rst:76
msgid "Context object management functions:"
msgstr ""
msgstr "情境物件管理功能:"
Copy link
Collaborator

Choose a reason for hiding this comment

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

這邊的 function 指的是「函式」還是「功能」?


#: ../../c-api/contextvars.rst:80
msgid ""
"Create a new empty context object. Returns ``NULL`` if an error has "
"occurred."
msgstr ""
msgstr "建立一個新的空的情境物件。 如果發生錯誤,則回傳 ``NULL``。"

#: ../../c-api/contextvars.rst:85
msgid ""
"Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` "
"if an error has occurred."
msgstr ""
msgstr "建立傳入的 *ctx* 情境物件的淺層複製。如果發生錯誤,則回傳 ``NULL``。"
Copy link
Collaborator

Choose a reason for hiding this comment

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

附一下原文好了

Suggested change
msgstr "建立傳入的 *ctx* 情境物件的淺層複製。如果發生錯誤,則回傳 ``NULL``。"
msgstr "建立傳入的 *ctx* 情境物件的淺層複製 (shallow copy)。如果發生錯誤,則回傳 ``NULL``。"


#: ../../c-api/contextvars.rst:90
msgid ""
"Create a shallow copy of the current thread context. Returns ``NULL`` if an "
"error has occurred."
msgstr ""
msgstr "建立目前執行緒上的情境的淺層複製。如果發生錯誤,則回傳 ``NULL``。"

#: ../../c-api/contextvars.rst:95
msgid ""
"Set *ctx* as the current context for the current thread. Returns ``0`` on "
"success, and ``-1`` on error."
msgstr ""
"設定 *ctx* 為目前執行緒上的目前情境。成功時回傳 ``0``,錯誤時回傳 ``-1``。"

#: ../../c-api/contextvars.rst:100
msgid ""
"Deactivate the *ctx* context and restore the previous context as the current "
"context for the current thread. Returns ``0`` on success, and ``-1`` on "
"error."
msgstr ""
"關閉 *ctx* 情境,並將目前執行緒的目前情境設回之前的情境。 成功時回傳 ``0``,"
"錯誤時回傳 ``-1``。"

#: ../../c-api/contextvars.rst:105
msgid "Context variable functions:"
msgstr ""
msgstr "情境變數函式:"

#: ../../c-api/contextvars.rst:109
msgid ""
Expand All @@ -138,45 +156,57 @@ msgid ""
"value for the context variable, or ``NULL`` for no default. If an error has "
"occurred, this function returns ``NULL``."
msgstr ""
"建立一個新的 ``ContextVar`` 物件。*name* 參數用於自我檢查(introspection)和"
"除錯目的。*def* 參數指定情境變數的預設值,亦可用 ``NULL`` 表示沒有預設值。 如"
"果發生錯誤,此函式會回傳 ``NULL``。"

#: ../../c-api/contextvars.rst:116
msgid ""
"Get the value of a context variable. Returns ``-1`` if an error has "
"occurred during lookup, and ``0`` if no error occurred, whether or not a "
"value was found."
msgstr ""
"取得情境變數的值。如果在查找過程中發生錯誤則回傳 ``-1``,如果沒有發生錯誤則無"
"論是否找到值都會回傳 ``0``。"

#: ../../c-api/contextvars.rst:120
msgid ""
"If the context variable was found, *value* will be a pointer to it. If the "
"context variable was *not* found, *value* will point to:"
msgstr ""
"如果找到情境變數,*value* 將會是指向它的指標。如果 *沒有* 找到情境變數,"
"*value* 將會指到:"

#: ../../c-api/contextvars.rst:123
msgid "*default_value*, if not ``NULL``;"
msgstr ""
msgstr "*default_value* 預設值,但前提是預設值不是 ``NULL``;"

#: ../../c-api/contextvars.rst:124
msgid "the default value of *var*, if not ``NULL``;"
msgstr ""
msgstr "*var* 的預設值,但前提是預設值不是 ``NULL``;"

#: ../../c-api/contextvars.rst:125
msgid "``NULL``"
msgstr "``NULL``"

#: ../../c-api/contextvars.rst:127
msgid "Except for ``NULL``, the function returns a new reference."
msgstr ""
msgstr "除了 ``NULL`` 之外,此函式會回傳一個新的參照(reference)。"

#: ../../c-api/contextvars.rst:131
msgid ""
"Set the value of *var* to *value* in the current context. Returns a new "
"token object for this change, or ``NULL`` if an error has occurred."
msgstr ""
"在目前的情境中將 *var* 的值設為 *value*。會回傳一個用來代表此變更的新 token "
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: token 有好的翻譯嗎?

"物件,如果發生錯誤則回傳 ``NULL``。"

#: ../../c-api/contextvars.rst:136
msgid ""
"Reset the state of the *var* context variable to that it was in before :c:"
"func:`PyContextVar_Set` that returned the *token* was called. This function "
"returns ``0`` on success and ``-1`` on error."
msgstr ""
"將 *var* 情境變數的狀態設回之前的狀態,亦即上一次回傳 token 的 :c:func:"
"`PyContextVar_Set` 被呼叫前的狀態。此函式在成功時回傳 ``0``,錯誤時回傳 "
"``-1``。"