@@ -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-07 16:23 +0000\n "
15+ "POT-Creation-Date :2025-11-09 15:45 +0000\n "
1616"PO-Revision-Date :2025-07-18 19:57+0000\n "
1717"Last-Translator :Marcos Moraes, 2025\n "
1818"Language-Team :Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -1419,6 +1419,11 @@ msgid ""
14191419"`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These "
14201420"classes cannot contain pointer fields."
14211421msgstr ""
1422+ ":mod:`ctypes` usa a ordem de bytes nativa para Estruturas e Uniões. Para "
1423+ "construir estruturas com ordem de bytes não nativa, você pode usar classes "
1424+ "base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:"
1425+ "`BigEndianUnion` e :class:`LittleEndianUnion`. Essas classes não podem "
1426+ "conter campos de ponteiros."
14221427
14231428#: ../../library/ctypes.rst:683
14241429msgid "Bit fields in structures and unions"
@@ -1430,6 +1435,9 @@ msgid ""
14301435"fields are only possible for integer fields, the bit width is specified as "
14311436"the third item in the :attr:`~Structure._fields_` tuples::"
14321437msgstr ""
1438+ "É possível criar estruturas e uniões contendo campos de bits. Campos de bits "
1439+ "só são possíveis para campos de inteiros, a largura do bit é especificada "
1440+ "como o terceiro item nas tuplas :attr:`~Structure._fields_`::"
14331441
14341442#: ../../library/ctypes.rst:689
14351443msgid ""
@@ -1795,7 +1803,7 @@ msgstr ""
17951803
17961804#: ../../library/ctypes.rst:902
17971805msgid "For these cases, the :func:`cast` function is handy."
1798- msgstr ""
1806+ msgstr "Para esses casos, a função :func:`cast` é útil. "
17991807
18001808#: ../../library/ctypes.rst:904
18011809msgid ""
@@ -1805,6 +1813,12 @@ msgid ""
18051813"ctypes pointer type. It returns an instance of the second argument, which "
18061814"references the same memory block as the first argument::"
18071815msgstr ""
1816+ "A função :func:`cast` pode ser usada para converter uma instância ctypes em "
1817+ "um ponteiro para um diferente tipo de dado ctypes. :func:`cast` recebe dois "
1818+ "parâmetros, um objeto ctypes que é ou pode ser convertido para um ponteiro "
1819+ "de algum tipo, e um tipo ponteiro ctypes. Ela retorna uma instância do "
1820+ "segundo argumento, que referencia o mesmo bloco de memória que o primeiro "
1821+ "argumento:: "
18081822
18091823#: ../../library/ctypes.rst:910
18101824msgid ""
@@ -1819,6 +1833,8 @@ msgid ""
18191833"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` "
18201834"the structure::"
18211835msgstr ""
1836+ "Então, :func:`cast` pode ser usada para atribuir ao campo ``values`` da "
1837+ "estrutura ``Bar``::"
18221838
18231839#: ../../library/ctypes.rst:918
18241840msgid ""
@@ -1839,6 +1855,9 @@ msgid ""
18391855"yet specified. In C, they are specified by forward declarations, which are "
18401856"defined later::"
18411857msgstr ""
1858+ "*Tipos Incompletos* são estruturas, uniões ou vetores, cujos membros ainda "
1859+ "não foram especificados. Em C, eles são especificados por declarações "
1860+ "antecipadas, que são definidas posteriormente::"
18421861
18431862#: ../../library/ctypes.rst:934
18441863msgid ""
@@ -1854,7 +1873,7 @@ msgstr ""
18541873msgid ""
18551874"The straightforward translation into ctypes code would be this, but it does "
18561875"not work::"
1857- msgstr ""
1876+ msgstr "A tradução direta para código ctypes seria esta, mas não funciona:: "
18581877
18591878#: ../../library/ctypes.rst:944
18601879msgid ""
@@ -1875,6 +1894,10 @@ msgid ""
18751894"itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:"
18761895"`~Structure._fields_` attribute later, after the class statement::"
18771896msgstr ""
1897+ "por que a nova ``class cell`` não está disponível na própria declaração da "
1898+ "classe. Em :mod:`ctypes`, podemos definir a classe ``cell`` e definir o "
1899+ "atributo :attr:`~Structure._fields_` posteriormente, após a declaração da "
1900+ "classe:: "
18781901
18791902#: ../../library/ctypes.rst:958
18801903msgid ""
@@ -1892,6 +1915,9 @@ msgid ""
18921915"Let's try it. We create two instances of ``cell``, and let them point to "
18931916"each other, and finally follow the pointer chain a few times::"
18941917msgstr ""
1918+ "Vamos tentar. Criamos duas instâncias de ``cell``, e deixamos que elas "
1919+ "apontem uma para a outra, e finalmente seguimos a cadeia de ponteiros "
1920+ "algumas vezes::"
18951921
18961922#: ../../library/ctypes.rst:969
18971923msgid ""
@@ -1919,13 +1945,18 @@ msgid ""
19191945":mod:`ctypes` allows creating C callable function pointers from Python "
19201946"callables. These are sometimes called *callback functions*."
19211947msgstr ""
1948+ ":mod:`ctypes` permite criar ponteiros de função C chamáveis a partir de "
1949+ "chamáveis Python. Estas são às vezes chamadas de *funções de retorno*."
19221950
19231951#: ../../library/ctypes.rst:992
19241952msgid ""
19251953"First, you must create a class for the callback function. The class knows "
19261954"the calling convention, the return type, and the number and types of "
19271955"arguments this function will receive."
19281956msgstr ""
1957+ "Primeiro, você deve criar uma classe para função de retorno. A classe sabe a "
1958+ "convenção de chamada , o tipo de retorno, e o número e tipos de argumentos "
1959+ "que essa função irá receber."
19291960
19301961#: ../../library/ctypes.rst:996
19311962msgid ""
@@ -1934,13 +1965,20 @@ msgid ""
19341965"factory function creates types for callback functions using the ``stdcall`` "
19351966"calling convention."
19361967msgstr ""
1968+ "A função de fábrica :func:`CFUNCTYPE` cria tipos para funções de retorno "
1969+ "usando a convenção de chamada ``cdecl``. No Windows, a função de fábrica :"
1970+ "func:`WINFUNCTYPE` cria tipos para funções de retorno usando a convenção de "
1971+ "chamada ``stdcall``."
19371972
19381973#: ../../library/ctypes.rst:1001
19391974msgid ""
19401975"Both of these factory functions are called with the result type as first "
19411976"argument, and the callback functions expected argument types as the "
19421977"remaining arguments."
19431978msgstr ""
1979+ "Ambas estas funções de fábrica são chamadas com o tipo de resultado como "
1980+ "primeiro argumento, e os tipos de argumento esperados da função de retorno "
1981+ "como os argumentos restantes."
19441982
19451983#: ../../library/ctypes.rst:1005
19461984msgid ""
@@ -2048,6 +2086,8 @@ msgid ""
20482086"The function factories can be used as decorator factories, so we may as well "
20492087"write::"
20502088msgstr ""
2089+ "As fábricas de funções podem ser usadas como fábricas de decoradores, então "
2090+ "também podemos escrever::"
20512091
20522092#: ../../library/ctypes.rst:1072
20532093msgid ""
@@ -2071,6 +2111,10 @@ msgid ""
20712111"are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be "
20722112"garbage collected, crashing your program when a callback is made."
20732113msgstr ""
2114+ "Certifique-se de manter referências aos objetos :func:`CFUNCTYPE` enquanto "
2115+ "eles forem usados a partir do código C. O :mod:`ctypes` não faz isso, e se "
2116+ "você não o fizer, eles podem ser coletados pelo coletor de lixo, travando "
2117+ "seu programa quando uma função de retorno é chamada."
20742118
20752119#: ../../library/ctypes.rst:1091
20762120msgid ""
@@ -2081,24 +2125,38 @@ msgid ""
20812125"with :class:`threading.local` will *not* survive across different callbacks, "
20822126"even when those calls are made from the same C thread."
20832127msgstr ""
2128+ "Além disso, note que se a função de retorno for chamada em uma thread criada "
2129+ "fora do controle do Python (por exemplo, pelo código externo que chama a "
2130+ "função de retorno), o ctypes cria uma nova thread Python "
2131+ "\" dummy\" (fictícia) em cada invocação. Este comportamento é correto para a "
2132+ "maioria dos propósitos, mas significa que os valores armazenados com :class:"
2133+ "`threading.local` *não* sobreviverão entre diferentes funções de retorno, "
2134+ "mesmo quando essas chamadas são feitas a partir da mesma thread C."
20842135
20852136#: ../../library/ctypes.rst:1101
20862137msgid "Accessing values exported from dlls"
2087- msgstr ""
2138+ msgstr "Acessando valores exportados de dlls "
20882139
20892140#: ../../library/ctypes.rst:1103
20902141msgid ""
20912142"Some shared libraries not only export functions, they also export variables. "
20922143"An example in the Python library itself is the :c:data:`Py_Version`, Python "
20932144"runtime version number encoded in a single constant integer."
20942145msgstr ""
2146+ "Algumas bibliotecas compartilhadas não exportam apenas funções, elas também "
2147+ "exportam variáveis. Um exemplo na própria biblioteca Python é a :c:data:"
2148+ "`Py_Version`, o número da versão de tempo de execução do Python codificado "
2149+ "em um único inteiro constante."
20952150
20962151#: ../../library/ctypes.rst:1107
20972152msgid ""
20982153":mod:`ctypes` can access values like this with the :meth:`~_CData.in_dll` "
20992154"class methods of the type. *pythonapi* is a predefined symbol giving access "
21002155"to the Python C api::"
21012156msgstr ""
2157+ ":mod:`ctypes` pode acessar valores como este com os métodos de classe :meth:"
2158+ "`~_CData.in_dll` do tipo. *pythonapi* é um símbolo predefinido que dá acesso "
2159+ "à API C do Python::"
21022160
21032161#: ../../library/ctypes.rst:1111
21042162msgid ""
@@ -2112,10 +2170,12 @@ msgid ""
21122170"An extended example which also demonstrates the use of pointers accesses "
21132171"the :c:data:`PyImport_FrozenModules` pointer exported by Python."
21142172msgstr ""
2173+ "Um exemplo estendido que também demonstra o uso de ponteiros acessa o "
2174+ "ponteiro :c:data:`PyImport_FrozenModules` exportado pelo Python."
21152175
21162176#: ../../library/ctypes.rst:1118
21172177msgid "Quoting the docs for that value:"
2118- msgstr ""
2178+ msgstr "Citando a documentação para esse valor: "
21192179
21202180#: ../../library/ctypes.rst:1120
21212181msgid ""
@@ -2136,6 +2196,9 @@ msgid ""
21362196"So manipulating this pointer could even prove useful. To restrict the "
21372197"example size, we show only how this table can be read with :mod:`ctypes`::"
21382198msgstr ""
2199+ "Então, manipular este ponteiro pode até ser útil. Para restringir o tamanho "
2200+ "do exemplo, mostramos apenas como esta tabela pode ser lida com :mod:"
2201+ "`ctypes`::"
21392202
21402203#: ../../library/ctypes.rst:1128
21412204msgid ""
@@ -2156,6 +2219,8 @@ msgid ""
21562219"We have defined the :c:struct:`_frozen` data type, so we can get the pointer "
21572220"to the table::"
21582221msgstr ""
2222+ "Nós definimos tipo de dado :c:struct:`_frozen`, para que possamos obter o "
2223+ "ponteiro para a tabela::"
21592224
21602225#: ../../library/ctypes.rst:1142
21612226msgid ""
@@ -2172,6 +2237,11 @@ msgid ""
21722237"crash with an access violation or whatever, so it's better to break out of "
21732238"the loop when we hit the ``NULL`` entry::"
21742239msgstr ""
2240+ "Como ``table`` é um ``pointer`` para o vetor de registros ``struct_frozen``, "
2241+ "nós podemos iterar sobre ele, mas só temos que nos certificar de que nosso "
2242+ "loop termine, porque ponteiros não têm tamanho. Cedo ou tarde, ele "
2243+ "provavelmente travaria com uma violação de acesso ou algo assim, então é "
2244+ "melhor sair do loop quando atingirmos a entrada ``NULL``::"
21752245
21762246#: ../../library/ctypes.rst:1152
21772247msgid ""
@@ -2192,20 +2262,25 @@ msgid ""
21922262"(indicated by the negative ``size`` member) is not well known, it is only "
21932263"used for testing. Try it out with ``import __hello__`` for example."
21942264msgstr ""
2265+ "O fato de que o Python padrão tem um módulo congelado e um pacote congelado "
2266+ "(indicado pelo membro ``size`` negativo) não é bem conhecido, é usado apenas "
2267+ "para testes. Experimente com ``import __hello__`` por exemplo."
21952268
21962269#: ../../library/ctypes.rst:1170
21972270msgid "Surprises"
2198- msgstr ""
2271+ msgstr "Surpresas "
21992272
22002273#: ../../library/ctypes.rst:1172
22012274msgid ""
22022275"There are some edges in :mod:`ctypes` where you might expect something other "
22032276"than what actually happens."
22042277msgstr ""
2278+ "Existem algumas pontos limites no :mod:`ctypes` onde você pode esperar algo "
2279+ "diferente do que realmente ocorre."
22052280
22062281#: ../../library/ctypes.rst:1175
22072282msgid "Consider the following example::"
2208- msgstr ""
2283+ msgstr "Considere o exemplo a seguir:: "
22092284
22102285#: ../../library/ctypes.rst:1177
22112286msgid ""
@@ -2233,6 +2308,9 @@ msgid ""
22332308"Hm. We certainly expected the last statement to print ``3 4 1 2``. What "
22342309"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::"
22352310msgstr ""
2311+ "Hm. Nós com certeza esperávamos que a última instrução exibisse ``3 4 1 2``. "
2312+ "O que aconteceu? Aqui estão os passos da linha ``rc.a, rc.b = rc.b, rc.a`` "
2313+ "acima::"
22362314
22372315#: ../../library/ctypes.rst:1198
22382316msgid ""
@@ -2250,19 +2328,29 @@ msgid ""
22502328"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't "
22512329"have the expected effect."
22522330msgstr ""
2331+ "Observe que ``temp0`` e ``temp1`` ainda são objetos que utilizam o buffer "
2332+ "interno do objeto ``rc`` acima. Portanto, executar ``rc.a = temp0`` copia o "
2333+ "conteúdo do buffer de ``temp0`` para o buffer de ``rc``. Isso, por sua vez, "
2334+ "altera o conteúdo de ``temp1``. Assim, a última atribuição ``rc.b = temp1`` "
2335+ "não produz o efeito esperado."
22532336
22542337#: ../../library/ctypes.rst:1209
22552338msgid ""
22562339"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays "
22572340"doesn't *copy* the sub-object, instead it retrieves a wrapper object "
22582341"accessing the root-object's underlying buffer."
22592342msgstr ""
2343+ "Tenha em mente que obter sub-objetos de estruturas, uniões e vetores não "
2344+ "copia o sub-objeto; em vez disso, recupera um objeto de encapsulamento "
2345+ "(wrapper) que acessa o buffer subjacente do objeto raiz."
22602346
22612347#: ../../library/ctypes.rst:1213
22622348msgid ""
22632349"Another example that may behave differently from what one would expect is "
22642350"this::"
22652351msgstr ""
2352+ "Outro exemplo que pode se comportar de maneira diferente do que alguém "
2353+ "poderia esperar é o seguinte::"
22662354
22672355#: ../../library/ctypes.rst:1215
22682356msgid ""
@@ -2280,6 +2368,8 @@ msgid ""
22802368"Objects instantiated from :class:`c_char_p` can only have their value set to "
22812369"bytes or integers."
22822370msgstr ""
2371+ "Objetos instanciados a partir de :class:`c_char_p` só podem ter seu valor "
2372+ "definido para bytes ou inteiros."
22832373
22842374#: ../../library/ctypes.rst:1228
22852375msgid ""
@@ -2289,10 +2379,16 @@ msgid ""
22892379"object itself, instead the ``contents`` of the object is stored. Accessing "
22902380"the contents again constructs a new Python object each time!"
22912381msgstr ""
2382+ "Por que está imprimindo ``False``? Instâncias de ctypes são objetos que "
2383+ "contêm um bloco de memória, além de alguns :term:`descriptor`\\ s que acessam "
2384+ "o conteúdo dessa memória. Armazenar um objeto Python no bloco de memória não "
2385+ "armazena o próprio objeto; em vez disso, armazena-se o seu atributo "
2386+ "``contents``. Acessar o contents novamente constrói um novo objeto Python a "
2387+ "cada vez!"
22922388
22932389#: ../../library/ctypes.rst:1238
22942390msgid "Variable-sized data types"
2295- msgstr ""
2391+ msgstr "Tipos de dados de tamanho variável "
22962392
22972393#: ../../library/ctypes.rst:1240
22982394msgid ""