-
-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathcporting.po
268 lines (240 loc) · 13.1 KB
/
cporting.po
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
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2020, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
# Translators:
# tomo, 2018
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.6\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-02-09 18:48+0900\n"
"PO-Revision-Date: 2018-06-29 17:45+0000\n"
"Last-Translator: tomo, 2018\n"
"Language-Team: Japanese (https://www.transifex.com/python-doc/teams/5390/"
"ja/)\n"
"Language: ja\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"
#: ../../howto/cporting.rst:7
msgid "Porting Extension Modules to Python 3"
msgstr "Python 3 への拡張モジュール移植"
#: ../../howto/cporting.rst:0
msgid "author"
msgstr "author"
#: ../../howto/cporting.rst:9
msgid "Benjamin Peterson"
msgstr "Benjamin Peterson"
#: ../../howto/cporting.rstNone
msgid "Abstract"
msgstr "概要"
#: ../../howto/cporting.rst:14
msgid ""
"Although changing the C-API was not one of Python 3's objectives, the many "
"Python-level changes made leaving Python 2's API intact impossible. In "
"fact, some changes such as :func:`int` and :func:`long` unification are more "
"obvious on the C level. This document endeavors to document "
"incompatibilities and how they can be worked around."
msgstr ""
"C-API の変更は Python 3 の目標には入っていませんでしたが、Python レベルでの変"
"更がたくさんあったので、Python 2 の API を無傷で済ませることはできませんでし"
"た。実際、 :func:`int` と :func:`long` の統合などは C レベルのほうが目立ちま"
"す。この文書では、なくなった互換性と、その対処方法について記述しようと思いま"
"す。"
#: ../../howto/cporting.rst:23
msgid "Conditional compilation"
msgstr "条件コンパイル"
#: ../../howto/cporting.rst:25
msgid ""
"The easiest way to compile only some code for Python 3 is to check if :c:"
"macro:`PY_MAJOR_VERSION` is greater than or equal to 3. ::"
msgstr ""
"一部のコードを Python 3 にだけコンパイルするための一番簡単な方法は、 :c:"
"macro:`PY_MAJOR_VERSION` が 3 以上かどうかチェックすることです。 ::"
#: ../../howto/cporting.rst:32
msgid ""
"API functions that are not present can be aliased to their equivalents "
"within conditional blocks."
msgstr ""
"存在しなくなった関数については、条件ブロックの中で同等品にエイリアスすれば良"
"いでしょう。"
#: ../../howto/cporting.rst:37
msgid "Changes to Object APIs"
msgstr "オブジェクト API の変更"
#: ../../howto/cporting.rst:39
msgid ""
"Python 3 merged together some types with similar functions while cleanly "
"separating others."
msgstr ""
"Python 3 では、似た機能を持つタイプのいくつかを、統合したり、きっちり分けたり"
"しました。"
#: ../../howto/cporting.rst:44
msgid "str/unicode Unification"
msgstr "str/unicode の統合"
#: ../../howto/cporting.rst:46
msgid ""
"Python 3's :func:`str` type is equivalent to Python 2's :func:`unicode`; the "
"C functions are called ``PyUnicode_*`` for both. The old 8-bit string type "
"has become :func:`bytes`, with C functions called ``PyBytes_*``. Python 2.6 "
"and later provide a compatibility header, :file:`bytesobject.h`, mapping "
"``PyBytes`` names to ``PyString`` ones. For best compatibility with Python "
"3, :c:type:`PyUnicode` should be used for textual data and :c:type:`PyBytes` "
"for binary data. It's also important to remember that :c:type:`PyBytes` "
"and :c:type:`PyUnicode` in Python 3 are not interchangeable like :c:type:"
"`PyString` and :c:type:`PyUnicode` are in Python 2. The following example "
"shows best practices with regards to :c:type:`PyUnicode`, :c:type:"
"`PyString`, and :c:type:`PyBytes`. ::"
msgstr ""
"Python 3 の :func:`str` タイプは Python 2 の :func:`unicode` と同じもので、ど"
"ちらも C 関数は ``PyUnicode_*`` と呼ばれます。昔の 8 ビット文字列タイプは :"
"func:`bytes` になり、C 関数は ``PyBytes_*`` と呼ばれます。Python 2.6 以降には"
"互換性ヘッダ :file:`bytesobject.h` が用意されており、 ``PyBytes`` 系の名前を "
"``PyString`` 系にマップしています。Python 3 との互換性を最大限確保するに"
"は、 :c:type:`PyUnicode` は文字データに、 :c:type:`PyBytes` はバイナリデータ"
"にだけ使うべきです。ほかにも、Python 3 の :c:type:`PyBytes` と :c:type:"
"`PyUnicode` は Python 2 の :c:type:`PyString` と :c:type:`PyUnicode` とは違っ"
"て交換不可能だということも重要です。以下の例では :c:type:`PyUnicode`, :c:"
"type:`PyString`, :c:type:`PyBytes` に関するベストプラクティスを見ることができ"
"ます。 ::"
#: ../../howto/cporting.rst:95
msgid "long/int Unification"
msgstr "long/int の統合"
#: ../../howto/cporting.rst:97
msgid ""
"Python 3 has only one integer type, :func:`int`. But it actually "
"corresponds to Python 2's :func:`long` type—the :func:`int` type used in "
"Python 2 was removed. In the C-API, ``PyInt_*`` functions are replaced by "
"their ``PyLong_*`` equivalents."
msgstr ""
"Python 3 には整数型が :func:`int` の一つしかありません。\n"
"これは実際には Python 2 の :func:`long` タイプと同じもので、 Python 2 で使わ"
"れていた :func:`int` は取り除かれました。\n"
"C-API では ``PyInt_*`` 関数群が、同等の ``PyLong_*`` に置き換えられています。"
#: ../../howto/cporting.rst:104
msgid "Module initialization and state"
msgstr "モジュールの初期化と状態情報"
#: ../../howto/cporting.rst:106
msgid ""
"Python 3 has a revamped extension module initialization system. (See :pep:"
"`3121`.) Instead of storing module state in globals, they should be stored "
"in an interpreter specific structure. Creating modules that act correctly "
"in both Python 2 and Python 3 is tricky. The following simple example "
"demonstrates how. ::"
msgstr ""
"Python 3 には、改良された拡張モジュール初期化システムがあります (:pep:`3121` "
"参照)。モジュールの状態はグローバル変数に持つのではなく、インタプリタ固有の構"
"造体に持つべきだということになったのです。Pythonk 2 と Python 3 のどちらでも"
"動くモジュールを作るのにはコツが要ります。次の簡単な例で、その方法を実演して"
"みます。 ::"
#: ../../howto/cporting.rst:197
msgid "CObject replaced with Capsule"
msgstr "CObject の Capsule への変更"
#: ../../howto/cporting.rst:199
msgid ""
"The :c:type:`Capsule` object was introduced in Python 3.1 and 2.7 to "
"replace :c:type:`CObject`. CObjects were useful, but the :c:type:`CObject` "
"API was problematic: it didn't permit distinguishing between valid CObjects, "
"which allowed mismatched CObjects to crash the interpreter, and some of its "
"APIs relied on undefined behavior in C. (For further reading on the "
"rationale behind Capsules, please see :issue:`5630`.)"
msgstr ""
"Python 3.1 と 2.7 に :c:type:`Capsule` オブジェクトが導入されました。これは :"
"c:type:`CObject` のかわりになるものです。 CObject は便利でしたが、 :c:type:"
"`CObject` API には問題がありました: 有効な CObject であればそれ以上の識別が不"
"可能なので、合わない CObject を混ぜて使うとインタープリタをクラッシュさせかね"
"なかったこと、そして API の一部が C の未定義な挙動に依存していたことです。 "
"(Capsule の背景について詳しくは :issue:`5630` をご覧ください。)"
#: ../../howto/cporting.rst:206
msgid ""
"If you're currently using CObjects, and you want to migrate to 3.1 or newer, "
"you'll need to switch to Capsules. :c:type:`CObject` was deprecated in 3.1 "
"and 2.7 and completely removed in Python 3.2. If you only support 2.7, or "
"3.1 and above, you can simply switch to :c:type:`Capsule`. If you need to "
"support Python 3.0, or versions of Python earlier than 2.7, you'll have to "
"support both CObjects and Capsules. (Note that Python 3.0 is no longer "
"supported, and it is not recommended for production use.)"
msgstr ""
"現時点で CObject を使っているのであれば、3.1 以降へ移行するには Capsule へ切"
"り換える必要があります。 :c:type:`CObject` は 3.1 および 2.7 で非推奨となり、"
"Python 3.2 では完全に削除されたからです。 2.7 と 3.1 以上だけの対応でいいな"
"ら、単に :c:type:`Capsule` へ切り換えるだけです。 しかし Python 3.0 や、ある"
"いは 2.7 未満のバージョンに対応しなければならない場合は、CObject と Capsule "
"の両方に対応する必要が出てきます。(ただし Python 3.0 はサポートが終了している"
"ため現場利用には推奨されません。)"
#: ../../howto/cporting.rst:216
msgid ""
"The following example header file :file:`capsulethunk.h` may solve the "
"problem for you. Simply write your code against the :c:type:`Capsule` API "
"and include this header file after :file:`Python.h`. Your code will "
"automatically use Capsules in versions of Python with Capsules, and switch "
"to CObjects when Capsules are unavailable."
msgstr ""
"そうした問題は、下に例示する :file:`capsulethunk.h` ヘッダファイルで解決でき"
"るかもしれません。 必要な作業は、 :c:type:`Capsule` API でコードを書き、この"
"ヘッダファイルを :file:`Python.h` の後でインクルードするだけです。 すると自"
"動的に、Capsule のあるバージョンの Python では Capsule を使い、なければ "
"CObject を使うようになります。"
#: ../../howto/cporting.rst:223
msgid ""
":file:`capsulethunk.h` simulates Capsules using CObjects. However, :c:type:"
"`CObject` provides no place to store the capsule's \"name\". As a result "
"the simulated :c:type:`Capsule` objects created by :file:`capsulethunk.h` "
"behave slightly differently from real Capsules. Specifically:"
msgstr ""
"その場合 :file:`capsulethunk.h` は CObject を使って Capsule をシミュレートし"
"ます。 しかし :c:type:`CObject` には capsule の \"name\" を保持する余地があ"
"りません。 よって、 :file:`capsulethunk.h` でシミュレートされた :c:type:"
"`Capsule` オブジェクトの動作は、本物の Capsule とは少し異なります。 具体的に"
"は:"
#: ../../howto/cporting.rst:228
msgid "The name parameter passed in to :c:func:`PyCapsule_New` is ignored."
msgstr ":c:func:`PyCapsule_New` に渡された name 引数は無視されます。"
#: ../../howto/cporting.rst:230
msgid ""
"The name parameter passed in to :c:func:`PyCapsule_IsValid` and :c:func:"
"`PyCapsule_GetPointer` is ignored, and no error checking of the name is "
"performed."
msgstr ""
":c:func:`PyCapsule_IsValid` および :c:func:`PyCapsule_GetPointer` に渡された "
"name 引数は無視され、name のエラーチェックも実行されません。"
#: ../../howto/cporting.rst:234
msgid ":c:func:`PyCapsule_GetName` always returns NULL."
msgstr ":c:func:`PyCapsule_GetName` は常に NULL を返します。"
#: ../../howto/cporting.rst:236
msgid ""
":c:func:`PyCapsule_SetName` always raises an exception and returns failure. "
"(Since there's no way to store a name in a CObject, noisy failure of :c:func:"
"`PyCapsule_SetName` was deemed preferable to silent failure here. If this "
"is inconvenient, feel free to modify your local copy as you see fit.)"
msgstr ""
":c:func:`PyCapsule_SetName` は常に例外を送出して、失敗を返します。 (CObject "
"に名前を格納する方法がないので、ここでは :c:func:`PyCapsule_SetName` のうるさ"
"い失敗は暗黙の失敗より好ましいと考えられました。これが不便な場合は、適切と思"
"うやり方で自由にローカルコピーを修正してください。)"
#: ../../howto/cporting.rst:243
msgid ""
"You can find :file:`capsulethunk.h` in the Python source distribution as :"
"source:`Doc/includes/capsulethunk.h`. We also include it here for your "
"convenience:"
msgstr ""
":file:`capsulethunk.h` は Python のソースの中に :source:`Doc/includes/"
"capsulethunk.h` という名前で入っています。 読者の便宜のため、ここにも引用し"
"ておきましょう:"
#: ../../howto/cporting.rst:252
msgid "Other options"
msgstr "その他のオプション"
#: ../../howto/cporting.rst:254
msgid ""
"If you are writing a new extension module, you might consider `Cython "
"<http://cython.org/>`_. It translates a Python-like language to C. The "
"extension modules it creates are compatible with Python 3 and Python 2."
msgstr ""
"新規に拡張モジュールを書こうと思っているのであれば、`Cython <http://cython."
"org/>`_ を検討してみても良いでしょう。これは Python 風の言語を C に翻訳してく"
"れるもので、出力される拡張モジュールは Python 3 と Python 2 に両方対応してい"
"ます。"