diff --git a/c-api/float.po b/c-api/float.po index 6fe2dfed354..5db50e2c2e4 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -4,13 +4,14 @@ # Translators: # Ching-Lung Chuang, 2015 # Liang-Bo Wang , 2015 +# Matt Wang , 2025 msgid "" msgstr "" "Project-Id-Version: Python 3.14\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-09-08 15:25+0800\n" -"PO-Revision-Date: 2017-09-22 18:26+0000\n" -"Last-Translator: Liang-Bo Wang \n" +"POT-Creation-Date: 2025-11-06 00:14+0000\n" +"PO-Revision-Date: 2025-11-07 05:06+0000\n" +"Last-Translator: Matt Wang \n" "Language-Team: Chinese - TAIWAN (https://github.com/python/python-docs-zh-" "tw)\n" "Language: zh_TW\n" @@ -26,56 +27,62 @@ msgstr "浮點數(Floating-Point)物件" #: ../../c-api/float.rst:13 msgid "" "This subtype of :c:type:`PyObject` represents a Python floating-point object." -msgstr "" +msgstr "這個 :c:type:`PyObject` 的子型別代表一個 Python 浮點數物件。" #: ../../c-api/float.rst:18 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python floating-point " "type. This is the same object as :class:`float` in the Python layer." msgstr "" +"這個 :c:type:`PyTypeObject` 的實例代表 Python 浮點數型別。這與 Python 層中的 :class:`float` " +"物件相同。" #: ../../c-api/float.rst:24 msgid "" -"Return true if its argument is a :c:type:`PyFloatObject` or a subtype " -"of :c:type:`PyFloatObject`. This function always succeeds." +"Return true if its argument is a :c:type:`PyFloatObject` or a subtype of :c:" +"type:`PyFloatObject`. This function always succeeds." msgstr "" +"如果其引數是 :c:type:`PyFloatObject` 或 :c:type:`PyFloatObject` 的子型別,則回傳 " +"true。這個函式不會失敗。" #: ../../c-api/float.rst:30 msgid "" "Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " "of :c:type:`PyFloatObject`. This function always succeeds." msgstr "" +"如果其引數是 :c:type:`PyFloatObject`,但不是 :c:type:`PyFloatObject` 的子型別," +"則回傳 true。這個函式不會失敗。" #: ../../c-api/float.rst:36 msgid "" "Create a :c:type:`PyFloatObject` object based on the string value in *str*, " "or ``NULL`` on failure." -msgstr "" +msgstr "建立一個基於字串值 *str* 的 :c:type:`PyFloatObject` 物件,失敗時回傳 ``NULL``。" #: ../../c-api/float.rst:42 msgid "" "Create a :c:type:`PyFloatObject` object from *v*, or ``NULL`` on failure." -msgstr "" +msgstr "建立一個來自 *v* 的 :c:type:`PyFloatObject` 物件,失敗時回傳 ``NULL``。" #: ../../c-api/float.rst:47 msgid "" "Return a C :c:expr:`double` representation of the contents of *pyfloat*. If " -"*pyfloat* is not a Python floating-point object but has " -"a :meth:`~object.__float__` method, this method will first be called to " -"convert *pyfloat* into a float. If :meth:`!__float__` is not defined then it " -"falls back to :meth:`~object.__index__`. This method returns ``-1.0`` upon " -"failure, so one should call :c:func:`PyErr_Occurred` to check for errors." +"*pyfloat* is not a Python floating-point object but has a :meth:`~object." +"__float__` method, this method will first be called to convert *pyfloat* " +"into a float. If :meth:`!__float__` is not defined then it falls back to :" +"meth:`~object.__index__`. This method returns ``-1.0`` upon failure, so one " +"should call :c:func:`PyErr_Occurred` to check for errors." msgstr "" #: ../../c-api/float.rst:54 msgid "Use :meth:`~object.__index__` if available." -msgstr "" +msgstr "請使用 :meth:`~object.__index__`\\ (如果可用)。" #: ../../c-api/float.rst:60 msgid "" "Return a C :c:expr:`double` representation of the contents of *pyfloat*, but " "without error checking." -msgstr "" +msgstr "回傳 *pyfloat* 內容的 C :c:expr:`double` 表示形式,但不進行錯誤檢查。" #: ../../c-api/float.rst:66 msgid "" @@ -83,32 +90,60 @@ msgid "" "minimum and maximum values of a float. It's a thin wrapper around the header " "file :file:`float.h`." msgstr "" +"回傳一個 structseq 實例,其中包含有關浮點數的精度、最小值和最大值的資訊。" +"它是對標頭檔 :file:`float.h` 的簡單封裝。" #: ../../c-api/float.rst:73 msgid "" -"Return the maximum representable finite float *DBL_MAX* as " -"C :c:expr:`double`." -msgstr "" +"Return the maximum representable finite float *DBL_MAX* as C :c:expr:" +"`double`." +msgstr "將可表示的最大有限浮點數 *DBL_MAX* 作為 C :c:expr:`double` 回傳。" #: ../../c-api/float.rst:78 msgid "" "Return the minimum normalized positive float *DBL_MIN* as C :c:expr:`double`." -msgstr "" +msgstr "將最小的正規化浮點數 *DBL_MIN* 作為 C :c:expr:`double` 回傳。" + +#: ../../c-api/float.rst:83 +msgid "Return :data:`math.nan` from a function." +msgstr "從函式回傳 :data:`math.nan`。" -#: ../../c-api/float.rst:82 +#: ../../c-api/float.rst:85 +msgid "" +"On most platforms, this is equivalent to ``return PyFloat_FromDouble(NAN)``." +msgstr "在大多數平台上,這相當於 ``return PyFloat_FromDouble(NAN)``。" + +#: ../../c-api/float.rst:90 +msgid "" +"Return :data:`math.inf` or :data:`-math.inf ` from a function, " +"depending on the sign of *sign*." +msgstr "根據 *sign* 的正負號,從函式回傳 :data:`math.inf` 或 :data:`-math.inf `。" + +#: ../../c-api/float.rst:93 +msgid "On most platforms, this is equivalent to the following::" +msgstr "在大多數平台上,這相當於以下內容: ::" + +#: ../../c-api/float.rst:95 +msgid "return PyFloat_FromDouble(copysign(INFINITY, sign));" +msgstr "return PyFloat_FromDouble(copysign(INFINITY, sign));" + +#: ../../c-api/float.rst:99 msgid "Pack and Unpack functions" -msgstr "" +msgstr "打包和解包函式" -#: ../../c-api/float.rst:84 +#: ../../c-api/float.rst:101 msgid "" "The pack and unpack functions provide an efficient platform-independent way " "to store floating-point values as byte strings. The Pack routines produce a " -"bytes string from a C :c:expr:`double`, and the Unpack routines produce a " -"C :c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) " -"specifies the number of bytes in the bytes string." +"bytes string from a C :c:expr:`double`, and the Unpack routines produce a C :" +"c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) specifies " +"the number of bytes in the bytes string." msgstr "" +"打包和解包函式提供了一種有效的跨平台方式,來將浮點數值儲存為位元組字串。" +"打包例程從 C :c:expr:`double` 產生位元組字串,而解包例程則從這樣的位元組字串產生 " +"C :c:expr:`double`。後綴(2、4 或 8)標示了位元組字串中的位元組數。" -#: ../../c-api/float.rst:90 +#: ../../c-api/float.rst:107 msgid "" "On platforms that appear to use IEEE 754 formats these functions work by " "copying bits. On other platforms, the 2-byte format is identical to the IEEE " @@ -119,104 +154,128 @@ msgid "" "attempting to unpack a bytes string containing an IEEE INF or NaN will raise " "an exception." msgstr "" +"在看似使用 IEEE 754 格式的平台上,這些函式是透過複製位元來運作的。" +"在其他平台上,2 位元組格式與 IEEE 754 binary16 半精度格式相同," +"4 位元組格式(32 位元)與 IEEE 754 binary32 單精度格式相同," +"8 位元組格式與 IEEE 754 binary64 雙精度格式相同。" +"儘管如此,INF 和 NaN(如果這些東西在平台上存在)的打包並未正確處理," +"並且嘗試解包包含 IEEE INF 或 NaN 的位元組字串將引發例外。" -#: ../../c-api/float.rst:99 +#: ../../c-api/float.rst:116 msgid "" "Note that NaNs type may not be preserved on IEEE platforms (silent NaN " "become quiet), for example on x86 systems in 32-bit mode." msgstr "" +"請注意,在 IEEE 平台上可能無法保留 NaN 型別(「靜默型 NaN (silent NaN)」會變成" +"「安靜型 NaN (quiet NaN)」),例如在 32 位元模式的 x86 系統上。" -#: ../../c-api/float.rst:102 +#: ../../c-api/float.rst:119 msgid "" "On non-IEEE platforms with more precision, or larger dynamic range, than " "IEEE 754 supports, not all values can be packed; on non-IEEE platforms with " "less precision, or smaller dynamic range, not all values can be unpacked. " "What happens in such cases is partly accidental (alas)." msgstr "" +"在非 IEEE 平台上,如果精度更高或動態範圍比 IEEE 754 支援的更大," +"則無法打包所有值;在非 IEEE 平台上,如果精度較低或動態範圍較小," +"則無法解包所有值。在這種案例下發生的情況在某種程度上是偶然的(唉)。" -#: ../../c-api/float.rst:110 +#: ../../c-api/float.rst:127 msgid "Pack functions" -msgstr "" +msgstr "打包函式" -#: ../../c-api/float.rst:112 +#: ../../c-api/float.rst:129 msgid "" -"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is " -"an :c:expr:`int` argument, non-zero if you want the bytes string in little-" -"endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero " -"if you want big-endian format (exponent first, at *p*). " -"The :c:macro:`PY_BIG_ENDIAN` constant can be used to use the native endian: " -"it is equal to ``1`` on big endian processor, or ``0`` on little endian " -"processor." -msgstr "" - -#: ../../c-api/float.rst:119 +"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:" +"`int` argument, non-zero if you want the bytes string in little-endian " +"format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero if you " +"want big-endian format (exponent first, at *p*). The :c:macro:" +"`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal " +"to ``1`` on big endian processor, or ``0`` on little endian processor." +msgstr "" +"打包例程會從 *p* 開始寫入 2、4 或 8 位元組。*le* 是一個 :c:expr:`int` 引數," +"如果你想要位元組字串為小端序格式(指數在最後,位於 ``p+1``、``p+3``、" +"``p+6`` 或 ``p+7``),則用非零值;如果你想要大端序格式(指數在最前,位於 *p*)," +"則用零。可以使用 :c:macro:`PY_BIG_ENDIAN` 常數來使用原生端序:" +"在大端序處理器上它等於 ``1``,在小端序處理器上它等於 ``0``。" + +#: ../../c-api/float.rst:136 msgid "" "Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, " "most likely :exc:`OverflowError`)." msgstr "" +"回傳值:如果一切正常則為 ``0``,如果發生錯誤則為 ``-1``\\ (並且會設定一個例外," +"最有可能是 :exc:`OverflowError`)。" -#: ../../c-api/float.rst:122 +#: ../../c-api/float.rst:139 msgid "There are two problems on non-IEEE platforms:" -msgstr "" +msgstr "在非 IEEE 平台上有兩個問題:" -#: ../../c-api/float.rst:124 +#: ../../c-api/float.rst:141 msgid "What this does is undefined if *x* is a NaN or infinity." -msgstr "" +msgstr "如果 *x* 是 NaN 或無窮大,則這樣做是未定義的。" -#: ../../c-api/float.rst:125 +#: ../../c-api/float.rst:142 msgid "``-0.0`` and ``+0.0`` produce the same bytes string." msgstr "``-0.0`` 和 ``+0.0`` 會產生同樣的位元組字串。" -#: ../../c-api/float.rst:129 +#: ../../c-api/float.rst:146 msgid "Pack a C double as the IEEE 754 binary16 half-precision format." -msgstr "" +msgstr "將 C double 打包為 IEEE 754 binary16 半精度格式。" -#: ../../c-api/float.rst:133 +#: ../../c-api/float.rst:150 msgid "Pack a C double as the IEEE 754 binary32 single precision format." -msgstr "" +msgstr "將 C double 打包為 IEEE 754 binary32 單精度格式。" -#: ../../c-api/float.rst:137 +#: ../../c-api/float.rst:154 msgid "Pack a C double as the IEEE 754 binary64 double precision format." -msgstr "" +msgstr "將 C double 打包為 IEEE 754 binary64 雙精度格式。" -#: ../../c-api/float.rst:141 +#: ../../c-api/float.rst:158 msgid "Unpack functions" -msgstr "" +msgstr "解包函式" -#: ../../c-api/float.rst:143 +#: ../../c-api/float.rst:160 msgid "" -"The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is " -"an :c:expr:`int` argument, non-zero if the bytes string is in little-endian " -"format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if " -"big-endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant " -"can be used to use the native endian: it is equal to ``1`` on big endian " +"The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:" +"expr:`int` argument, non-zero if the bytes string is in little-endian format " +"(exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-" +"endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can " +"be used to use the native endian: it is equal to ``1`` on big endian " "processor, or ``0`` on little endian processor." msgstr "" +"解包例程會從 *p* 開始讀取 2、4 或 8 位元組。*le* 是一個 :c:expr:`int` 引數," +"如果位元組字串為小端序格式(指數在最後,位於 ``p+1``、``p+3``、" +"``p+6`` 或 ``p+7``),則用非零值;如果為大端序格式(指數在最前,位於 *p*),則用零。" +"可以使用 :c:macro:`PY_BIG_ENDIAN` 常數來使用原生端序:在大端序處理器上它等於 ``1``," +"在小端序處理器上它等於 ``0``。" -#: ../../c-api/float.rst:150 +#: ../../c-api/float.rst:167 msgid "" -"Return value: The unpacked double. On error, this is ``-1.0`` " -"and :c:func:`PyErr_Occurred` is true (and an exception is set, most " -"likely :exc:`OverflowError`)." +"Return value: The unpacked double. On error, this is ``-1.0`` and :c:func:" +"`PyErr_Occurred` is true (and an exception is set, most likely :exc:" +"`OverflowError`)." msgstr "" +"回傳值:解包後的 double。發生錯誤時,這是 ``-1.0`` 且 :c:func:`PyErr_Occurred` " +"為 true(並且會設置一個例外,最有可能是 :exc:`OverflowError`)。" -#: ../../c-api/float.rst:154 +#: ../../c-api/float.rst:171 msgid "" "Note that on a non-IEEE platform this will refuse to unpack a bytes string " "that represents a NaN or infinity." -msgstr "" +msgstr "請注意,在非 IEEE 平台上,這將拒絕解包會表示為 NaN 或無窮大的位元組字串。" -#: ../../c-api/float.rst:159 +#: ../../c-api/float.rst:176 msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." -msgstr "" +msgstr "將 IEEE 754 binary16 半精度格式解包為 C double。" -#: ../../c-api/float.rst:163 +#: ../../c-api/float.rst:180 msgid "Unpack the IEEE 754 binary32 single precision format as a C double." -msgstr "" +msgstr "將 IEEE 754 binary32 單精度格式解包為 C double。" -#: ../../c-api/float.rst:167 +#: ../../c-api/float.rst:184 msgid "Unpack the IEEE 754 binary64 double precision format as a C double." -msgstr "" +msgstr "將 IEEE 754 binary64 雙精度格式解包為 C double。" #: ../../c-api/float.rst:8 msgid "object"