@@ -12,7 +12,7 @@ msgid ""
1212msgstr ""
1313"Project-Id-Version :Python 3.10\n "
1414"Report-Msgid-Bugs-To :\n "
15- "POT-Creation-Date :2025-11-07 18:03 +0000\n "
15+ "POT-Creation-Date :2025-11-09 17:15 +0000\n "
1616"PO-Revision-Date :2025-09-22 15:57+0000\n "
1717"Last-Translator :Marcos Moraes, 2025\n "
1818"Language-Team :Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -829,6 +829,11 @@ msgid ""
829829"`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These "
830830"classes cannot contain pointer fields."
831831msgstr ""
832+ ":mod:`ctypes` usa a ordem de bytes nativa para Estruturas e Uniões. Para "
833+ "construir estruturas com ordem de bytes não nativa, você pode usar classes "
834+ "base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:"
835+ "`BigEndianUnion` e :class:`LittleEndianUnion`. Essas classes não podem "
836+ "conter campos de ponteiros."
832837
833838#: ../../library/ctypes.rst:657
834839msgid "Bit fields in structures and unions"
@@ -1019,7 +1024,7 @@ msgstr ""
10191024
10201025#: ../../library/ctypes.rst:876
10211026msgid "For these cases, the :func:`cast` function is handy."
1022- msgstr ""
1027+ msgstr "Para esses casos, a função :func:`cast` é útil. "
10231028
10241029#: ../../library/ctypes.rst:878
10251030msgid ""
@@ -1029,12 +1034,20 @@ msgid ""
10291034"ctypes pointer type. It returns an instance of the second argument, which "
10301035"references the same memory block as the first argument::"
10311036msgstr ""
1037+ "A função :func:`cast` pode ser usada para converter uma instância ctypes em "
1038+ "um ponteiro para um diferente tipo de dado ctypes. :func:`cast` recebe dois "
1039+ "parâmetros, um objeto ctypes que é ou pode ser convertido para um ponteiro "
1040+ "de algum tipo, e um tipo ponteiro ctypes. Ela retorna uma instância do "
1041+ "segundo argumento, que referencia o mesmo bloco de memória que o primeiro "
1042+ "argumento:: "
10321043
10331044#: ../../library/ctypes.rst:889
10341045msgid ""
10351046"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` "
10361047"the structure::"
10371048msgstr ""
1049+ "Então, :func:`cast` pode ser usada para atribuir ao campo ``values`` da "
1050+ "estrutura ``Bar``::"
10381051
10391052#: ../../library/ctypes.rst:902
10401053msgid "Incomplete Types"
@@ -1046,12 +1059,15 @@ msgid ""
10461059"yet specified. In C, they are specified by forward declarations, which are "
10471060"defined later::"
10481061msgstr ""
1062+ "*Tipos Incompletos* são estruturas, uniões ou vetores, cujos membros ainda "
1063+ "não foram especificados. Em C, eles são especificados por declarações "
1064+ "antecipadas, que são definidas posteriormente::"
10491065
10501066#: ../../library/ctypes.rst:915
10511067msgid ""
10521068"The straightforward translation into ctypes code would be this, but it does "
10531069"not work::"
1054- msgstr ""
1070+ msgstr "A tradução direta para código ctypes seria esta, mas não funciona:: "
10551071
10561072#: ../../library/ctypes.rst:928
10571073msgid ""
@@ -1065,6 +1081,9 @@ msgid ""
10651081"Let's try it. We create two instances of ``cell``, and let them point to "
10661082"each other, and finally follow the pointer chain a few times::"
10671083msgstr ""
1084+ "Vamos tentar. Criamos duas instâncias de ``cell``, e deixamos que elas "
1085+ "apontem uma para a outra, e finalmente seguimos a cadeia de ponteiros "
1086+ "algumas vezes::"
10681087
10691088#: ../../library/ctypes.rst:961
10701089msgid "Callback functions"
@@ -1075,13 +1094,18 @@ msgid ""
10751094":mod:`ctypes` allows creating C callable function pointers from Python "
10761095"callables. These are sometimes called *callback functions*."
10771096msgstr ""
1097+ ":mod:`ctypes` permite criar ponteiros de função C chamáveis a partir de "
1098+ "chamáveis Python. Estas são às vezes chamadas de *funções de retorno*."
10781099
10791100#: ../../library/ctypes.rst:966
10801101msgid ""
10811102"First, you must create a class for the callback function. The class knows "
10821103"the calling convention, the return type, and the number and types of "
10831104"arguments this function will receive."
10841105msgstr ""
1106+ "Primeiro, você deve criar uma classe para função de retorno. A classe sabe a "
1107+ "convenção de chamada , o tipo de retorno, e o número e tipos de argumentos "
1108+ "que essa função irá receber."
10851109
10861110#: ../../library/ctypes.rst:970
10871111msgid ""
@@ -1090,13 +1114,20 @@ msgid ""
10901114"factory function creates types for callback functions using the ``stdcall`` "
10911115"calling convention."
10921116msgstr ""
1117+ "A função de fábrica :func:`CFUNCTYPE` cria tipos para funções de retorno "
1118+ "usando a convenção de chamada ``cdecl``. No Windows, a função de fábrica :"
1119+ "func:`WINFUNCTYPE` cria tipos para funções de retorno usando a convenção de "
1120+ "chamada ``stdcall``."
10931121
10941122#: ../../library/ctypes.rst:975
10951123msgid ""
10961124"Both of these factory functions are called with the result type as first "
10971125"argument, and the callback functions expected argument types as the "
10981126"remaining arguments."
10991127msgstr ""
1128+ "Ambas estas funções de fábrica são chamadas com o tipo de resultado como "
1129+ "primeiro argumento, e os tipos de argumento esperados da função de retorno "
1130+ "como os argumentos restantes."
11001131
11011132#: ../../library/ctypes.rst:979
11021133msgid ""
@@ -1144,13 +1175,19 @@ msgid ""
11441175"The function factories can be used as decorator factories, so we may as well "
11451176"write::"
11461177msgstr ""
1178+ "As fábricas de funções podem ser usadas como fábricas de decoradores, então "
1179+ "também podemos escrever::"
11471180
11481181#: ../../library/ctypes.rst:1061
11491182msgid ""
11501183"Make sure you keep references to :func:`CFUNCTYPE` objects as long as they "
11511184"are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be "
11521185"garbage collected, crashing your program when a callback is made."
11531186msgstr ""
1187+ "Certifique-se de manter referências aos objetos :func:`CFUNCTYPE` enquanto "
1188+ "eles forem usados a partir do código C. O :mod:`ctypes` não faz isso, e se "
1189+ "você não o fizer, eles podem ser coletados pelo coletor de lixo, travando "
1190+ "seu programa quando uma função de retorno é chamada."
11541191
11551192#: ../../library/ctypes.rst:1065
11561193msgid ""
@@ -1161,10 +1198,17 @@ msgid ""
11611198"with :class:`threading.local` will *not* survive across different callbacks, "
11621199"even when those calls are made from the same C thread."
11631200msgstr ""
1201+ "Além disso, note que se a função de retorno for chamada em uma thread criada "
1202+ "fora do controle do Python (por exemplo, pelo código externo que chama a "
1203+ "função de retorno), o ctypes cria uma nova thread Python "
1204+ "\" dummy\" (fictícia) em cada invocação. Este comportamento é correto para a "
1205+ "maioria dos propósitos, mas significa que os valores armazenados com :class:"
1206+ "`threading.local` *não* sobreviverão entre diferentes funções de retorno, "
1207+ "mesmo quando essas chamadas são feitas a partir da mesma thread C."
11641208
11651209#: ../../library/ctypes.rst:1075
11661210msgid "Accessing values exported from dlls"
1167- msgstr ""
1211+ msgstr "Acessando valores exportados de dlls "
11681212
11691213#: ../../library/ctypes.rst:1077
11701214msgid ""
@@ -1193,10 +1237,12 @@ msgid ""
11931237"An extended example which also demonstrates the use of pointers accesses "
11941238"the :c:data:`PyImport_FrozenModules` pointer exported by Python."
11951239msgstr ""
1240+ "Um exemplo estendido que também demonstra o uso de ponteiros acessa o "
1241+ "ponteiro :c:data:`PyImport_FrozenModules` exportado pelo Python."
11961242
11971243#: ../../library/ctypes.rst:1098
11981244msgid "Quoting the docs for that value:"
1199- msgstr ""
1245+ msgstr "Citando a documentação para esse valor: "
12001246
12011247#: ../../library/ctypes.rst:1100
12021248msgid ""
@@ -1217,12 +1263,17 @@ msgid ""
12171263"So manipulating this pointer could even prove useful. To restrict the "
12181264"example size, we show only how this table can be read with :mod:`ctypes`::"
12191265msgstr ""
1266+ "Então, manipular este ponteiro pode até ser útil. Para restringir o tamanho "
1267+ "do exemplo, mostramos apenas como esta tabela pode ser lida com :mod:"
1268+ "`ctypes`::"
12201269
12211270#: ../../library/ctypes.rst:1117
12221271msgid ""
12231272"We have defined the :c:struct:`_frozen` data type, so we can get the pointer "
12241273"to the table::"
12251274msgstr ""
1275+ "Nós definimos tipo de dado :c:struct:`_frozen`, para que possamos obter o "
1276+ "ponteiro para a tabela::"
12261277
12271278#: ../../library/ctypes.rst:1124
12281279msgid ""
@@ -1232,33 +1283,46 @@ msgid ""
12321283"crash with an access violation or whatever, so it's better to break out of "
12331284"the loop when we hit the ``NULL`` entry::"
12341285msgstr ""
1286+ "Como ``table`` é um ``pointer`` para o vetor de registros ``struct_frozen``, "
1287+ "nós podemos iterar sobre ele, mas só temos que nos certificar de que nosso "
1288+ "loop termine, porque ponteiros não têm tamanho. Cedo ou tarde, ele "
1289+ "provavelmente travaria com uma violação de acesso ou algo assim, então é "
1290+ "melhor sair do loop quando atingirmos a entrada ``NULL``::"
12351291
12361292#: ../../library/ctypes.rst:1142
12371293msgid ""
12381294"The fact that standard Python has a frozen module and a frozen package "
12391295"(indicated by the negative ``size`` member) is not well known, it is only "
12401296"used for testing. Try it out with ``import __hello__`` for example."
12411297msgstr ""
1298+ "O fato de que o Python padrão tem um módulo congelado e um pacote congelado "
1299+ "(indicado pelo membro ``size`` negativo) não é bem conhecido, é usado apenas "
1300+ "para testes. Experimente com ``import __hello__`` por exemplo."
12421301
12431302#: ../../library/ctypes.rst:1150
12441303msgid "Surprises"
1245- msgstr ""
1304+ msgstr "Surpresas "
12461305
12471306#: ../../library/ctypes.rst:1152
12481307msgid ""
12491308"There are some edges in :mod:`ctypes` where you might expect something other "
12501309"than what actually happens."
12511310msgstr ""
1311+ "Existem algumas pontos limites no :mod:`ctypes` onde você pode esperar algo "
1312+ "diferente do que realmente ocorre."
12521313
12531314#: ../../library/ctypes.rst:1155
12541315msgid "Consider the following example::"
1255- msgstr ""
1316+ msgstr "Considere o exemplo a seguir:: "
12561317
12571318#: ../../library/ctypes.rst:1175
12581319msgid ""
12591320"Hm. We certainly expected the last statement to print ``3 4 1 2``. What "
12601321"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::"
12611322msgstr ""
1323+ "Hm. Nós com certeza esperávamos que a última instrução exibisse ``3 4 1 2``. "
1324+ "O que aconteceu? Aqui estão os passos da linha ``rc.a, rc.b = rc.b, rc.a`` "
1325+ "acima::"
12621326
12631327#: ../../library/ctypes.rst:1183
12641328msgid ""
@@ -1268,25 +1332,37 @@ msgid ""
12681332"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't "
12691333"have the expected effect."
12701334msgstr ""
1335+ "Observe que ``temp0`` e ``temp1`` ainda são objetos que utilizam o buffer "
1336+ "interno do objeto ``rc`` acima. Portanto, executar ``rc.a = temp0`` copia o "
1337+ "conteúdo do buffer de ``temp0`` para o buffer de ``rc``. Isso, por sua vez, "
1338+ "altera o conteúdo de ``temp1``. Assim, a última atribuição ``rc.b = temp1`` "
1339+ "não produz o efeito esperado."
12711340
12721341#: ../../library/ctypes.rst:1189
12731342msgid ""
12741343"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays "
12751344"doesn't *copy* the sub-object, instead it retrieves a wrapper object "
12761345"accessing the root-object's underlying buffer."
12771346msgstr ""
1347+ "Tenha em mente que obter sub-objetos de estruturas, uniões e vetores não "
1348+ "copia o sub-objeto; em vez disso, recupera um objeto de encapsulamento "
1349+ "(wrapper) que acessa o buffer subjacente do objeto raiz."
12781350
12791351#: ../../library/ctypes.rst:1193
12801352msgid ""
12811353"Another example that may behave differently from what one would expect is "
12821354"this::"
12831355msgstr ""
1356+ "Outro exemplo que pode se comportar de maneira diferente do que alguém "
1357+ "poderia esperar é o seguinte::"
12841358
12851359#: ../../library/ctypes.rst:1205
12861360msgid ""
12871361"Objects instantiated from :class:`c_char_p` can only have their value set to "
12881362"bytes or integers."
12891363msgstr ""
1364+ "Objetos instanciados a partir de :class:`c_char_p` só podem ter seu valor "
1365+ "definido para bytes ou inteiros."
12901366
12911367#: ../../library/ctypes.rst:1208
12921368msgid ""
@@ -1296,10 +1372,16 @@ msgid ""
12961372"object itself, instead the ``contents`` of the object is stored. Accessing "
12971373"the contents again constructs a new Python object each time!"
12981374msgstr ""
1375+ "Por que está imprimindo ``False``? Instâncias de ctypes são objetos que "
1376+ "contêm um bloco de memória, além de alguns :term:`descriptor`\\ s que acessam "
1377+ "o conteúdo dessa memória. Armazenar um objeto Python no bloco de memória não "
1378+ "armazena o próprio objeto; em vez disso, armazena-se o seu atributo "
1379+ "``contents``. Acessar o contents novamente constrói um novo objeto Python a "
1380+ "cada vez!"
12991381
13001382#: ../../library/ctypes.rst:1218
13011383msgid "Variable-sized data types"
1302- msgstr ""
1384+ msgstr "Tipos de dados de tamanho variável "
13031385
13041386#: ../../library/ctypes.rst:1220
13051387msgid ""