@@ -12,7 +12,7 @@ msgid ""
1212msgstr ""
1313"Project-Id-Version :Python 3.11\n "
1414"Report-Msgid-Bugs-To :\n "
15- "POT-Creation-Date :2025-11-07 17:12 +0000\n "
15+ "POT-Creation-Date :2025-11-09 16:27 +0000\n "
1616"PO-Revision-Date :2025-09-22 16:49+0000\n "
1717"Last-Translator :Marcos Moraes, 2025\n "
1818"Language-Team :Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -835,6 +835,11 @@ msgid ""
835835"`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These "
836836"classes cannot contain pointer fields."
837837msgstr ""
838+ ":mod:`ctypes` usa a ordem de bytes nativa para Estruturas e Uniões. Para "
839+ "construir estruturas com ordem de bytes não nativa, você pode usar classes "
840+ "base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:"
841+ "`BigEndianUnion` e :class:`LittleEndianUnion`. Essas classes não podem "
842+ "conter campos de ponteiros."
838843
839844#: ../../library/ctypes.rst:656
840845msgid "Bit fields in structures and unions"
@@ -1025,7 +1030,7 @@ msgstr ""
10251030
10261031#: ../../library/ctypes.rst:875
10271032msgid "For these cases, the :func:`cast` function is handy."
1028- msgstr ""
1033+ msgstr "Para esses casos, a função :func:`cast` é útil. "
10291034
10301035#: ../../library/ctypes.rst:877
10311036msgid ""
@@ -1035,12 +1040,20 @@ msgid ""
10351040"ctypes pointer type. It returns an instance of the second argument, which "
10361041"references the same memory block as the first argument::"
10371042msgstr ""
1043+ "A função :func:`cast` pode ser usada para converter uma instância ctypes em "
1044+ "um ponteiro para um diferente tipo de dado ctypes. :func:`cast` recebe dois "
1045+ "parâmetros, um objeto ctypes que é ou pode ser convertido para um ponteiro "
1046+ "de algum tipo, e um tipo ponteiro ctypes. Ela retorna uma instância do "
1047+ "segundo argumento, que referencia o mesmo bloco de memória que o primeiro "
1048+ "argumento:: "
10381049
10391050#: ../../library/ctypes.rst:888
10401051msgid ""
10411052"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` "
10421053"the structure::"
10431054msgstr ""
1055+ "Então, :func:`cast` pode ser usada para atribuir ao campo ``values`` da "
1056+ "estrutura ``Bar``::"
10441057
10451058#: ../../library/ctypes.rst:901
10461059msgid "Incomplete Types"
@@ -1052,12 +1065,15 @@ msgid ""
10521065"yet specified. In C, they are specified by forward declarations, which are "
10531066"defined later::"
10541067msgstr ""
1068+ "*Tipos Incompletos* são estruturas, uniões ou vetores, cujos membros ainda "
1069+ "não foram especificados. Em C, eles são especificados por declarações "
1070+ "antecipadas, que são definidas posteriormente::"
10551071
10561072#: ../../library/ctypes.rst:914
10571073msgid ""
10581074"The straightforward translation into ctypes code would be this, but it does "
10591075"not work::"
1060- msgstr ""
1076+ msgstr "A tradução direta para código ctypes seria esta, mas não funciona:: "
10611077
10621078#: ../../library/ctypes.rst:927
10631079msgid ""
@@ -1071,6 +1087,9 @@ msgid ""
10711087"Let's try it. We create two instances of ``cell``, and let them point to "
10721088"each other, and finally follow the pointer chain a few times::"
10731089msgstr ""
1090+ "Vamos tentar. Criamos duas instâncias de ``cell``, e deixamos que elas "
1091+ "apontem uma para a outra, e finalmente seguimos a cadeia de ponteiros "
1092+ "algumas vezes::"
10741093
10751094#: ../../library/ctypes.rst:960
10761095msgid "Callback functions"
@@ -1081,13 +1100,18 @@ msgid ""
10811100":mod:`ctypes` allows creating C callable function pointers from Python "
10821101"callables. These are sometimes called *callback functions*."
10831102msgstr ""
1103+ ":mod:`ctypes` permite criar ponteiros de função C chamáveis a partir de "
1104+ "chamáveis Python. Estas são às vezes chamadas de *funções de retorno*."
10841105
10851106#: ../../library/ctypes.rst:965
10861107msgid ""
10871108"First, you must create a class for the callback function. The class knows "
10881109"the calling convention, the return type, and the number and types of "
10891110"arguments this function will receive."
10901111msgstr ""
1112+ "Primeiro, você deve criar uma classe para função de retorno. A classe sabe a "
1113+ "convenção de chamada , o tipo de retorno, e o número e tipos de argumentos "
1114+ "que essa função irá receber."
10911115
10921116#: ../../library/ctypes.rst:969
10931117msgid ""
@@ -1096,13 +1120,20 @@ msgid ""
10961120"factory function creates types for callback functions using the ``stdcall`` "
10971121"calling convention."
10981122msgstr ""
1123+ "A função de fábrica :func:`CFUNCTYPE` cria tipos para funções de retorno "
1124+ "usando a convenção de chamada ``cdecl``. No Windows, a função de fábrica :"
1125+ "func:`WINFUNCTYPE` cria tipos para funções de retorno usando a convenção de "
1126+ "chamada ``stdcall``."
10991127
11001128#: ../../library/ctypes.rst:974
11011129msgid ""
11021130"Both of these factory functions are called with the result type as first "
11031131"argument, and the callback functions expected argument types as the "
11041132"remaining arguments."
11051133msgstr ""
1134+ "Ambas estas funções de fábrica são chamadas com o tipo de resultado como "
1135+ "primeiro argumento, e os tipos de argumento esperados da função de retorno "
1136+ "como os argumentos restantes."
11061137
11071138#: ../../library/ctypes.rst:978
11081139msgid ""
@@ -1150,13 +1181,19 @@ msgid ""
11501181"The function factories can be used as decorator factories, so we may as well "
11511182"write::"
11521183msgstr ""
1184+ "As fábricas de funções podem ser usadas como fábricas de decoradores, então "
1185+ "também podemos escrever::"
11531186
11541187#: ../../library/ctypes.rst:1060
11551188msgid ""
11561189"Make sure you keep references to :func:`CFUNCTYPE` objects as long as they "
11571190"are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be "
11581191"garbage collected, crashing your program when a callback is made."
11591192msgstr ""
1193+ "Certifique-se de manter referências aos objetos :func:`CFUNCTYPE` enquanto "
1194+ "eles forem usados a partir do código C. O :mod:`ctypes` não faz isso, e se "
1195+ "você não o fizer, eles podem ser coletados pelo coletor de lixo, travando "
1196+ "seu programa quando uma função de retorno é chamada."
11601197
11611198#: ../../library/ctypes.rst:1064
11621199msgid ""
@@ -1167,10 +1204,17 @@ msgid ""
11671204"with :class:`threading.local` will *not* survive across different callbacks, "
11681205"even when those calls are made from the same C thread."
11691206msgstr ""
1207+ "Além disso, note que se a função de retorno for chamada em uma thread criada "
1208+ "fora do controle do Python (por exemplo, pelo código externo que chama a "
1209+ "função de retorno), o ctypes cria uma nova thread Python "
1210+ "\" dummy\" (fictícia) em cada invocação. Este comportamento é correto para a "
1211+ "maioria dos propósitos, mas significa que os valores armazenados com :class:"
1212+ "`threading.local` *não* sobreviverão entre diferentes funções de retorno, "
1213+ "mesmo quando essas chamadas são feitas a partir da mesma thread C."
11701214
11711215#: ../../library/ctypes.rst:1074
11721216msgid "Accessing values exported from dlls"
1173- msgstr ""
1217+ msgstr "Acessando valores exportados de dlls "
11741218
11751219#: ../../library/ctypes.rst:1076
11761220msgid ""
@@ -1199,10 +1243,12 @@ msgid ""
11991243"An extended example which also demonstrates the use of pointers accesses "
12001244"the :c:data:`PyImport_FrozenModules` pointer exported by Python."
12011245msgstr ""
1246+ "Um exemplo estendido que também demonstra o uso de ponteiros acessa o "
1247+ "ponteiro :c:data:`PyImport_FrozenModules` exportado pelo Python."
12021248
12031249#: ../../library/ctypes.rst:1097
12041250msgid "Quoting the docs for that value:"
1205- msgstr ""
1251+ msgstr "Citando a documentação para esse valor: "
12061252
12071253#: ../../library/ctypes.rst:1099
12081254msgid ""
@@ -1223,12 +1269,17 @@ msgid ""
12231269"So manipulating this pointer could even prove useful. To restrict the "
12241270"example size, we show only how this table can be read with :mod:`ctypes`::"
12251271msgstr ""
1272+ "Então, manipular este ponteiro pode até ser útil. Para restringir o tamanho "
1273+ "do exemplo, mostramos apenas como esta tabela pode ser lida com :mod:"
1274+ "`ctypes`::"
12261275
12271276#: ../../library/ctypes.rst:1118
12281277msgid ""
12291278"We have defined the :c:struct:`_frozen` data type, so we can get the pointer "
12301279"to the table::"
12311280msgstr ""
1281+ "Nós definimos tipo de dado :c:struct:`_frozen`, para que possamos obter o "
1282+ "ponteiro para a tabela::"
12321283
12331284#: ../../library/ctypes.rst:1125
12341285msgid ""
@@ -1238,33 +1289,46 @@ msgid ""
12381289"crash with an access violation or whatever, so it's better to break out of "
12391290"the loop when we hit the ``NULL`` entry::"
12401291msgstr ""
1292+ "Como ``table`` é um ``pointer`` para o vetor de registros ``struct_frozen``, "
1293+ "nós podemos iterar sobre ele, mas só temos que nos certificar de que nosso "
1294+ "loop termine, porque ponteiros não têm tamanho. Cedo ou tarde, ele "
1295+ "provavelmente travaria com uma violação de acesso ou algo assim, então é "
1296+ "melhor sair do loop quando atingirmos a entrada ``NULL``::"
12411297
12421298#: ../../library/ctypes.rst:1141
12431299msgid ""
12441300"The fact that standard Python has a frozen module and a frozen package "
12451301"(indicated by the negative ``size`` member) is not well known, it is only "
12461302"used for testing. Try it out with ``import __hello__`` for example."
12471303msgstr ""
1304+ "O fato de que o Python padrão tem um módulo congelado e um pacote congelado "
1305+ "(indicado pelo membro ``size`` negativo) não é bem conhecido, é usado apenas "
1306+ "para testes. Experimente com ``import __hello__`` por exemplo."
12481307
12491308#: ../../library/ctypes.rst:1149
12501309msgid "Surprises"
1251- msgstr ""
1310+ msgstr "Surpresas "
12521311
12531312#: ../../library/ctypes.rst:1151
12541313msgid ""
12551314"There are some edges in :mod:`ctypes` where you might expect something other "
12561315"than what actually happens."
12571316msgstr ""
1317+ "Existem algumas pontos limites no :mod:`ctypes` onde você pode esperar algo "
1318+ "diferente do que realmente ocorre."
12581319
12591320#: ../../library/ctypes.rst:1154
12601321msgid "Consider the following example::"
1261- msgstr ""
1322+ msgstr "Considere o exemplo a seguir:: "
12621323
12631324#: ../../library/ctypes.rst:1174
12641325msgid ""
12651326"Hm. We certainly expected the last statement to print ``3 4 1 2``. What "
12661327"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::"
12671328msgstr ""
1329+ "Hm. Nós com certeza esperávamos que a última instrução exibisse ``3 4 1 2``. "
1330+ "O que aconteceu? Aqui estão os passos da linha ``rc.a, rc.b = rc.b, rc.a`` "
1331+ "acima::"
12681332
12691333#: ../../library/ctypes.rst:1182
12701334msgid ""
@@ -1274,25 +1338,37 @@ msgid ""
12741338"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't "
12751339"have the expected effect."
12761340msgstr ""
1341+ "Observe que ``temp0`` e ``temp1`` ainda são objetos que utilizam o buffer "
1342+ "interno do objeto ``rc`` acima. Portanto, executar ``rc.a = temp0`` copia o "
1343+ "conteúdo do buffer de ``temp0`` para o buffer de ``rc``. Isso, por sua vez, "
1344+ "altera o conteúdo de ``temp1``. Assim, a última atribuição ``rc.b = temp1`` "
1345+ "não produz o efeito esperado."
12771346
12781347#: ../../library/ctypes.rst:1188
12791348msgid ""
12801349"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays "
12811350"doesn't *copy* the sub-object, instead it retrieves a wrapper object "
12821351"accessing the root-object's underlying buffer."
12831352msgstr ""
1353+ "Tenha em mente que obter sub-objetos de estruturas, uniões e vetores não "
1354+ "copia o sub-objeto; em vez disso, recupera um objeto de encapsulamento "
1355+ "(wrapper) que acessa o buffer subjacente do objeto raiz."
12841356
12851357#: ../../library/ctypes.rst:1192
12861358msgid ""
12871359"Another example that may behave differently from what one would expect is "
12881360"this::"
12891361msgstr ""
1362+ "Outro exemplo que pode se comportar de maneira diferente do que alguém "
1363+ "poderia esperar é o seguinte::"
12901364
12911365#: ../../library/ctypes.rst:1204
12921366msgid ""
12931367"Objects instantiated from :class:`c_char_p` can only have their value set to "
12941368"bytes or integers."
12951369msgstr ""
1370+ "Objetos instanciados a partir de :class:`c_char_p` só podem ter seu valor "
1371+ "definido para bytes ou inteiros."
12961372
12971373#: ../../library/ctypes.rst:1207
12981374msgid ""
@@ -1302,10 +1378,16 @@ msgid ""
13021378"object itself, instead the ``contents`` of the object is stored. Accessing "
13031379"the contents again constructs a new Python object each time!"
13041380msgstr ""
1381+ "Por que está imprimindo ``False``? Instâncias de ctypes são objetos que "
1382+ "contêm um bloco de memória, além de alguns :term:`descriptor`\\ s que acessam "
1383+ "o conteúdo dessa memória. Armazenar um objeto Python no bloco de memória não "
1384+ "armazena o próprio objeto; em vez disso, armazena-se o seu atributo "
1385+ "``contents``. Acessar o contents novamente constrói um novo objeto Python a "
1386+ "cada vez!"
13051387
13061388#: ../../library/ctypes.rst:1217
13071389msgid "Variable-sized data types"
1308- msgstr ""
1390+ msgstr "Tipos de dados de tamanho variável "
13091391
13101392#: ../../library/ctypes.rst:1219
13111393msgid ""