@@ -13,7 +13,7 @@ msgid ""
1313msgstr ""
1414"Project-Id-Version :Python 3.13\n "
1515"Report-Msgid-Bugs-To :\n "
16- "POT-Creation-Date :2025-11-07 15:30 +0000\n "
16+ "POT-Creation-Date :2025-11-09 14:58 +0000\n "
1717"PO-Revision-Date :2025-09-15 01:04+0000\n "
1818"Last-Translator :Marcos Moraes, 2025\n "
1919"Language-Team :Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
@@ -1505,6 +1505,11 @@ msgid ""
15051505"`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These "
15061506"classes cannot contain pointer fields."
15071507msgstr ""
1508+ ":mod:`ctypes` usa a ordem de bytes nativa para Estruturas e Uniões. Para "
1509+ "construir estruturas com ordem de bytes não nativa, você pode usar classes "
1510+ "base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:"
1511+ "`BigEndianUnion` e :class:`LittleEndianUnion`. Essas classes não podem "
1512+ "conter campos de ponteiros."
15081513
15091514#: ../../library/ctypes.rst:703
15101515msgid "Bit fields in structures and unions"
@@ -1516,6 +1521,9 @@ msgid ""
15161521"fields are only possible for integer fields, the bit width is specified as "
15171522"the third item in the :attr:`~Structure._fields_` tuples::"
15181523msgstr ""
1524+ "É possível criar estruturas e uniões contendo campos de bits. Campos de bits "
1525+ "só são possíveis para campos de inteiros, a largura do bit é especificada "
1526+ "como o terceiro item nas tuplas :attr:`~Structure._fields_`::"
15191527
15201528#: ../../library/ctypes.rst:709
15211529msgid ""
@@ -1881,7 +1889,7 @@ msgstr ""
18811889
18821890#: ../../library/ctypes.rst:922
18831891msgid "For these cases, the :func:`cast` function is handy."
1884- msgstr ""
1892+ msgstr "Para esses casos, a função :func:`cast` é útil. "
18851893
18861894#: ../../library/ctypes.rst:924
18871895msgid ""
@@ -1891,6 +1899,12 @@ msgid ""
18911899"ctypes pointer type. It returns an instance of the second argument, which "
18921900"references the same memory block as the first argument::"
18931901msgstr ""
1902+ "A função :func:`cast` pode ser usada para converter uma instância ctypes em "
1903+ "um ponteiro para um diferente tipo de dado ctypes. :func:`cast` recebe dois "
1904+ "parâmetros, um objeto ctypes que é ou pode ser convertido para um ponteiro "
1905+ "de algum tipo, e um tipo ponteiro ctypes. Ela retorna uma instância do "
1906+ "segundo argumento, que referencia o mesmo bloco de memória que o primeiro "
1907+ "argumento:: "
18941908
18951909#: ../../library/ctypes.rst:930
18961910msgid ""
@@ -1905,6 +1919,8 @@ msgid ""
19051919"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` "
19061920"the structure::"
19071921msgstr ""
1922+ "Então, :func:`cast` pode ser usada para atribuir ao campo ``values`` da "
1923+ "estrutura ``Bar``::"
19081924
19091925#: ../../library/ctypes.rst:938
19101926msgid ""
@@ -1925,6 +1941,9 @@ msgid ""
19251941"yet specified. In C, they are specified by forward declarations, which are "
19261942"defined later::"
19271943msgstr ""
1944+ "*Tipos Incompletos* são estruturas, uniões ou vetores, cujos membros ainda "
1945+ "não foram especificados. Em C, eles são especificados por declarações "
1946+ "antecipadas, que são definidas posteriormente::"
19281947
19291948#: ../../library/ctypes.rst:954
19301949msgid ""
@@ -1940,7 +1959,7 @@ msgstr ""
19401959msgid ""
19411960"The straightforward translation into ctypes code would be this, but it does "
19421961"not work::"
1943- msgstr ""
1962+ msgstr "A tradução direta para código ctypes seria esta, mas não funciona:: "
19441963
19451964#: ../../library/ctypes.rst:964
19461965msgid ""
@@ -1961,6 +1980,10 @@ msgid ""
19611980"itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:"
19621981"`~Structure._fields_` attribute later, after the class statement::"
19631982msgstr ""
1983+ "por que a nova ``class cell`` não está disponível na própria declaração da "
1984+ "classe. Em :mod:`ctypes`, podemos definir a classe ``cell`` e definir o "
1985+ "atributo :attr:`~Structure._fields_` posteriormente, após a declaração da "
1986+ "classe:: "
19641987
19651988#: ../../library/ctypes.rst:978
19661989msgid ""
@@ -1978,6 +2001,9 @@ msgid ""
19782001"Let's try it. We create two instances of ``cell``, and let them point to "
19792002"each other, and finally follow the pointer chain a few times::"
19802003msgstr ""
2004+ "Vamos tentar. Criamos duas instâncias de ``cell``, e deixamos que elas "
2005+ "apontem uma para a outra, e finalmente seguimos a cadeia de ponteiros "
2006+ "algumas vezes::"
19812007
19822008#: ../../library/ctypes.rst:989
19832009msgid ""
@@ -2005,13 +2031,18 @@ msgid ""
20052031":mod:`ctypes` allows creating C callable function pointers from Python "
20062032"callables. These are sometimes called *callback functions*."
20072033msgstr ""
2034+ ":mod:`ctypes` permite criar ponteiros de função C chamáveis a partir de "
2035+ "chamáveis Python. Estas são às vezes chamadas de *funções de retorno*."
20082036
20092037#: ../../library/ctypes.rst:1012
20102038msgid ""
20112039"First, you must create a class for the callback function. The class knows "
20122040"the calling convention, the return type, and the number and types of "
20132041"arguments this function will receive."
20142042msgstr ""
2043+ "Primeiro, você deve criar uma classe para função de retorno. A classe sabe a "
2044+ "convenção de chamada , o tipo de retorno, e o número e tipos de argumentos "
2045+ "que essa função irá receber."
20152046
20162047#: ../../library/ctypes.rst:1016
20172048msgid ""
@@ -2020,13 +2051,20 @@ msgid ""
20202051"factory function creates types for callback functions using the ``stdcall`` "
20212052"calling convention."
20222053msgstr ""
2054+ "A função de fábrica :func:`CFUNCTYPE` cria tipos para funções de retorno "
2055+ "usando a convenção de chamada ``cdecl``. No Windows, a função de fábrica :"
2056+ "func:`WINFUNCTYPE` cria tipos para funções de retorno usando a convenção de "
2057+ "chamada ``stdcall``."
20232058
20242059#: ../../library/ctypes.rst:1021
20252060msgid ""
20262061"Both of these factory functions are called with the result type as first "
20272062"argument, and the callback functions expected argument types as the "
20282063"remaining arguments."
20292064msgstr ""
2065+ "Ambas estas funções de fábrica são chamadas com o tipo de resultado como "
2066+ "primeiro argumento, e os tipos de argumento esperados da função de retorno "
2067+ "como os argumentos restantes."
20302068
20312069#: ../../library/ctypes.rst:1025
20322070msgid ""
@@ -2134,6 +2172,8 @@ msgid ""
21342172"The function factories can be used as decorator factories, so we may as well "
21352173"write::"
21362174msgstr ""
2175+ "As fábricas de funções podem ser usadas como fábricas de decoradores, então "
2176+ "também podemos escrever::"
21372177
21382178#: ../../library/ctypes.rst:1092
21392179msgid ""
@@ -2157,6 +2197,10 @@ msgid ""
21572197"are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be "
21582198"garbage collected, crashing your program when a callback is made."
21592199msgstr ""
2200+ "Certifique-se de manter referências aos objetos :func:`CFUNCTYPE` enquanto "
2201+ "eles forem usados a partir do código C. O :mod:`ctypes` não faz isso, e se "
2202+ "você não o fizer, eles podem ser coletados pelo coletor de lixo, travando "
2203+ "seu programa quando uma função de retorno é chamada."
21602204
21612205#: ../../library/ctypes.rst:1111
21622206msgid ""
@@ -2167,24 +2211,38 @@ msgid ""
21672211"with :class:`threading.local` will *not* survive across different callbacks, "
21682212"even when those calls are made from the same C thread."
21692213msgstr ""
2214+ "Além disso, note que se a função de retorno for chamada em uma thread criada "
2215+ "fora do controle do Python (por exemplo, pelo código externo que chama a "
2216+ "função de retorno), o ctypes cria uma nova thread Python "
2217+ "\" dummy\" (fictícia) em cada invocação. Este comportamento é correto para a "
2218+ "maioria dos propósitos, mas significa que os valores armazenados com :class:"
2219+ "`threading.local` *não* sobreviverão entre diferentes funções de retorno, "
2220+ "mesmo quando essas chamadas são feitas a partir da mesma thread C."
21702221
21712222#: ../../library/ctypes.rst:1121
21722223msgid "Accessing values exported from dlls"
2173- msgstr ""
2224+ msgstr "Acessando valores exportados de dlls "
21742225
21752226#: ../../library/ctypes.rst:1123
21762227msgid ""
21772228"Some shared libraries not only export functions, they also export variables. "
21782229"An example in the Python library itself is the :c:data:`Py_Version`, Python "
21792230"runtime version number encoded in a single constant integer."
21802231msgstr ""
2232+ "Algumas bibliotecas compartilhadas não exportam apenas funções, elas também "
2233+ "exportam variáveis. Um exemplo na própria biblioteca Python é a :c:data:"
2234+ "`Py_Version`, o número da versão de tempo de execução do Python codificado "
2235+ "em um único inteiro constante."
21812236
21822237#: ../../library/ctypes.rst:1127
21832238msgid ""
21842239":mod:`ctypes` can access values like this with the :meth:`~_CData.in_dll` "
21852240"class methods of the type. *pythonapi* is a predefined symbol giving access "
21862241"to the Python C api::"
21872242msgstr ""
2243+ ":mod:`ctypes` pode acessar valores como este com os métodos de classe :meth:"
2244+ "`~_CData.in_dll` do tipo. *pythonapi* é um símbolo predefinido que dá acesso "
2245+ "à API C do Python::"
21882246
21892247#: ../../library/ctypes.rst:1131
21902248msgid ""
@@ -2198,10 +2256,12 @@ msgid ""
21982256"An extended example which also demonstrates the use of pointers accesses "
21992257"the :c:data:`PyImport_FrozenModules` pointer exported by Python."
22002258msgstr ""
2259+ "Um exemplo estendido que também demonstra o uso de ponteiros acessa o "
2260+ "ponteiro :c:data:`PyImport_FrozenModules` exportado pelo Python."
22012261
22022262#: ../../library/ctypes.rst:1138
22032263msgid "Quoting the docs for that value:"
2204- msgstr ""
2264+ msgstr "Citando a documentação para esse valor: "
22052265
22062266#: ../../library/ctypes.rst:1140
22072267msgid ""
@@ -2222,6 +2282,9 @@ msgid ""
22222282"So manipulating this pointer could even prove useful. To restrict the "
22232283"example size, we show only how this table can be read with :mod:`ctypes`::"
22242284msgstr ""
2285+ "Então, manipular este ponteiro pode até ser útil. Para restringir o tamanho "
2286+ "do exemplo, mostramos apenas como esta tabela pode ser lida com :mod:"
2287+ "`ctypes`::"
22252288
22262289#: ../../library/ctypes.rst:1148
22272290msgid ""
@@ -2242,6 +2305,8 @@ msgid ""
22422305"We have defined the :c:struct:`_frozen` data type, so we can get the pointer "
22432306"to the table::"
22442307msgstr ""
2308+ "Nós definimos tipo de dado :c:struct:`_frozen`, para que possamos obter o "
2309+ "ponteiro para a tabela::"
22452310
22462311#: ../../library/ctypes.rst:1162
22472312msgid ""
@@ -2258,6 +2323,11 @@ msgid ""
22582323"crash with an access violation or whatever, so it's better to break out of "
22592324"the loop when we hit the ``NULL`` entry::"
22602325msgstr ""
2326+ "Como ``table`` é um ``pointer`` para o vetor de registros ``struct_frozen``, "
2327+ "nós podemos iterar sobre ele, mas só temos que nos certificar de que nosso "
2328+ "loop termine, porque ponteiros não têm tamanho. Cedo ou tarde, ele "
2329+ "provavelmente travaria com uma violação de acesso ou algo assim, então é "
2330+ "melhor sair do loop quando atingirmos a entrada ``NULL``::"
22612331
22622332#: ../../library/ctypes.rst:1172
22632333msgid ""
@@ -2278,20 +2348,25 @@ msgid ""
22782348"(indicated by the negative ``size`` member) is not well known, it is only "
22792349"used for testing. Try it out with ``import __hello__`` for example."
22802350msgstr ""
2351+ "O fato de que o Python padrão tem um módulo congelado e um pacote congelado "
2352+ "(indicado pelo membro ``size`` negativo) não é bem conhecido, é usado apenas "
2353+ "para testes. Experimente com ``import __hello__`` por exemplo."
22812354
22822355#: ../../library/ctypes.rst:1190
22832356msgid "Surprises"
2284- msgstr ""
2357+ msgstr "Surpresas "
22852358
22862359#: ../../library/ctypes.rst:1192
22872360msgid ""
22882361"There are some edges in :mod:`ctypes` where you might expect something other "
22892362"than what actually happens."
22902363msgstr ""
2364+ "Existem algumas pontos limites no :mod:`ctypes` onde você pode esperar algo "
2365+ "diferente do que realmente ocorre."
22912366
22922367#: ../../library/ctypes.rst:1195
22932368msgid "Consider the following example::"
2294- msgstr ""
2369+ msgstr "Considere o exemplo a seguir:: "
22952370
22962371#: ../../library/ctypes.rst:1197
22972372msgid ""
@@ -2319,6 +2394,9 @@ msgid ""
23192394"Hm. We certainly expected the last statement to print ``3 4 1 2``. What "
23202395"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::"
23212396msgstr ""
2397+ "Hm. Nós com certeza esperávamos que a última instrução exibisse ``3 4 1 2``. "
2398+ "O que aconteceu? Aqui estão os passos da linha ``rc.a, rc.b = rc.b, rc.a`` "
2399+ "acima::"
23222400
23232401#: ../../library/ctypes.rst:1218
23242402msgid ""
@@ -2336,19 +2414,29 @@ msgid ""
23362414"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't "
23372415"have the expected effect."
23382416msgstr ""
2417+ "Observe que ``temp0`` e ``temp1`` ainda são objetos que utilizam o buffer "
2418+ "interno do objeto ``rc`` acima. Portanto, executar ``rc.a = temp0`` copia o "
2419+ "conteúdo do buffer de ``temp0`` para o buffer de ``rc``. Isso, por sua vez, "
2420+ "altera o conteúdo de ``temp1``. Assim, a última atribuição ``rc.b = temp1`` "
2421+ "não produz o efeito esperado."
23392422
23402423#: ../../library/ctypes.rst:1229
23412424msgid ""
23422425"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays "
23432426"doesn't *copy* the sub-object, instead it retrieves a wrapper object "
23442427"accessing the root-object's underlying buffer."
23452428msgstr ""
2429+ "Tenha em mente que obter sub-objetos de estruturas, uniões e vetores não "
2430+ "copia o sub-objeto; em vez disso, recupera um objeto de encapsulamento "
2431+ "(wrapper) que acessa o buffer subjacente do objeto raiz."
23462432
23472433#: ../../library/ctypes.rst:1233
23482434msgid ""
23492435"Another example that may behave differently from what one would expect is "
23502436"this::"
23512437msgstr ""
2438+ "Outro exemplo que pode se comportar de maneira diferente do que alguém "
2439+ "poderia esperar é o seguinte::"
23522440
23532441#: ../../library/ctypes.rst:1235
23542442msgid ""
@@ -2366,6 +2454,8 @@ msgid ""
23662454"Objects instantiated from :class:`c_char_p` can only have their value set to "
23672455"bytes or integers."
23682456msgstr ""
2457+ "Objetos instanciados a partir de :class:`c_char_p` só podem ter seu valor "
2458+ "definido para bytes ou inteiros."
23692459
23702460#: ../../library/ctypes.rst:1248
23712461msgid ""
@@ -2375,10 +2465,16 @@ msgid ""
23752465"object itself, instead the ``contents`` of the object is stored. Accessing "
23762466"the contents again constructs a new Python object each time!"
23772467msgstr ""
2468+ "Por que está imprimindo ``False``? Instâncias de ctypes são objetos que "
2469+ "contêm um bloco de memória, além de alguns :term:`descriptor`\\ s que acessam "
2470+ "o conteúdo dessa memória. Armazenar um objeto Python no bloco de memória não "
2471+ "armazena o próprio objeto; em vez disso, armazena-se o seu atributo "
2472+ "``contents``. Acessar o contents novamente constrói um novo objeto Python a "
2473+ "cada vez!"
23782474
23792475#: ../../library/ctypes.rst:1258
23802476msgid "Variable-sized data types"
2381- msgstr ""
2477+ msgstr "Tipos de dados de tamanho variável "
23822478
23832479#: ../../library/ctypes.rst:1260
23842480msgid ""