Skip to content

Commit 7608d47

Browse files
author
github-actions
committed
Update translations from Transifex
1 parent 09d6ad9 commit 7608d47

File tree

5 files changed

+260
-32
lines changed

5 files changed

+260
-32
lines changed

faq/library.po

Lines changed: 115 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ msgid ""
1717
msgstr ""
1818
"Project-Id-Version: Python 3.12\n"
1919
"Report-Msgid-Bugs-To: \n"
20-
"POT-Creation-Date: 2024-04-19 14:13+0000\n"
20+
"POT-Creation-Date: 2024-04-26 14:13+0000\n"
2121
"PO-Revision-Date: 2021-06-28 00:52+0000\n"
2222
"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>, 2024\n"
2323
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/"
@@ -119,7 +119,7 @@ msgid ""
119119
"interpreter."
120120
msgstr ""
121121
"Você precisa fazer duas coisas: o arquivo do script deve ser executável e a "
122-
"primeira linha deve começar com \"#!\" seguido do caminho do interpretador "
122+
"primeira linha deve começar com ``#!`` seguido do caminho do interpretador "
123123
"Python."
124124

125125
#: ../../faq/library.rst:53
@@ -211,6 +211,12 @@ msgid ""
211211
"but there don't seem to be any currently maintained OSes that fall into this "
212212
"category."
213213
msgstr ""
214+
"O módulo :mod:`curses` provê recursos básicos de curses, bem como muitas "
215+
"funções adicionais de ncurses e curses SYSV, como cor, suporte a conjuntos "
216+
"de caracteres alternativos, pads e suporte a mouse. Isso significa que o "
217+
"módulo não é compatível com sistemas operacionais que possuem apenas "
218+
"maldições BSD, mas não parece haver nenhum sistema operacional mantido "
219+
"atualmente que se enquadre nesta categoria."
214220

215221
#: ../../faq/library.rst:111
216222
msgid "Is there an equivalent to C's onexit() in Python?"
@@ -221,6 +227,8 @@ msgid ""
221227
"The :mod:`atexit` module provides a register function that is similar to "
222228
"C's :c:func:`!onexit`."
223229
msgstr ""
230+
"O módulo :mod:`atexit` fornece uma função de registro similar ao :c:func:`!"
231+
"onexit` do C."
224232

225233
#: ../../faq/library.rst:118
226234
msgid "Why don't my signal handlers work?"
@@ -236,7 +244,7 @@ msgstr ""
236244

237245
#: ../../faq/library.rst:125
238246
msgid "so it should be declared with two parameters::"
239-
msgstr ""
247+
msgstr "portanto, isso deve ser declarado com dois parâmetros::"
240248

241249
#: ../../faq/library.rst:132
242250
msgid "Common tasks"
@@ -252,7 +260,7 @@ msgid ""
252260
"examples in the docstrings for a module and runs them, comparing the output "
253261
"with the expected output given in the docstring."
254262
msgstr ""
255-
"A Python vem com dois frameworks de teste. O :mod:`doctest` busca por "
263+
"A Python vem com dois frameworks de teste. O módulo :mod:`doctest` busca por "
256264
"exemplos nas docstrings de um módulo e os executa, comparando o resultado "
257265
"com a saída esperada informada na docstring."
258266

@@ -274,6 +282,13 @@ msgid ""
274282
"avoid depending on mutating global variables, since this makes testing much "
275283
"more difficult to do."
276284
msgstr ""
285+
"Para facilitar os testes, você deve usar um bom design modular em seu "
286+
"programa. Seu programa deve ter quase todas as funcionalidades encapsuladas "
287+
"em funções ou métodos de classe -- e isso às vezes tem o efeito "
288+
"surpreendente e agradável de fazer o programa executar mais rápido (porque "
289+
"os acessos às variáveis locais são mais rápidos que os acessos globais). "
290+
"Além disso, o programa deve evitar depender de variáveis globais mutantes, "
291+
"pois isso torna os testes muito mais difíceis de serem realizados."
277292

278293
#: ../../faq/library.rst:152
279294
msgid "The \"global main logic\" of your program may be as simple as ::"
@@ -294,12 +309,23 @@ msgid ""
294309
"the \"production code\", since this makes it easy to find bugs and even "
295310
"design flaws earlier."
296311
msgstr ""
312+
"Depois que seu programa estiver organizado como uma coleção tratável de "
313+
"comportamentos de funções e classes, você deverá escrever funções de teste "
314+
"que exercitem os comportamentos. Um conjunto de testes que automatiza uma "
315+
"sequência de testes pode ser associado a cada módulo. Parece muito "
316+
"trabalhoso, mas como o Python é tão conciso e flexível, é surpreendentemente "
317+
"fácil. Você pode tornar a codificação muito mais agradável e divertida "
318+
"escrevendo suas funções de teste em paralelo com o \"código de produção\", "
319+
"pois isso torna mais fácil encontrar bugs e até mesmo falhas de design mais "
320+
"cedo."
297321

298322
#: ../../faq/library.rst:167
299323
msgid ""
300324
"\"Support modules\" that are not intended to be the main module of a program "
301325
"may include a self-test of the module. ::"
302326
msgstr ""
327+
"Os \"módulos de suporte\" que não se destinam a ser o módulo principal de um "
328+
"programa podem incluir um autoteste do módulo. ::"
303329

304330
#: ../../faq/library.rst:173
305331
msgid ""
@@ -322,6 +348,11 @@ msgid ""
322348
"docstrings is `epydoc <https://epydoc.sourceforge.net/>`_. `Sphinx <https://"
323349
"www.sphinx-doc.org>`_ can also include docstring content."
324350
msgstr ""
351+
"O módulo :mod:`pydoc` pode criar HTML a partir das strings de documentos em "
352+
"seu código-fonte Python. Uma alternativa para criar documentação de API "
353+
"puramente a partir de docstrings é `epydoc <https://epydoc.sourceforge.net/"
354+
">`_. `Sphinx <https://www.sphinx-doc.org>`_ também pode incluir conteúdo "
355+
"docstring."
325356

326357
#: ../../faq/library.rst:188
327358
msgid "How do I get a single keypress at a time?"
@@ -349,10 +380,13 @@ msgid ""
349380
"module. The :mod:`threading` module builds convenient abstractions on top of "
350381
"the low-level primitives provided by the :mod:`_thread` module."
351382
msgstr ""
383+
"Certifique-se de usar o módulo :mod:`threading` e não o módulo :mod:"
384+
"`_thread`. O módulo :mod:`threading` constrói abstrações convenientes sobre "
385+
"as primitivas de baixo nível fornecidas pelo módulo :mod:`_thread`."
352386

353387
#: ../../faq/library.rst:245
354388
msgid "None of my threads seem to run: why?"
355-
msgstr "Nenhuma de minhas threads parece funcionar, por quê?"
389+
msgstr "Nenhuma de minhas threads parece funcionar, por que?"
356390

357391
#: ../../faq/library.rst:247
358392
msgid ""
@@ -377,6 +411,10 @@ msgid ""
377411
"run sequentially, one at a time! The reason is that the OS thread scheduler "
378412
"doesn't start a new thread until the previous thread is blocked."
379413
msgstr ""
414+
"Mas agora (em muitas plataformas) as threads não funcionam em paralelo, mas "
415+
"parecem funcionar sequencialmente, um de cada vez! O motivo é que o "
416+
"agendador de threads do sistema operacional não inicia uma nova thread até "
417+
"que a thread anterior seja bloqueada."
380418

381419
#: ../../faq/library.rst:269
382420
msgid "A simple fix is to add a tiny sleep to the start of the run function::"
@@ -392,16 +430,23 @@ msgid ""
392430
"the queue when it finishes, and let the main thread read as many tokens from "
393431
"the queue as there are threads."
394432
msgstr ""
433+
"Em vez de tentar adivinhar um bom valor de atraso para :func:`time.sleep`, é "
434+
"melhor usar algum tipo de mecanismo de semáforo. Uma ideia é usar o módulo :"
435+
"mod:`queue` para criar um objeto fila, deixar cada thread anexar um token à "
436+
"fila quando terminar e deixar a thread principal ler tantos tokens da fila "
437+
"quantos threads houver."
395438

396439
#: ../../faq/library.rst:290
397440
msgid "How do I parcel out work among a bunch of worker threads?"
398-
msgstr ""
441+
msgstr "Como distribuo o trabalho entre várias threads de trabalho?"
399442

400443
#: ../../faq/library.rst:292
401444
msgid ""
402445
"The easiest way is to use the :mod:`concurrent.futures` module, especially "
403446
"the :mod:`~concurrent.futures.ThreadPoolExecutor` class."
404447
msgstr ""
448+
"A maneira mais fácil é usar o módulo :mod:`concurrent.futures`, "
449+
"especialmente a classe :mod:`~concurrent.futures.ThreadPoolExecutor`."
405450

406451
#: ../../faq/library.rst:295
407452
msgid ""
@@ -412,6 +457,13 @@ msgid ""
412457
"``.get()`` method to return them. The class will take care of the locking "
413458
"necessary to ensure that each job is handed out exactly once."
414459
msgstr ""
460+
"Ou, se quiser um controle preciso sobre o algoritmo de despacho, você pode "
461+
"escrever sua própria lógica manualmente. Use o módulo :mod:`queue` para "
462+
"criar uma fila contendo uma lista de tarefas. A classe :class:`~queue.Queue` "
463+
"mantém uma lista de objetos e possui um método ``.put(obj)`` que adiciona "
464+
"itens à fila e um método ``.get()`` para retorná-los. A classe cuidará do "
465+
"bloqueio necessário para garantir que cada trabalho seja entregue exatamente "
466+
"uma vez."
415467

416468
#: ../../faq/library.rst:302
417469
msgid "Here's a trivial example::"
@@ -426,7 +478,7 @@ msgid ""
426478
"Consult the module's documentation for more details; the :class:`~queue."
427479
"Queue` class provides a featureful interface."
428480
msgstr ""
429-
"Consulte a documentação dos módulos para mais detalhes; a classe :class:"
481+
"Consulte a documentação do módulo para mais detalhes; a classe :class:"
430482
"`~queue.Queue` fornece uma interface com recursos."
431483

432484
#: ../../faq/library.rst:363
@@ -442,6 +494,13 @@ msgid ""
442494
"instruction and therefore all the C implementation code reached from each "
443495
"instruction is therefore atomic from the point of view of a Python program."
444496
msgstr ""
497+
"Um :term:`bloqueio global do interpretador` (GIL) é usado internamente para "
498+
"garantir que apenas um thread seja executado na VM Python por vez. Em geral, "
499+
"Python oferece alternar entre threads apenas entre instruções de bytecode; a "
500+
"frequência com que ele muda pode ser definida via :func:`sys."
501+
"setswitchinterval`. Cada instrução de bytecode e, portanto, todo o código de "
502+
"implementação C alcançado por cada instrução é, portanto, atômico do ponto "
503+
"de vista de um programa Python."
445504

446505
#: ../../faq/library.rst:372
447506
msgid ""
@@ -450,12 +509,18 @@ msgid ""
450509
"shared variables of built-in data types (ints, lists, dicts, etc) that "
451510
"\"look atomic\" really are."
452511
msgstr ""
512+
"Em teoria, isso significa que uma contabilidade exata requer um entendimento "
513+
"exato da implementação do bytecode PVM. Na prática, isso significa que as "
514+
"operações em variáveis compartilhadas de tipos de dados integrados "
515+
"(inteiros, listas, dicionarios, etc.) que \"parecem atômicas\" realmente são."
453516

454517
#: ../../faq/library.rst:377
455518
msgid ""
456519
"For example, the following operations are all atomic (L, L1, L2 are lists, "
457520
"D, D1, D2 are dicts, x, y are objects, i, j are ints)::"
458521
msgstr ""
522+
"Por exemplo, as seguintes operações são todas atômicas (L, L1, L2 são "
523+
"listas, D, D1, D2 são dicionários, x, y são objetos, i, j são inteiros)::"
459524

460525
#: ../../faq/library.rst:392
461526
msgid "These aren't::"
@@ -468,6 +533,11 @@ msgid ""
468533
"can affect things. This is especially true for the mass updates to "
469534
"dictionaries and lists. When in doubt, use a mutex!"
470535
msgstr ""
536+
"Operações que substituem outros objetos podem invocar o método :meth:"
537+
"`~object.__del__` desses outros objetos quando sua contagem de referências "
538+
"chega a zero, e isso pode afetar as coisas. Isto é especialmente verdadeiro "
539+
"para as atualizações em massa de dicionários e listas. Em caso de dúvida, "
540+
"use um mutex!"
471541

472542
#: ../../faq/library.rst:406
473543
msgid "Can't we get rid of the Global Interpreter Lock?"
@@ -480,6 +550,11 @@ msgid ""
480550
"multi-threaded Python program effectively only uses one CPU, due to the "
481551
"insistence that (almost) all Python code can only run while the GIL is held."
482552
msgstr ""
553+
"O :term:`bloqueio global do interpretador` (GIL) é frequentemente visto como "
554+
"um obstáculo para a implantação do Python em máquinas servidoras "
555+
"multiprocessadas de ponta, porque um programa Python multi-threaded "
556+
"efetivamente usa apenas uma CPU, devido à insistência de que (quase) todo "
557+
"código Python só pode ser executado enquanto o GIL é mantido."
483558

484559
#: ../../faq/library.rst:415
485560
msgid ""
@@ -492,6 +567,14 @@ msgid ""
492567
"due to the amount of fine-grained locking necessary to compensate for the "
493568
"removal of the GIL."
494569
msgstr ""
570+
"Na época do Python 1.5, Greg Stein implementou um conjunto abrangente de "
571+
"patches (os patches de \"threading livre\") que removeu o GIL e o substituiu "
572+
"por bloqueio refinado. Adam Olsen recentemente fez um experimento semelhante "
573+
"em seu projeto `python-safethread <https://code.google.com/archive/p/python-"
574+
"safethread>`_. Infelizmente, ambos os experimentos exibiram uma queda "
575+
"acentuada no desempenho de thread único (pelo menos 30% mais lento), devido "
576+
"à quantidade de bloqueio de granulação fina necessária para compensar a "
577+
"remoção do GIL."
495578

496579
#: ../../faq/library.rst:423
497580
msgid ""
@@ -503,6 +586,13 @@ msgid ""
503586
"module provides a lower-level API in case you want more control over "
504587
"dispatching of tasks."
505588
msgstr ""
589+
"Isso não significa que você não possa fazer bom uso do Python em máquinas "
590+
"com várias CPUs! Você só precisa ser criativo ao dividir o trabalho entre "
591+
"vários *processos* em vez de vários *threads*. A classe :class:`~concurrent."
592+
"futures.ProcessPoolExecutor` no novo módulo :mod:`concurrent.futures` "
593+
"fornece uma maneira fácil de fazer isso; o módulo :mod:`multiprocessing` "
594+
"fornece uma API de nível inferior caso você queira mais controle sobre o "
595+
"envio de tarefas."
506596

507597
#: ../../faq/library.rst:431
508598
msgid ""
@@ -512,6 +602,11 @@ msgid ""
512602
"work done. Some standard library modules such as :mod:`zlib` and :mod:"
513603
"`hashlib` already do this."
514604
msgstr ""
605+
"O uso criterioso de extensões C também ajudará; se você usar uma extensão C "
606+
"para executar uma tarefa demorada, a extensão poderá liberar o GIL enquanto "
607+
"o thread de execução estiver no código C e permitir que outros threads "
608+
"realizem algum trabalho. Alguns módulos de biblioteca padrão como :mod:"
609+
"`zlib` e :mod:`hashlib` já fazem isso."
515610

516611
#: ../../faq/library.rst:437
517612
msgid ""
@@ -524,6 +619,15 @@ msgid ""
524619
"types have their own free list; these free lists would have to be moved to "
525620
"the interpreter state. And so on."
526621
msgstr ""
622+
"Foi sugerido que o GIL deveria ser um bloqueio por estado por interpretador, "
623+
"em vez de verdadeiramente global; os interpretadores não seriam capazes de "
624+
"compartilhar objetos. Infelizmente, isso também não é provável que aconteça. "
625+
"Seria uma quantidade enorme de trabalho, porque muitas implementações de "
626+
"objetos atualmente possuem estado global. Por exemplo, inteiros pequenos e "
627+
"strings curtas são armazenados em cache; esses caches teriam que ser movidos "
628+
"para o estado de interpretador. Outros tipos de objetos possuem sua própria "
629+
"lista livre; essas listas livres teriam que ser movidas para o estado de "
630+
"interpretador. E assim por diante."
527631

528632
#: ../../faq/library.rst:446
529633
msgid ""
@@ -532,6 +636,10 @@ msgid ""
532636
"extensions are being written at a faster rate than you can convert them to "
533637
"store all their global state in the interpreter state."
534638
msgstr ""
639+
"E duvido que isso possa ser feito em tempo finito, porque o mesmo problema "
640+
"existe para extensões de terceiros. É provável que extensões de terceiros "
641+
"estejam sendo gravadas em uma taxa mais rápida do que você pode convertê-las "
642+
"para armazenar todo o seu estado global no estado do interpretador."
535643

536644
#: ../../faq/library.rst:451
537645
msgid ""

0 commit comments

Comments
 (0)