@@ -12,7 +12,7 @@ msgid ""
1212msgstr ""
1313"Project-Id-Version : Python 3.12\n "
1414"Report-Msgid-Bugs-To : \n "
15- "POT-Creation-Date : 2025-11-09 15:45 +0000\n "
15+ "POT-Creation-Date : 2025-11-13 15:53 +0000\n "
1616"PO-Revision-Date : 2025-07-18 19:57+0000\n "
1717"Last-Translator : Rainer Terroso, 2025\n "
1818"Language-Team : Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -36,11 +36,12 @@ msgid ""
3636"pattern, but there are some details that you need to understand before you "
3737"can get started. This document is a gentle introduction to the topic."
3838msgstr ""
39- "O Python permite que o gravador de um módulo de extensão C defina novos "
40- "tipos que podem ser manipulados a partir do código Python, da mesma forma "
41- "que os tipos embutidos :class:`str` e :class:`list`. O código para todos os "
42- "tipos de extensão segue um padrão, mas há alguns detalhes que você precisa "
43- "entender antes de começar. Este documento é uma introdução suave ao tópico."
39+ "O Python permite que o desenvolvedor de um módulo de extensão em C defina "
40+ "novos tipos que podem ser manipulados a partir do código Python, da mesma "
41+ "forma que os tipos embutidos :class:`str` e :class:`list`. O código para de "
42+ "todos tipos de extensão segue um padrão, mas há alguns detalhes que você "
43+ "precisa entender antes de começar. Este documento é uma introdução suave ao "
44+ "tópico."
4445
4546#: ../../extending/newtypes_tutorial.rst:24
4647msgid "The Basics"
@@ -57,15 +58,14 @@ msgid ""
5758"an object, a method called, or it is multiplied by another object. These C "
5859"functions are called \" type methods\" ."
5960msgstr ""
60- "O tempo de execução do :term:`CPython` considera todos os objetos Python "
61- "como variáveis do tipo :c:expr:`PyObject*`, que serve como um \" tipo base\" "
62- "para todos os objetos Python. A própria estrutura :c:type:`PyObject` contém "
63- "apenas a :term:`contagem de referências` do objeto e um ponteiro para o "
64- "\" objeto de tipo\" do objeto. É aqui que ocorre a ação; o objeto de tipo "
65- "determina quais funções (C) são chamadas pelo interpretador quando, por "
66- "exemplo, um atributo é consultado em um objeto, um método é chamado ou é "
67- "multiplicado por outro objeto. Essas funções C são chamadas de \" métodos de "
68- "tipo\" ."
61+ "O tempo de execução do :term:CPython trata todos os objetos Python como "
62+ "variáveis do tipo :c:expr:`PyObject*`, que funciona como um “tipo base” para "
63+ "todos os objetos Python. A estrutura :c:type:`PyObject`em si contém apenas "
64+ "a :term:`contagem de referências` do objeto e um ponteiro para o “objeto de "
65+ "tipo” correspondente. É nesse objeto de tipo que tudo acontece: ele "
66+ "determina quais funções em C o interpretador chama quando, por exemplo, um "
67+ "atributo é acessado em um objeto, um método é chamado ou o objeto é "
68+ "multiplicado por outro. Essas funções em C são chamadas de “métodos de tipo”."
6969
7070#: ../../extending/newtypes_tutorial.rst:35
7171msgid ""
@@ -151,8 +151,9 @@ msgid ""
151151"Now that's quite a bit to take in at once, but hopefully bits will seem "
152152"familiar from the previous chapter. This file defines three things:"
153153msgstr ""
154- "Isso é bastante para ser absorvido de uma só vez, mas esperamos que os bits "
155- "pareçam familiares no capítulo anterior. Este arquivo define três coisas:"
154+ "Isso é bastante informação para assimilar de uma só vez, mas algumas partes "
155+ "devem parecer familiares pelo que foi visto no capítulo anterior. Este "
156+ "arquivo define três elementos:"
156157
157158#: ../../extending/newtypes_tutorial.rst:53
158159msgid ""
@@ -187,10 +188,7 @@ msgid ""
187188"typedef struct {\n"
188189" PyObject_HEAD\n"
189190"} CustomObject;"
190- msgstr ""
191- "typedef struct {\n"
192- "PyObject_HEAD\n"
193- "} CustomObject;"
191+ msgstr "typedef struct { PyObject_HEAD} CustomObject;"
194192
195193#: ../../extending/newtypes_tutorial.rst:67
196194msgid ""
@@ -236,6 +234,10 @@ msgid ""
236234" double ob_fval;\n"
237235"} PyFloatObject;"
238236msgstr ""
237+ "typedef struct {\n"
238+ " PyObject_HEAD\n"
239+ " double ob_fval;\n"
240+ "} PyFloatObject;"
239241
240242#: ../../extending/newtypes_tutorial.rst:88
241243msgid "The second bit is the definition of the type object. ::"
@@ -253,13 +255,26 @@ msgid ""
253255" .tp_new = PyType_GenericNew,\n"
254256"};"
255257msgstr ""
258+ "estático PyTypeObject CustomType = {\n"
259+ " .ob_base = PyVarObject_HEAD_INIT(NULL, 0)\n"
260+ " .tp_name = \" custom.Custom\" ,\n"
261+ " .tp_doc = PyDoc_STR(\" Custom objeto\" ),\n"
262+ " .tp_basicsize = sizeof(CustomObject),\n"
263+ " .tp_itemsize = 0,\n"
264+ " .tp_flags = Py_TPFLAGS_DEFAULT,\n"
265+ " .tp_new = PyType_GenericNew,\n"
266+ "};"
256267
257268#: ../../extending/newtypes_tutorial.rst:101
258269msgid ""
259270"We recommend using C99-style designated initializers as above, to avoid "
260271"listing all the :c:type:`PyTypeObject` fields that you don't care about and "
261272"also to avoid caring about the fields' declaration order."
262273msgstr ""
274+ "Recomendamos usar inicializadores nomeados no estilo C99, como mostrado "
275+ "acima, para evitar listar todos os campos de :c:type:`PyTypeObject` com os "
276+ "quais você não precisa se preocupar e também para não depender da ordem de "
277+ "declaração desses campos"
263278
264279#: ../../extending/newtypes_tutorial.rst:105
265280msgid ""
@@ -268,30 +283,38 @@ msgid ""
268283"fields will be filled with zeros by the C compiler, and it's common practice "
269284"to not specify them explicitly unless you need them."
270285msgstr ""
286+ "A definição real de :c:type:`PyTypeObject` no :file:`object.h` possui muito "
287+ "mais ref:`fields <type-structs> do que a definição acima. Os campos "
288+ "restantes serão preenchidos com zeros pelo compilador C, e é prática comum "
289+ "não especificá-los explicitamente, a menos que sejam necessários."
271290
272291#: ../../extending/newtypes_tutorial.rst:110
273292msgid "We're going to pick it apart, one field at a time::"
274293msgstr "Vamos separá-lo, um campo de cada vez ::"
275294
276295#: ../../extending/newtypes_tutorial.rst:112
277296msgid ".ob_base = PyVarObject_HEAD_INIT(NULL, 0)"
278- msgstr ""
297+ msgstr ".ob_base = PyVarObject_HEAD_INIT(NULL, 0) "
279298
280299#: ../../extending/newtypes_tutorial.rst:114
281300msgid ""
282301"This line is mandatory boilerplate to initialize the ``ob_base`` field "
283302"mentioned above. ::"
284303msgstr ""
304+ "Essa linha é um boilerplate obrigatório para inicializar o campo ``ob_base`` "
305+ "mencionado acima. ::"
285306
286307#: ../../extending/newtypes_tutorial.rst:117
287308msgid ".tp_name = \" custom.Custom\" ,"
288- msgstr ""
309+ msgstr ".tp_name = \" custom.Custom \" , "
289310
290311#: ../../extending/newtypes_tutorial.rst:119
291312msgid ""
292313"The name of our type. This will appear in the default textual "
293314"representation of our objects and in some error messages, for example:"
294315msgstr ""
316+ "O nome do nosso tipo. Ele aparecerá na representação textual padrão do "
317+ "nosso objeto e em algumas mensagens erro, por exemplo:"
295318
296319#: ../../extending/newtypes_tutorial.rst:122
297320msgid ""
@@ -300,6 +323,10 @@ msgid ""
300323" File \" <stdin>\" , line 1, in <module>\n"
301324"TypeError: can only concatenate str (not \" custom.Custom\" ) to str"
302325msgstr ""
326+ "\"\" + custom.Custom()\n"
327+ "Traceback (most recent call last):\n"
328+ "File \" <stdin>\" , line 1, in <module> \n"
329+ "TypeError: can only concatenate str (not \" custom.Custom\" ) to str"
303330
304331#: ../../extending/newtypes_tutorial.rst:129
305332msgid ""
@@ -309,19 +336,30 @@ msgid ""
309336"`!custom.Custom`. Using the real dotted import path is important to make "
310337"your type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::"
311338msgstr ""
339+ "Observe que o nome é um nome pontilhado que inclui o nome módulo e o nome do "
340+ "tipo dentro do módulo. O módulo, neste caso, é :mod:`!custom` e o tipo é :"
341+ "class:`!Custom`, portanto, definimos o nome do tipo como :class:`!custom."
342+ "Custom`. O uso do pontilhado real caminho de importação é importante para "
343+ "tornar seu tipo compatível com o :mod:`pydoc` e os módulos :mod:`pickle`. ::"
312344
313345#: ../../extending/newtypes_tutorial.rst:135
314346msgid ""
315347".tp_basicsize = sizeof(CustomObject),\n"
316348".tp_itemsize = 0,"
317349msgstr ""
350+ ".tp_basicsize = sizeof(CustomObject),\n"
351+ ".tp_itemsize = 0,"
318352
319353#: ../../extending/newtypes_tutorial.rst:138
320354msgid ""
321355"This is so that Python knows how much memory to allocate when creating new :"
322356"class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only "
323357"used for variable-sized objects and should otherwise be zero."
324358msgstr ""
359+ "Isso serve para que o Python saiba quanta memória deve ser alocada ao criar "
360+ "novas instâncias do :class:`!Custom`. O :c:member:`~PyTypeObject."
361+ "tp_itemsize` é usado somente para objeto de tamanho variável e, caso "
362+ "contrário, deve ser zero."
325363
326364#: ../../extending/newtypes_tutorial.rst:144
327365msgid ""
0 commit comments