@@ -24,7 +24,7 @@ msgstr ""
24
24
25
25
#: ../../c-api/stable.rst:7
26
26
msgid "C API Stability"
27
- msgstr ""
27
+ msgstr "C API の安定性 "
28
28
29
29
#: ../../c-api/stable.rst:9
30
30
msgid ""
@@ -34,6 +34,11 @@ msgid ""
34
34
"API. Changing existing API or removing API is only done after a deprecation "
35
35
"period or to fix serious issues."
36
36
msgstr ""
37
+ "Python の C API は、 Backwards Compatibility Policy, :pep:`387` によって保護"
38
+ "されています。C API はマイナーリリースごとに変更されますが(例えば 3.9 から "
39
+ "3.10 へ)、ほとんどの変更はソース互換であり、通常は新しい API を追加するだけで"
40
+ "す。既存の API を変更したり、 API を削除したりするのは、非推奨期間の後か、深"
41
+ "刻な問題を修正する場合のみです。"
37
42
38
43
#: ../../c-api/stable.rst:15
39
44
msgid ""
@@ -43,12 +48,19 @@ msgid ""
43
48
"work on 3.10.8 and vice versa, but will need to be compiled separately for "
44
49
"3.9.x and 3.10.x."
45
50
msgstr ""
51
+ "CPython の Application Binary Interface(ABI)は、マイナーリリース間で前方およ"
52
+ "び後方互換性があります(これらが同じ方法でコンパイルされた場合。以下の :ref:"
53
+ "`stable-abi-platform` を参照)。そのため、Python 3.10.0 用にコンパイルされた"
54
+ "コードは 3.10.8 で動作し、その逆も同様ですが、 3.9.x と 3.10.x では別々にコン"
55
+ "パイルする必要があります。"
46
56
47
57
#: ../../c-api/stable.rst:21
48
58
msgid ""
49
59
"Names prefixed by an underscore, such as ``_Py_InternalState``, are private "
50
60
"API that can change without notice even in patch releases."
51
61
msgstr ""
62
+ "``_Py_InternalState`` のようにアンダースコアが前につくものは、パッチリリース"
63
+ "でも予告なく変更される可能性があるプライベートAPIです。"
52
64
53
65
#: ../../c-api/stable.rst:26
54
66
msgid "Stable Application Binary Interface"
@@ -61,6 +73,10 @@ msgid ""
61
73
"multiple versions of Python. Contents of the Limited API are :ref:`listed "
62
74
"below <stable-abi-list>`."
63
75
msgstr ""
76
+ "Python 3.2 では、 Python の C API のサブセットである *Limited API* が導入され"
77
+ "ました。Limited API のみを使用する拡張機能は、一度コンパイルすれば、複数の"
78
+ "バージョンの Python で動作させることができます。Limited API の内容は :ref:"
79
+ "`listed below <stable-abi-list>` です。"
64
80
65
81
#: ../../c-api/stable.rst:33
66
82
msgid ""
@@ -69,19 +85,28 @@ msgid ""
69
85
"symbols exposed in the Limited API, but also other ones – for example, "
70
86
"functions necessary to support older versions of the Limited API."
71
87
msgstr ""
88
+ "これを可能にするために、 Python は *Stable ABI* を提供しています。これは、"
89
+ "Python 3.x のバージョン間で互換性を保つシンボルの集合です。Stable ABI には、 "
90
+ "Limited API で公開されているシンボルだけでなく、 Limited API の古いバージョン"
91
+ "をサポートするために必要な関数など、他のシンボルも含まれています。"
72
92
73
93
#: ../../c-api/stable.rst:38
74
94
msgid ""
75
95
"(For simplicity, this document talks about *extensions*, but the Limited API "
76
96
"and Stable ABI work the same way for all uses of the API – for example, "
77
97
"embedding Python.)"
78
98
msgstr ""
99
+ "(簡単にするため、このドキュメントでは *拡張機能* について話していますが、 "
100
+ "Limited API と Stable ABI は、 API のすべての使用、たとえばPythonの組み込みに"
101
+ "対して同じように動作します)"
79
102
80
103
#: ../../c-api/stable.rst:44
81
104
msgid ""
82
105
"Define this macro before including ``Python.h`` to opt in to only use the "
83
106
"Limited API, and to select the Limited API version."
84
107
msgstr ""
108
+ "このマクロを ``Python.h`` をインクルードする前に定義することで、 Limited API "
109
+ "のみを使用することを選択し、 Limited API バージョンを選択することができます。"
85
110
86
111
#: ../../c-api/stable.rst:47
87
112
msgid ""
@@ -91,26 +116,39 @@ msgid ""
91
116
"the specified one onward, and can use Limited API introduced up to that "
92
117
"version."
93
118
msgstr ""
119
+ "``Py_LIMITED_API`` を :c:data:`PY_VERSION_HEX` の値として定義し、拡張機能がサ"
120
+ "ポートする Python の最低バージョンに対応します。この拡張機能は、指定された"
121
+ "バージョン以降のすべての Python 3 リリースで再コンパイルせずに動作し、その"
122
+ "バージョンまでに導入された Limited API を使用することができます。"
94
123
95
124
#: ../../c-api/stable.rst:53
96
125
msgid ""
97
126
"Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum "
98
127
"minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when "
99
128
"compiling with future Python versions."
100
129
msgstr ""
130
+ "``PY_VERSION_HEX`` マクロを直接使うのではなく、将来の Python のバージョンでコ"
131
+ "ンパイルするときの安定性のために、最小のマイナーバージョン(例えば、 Python "
132
+ "3.10なら ``0x030A0000`` )をハードコードします。"
101
133
102
134
#: ../../c-api/stable.rst:57
103
135
msgid ""
104
136
"You can also define ``Py_LIMITED_API`` to ``3``. This works the same as "
105
137
"``0x03020000`` (Python 3.2, the version that introduced Limited API)."
106
138
msgstr ""
139
+ "また、 ``Py_LIMITED_API`` を ``3`` に定義することができます。これは "
140
+ "``0x03020000`` (Python 3.2, Limited API が導入されたバージョン)と同じように動"
141
+ "作します。"
107
142
108
143
#: ../../c-api/stable.rst:60
109
144
msgid ""
110
145
"On Windows, extensions that use the Stable ABI should be linked against "
111
146
"``python3.dll`` rather than a version-specific library such as ``python39."
112
147
"dll``."
113
148
msgstr ""
149
+ "Windows では、 Stable ABI を使用する拡張機能は、 ``python39.dll`` のような"
150
+ "バージョン固有のライブラリではなく、 ``python3.dll`` に対してリンクする必要が"
151
+ "あります。"
114
152
115
153
#: ../../c-api/stable.rst:64
116
154
msgid ""
@@ -120,30 +158,45 @@ msgid ""
120
158
"to ensure that, for example, extensions built with the 3.10+ Limited API are "
121
159
"not installed for lower versions of Python."
122
160
msgstr ""
161
+ "いくつかのプラットフォームでは、 Python は ``abi3`` タグで名付けられた共有ラ"
162
+ "イブラリファイルを探して読み込みます(例: ``mymodule.abi3.so``)。このような拡"
163
+ "張モジュールが Stable ABI に適合しているかどうかはチェックされません。ユー"
164
+ "ザー(またはそのパッケージングツール)は、たとえば 3.10+ Limited API でビルドさ"
165
+ "れた拡張モジュールが、それ以下のバージョンの Python にインストールされないこ"
166
+ "とを確認する必要があります。"
123
167
124
168
#: ../../c-api/stable.rst:71
125
169
msgid ""
126
170
"All functions in the Stable ABI are present as functions in Python's shared "
127
171
"library, not solely as macros. This makes them usable from languages that "
128
172
"don't use the C preprocessor."
129
173
msgstr ""
174
+ "Stable ABI に含まれるすべての関数は、マクロとしてだけでなく、 Python の共有ラ"
175
+ "イブラリの関数として存在します。そのため、Cプリプロセッサを使用しない言語から"
176
+ "使用することができます。"
130
177
131
178
#: ../../c-api/stable.rst:77
132
179
msgid "Limited API Scope and Performance"
133
- msgstr ""
180
+ msgstr "APIスコープとパフォーマンスの制限 "
134
181
135
182
#: ../../c-api/stable.rst:79
136
183
msgid ""
137
184
"The goal for the Limited API is to allow everything that is possible with "
138
185
"the full C API, but possibly with a performance penalty."
139
186
msgstr ""
187
+ "Limited API の目標は、フル C API で可能なすべてのことを実現することですが、お"
188
+ "そらく性能上の制約があります。"
140
189
141
190
#: ../../c-api/stable.rst:82
142
191
msgid ""
143
192
"For example, while :c:func:`PyList_GetItem` is available, its “unsafe” macro "
144
193
"variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it "
145
194
"can rely on version-specific implementation details of the list object."
146
195
msgstr ""
196
+ "例えば、 :c:func:`PyList_GetItem` は利用可能ですが、その “unsafe” マクロの変"
197
+ "種 :c:func:`PyList_GET_ITEM` は利用できません。このマクロは、リストオブジェク"
198
+ "トのバージョン固有の実装の詳細に依存することができるため、より高速に処理する"
199
+ "ことができます。"
147
200
148
201
#: ../../c-api/stable.rst:87
149
202
msgid ""
@@ -152,6 +205,10 @@ msgid ""
152
205
"allowing stability as Python's data structures are improved, but possibly "
153
206
"reducing performance."
154
207
msgstr ""
208
+ "``Py_LIMITED_API`` を定義しないと、いくつかの C API 関数がインライン化された"
209
+ "り、マクロに置き換わったりします。``Py_LIMITED_API`` を定義すると、このインラ"
210
+ "イン化が無効になり、 Python のデータ構造が改善されても安定した動作が可能にな"
211
+ "りますが、性能が低下する可能性があります。"
155
212
156
213
#: ../../c-api/stable.rst:92
157
214
msgid ""
@@ -162,10 +219,16 @@ msgid ""
162
219
"where a version-specific one is not available – for example, for prereleases "
163
220
"of an upcoming Python version."
164
221
msgstr ""
222
+ "``Py_LIMITED_API`` の定義を省くことで、 Limited API 拡張をバージョン固有の "
223
+ "ABI でコンパイルすることが可能です。これにより、その Python のバージョンでパ"
224
+ "フォーマンスを向上させることができますが、互換性は制限されます。"
225
+ "``Py_LIMITED_API`` でコンパイルすると、バージョンに依存しない拡張機能が利用で"
226
+ "きない場合、例えば、次期 Python バージョンのプレリリースに対応した拡張モ"
227
+ "ジュールを配布することができるようになります。"
165
228
166
229
#: ../../c-api/stable.rst:101
167
230
msgid "Limited API Caveats"
168
- msgstr ""
231
+ msgstr "制限付きAPIの注意点 "
169
232
170
233
#: ../../c-api/stable.rst:103
171
234
msgid ""
@@ -174,6 +237,10 @@ msgid ""
174
237
"only covers definitions, but an API also includes other issues, such as "
175
238
"expected semantics."
176
239
msgstr ""
240
+ "``Py_LIMITED_API`` でコンパイルすることは、 Limited API や Stable ABI に準拠"
241
+ "したコードであることを完全に保証するものではないことに注意してください。"
242
+ "``Py_LIMITED_API`` は定義だけをカバーしていますが、 API には期待されるセマン"
243
+ "ティクスのような他の課題も含まれています。"
177
244
178
245
#: ../../c-api/stable.rst:108
179
246
msgid ""
@@ -184,18 +251,28 @@ msgid ""
184
251
"the argument will be used directly, causing a ``NULL`` dereference and "
185
252
"crash. A similar argument works for fields of structs."
186
253
msgstr ""
254
+ "``Py_LIMITED_API`` が防げない問題の1つは、 Python の下位バージョンでは無効な"
255
+ "引数を持つ関数を呼び出すことです。例えば、引数に ``NULL`` を受け取る関数を考"
256
+ "えてみましょう。Python 3.9 では ``NULL`` はデフォルトの挙動を選択しますが、"
257
+ "Python 3.8 ではこの引数は直接使用され、 ``NULL`` の参照外れを起こしクラッシュ"
258
+ "します。同様の引数は、構造体のフィールドに対しても機能します。"
187
259
188
260
#: ../../c-api/stable.rst:115
189
261
msgid ""
190
262
"Another issue is that some struct fields are currently not hidden when "
191
263
"``Py_LIMITED_API`` is defined, even though they're part of the Limited API."
192
264
msgstr ""
265
+ "もう一つの問題は、一部の構造体フィールドがLimited APIの一部であるにもかかわら"
266
+ "ず、 ``Py_LIMITED_API`` が定義されたときに現在非表示になっていないことです。"
193
267
194
268
#: ../../c-api/stable.rst:118
195
269
msgid ""
196
270
"For these reasons, we recommend testing an extension with *all* minor Python "
197
271
"versions it supports, and preferably to build with the *lowest* such version."
198
272
msgstr ""
273
+ "これらの理由から、私たちは拡張モジュールがサポートする *すべての* マイナーな "
274
+ "Python バージョンでテストすること、そしてできれば *最も低い* バージョンでビル"
275
+ "ドすることを推奨します。"
199
276
200
277
#: ../../c-api/stable.rst:121
201
278
msgid ""
@@ -204,6 +281,10 @@ msgid ""
204
281
"few private declarations are exposed for technical reasons (or even "
205
282
"unintentionally, as bugs)."
206
283
msgstr ""
284
+ "また、使用するすべての API のドキュメントを確認し、それが明示的に Limited "
285
+ "API の一部であるかどうかをチェックすることをお勧めします。``Py_LIMITED_API`` "
286
+ "が定義されていても、技術的な理由で(あるいはバグとして意図せず)いくつかのプラ"
287
+ "イベート宣言が公開されることがあります。"
207
288
208
289
#: ../../c-api/stable.rst:126
209
290
msgid ""
@@ -213,10 +294,14 @@ msgid ""
213
294
"particular, parts of the Limited API may be deprecated and removed, provided "
214
295
"that the Stable ABI stays stable."
215
296
msgstr ""
297
+ "Python 3.8 で ``Py_LIMITED_API`` をコンパイルすると、その拡張モジュールは "
298
+ "Python 3.12 で動作しますが、必ずしも Python 3.12 で *コンパイル* できるとは限"
299
+ "らないことに注意してください。特に、Limited API の一部は、 Stable ABI が安定"
300
+ "している限り、非推奨で削除されるかもしれません。"
216
301
217
302
#: ../../c-api/stable.rst:136
218
303
msgid "Platform Considerations"
219
- msgstr ""
304
+ msgstr "プラットフォームで考慮すべき点 "
220
305
221
306
#: ../../c-api/stable.rst:138
222
307
msgid ""
@@ -225,6 +310,10 @@ msgid ""
225
310
"ABI, these details define a “platform”. They usually depend on the OS type "
226
311
"and processor architecture"
227
312
msgstr ""
313
+ "ABI の安定性は Python だけでなく、使用するコンパイラ、低レベルのライブラリ、"
314
+ "コンパイラのオプションにも依存します。安定した ABI の目的では、これらの詳細が"
315
+ "「プラットフォーム」を定義します。通常、 OS の種類とプロセッサのアーキテク"
316
+ "チャに依存します。"
228
317
229
318
#: ../../c-api/stable.rst:143
230
319
msgid ""
@@ -233,11 +322,15 @@ msgid ""
233
322
"does not break the Stable ABI. This is the case with Windows and macOS "
234
323
"releases from ``python.org`` and many third-party distributors."
235
324
msgstr ""
325
+ "特定のプラットフォーム上のすべての Python バージョンが安定版 ABI を破壊しない"
326
+ "方法でビルドされていることを保証するのは、 Python の各特定配布者の責任です。"
327
+ "これは ``python.org`` や多くのサードパーティーの配布元からの Windows と "
328
+ "macOS のリリースの場合です。"
236
329
237
330
#: ../../c-api/stable.rst:153
238
331
msgid "Contents of Limited API"
239
- msgstr ""
332
+ msgstr "限定版APIの内容 "
240
333
241
334
#: ../../c-api/stable.rst:156
242
335
msgid "Currently, the Limited API includes the following items:"
243
- msgstr ""
336
+ msgstr "現在、Limited APIには以下の項目が含まれています:: "
0 commit comments