6
6
# Translators:
7
7
# Marco Rougeth <marco@rougeth.com>, 2022
8
8
# Claudio Rogerio Carvalho Filho <excriptbrasil@gmail.com>, 2022
9
+ # Pedro Fonini, 2024
9
10
#
10
11
#, fuzzy
11
12
msgid ""
12
13
msgstr ""
13
14
"Project-Id-Version : Python 3.13\n "
14
15
"Report-Msgid-Bugs-To : \n "
15
- "POT-Creation-Date : 2024-05-24 14:15+0000\n "
16
+ "POT-Creation-Date : 2024-05-17 14:15+0000\n "
16
17
"PO-Revision-Date : 2022-11-05 19:48+0000\n "
17
- "Last-Translator : Claudio Rogerio Carvalho Filho <excriptbrasil@gmail.com>, "
18
- "2022\n "
18
+ "Last-Translator : Pedro Fonini, 2024\n "
19
19
"Language-Team : Portuguese (Brazil) (https://app.transifex.com/python-doc/ "
20
20
"teams/5390/pt_BR/)\n "
21
21
"MIME-Version : 1.0\n "
@@ -27,7 +27,7 @@ msgstr ""
27
27
28
28
#: ../../howto/isolating-extensions.rst:7
29
29
msgid "Isolating Extension Modules"
30
- msgstr ""
30
+ msgstr "Isolando Módulos de Extensão "
31
31
32
32
#: ../../howto/isolating-extensions.rst-1
33
33
msgid "Abstract"
@@ -39,6 +39,10 @@ msgid ""
39
39
"``static`` variables, which have process-wide scope. This document describes "
40
40
"problems of such per-process state and shows a safer way: per-module state."
41
41
msgstr ""
42
+ "Tradicionalmente, o estado que pertence a módulos de extensão do Python era "
43
+ "mantido em variáveis ``static`` em C, que têm escopo em todo o processo. "
44
+ "Este documento descreve problemas de tal estado por processo e apresenta um "
45
+ "modo mais seguro: o estado por módulo."
42
46
43
47
#: ../../howto/isolating-extensions.rst:16
44
48
msgid ""
@@ -47,46 +51,63 @@ msgid ""
47
51
"potentially switching from static types to heap types, and—perhaps most "
48
52
"importantly—accessing per-module state from code."
49
53
msgstr ""
54
+ "O documento também descreve como migrar para o uso do estado por módulo onde "
55
+ "for possível. Essa transição envolve alocar espaço para este estado, "
56
+ "potencialmente trocar tipos estáticos por tipos no heap, e—talvez o mais "
57
+ "importante—acessar o estado por módulo a partir do código."
50
58
51
59
#: ../../howto/isolating-extensions.rst:23
52
60
msgid "Who should read this"
53
- msgstr ""
61
+ msgstr "Quem deveria ler isto "
54
62
55
63
#: ../../howto/isolating-extensions.rst:25
56
64
msgid ""
57
65
"This guide is written for maintainers of :ref:`C-API <c-api-index>` "
58
66
"extensions who would like to make that extension safer to use in "
59
67
"applications where Python itself is used as a library."
60
68
msgstr ""
69
+ "Este guia é escrito para mantenedores de extensões que usam a :ref:`API C <c-"
70
+ "api-index>` que desejam torná-las mais seguras para o uso em aplicações onde "
71
+ "o Python em si é usado como uma biblioteca."
61
72
62
73
#: ../../howto/isolating-extensions.rst:31
63
74
msgid "Background"
64
- msgstr ""
75
+ msgstr "Informações preliminares "
65
76
66
77
#: ../../howto/isolating-extensions.rst:33
67
78
msgid ""
68
79
"An *interpreter* is the context in which Python code runs. It contains "
69
80
"configuration (e.g. the import path) and runtime state (e.g. the set of "
70
81
"imported modules)."
71
82
msgstr ""
83
+ "Um *interpretador* é o contexto no qual o código Python é executado. Ele "
84
+ "contém estado de configuração (por exemplo o caminho de importação) e de "
85
+ "tempo de execução (por exemplo o conjunto de módulos importados)."
72
86
73
87
#: ../../howto/isolating-extensions.rst:37
74
88
msgid ""
75
89
"Python supports running multiple interpreters in one process. There are two "
76
90
"cases to think about—users may run interpreters:"
77
91
msgstr ""
92
+ "O Python provê suporte para executar múltiplos interpretadores em um "
93
+ "processo. Dois casos devem ser considerados—usuários podem executar "
94
+ "interpretadores:"
78
95
79
96
#: ../../howto/isolating-extensions.rst:40
80
97
msgid ""
81
98
"in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` "
82
99
"cycles, and"
83
100
msgstr ""
101
+ "em sequência, com vários ciclos de :c:func:`Py_InitializeEx`/:c:func:"
102
+ "`Py_FinalizeEx`, e"
84
103
85
104
#: ../../howto/isolating-extensions.rst:42
86
105
msgid ""
87
106
"in parallel, managing \" sub-interpreters\" using :c:func:"
88
107
"`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`."
89
108
msgstr ""
109
+ "em paralelo, gerenciando \" sub-interpretadores\" usando :c:func:"
110
+ "`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`."
90
111
91
112
#: ../../howto/isolating-extensions.rst:45
92
113
msgid ""
@@ -95,6 +116,10 @@ msgid ""
95
116
"about the application that uses them, which include assuming a process-wide "
96
117
"\" main Python interpreter\" ."
97
118
msgstr ""
119
+ "Ambos os casos (e combinações deles) são muito úteis ao embutir o Python em "
120
+ "uma biblioteca. Bibliotecas geralmente não devem fazer suposições sobre a "
121
+ "aplicação que as usa, o que inclui supor um \" interpretador Python "
122
+ "principal\" para o processo inteiro."
98
123
99
124
#: ../../howto/isolating-extensions.rst:50
100
125
msgid ""
@@ -106,17 +131,28 @@ msgid ""
106
131
"introduce edge cases that lead to crashes when a module is loaded in more "
107
132
"than one interpreter in the same process."
108
133
msgstr ""
134
+ "Historicamente, módulos de extensão do Python não lidam bem com este caso de "
135
+ "uso. Muitos módulos de extensão (e até alguns módulos da biblioteca padrão) "
136
+ "usam estado global *por processo*, uma vez que variáveis ``static`` do C são "
137
+ "extremamente fáceis de se usar. Assim, dados que deveriam ser específicos "
138
+ "para um interpretador acabam sendo compartilhados entre interpretadores. A "
139
+ "menos que o desenvolvedor da extensão tenha cuidado, é muito fácil criar "
140
+ "casos particulares que acabam quebrando o processo quando um módulo é "
141
+ "carregado em mais de um interpretador no mesmo processo."
109
142
110
143
#: ../../howto/isolating-extensions.rst:58
111
144
msgid ""
112
145
"Unfortunately, *per-interpreter* state is not easy to achieve. Extension "
113
146
"authors tend to not keep multiple interpreters in mind when developing, and "
114
147
"it is currently cumbersome to test the behavior."
115
148
msgstr ""
149
+ "Infelizmente, não é fácil fazer o estado por interpretador. Autores de "
150
+ "extensões tendem a não ter múltiplos interpretadores em mente ao "
151
+ "desenvolver, e no momento é complicado testar este comportamento."
116
152
117
153
#: ../../howto/isolating-extensions.rst:63
118
154
msgid "Enter Per-Module State"
119
- msgstr ""
155
+ msgstr "Entra o estado por módulo "
120
156
121
157
#: ../../howto/isolating-extensions.rst:65
122
158
msgid ""
@@ -127,6 +163,13 @@ msgid ""
127
163
"multiple module objects corresponding to a single extension can even be "
128
164
"loaded in a single interpreter."
129
165
msgstr ""
166
+ "Ao invés de focar no estado por interpretador, a API C do Python está "
167
+ "evoluindo para melhor suportar o estado *por módulo*, que é mais granular. "
168
+ "Isso significa que dados a nível do C devem estar atrelados a um *objeto de "
169
+ "módulo*. Cada interpretador cria o seu próprio objeto de módulo, garantindo "
170
+ "assim a separação dos dados. Para testar o isolamento, múltiplos objetos de "
171
+ "módulo correspondentes a uma única extensão podem até ser carregados em um "
172
+ "único interpretador."
130
173
131
174
#: ../../howto/isolating-extensions.rst:72
132
175
msgid ""
@@ -136,6 +179,11 @@ msgid ""
136
179
"any other :c:expr:`PyObject *`; there are no \" on interpreter shutdown\" "
137
180
"hooks to think—or forget—about."
138
181
msgstr ""
182
+ "O estado por módulo fornece um modo fácil de pensar sobre tempos de vida e "
183
+ "posse de recursos: o módulo de extensão será inicializado quando um objeto "
184
+ "de módulo for criado, e limpado quando ele for liberado. Nesse sentido, um "
185
+ "módulo funciona como qualquer outro :c:expr:`PyObject *`; não há ganchos "
186
+ "\" de desligamento do interpretador\" a serem considerados—ou esquecidos."
139
187
140
188
#: ../../howto/isolating-extensions.rst:78
141
189
msgid ""
@@ -145,17 +193,26 @@ msgid ""
145
193
"exceptional cases: if you need them, you should give them additional care "
146
194
"and testing. (Note that this guide does not cover them.)"
147
195
msgstr ""
196
+ "Note que há casos de uso para diferentes tipos de \" objetos globais\" : "
197
+ "estado por processo, por interpretador, por thread, ou por tarefa. Com o "
198
+ "estado por módulo como padrão, as outras formas ainda são possíveis, mas "
199
+ "devem ser tratadas como casos excepcionais: se você precisar delas, você "
200
+ "deve tomar cuidados adicionais e escrever mais testes. (Note que este guia "
201
+ "não cobre tais medidas.)"
148
202
149
203
#: ../../howto/isolating-extensions.rst:87
150
204
msgid "Isolated Module Objects"
151
- msgstr ""
205
+ msgstr "Objetos de módulo isolados "
152
206
153
207
#: ../../howto/isolating-extensions.rst:89
154
208
msgid ""
155
209
"The key point to keep in mind when developing an extension module is that "
156
210
"several module objects can be created from a single shared library. For "
157
211
"example:"
158
212
msgstr ""
213
+ "O ponto chave de se manter em mente ao desenvolver um módulo de extensão é "
214
+ "que vários objetos de módulo podem ser criados a partir de uma única "
215
+ "biblioteca compartilhada. Por exemplo:"
159
216
160
217
#: ../../howto/isolating-extensions.rst:103
161
218
msgid ""
@@ -166,17 +223,27 @@ msgid ""
166
223
"are possible (see `Managing Global State`_), but they will need more thought "
167
224
"and attention to edge cases."
168
225
msgstr ""
226
+ "Como regra geral, os dois módulos devem ser completamente independentes. "
227
+ "Todos os objetos e o estado específicos do módulo devem ser encapsulados no "
228
+ "objeto de módulo, não devem ser compartilhados com outros objetos de módulo, "
229
+ "e devem ser limpados quando o objeto de módulo for desalocado. Uma vez que "
230
+ "esta é somente uma regra geral, exceções são possíveis (veja `Gerenciando "
231
+ "Estado Global`_), mas elas necessitam mais cuidado e atenção a casos "
232
+ "especiais."
169
233
170
234
#: ../../howto/isolating-extensions.rst:111
171
235
msgid ""
172
236
"While some modules could do with less stringent restrictions, isolated "
173
237
"modules make it easier to set clear expectations and guidelines that work "
174
238
"across a variety of use cases."
175
239
msgstr ""
240
+ "Enquanto alguns módulos funcionariam bem com restrições menos rigorosas, "
241
+ "isolar os módulos torna mais fácil definir expectativas claras e diretrizes "
242
+ "que dão certo em uma variedade de casos de uso."
176
243
177
244
#: ../../howto/isolating-extensions.rst:117
178
245
msgid "Surprising Edge Cases"
179
- msgstr ""
246
+ msgstr "Casos particulares surpreendentes "
180
247
181
248
#: ../../howto/isolating-extensions.rst:119
182
249
msgid ""
@@ -206,7 +273,7 @@ msgstr ""
206
273
207
274
#: ../../howto/isolating-extensions.rst:152
208
275
msgid "Managing Global State"
209
- msgstr ""
276
+ msgstr "Gerenciando Estado Global "
210
277
211
278
#: ../../howto/isolating-extensions.rst:154
212
279
msgid ""
0 commit comments