Skip to content

Commit 2b8e177

Browse files
authored
Merge branch '3.12' into traduccion-zlib
2 parents 3b70c93 + 97502d7 commit 2b8e177

File tree

2 files changed

+70
-144
lines changed

2 files changed

+70
-144
lines changed

howto/perf_profiling.po

Lines changed: 64 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,33 @@
44
# package.
55
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
66
#
7-
#, fuzzy
87
msgid ""
98
msgstr ""
109
"Project-Id-Version: Python en Español 3.12\n"
1110
"Report-Msgid-Bugs-To: \n"
1211
"POT-Creation-Date: 2023-10-12 19:43+0200\n"
13-
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14-
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
15-
"Language: es\n"
12+
"PO-Revision-Date: 2023-11-13 17:54-0300\n"
13+
"Last-Translator: Alfonso Areiza Guerra <alfareiza@gmail.com>\n"
1614
"Language-Team: es <LL@li.org>\n"
17-
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
15+
"Language: es\n"
1816
"MIME-Version: 1.0\n"
1917
"Content-Type: text/plain; charset=utf-8\n"
2018
"Content-Transfer-Encoding: 8bit\n"
19+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
2120
"Generated-By: Babel 2.13.0\n"
21+
"X-Generator: Poedit 3.4\n"
2222

2323
#: ../Doc/howto/perf_profiling.rst:7
2424
msgid "Python support for the Linux ``perf`` profiler"
25-
msgstr ""
25+
msgstr "Soporte de Python para el perfilador ``perf`` de Linux"
2626

2727
#: ../Doc/howto/perf_profiling.rst
2828
msgid "author"
29-
msgstr ""
29+
msgstr "autor"
3030

3131
#: ../Doc/howto/perf_profiling.rst:9
3232
msgid "Pablo Galindo"
33-
msgstr ""
33+
msgstr "Pablo Galindo"
3434

3535
#: ../Doc/howto/perf_profiling.rst:11
3636
msgid ""
@@ -39,6 +39,11 @@ msgid ""
3939
"of your application. ``perf`` also has a very vibrant ecosystem of tools "
4040
"that aid with the analysis of the data that it produces."
4141
msgstr ""
42+
"`El perfilador perf de Linux <https://perf.wiki.kernel.org>`_ es una "
43+
"herramienta muy poderosa que le permite crear perfiles y obtener información "
44+
"sobre el rendimiento de su aplicación. ``perf`` también tiene un ecosistema "
45+
"muy vibrante de herramientas que ayudan con el análisis de los datos que "
46+
"produce."
4247

4348
#: ../Doc/howto/perf_profiling.rst:17
4449
msgid ""
@@ -48,6 +53,11 @@ msgid ""
4853
"and file names of Python functions in your code will not appear in the "
4954
"output of ``perf``."
5055
msgstr ""
56+
"El principal problema con el uso del perfilador ``perf`` con aplicaciones "
57+
"Python es que ``perf`` sólo obtiene información sobre símbolos nativos, es "
58+
"decir, los nombres de funciones y procedimientos escritos en C. Esto "
59+
"significa que los nombres y nombres de archivos de las funciones de Python "
60+
"en su código no aparecerán en la salida de ``perf``."
5161

5262
#: ../Doc/howto/perf_profiling.rst:22
5363
msgid ""
@@ -58,6 +68,13 @@ msgid ""
5868
"will teach ``perf`` the relationship between this piece of code and the "
5969
"associated Python function using :doc:`perf map files <../c-api/perfmaps>`."
6070
msgstr ""
71+
"Desde Python 3.12, el intérprete puede ejecutarse en un modo especial que "
72+
"permite que las funciones de Python aparezcan en la salida del perfilador "
73+
"``perf``. Cuando este modo está habilitado, el intérprete interpondrá un "
74+
"pequeño fragmento de código compilado sobre la marcha antes de la ejecución "
75+
"de cada función de Python y enseñará a ``perf`` la relación entre este "
76+
"fragmento de código y la función de Python asociada usando :doc:`perf map "
77+
"files <../c-api/perfmaps>`."
6178

6279
#: ../Doc/howto/perf_profiling.rst:31
6380
msgid ""
@@ -66,18 +83,24 @@ msgid ""
6683
"check the output of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` to "
6784
"see if your system is supported."
6885
msgstr ""
86+
"Actualmente, el soporte para el perfilador ``perf`` solo está disponible "
87+
"para Linux en arquitecturas seleccionadas. Verifique el resultado del paso "
88+
"de compilación ``configure`` o verifique el resultado de ``python -m "
89+
"sysconfig | grep HAVE_PERF_TRAMPOLINE`` para ver si su sistema es compatible."
6990

7091
#: ../Doc/howto/perf_profiling.rst:36
7192
msgid "For example, consider the following script:"
72-
msgstr ""
93+
msgstr "Por ejemplo, considere el siguiente script:"
7394

7495
#: ../Doc/howto/perf_profiling.rst:55
7596
msgid "We can run ``perf`` to sample CPU stack traces at 9999 hertz::"
7697
msgstr ""
98+
"Podemos ejecutar ``perf`` para obtener un registro de los seguimientos de la "
99+
"pila de CPU a 9999 hercios::"
77100

78101
#: ../Doc/howto/perf_profiling.rst:59
79102
msgid "Then we can use ``perf report`` to analyze the data:"
80-
msgstr ""
103+
msgstr "Luego podemos usar ``perf report`` para analizar los datos:"
81104

82105
#: ../Doc/howto/perf_profiling.rst:100
83106
msgid ""
@@ -87,15 +110,23 @@ msgid ""
87110
"functions use the same C function to evaluate bytecode so we cannot know "
88111
"which Python function corresponds to which bytecode-evaluating function."
89112
msgstr ""
113+
"Como puede ver, las funciones de Python no se muestran en la salida, solo "
114+
"aparece ``_Py_Eval_EvalFrameDefault`` (la función que evalúa el código de "
115+
"bytes de Python). Desafortunadamente, eso no es muy útil porque todas las "
116+
"funciones de Python usan la misma función de C para evaluar el código de "
117+
"bytes, por lo que no podemos saber qué función de Python corresponde a qué "
118+
"función de evaluación de código de bytes."
90119

91120
#: ../Doc/howto/perf_profiling.rst:105
92121
msgid ""
93122
"Instead, if we run the same experiment with ``perf`` support enabled we get:"
94123
msgstr ""
124+
"En cambio, si ejecutamos el mismo experimento con el soporte ``perf`` "
125+
"habilitado obtenemos:"
95126

96127
#: ../Doc/howto/perf_profiling.rst:152
97128
msgid "How to enable ``perf`` profiling support"
98-
msgstr ""
129+
msgstr "Cómo habilitar el soporte de creación de perfiles ``perf``"
99130

100131
#: ../Doc/howto/perf_profiling.rst:154
101132
msgid ""
@@ -104,32 +135,38 @@ msgid ""
104135
"X>` option, or dynamically using :func:`sys.activate_stack_trampoline` and :"
105136
"func:`sys.deactivate_stack_trampoline`."
106137
msgstr ""
138+
"El soporte de creación de perfiles ``perf`` se puede habilitar desde el "
139+
"principio usando la variable de entorno :envvar:`PYTHONPERFSUPPORT` o la "
140+
"opción :option:`-X perf <-X>`, o dinámicamente usando :func:`sys."
141+
"activate_stack_trampoline` y :func:`sys.deactivate_stack_trampoline`."
107142

108143
#: ../Doc/howto/perf_profiling.rst:160
109144
msgid ""
110145
"The :mod:`!sys` functions take precedence over the :option:`!-X` option, "
111146
"the :option:`!-X` option takes precedence over the environment variable."
112147
msgstr ""
148+
"Las funciones :mod:`!sys` tienen prioridad sobre la opción :option:`!-X`, la "
149+
"opción :option:`!-X` tiene prioridad sobre la variable de entorno."
113150

114151
#: ../Doc/howto/perf_profiling.rst:163
115152
msgid "Example, using the environment variable::"
116-
msgstr ""
153+
msgstr "Ejemplo, usando la variable de entorno::"
117154

118155
#: ../Doc/howto/perf_profiling.rst:169
119156
msgid "Example, using the :option:`!-X` option::"
120-
msgstr ""
157+
msgstr "Ejemplo, usando la opción :option:`!-X`::"
121158

122159
#: ../Doc/howto/perf_profiling.rst:174
123160
msgid "Example, using the :mod:`sys` APIs in file :file:`example.py`:"
124-
msgstr ""
161+
msgstr "Ejemplo, usando las API :mod:`sys` en el archivo :file:`example.py`:"
125162

126163
#: ../Doc/howto/perf_profiling.rst:186
127164
msgid "...then::"
128-
msgstr ""
165+
msgstr "...entonces::"
129166

130167
#: ../Doc/howto/perf_profiling.rst:193
131168
msgid "How to obtain the best results"
132-
msgstr ""
169+
msgstr "Cómo obtener los mejores resultados"
133170

134171
#: ../Doc/howto/perf_profiling.rst:195
135172
msgid ""
@@ -140,15 +177,26 @@ msgid ""
140177
"dynamically generated it doesn't have any DWARF debugging information "
141178
"available."
142179
msgstr ""
180+
"Para obtener mejores resultados, Python debe compilarse con ``CFLAGS=\"-fno-"
181+
"omit-frame-pointer -mno-omit-leaf-frame-pointer\"`` ya que esto permite a "
182+
"los perfiladores desenrollarse usando solo el puntero del marco y no en la "
183+
"información de depuración de DWARF. Esto se debe a que como el código que se "
184+
"interpone para permitir el soporte ``perf`` se genera dinámicamente, no "
185+
"tiene ninguna información de depuración DWARF disponible."
143186

144187
#: ../Doc/howto/perf_profiling.rst:202
145188
msgid ""
146189
"You can check if your system has been compiled with this flag by running::"
147190
msgstr ""
191+
"Puede verificar si su sistema ha sido compilado con este indicador "
192+
"ejecutando::"
148193

149194
#: ../Doc/howto/perf_profiling.rst:206
150195
msgid ""
151196
"If you don't see any output it means that your interpreter has not been "
152197
"compiled with frame pointers and therefore it may not be able to show Python "
153198
"functions in the output of ``perf``."
154199
msgstr ""
200+
"Si no ve ningún resultado, significa que su intérprete no ha sido compilado "
201+
"con punteros de marco y, por lo tanto, es posible que no pueda mostrar "
202+
"funciones de Python en el resultado de ``perf``."

library/zipapp.po

Lines changed: 6 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,6 @@ msgstr ""
370370
"archivador modificado, utilizando la función :func:`create_archive`::"
371371

372372
#: ../Doc/library/zipapp.rst:218
373-
#, fuzzy
374373
msgid ""
375374
"To update the file in place, do the replacement in memory using a :class:"
376375
"`~io.BytesIO` object, and then overwrite the source afterwards. Note that "
@@ -380,11 +379,11 @@ msgid ""
380379
"if the archive fits in memory::"
381380
msgstr ""
382381
"Para actualizar el archivo en el lugar, reemplaza en memoria utilizando un "
383-
"objeto :class:`BytesIO`, y luego sobreescribe el origen (*source*). Nótese "
384-
"que hay un riesgo al sobreescribir un archivo en el lugar, ya que un error "
385-
"resultará en la pérdida del archivo original. Este código no ofrece "
386-
"protección contra este tipo de errores, sino que el código de producción "
387-
"debería hacerlo. Además, este método solamente funcionará si el archivador "
382+
"objeto :class:`~io.BytesIO`, y luego sobreescribe el origen (*source*). "
383+
"Nótese que hay un riesgo al sobreescribir un archivo en el lugar, ya que un "
384+
"error resultará en la pérdida del archivo original. Este código no ofrece "
385+
"protección contra este tipo de errores, pero los códigos de producción "
386+
"deberían hacerlo. Además, este método solamente funcionará si el archivador "
388387
"cabe en la memoria::"
389388

390389
#: ../Doc/library/zipapp.rst:236
@@ -642,125 +641,4 @@ msgstr ""
642641

643642
#: ../Doc/library/zipapp.rst:11
644643
msgid "Executable Zip Files"
645-
msgstr ""
646-
647-
#~ msgid ""
648-
#~ "Optionally, delete the ``.dist-info`` directories created by pip in the "
649-
#~ "``myapp`` directory. These hold metadata for pip to manage the packages, "
650-
#~ "and as you won't be making any further use of pip they aren't required - "
651-
#~ "although it won't do any harm if you leave them."
652-
#~ msgstr ""
653-
#~ "Opcionalmente, borra los directorios ``.dist-info`` creados por pip en el "
654-
#~ "directorio ``myapp``. Éstos tienen metadatos para que pip gestione los "
655-
#~ "paquetes, y como ya no se utilizará pip, no hace falta que permanezcan "
656-
#~ "(aunque no causará ningún problema si los dejas)."
657-
658-
#~ msgid "Making a Windows executable"
659-
#~ msgstr "Hacer un ejecutable para Windows"
660-
661-
#~ msgid ""
662-
#~ "On Windows, registration of the ``.pyz`` extension is optional, and "
663-
#~ "furthermore, there are certain places that don't recognise registered "
664-
#~ "extensions \"transparently\" (the simplest example is that ``subprocess."
665-
#~ "run(['myapp'])`` won't find your application - you need to explicitly "
666-
#~ "specify the extension)."
667-
#~ msgstr ""
668-
#~ "En Windows, registrar la extensión ``.pyz`` es opcional, y además hay "
669-
#~ "ciertos sitios que no reconocen las extensiones registradas de manera "
670-
#~ "\"transparente\" (el ejemplo más simple es que ``subprocess."
671-
#~ "run(['myapp'])`` no va a encontrar la aplicación, es necesario "
672-
#~ "especificar explícitamente la extensión)."
673-
674-
#~ msgid ""
675-
#~ "On Windows, therefore, it is often preferable to create an executable "
676-
#~ "from the zipapp. This is relatively easy, although it does require a C "
677-
#~ "compiler. The basic approach relies on the fact that zipfiles can have "
678-
#~ "arbitrary data prepended, and Windows exe files can have arbitrary data "
679-
#~ "appended. So by creating a suitable launcher and tacking the ``.pyz`` "
680-
#~ "file onto the end of it, you end up with a single-file executable that "
681-
#~ "runs your application."
682-
#~ msgstr ""
683-
#~ "Por lo tanto, en Windows, suele ser preferible crear un ejecutable a "
684-
#~ "partir del zipapp. Esto es relativamente fácil, aunque requiere un "
685-
#~ "compilador de C. La estrategia básica se basa en que los archivos zip "
686-
#~ "pueden tener datos arbitrarios antepuestos, y los archivos exe de Windows "
687-
#~ "pueden tener datos arbitrarios agregados. Entonces, si se crea un "
688-
#~ "lanzador adecuado mudando el archivo ``.pyz`` al final del mismo, se "
689-
#~ "obtiene un solo archivo ejecutable que corre la aplicación."
690-
691-
#~ msgid "A suitable launcher can be as simple as the following::"
692-
#~ msgstr "Un lanzador adecuado puede ser así de simple::"
693-
694-
#~ msgid ""
695-
#~ "If you define the ``WINDOWS`` preprocessor symbol, this will generate a "
696-
#~ "GUI executable, and without it, a console executable."
697-
#~ msgstr ""
698-
#~ "Si se define el símbolo de preprocesador ``WINDOWS``, se generará una GUI "
699-
#~ "(interfaz gráfica de usuario) ejecutable, y sin este símbolo, un "
700-
#~ "ejecutable de consola."
701-
702-
#~ msgid ""
703-
#~ "To compile the executable, you can either just use the standard MSVC "
704-
#~ "command line tools, or you can take advantage of the fact that distutils "
705-
#~ "knows how to compile Python source::"
706-
#~ msgstr ""
707-
#~ "Para compilar el ejecutable, se puede usar únicamente la línea de comando "
708-
#~ "estándar MSVC, o se puede aprovechar la ventaja de que distutils sabe "
709-
#~ "cómo compilar código fuente Python::"
710-
711-
#~ msgid ""
712-
#~ "The resulting launcher uses the \"Limited ABI\", so it will run unchanged "
713-
#~ "with any version of Python 3.x. All it needs is for Python (``python3."
714-
#~ "dll``) to be on the user's ``PATH``."
715-
#~ msgstr ""
716-
#~ "El lanzador resultante utiliza \"Limited ABI\", así que correrá sin "
717-
#~ "cambios con cualquier versión de Python 3.x. Todo lo que necesita es que "
718-
#~ "Python (``python3.dll``) esté en el ``PATH`` del usuario."
719-
720-
#~ msgid ""
721-
#~ "For a fully standalone distribution, you can distribute the launcher with "
722-
#~ "your application appended, bundled with the Python \"embedded\" "
723-
#~ "distribution. This will run on any PC with the appropriate architecture "
724-
#~ "(32 bit or 64 bit)."
725-
#~ msgstr ""
726-
#~ "Para una distribución completamente independiente, se puede distribuir el "
727-
#~ "lanzador con la aplicación incluida, empaquetada con la distribución "
728-
#~ "\"*embedded*\" de Python. Va a funcionar en cualquier PC con la "
729-
#~ "arquitectura adecuada (32 o 64 bits)."
730-
731-
#~ msgid ""
732-
#~ "There are some limitations to the process of bundling your application "
733-
#~ "into a single file. In most, if not all, cases they can be addressed "
734-
#~ "without needing major changes to your application."
735-
#~ msgstr ""
736-
#~ "Hay algunas limitaciones para empaquetar la aplicación en un solo "
737-
#~ "archivo. In la mayoría, si no en todos los casos, se pueden abordar sin "
738-
#~ "que haga falta ningún cambio importante en la aplicación."
739-
740-
#~ msgid ""
741-
#~ "If you are shipping a Windows executable as described above, you either "
742-
#~ "need to ensure that your users have ``python3.dll`` on their PATH (which "
743-
#~ "is not the default behaviour of the installer) or you should bundle your "
744-
#~ "application with the embedded distribution."
745-
#~ msgstr ""
746-
#~ "Al distribuir ejecutables Windows tal como se describe más arriba, hay "
747-
#~ "que asegurarse de que los usuarios tienen ``python3.dll`` en su PATH (lo "
748-
#~ "cual no es una opción por defecto en el instalador), o bien empaquetar la "
749-
#~ "aplicación con la distribución *embedded*."
750-
751-
#~ msgid ""
752-
#~ "The suggested launcher above uses the Python embedding API. This means "
753-
#~ "that in your application, ``sys.executable`` will be your application, "
754-
#~ "and *not* a conventional Python interpreter. Your code and its "
755-
#~ "dependencies need to be prepared for this possibility. For example, if "
756-
#~ "your application uses the :mod:`multiprocessing` module, it will need to "
757-
#~ "call :func:`multiprocessing.set_executable` to let the module know where "
758-
#~ "to find the standard Python interpreter."
759-
#~ msgstr ""
760-
#~ "El lanzador que se sugiere más arriba, utiliza la API de incrustación de "
761-
#~ "Python (*Python embedding API*). Esto significa que ``sys.executable`` "
762-
#~ "será la aplicación, y *no* el intérprete Python convencional. El código y "
763-
#~ "sus dependencias deben estar preparados para esta posibilidad. Por "
764-
#~ "ejemplo, si la aplicación utiliza el módulo :mod:`multiprocessing`, "
765-
#~ "necesitará invocar a :func:`multiprocessing.set_executable` para permitir "
766-
#~ "que el módulo sepa dónde encontrar el intérprete Python estándar."
644+
msgstr "Archivos Zip Ejecutables"

0 commit comments

Comments
 (0)