From ecaff9e09e2a19a4aaf476ffaf6ac6ef12ddaff8 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Mon, 25 May 2020 00:46:41 +0200 Subject: [PATCH 1/3] Traducido c-api/init --- c-api/init.po | 1006 ++++++++++++++++++++++++++++++++++++++++++++----- dict | 20 + 2 files changed, 940 insertions(+), 86 deletions(-) diff --git a/c-api/init.po b/c-api/init.po index ad91fc5d24..7867b9273c 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -6,31 +6,35 @@ # Check https://github.com/PyCampES/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-05-25 00:27+0200\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Language: es\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" -msgstr "" +msgstr "Inicialización, Finalización e Hilos" #: ../Doc/c-api/init.rst:10 msgid "See also :ref:`Python Initialization Configuration `." msgstr "" +"Consulte también :ref:`Configuración de inicialización de Python `." #: ../Doc/c-api/init.rst:15 msgid "Before Python Initialization" -msgstr "" +msgstr "Antes de la inicialización de Python" #: ../Doc/c-api/init.rst:17 msgid "" @@ -39,131 +43,137 @@ msgid "" "exception of a few functions and the :ref:`global configuration variables " "`." msgstr "" +"En una aplicación que incorpora Python, se debe llamar a la función :c:func:" +"`Py_Initialize` antes de usar cualquier otra función de API Python/C; con la " +"excepción de algunas funciones y :ref:`variables de configuración global " +"`." #: ../Doc/c-api/init.rst:22 msgid "" "The following functions can be safely called before Python is initialized:" msgstr "" +"Las siguientes funciones se pueden invocar de forma segura antes de que se " +"inicializa Python:" #: ../Doc/c-api/init.rst:24 msgid "Configuration functions:" -msgstr "" +msgstr "Funciones de configuración:" #: ../Doc/c-api/init.rst:26 msgid ":c:func:`PyImport_AppendInittab`" -msgstr "" +msgstr ":c:func:`PyImport_AppendInittab`" #: ../Doc/c-api/init.rst:27 msgid ":c:func:`PyImport_ExtendInittab`" -msgstr "" +msgstr ":c:func:`PyImport_ExtendInittab`" #: ../Doc/c-api/init.rst:28 msgid ":c:func:`PyInitFrozenExtensions`" -msgstr "" +msgstr ":c:func:`PyInitFrozenExtensions`" #: ../Doc/c-api/init.rst:29 msgid ":c:func:`PyMem_SetAllocator`" -msgstr "" +msgstr ":c:func:`PyMem_SetAllocator`" #: ../Doc/c-api/init.rst:30 msgid ":c:func:`PyMem_SetupDebugHooks`" -msgstr "" +msgstr ":c:func:`PyMem_SetupDebugHooks`" #: ../Doc/c-api/init.rst:31 msgid ":c:func:`PyObject_SetArenaAllocator`" -msgstr "" +msgstr ":c:func:`PyObject_SetArenaAllocator`" #: ../Doc/c-api/init.rst:32 msgid ":c:func:`Py_SetPath`" -msgstr "" +msgstr ":c:func:`Py_SetPath`" #: ../Doc/c-api/init.rst:33 msgid ":c:func:`Py_SetProgramName`" -msgstr "" +msgstr ":c:func:`Py_SetProgramName`" #: ../Doc/c-api/init.rst:34 msgid ":c:func:`Py_SetPythonHome`" -msgstr "" +msgstr ":c:func:`Py_SetPythonHome`" #: ../Doc/c-api/init.rst:35 msgid ":c:func:`Py_SetStandardStreamEncoding`" -msgstr "" +msgstr ":c:func:`Py_SetStandardStreamEncoding`" #: ../Doc/c-api/init.rst:36 msgid ":c:func:`PySys_AddWarnOption`" -msgstr "" +msgstr ":c:func:`PySys_AddWarnOption`" #: ../Doc/c-api/init.rst:37 msgid ":c:func:`PySys_AddXOption`" -msgstr "" +msgstr ":c:func:`PySys_AddXOption`" #: ../Doc/c-api/init.rst:38 msgid ":c:func:`PySys_ResetWarnOptions`" -msgstr "" +msgstr ":c:func:`PySys_ResetWarnOptions`" #: ../Doc/c-api/init.rst:40 msgid "Informative functions:" -msgstr "" +msgstr "Funciones informativas:" #: ../Doc/c-api/init.rst:42 msgid ":c:func:`Py_IsInitialized`" -msgstr "" +msgstr ":c:func:`Py_IsInitialized`" #: ../Doc/c-api/init.rst:43 msgid ":c:func:`PyMem_GetAllocator`" -msgstr "" +msgstr ":c:func:`PyMem_GetAllocator`" #: ../Doc/c-api/init.rst:44 msgid ":c:func:`PyObject_GetArenaAllocator`" -msgstr "" +msgstr ":c:func:`PyObject_GetArenaAllocator`" #: ../Doc/c-api/init.rst:45 msgid ":c:func:`Py_GetBuildInfo`" -msgstr "" +msgstr ":c:func:`Py_GetBuildInfo`" #: ../Doc/c-api/init.rst:46 msgid ":c:func:`Py_GetCompiler`" -msgstr "" +msgstr ":c:func:`Py_GetCompiler`" #: ../Doc/c-api/init.rst:47 msgid ":c:func:`Py_GetCopyright`" -msgstr "" +msgstr ":c:func:`Py_GetCopyright`" #: ../Doc/c-api/init.rst:48 msgid ":c:func:`Py_GetPlatform`" -msgstr "" +msgstr ":c:func:`Py_GetPlatform`" #: ../Doc/c-api/init.rst:49 msgid ":c:func:`Py_GetVersion`" -msgstr "" +msgstr ":c:func:`Py_GetVersion`" #: ../Doc/c-api/init.rst:51 msgid "Utilities:" -msgstr "" +msgstr "Utilidades:" #: ../Doc/c-api/init.rst:53 msgid ":c:func:`Py_DecodeLocale`" -msgstr "" +msgstr ":c:func:`Py_DecodeLocale`" #: ../Doc/c-api/init.rst:55 msgid "Memory allocators:" -msgstr "" +msgstr "Asignadores de memoria:" #: ../Doc/c-api/init.rst:57 msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawMalloc`" #: ../Doc/c-api/init.rst:58 msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawRealloc`" #: ../Doc/c-api/init.rst:59 msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`" #: ../Doc/c-api/init.rst:60 msgid ":c:func:`PyMem_RawFree`" -msgstr "" +msgstr ":c:func:`PyMem_RawFree`" #: ../Doc/c-api/init.rst:64 msgid "" @@ -173,10 +183,15 @@ msgid "" "`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:" "`Py_GetProgramName` and :c:func:`PyEval_InitThreads`." msgstr "" +"Las siguientes funciones **no deben llamarse** antes de :c:func:" +"`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" +"`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:func:" +"`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome`, :c:func:" +"`Py_GetProgramName` y :c:func:`PyEval_InitThreads`." #: ../Doc/c-api/init.rst:74 msgid "Global configuration variables" -msgstr "" +msgstr "Variables de configuración global" #: ../Doc/c-api/init.rst:76 msgid "" @@ -184,6 +199,10 @@ msgid "" "features and options. By default, these flags are controlled by :ref:" "`command line options `." msgstr "" +"Python tiene variables para la configuración global para controlar " +"diferentes características y opciones. De forma predeterminada, estos " +"indicadores están controlados por :ref:`opciones de línea de comando `." #: ../Doc/c-api/init.rst:80 msgid "" @@ -192,6 +211,10 @@ msgid "" "`Py_BytesWarningFlag` to 1 and ``-bb`` sets :c:data:`Py_BytesWarningFlag` to " "2." msgstr "" +"Cuando una opción establece un indicador, el valor del indicador es la " +"cantidad de veces que se configuró la opción. Por ejemplo, ``-b`` establece :" +"c:data:`Py_BytesWarningFlag` en 1 y ``-bb`` establece :c:data:" +"`Py_BytesWarningFlag` en 2." #: ../Doc/c-api/init.rst:86 msgid "" @@ -199,66 +222,87 @@ msgid "" "class:`str` or :class:`bytes` with :class:`int`. Issue an error if greater " "or equal to ``2``." msgstr "" +"Emite una advertencia al comparar :class:`bytes` o :class:`bytearray` con :" +"class:`str` o :class:`bytes` con :class:`int`. Emite un error si es mayor o " +"igual a ``2``." #: ../Doc/c-api/init.rst:90 msgid "Set by the :option:`-b` option." -msgstr "" +msgstr "Establecido por la opción :option:`-b`." #: ../Doc/c-api/init.rst:94 msgid "" "Turn on parser debugging output (for expert only, depending on compilation " "options)." msgstr "" +"Activa la salida de depuración del analizador (solo para expertos, según las " +"opciones de compilación)." #: ../Doc/c-api/init.rst:97 msgid "" "Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " "variable." msgstr "" +"Establecido por la opción :option:`-d` y la variable de entorno :envvar:" +"`PYTHONDEBUG`." #: ../Doc/c-api/init.rst:102 msgid "" "If set to non-zero, Python won't try to write ``.pyc`` files on the import " "of source modules." msgstr "" +"Si se establece en un valor distinto de cero, Python no intentará escribir " +"archivos ``.pyc`` en la importación de módulos fuente." #: ../Doc/c-api/init.rst:105 msgid "" "Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " "environment variable." msgstr "" +"Establecido por la opción :option:`-B` y la variable de entorno :envvar:" +"`PYTHONDONTWRITEBYTECODE`." #: ../Doc/c-api/init.rst:110 msgid "" "Suppress error messages when calculating the module search path in :c:func:" "`Py_GetPath`." msgstr "" +"Suprime los mensajes de error al calcular la ruta de búsqueda del módulo en :" +"c:func:`Py_GetPath`." #: ../Doc/c-api/init.rst:113 msgid "Private flag used by ``_freeze_importlib`` and ``frozenmain`` programs." msgstr "" +"Indicador privado utilizado por los programas ``_freeze_importlib`` y " +"``frozenmain``." #: ../Doc/c-api/init.rst:117 msgid "" "Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " "a non-empty string." msgstr "" +"Se establece en ``1`` si la variable de entorno :envvar:`PYTHONHASHSEED` se " +"establece en una cadena de caracteres no vacía." #: ../Doc/c-api/init.rst:120 msgid "" "If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " "variable to initialize the secret hash seed." msgstr "" +"Si el indicador no es cero, lea la variable de entorno :envvar:" +"`PYTHONHASHSEED` para inicializar la semilla de *hash* secreta." #: ../Doc/c-api/init.rst:125 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." msgstr "" +"Ignorar todas las variables de entorno :envvar:`PYTHON *`, por ejemplo :" +"envvar:`PYTHONPATH` y :envvar:`PYTHONHOME`, eso podría establecerse." #: ../Doc/c-api/init.rst:128 msgid "Set by the :option:`-E` and :option:`-I` options." -msgstr "" +msgstr "Establecido por las opciones :option:`-E` y :option:`-I`." #: ../Doc/c-api/init.rst:132 msgid "" @@ -266,62 +310,81 @@ msgid "" "used, enter interactive mode after executing the script or the command, even " "when :data:`sys.stdin` does not appear to be a terminal." msgstr "" +"Cuando se pasa una secuencia de comandos como primer argumento o se usa la " +"opción :option:`-c`, ingresa al modo interactivo después de ejecutar la " +"secuencia de comandos o el comando, incluso cuando :data:`sys.stdin` no " +"parece ser un terminal." #: ../Doc/c-api/init.rst:136 msgid "" "Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " "variable." msgstr "" +"Establecido por la opción :option:`-i` y la variable de entorno :envvar:" +"`PYTHONINSPECT`." #: ../Doc/c-api/init.rst:141 msgid "Set by the :option:`-i` option." -msgstr "" +msgstr "Establecido por la opción :option:`-i`." #: ../Doc/c-api/init.rst:145 msgid "" "Run Python in isolated mode. In isolated mode :data:`sys.path` contains " "neither the script's directory nor the user's site-packages directory." msgstr "" +"Ejecuta Python en modo aislado. En modo aislado :data:`sys.path` no contiene " +"ni el directorio del script ni el directorio de paquetes del sitio del " +"usuario (*site-pacages*)." #: ../Doc/c-api/init.rst:148 msgid "Set by the :option:`-I` option." -msgstr "" +msgstr "Establecido por la opción :option:`-I`." #: ../Doc/c-api/init.rst:154 msgid "" "If the flag is non-zero, use the ``mbcs`` encoding instead of the UTF-8 " "encoding for the filesystem encoding." msgstr "" +"Si el indicador no es cero, use la codificación ``mbcs`` en lugar de la " +"codificación UTF-8 para la codificación del sistema de archivos." #: ../Doc/c-api/init.rst:157 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable is set to a non-empty string." msgstr "" +"Establece en ``1`` si la variable de entorno :envvar:" +"`PYTHONLEGACYWINDOWSFSENCODING` está configurada en una cadena de caracteres " +"no vacía." #: ../Doc/c-api/init.rst:160 msgid "See :pep:`529` for more details." -msgstr "" +msgstr "Ver :pep:`529` para más detalles." #: ../Doc/c-api/init.rst:162 ../Doc/c-api/init.rst:174 msgid ":ref:`Availability `: Windows." -msgstr "" +msgstr ":ref:`Disponibilidad `: Windows." #: ../Doc/c-api/init.rst:166 msgid "" "If the flag is non-zero, use :class:`io.FileIO` instead of :class:" "`WindowsConsoleIO` for :mod:`sys` standard streams." msgstr "" +"Si el indicador no es cero, use :class:`io.FileIO` en lugar de :class:" +"`WindowsConsoleIO` para secuencias estándar :mod:`sys`." #: ../Doc/c-api/init.rst:169 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" +"Establece en ``1`` si la variable de entorno :envvar:" +"`PYTHONLEGACYWINDOWSSTDIO` está configurada en una cadena de caracteres no " +"vacía." #: ../Doc/c-api/init.rst:172 msgid "See :pep:`528` for more details." -msgstr "" +msgstr "Ver :pep:`528` para más detalles." #: ../Doc/c-api/init.rst:178 msgid "" @@ -330,47 +393,61 @@ msgid "" "manipulations if :mod:`site` is explicitly imported later (call :func:`site." "main` if you want them to be triggered)." msgstr "" +"Deshabilita la importación del módulo :mod:`site` y las manipulaciones " +"dependientes del sitio de :data:`sys.path` que conlleva. También deshabilita " +"estas manipulaciones si :mod:`site` se importa explícitamente más tarde " +"(llama a :func:`site.main` si desea que se activen)." #: ../Doc/c-api/init.rst:183 msgid "Set by the :option:`-S` option." -msgstr "" +msgstr "Establecido por la opción :option:`-S`." #: ../Doc/c-api/init.rst:187 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." msgstr "" +"No agregue el :data:`directorio de paquetes de sitio del usuario ` (*site-packages*) a :data:`sys.path`." #: ../Doc/c-api/init.rst:190 msgid "" "Set by the :option:`-s` and :option:`-I` options, and the :envvar:" "`PYTHONNOUSERSITE` environment variable." msgstr "" +"Establecido por las opciones :option:`-s` y :option:`-I`, y la variable de " +"entorno :envvar:`PYTHONNOUSERSITE`." #: ../Doc/c-api/init.rst:195 msgid "" "Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " "variable." msgstr "" +"Establecido por la opción :option:`-O` y la variable de entorno :envvar:" +"`PYTHONOPTIMIZE`." #: ../Doc/c-api/init.rst:200 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "" +"No muestre los mensajes de *copyright* y de versión incluso en modo " +"interactivo." #: ../Doc/c-api/init.rst:202 msgid "Set by the :option:`-q` option." -msgstr "" +msgstr "Establecido por la opción :option:`-q`." #: ../Doc/c-api/init.rst:208 msgid "Force the stdout and stderr streams to be unbuffered." -msgstr "" +msgstr "Obliga a las secuencias *stdout* y *stderr* a que no tengan búfer." #: ../Doc/c-api/init.rst:210 msgid "" "Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " "environment variable." msgstr "" +"Establecido por la opción :option:`-u` y la variable de entorno :envvar:" +"`PYTHONUNBUFFERED`." #: ../Doc/c-api/init.rst:215 msgid "" @@ -379,16 +456,23 @@ msgid "" "to ``2``, print a message for each file that is checked for when searching " "for a module. Also provides information on module cleanup at exit." msgstr "" +"Imprime un mensaje cada vez que se inicializa un módulo, mostrando el lugar " +"(nombre de archivo o módulo incorporado) desde el que se carga. Si es mayor " +"o igual a ``2``, imprime un mensaje para cada archivo que se verifica al " +"buscar un módulo. También proporciona información sobre la limpieza del " +"módulo a la salida." #: ../Doc/c-api/init.rst:220 msgid "" "Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " "variable." msgstr "" +"Establecido por la opción :option:`-v` y la variable de entorno :envvar:" +"`PYTHONVERBOSE`." #: ../Doc/c-api/init.rst:225 msgid "Initializing and finalizing the interpreter" -msgstr "" +msgstr "Inicializando y finalizando el intérprete" #: ../Doc/c-api/init.rst:243 msgid "" @@ -396,6 +480,10 @@ msgid "" "this should be called before using any other Python/C API functions; see :" "ref:`Before Python Initialization ` for the few exceptions." msgstr "" +"Inicializa el intérprete de Python. En una aplicación que incorpora Python, " +"se debe llamar antes de usar cualquier otra función de API Python/C; vea :" +"ref:`Antes de la inicialización de Python ` para ver algunas " +"excepciones." #: ../Doc/c-api/init.rst:247 msgid "" @@ -406,12 +494,21 @@ msgid "" "called for a second time (without calling :c:func:`Py_FinalizeEx` first). " "There is no return value; it is a fatal error if the initialization fails." msgstr "" +"Esto inicializa la tabla de módulos cargados (``sys.modules``) y crea los " +"módulos fundamentales :mod:`builtins`, :mod:`__main__` y :mod:`sys`. También " +"inicializa la ruta de búsqueda del módulo (``sys.path``). No establece ``sys." +"argv``; use :c:func:`PySys_SetArgvEx` para eso. Este es un *no-op* cuando se " +"llama por segunda vez (sin llamar primero a :c:func:`Py_FinalizeEx`). No hay " +"valor de retorno; es un error fatal si falla la inicialización." #: ../Doc/c-api/init.rst:256 msgid "" "On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " "will also affect non-Python uses of the console using the C Runtime." msgstr "" +"En Windows, cambia el modo de consola de ``O_TEXT`` a ``O_BINARY``, lo que " +"también afectará los usos de la consola que no sean de Python utilizando C " +"*Runtime*." #: ../Doc/c-api/init.rst:262 msgid "" @@ -419,6 +516,9 @@ msgid "" "*initsigs* is ``0``, it skips initialization registration of signal " "handlers, which might be useful when Python is embedded." msgstr "" +"Esta función funciona como :c:func:`Py_Initialize` si *initsigs* es ``1``. " +"Si *initsigs* es ``0``, omite el registro de inicialización de los " +"manejadores de señal, lo que podría ser útil cuando Python está incrustado." #: ../Doc/c-api/init.rst:269 msgid "" @@ -426,6 +526,10 @@ msgid "" "false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " "false until :c:func:`Py_Initialize` is called again." msgstr "" +"Retorna verdadero (distinto de cero) cuando el intérprete de Python se ha " +"inicializado, falso (cero) si no. Después de que se llama a :c:func:" +"`Py_FinalizeEx`, esto retorna falso hasta que :c:func:`Py_Initialize` se " +"llama de nuevo." #: ../Doc/c-api/init.rst:276 msgid "" @@ -438,6 +542,15 @@ msgid "" "the return value is ``0``. If there were errors during finalization " "(flushing buffered data), ``-1`` is returned." msgstr "" +"Deshace todas las inicializaciones realizadas por :c:func:`Py_Initialize` y " +"el uso posterior de las funciones de Python/C API, y destruye todos los " +"subinterpretes (ver :c:func:`Py_NewInterpreter` a continuación) que se " +"crearon y aún no se destruyeron desde el última llamada a :c:func:" +"`Py_Initialize`. Idealmente, esto libera toda la memoria asignada por el " +"intérprete de Python. Este es un *no-op* cuando se llama por segunda vez " +"(sin llamar a :c:func:`Py_Initialize` nuevamente primero). Normalmente el " +"valor de retorno es ``0``. Si hubo errores durante la finalización (lavado " +"de datos almacenados en el búfer), se retorna ``-1``." #: ../Doc/c-api/init.rst:285 msgid "" @@ -449,6 +562,14 @@ msgid "" "in an application a developer might want to free all memory allocated by " "Python before exiting from the application." msgstr "" +"Esta función se proporciona por varias razones. Una aplicación de " +"incrustación puede querer reiniciar Python sin tener que reiniciar la " +"aplicación misma. Una aplicación que ha cargado el intérprete de Python " +"desde una biblioteca cargable dinámicamente (o DLL) puede querer liberar " +"toda la memoria asignada por Python antes de descargar la DLL. Durante una " +"búsqueda de pérdidas de memoria en una aplicación, un desarrollador puede " +"querer liberar toda la memoria asignada por Python antes de salir de la " +"aplicación." #: ../Doc/c-api/init.rst:293 msgid "" @@ -464,22 +585,38 @@ msgid "" "application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` more " "than once." msgstr "" +"**Errores y advertencias:** La destrucción de módulos y objetos en módulos " +"se realiza en orden aleatorio; esto puede causar que los destructores " +"(métodos :meth:`__del__`) fallen cuando dependen de otros objetos (incluso " +"funciones) o módulos. Los módulos de extensión cargados dinámicamente " +"cargados por Python no se descargan. Es posible que no se liberen pequeñas " +"cantidades de memoria asignadas por el intérprete de Python (si encuentra " +"una fuga, se informa). La memoria atada en referencias circulares entre " +"objetos no se libera. Es posible que parte de la memoria asignada por los " +"módulos de extensión no se libere. Algunas extensiones pueden no funcionar " +"correctamente si su rutina de inicialización se llama más de una vez; Esto " +"puede suceder si una aplicación llama a :c:func:`Py_Initialize` y :c:func:" +"`Py_FinalizeEx` más de una vez." #: ../Doc/c-api/init.rst:305 msgid "" "Raises an :ref:`auditing event ` ``cpython." "_PySys_ClearAuditHooks`` with no arguments." msgstr "" +"Genera un :ref:`evento de auditoría ` ``cpython." +"_PySys_ClearAuditHooks`` sin argumentos." #: ../Doc/c-api/init.rst:310 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." msgstr "" +"Esta es una versión compatible con versiones anteriores de :c:func:" +"`Py_FinalizeEx` que ignora el valor de retorno." #: ../Doc/c-api/init.rst:315 msgid "Process-wide parameters" -msgstr "" +msgstr "Parámetros de todo el proceso" #: ../Doc/c-api/init.rst:325 msgid "" @@ -487,36 +624,51 @@ msgid "" "called at all. It specifies which encoding and error handling to use with " "standard IO, with the same meanings as in :func:`str.encode`." msgstr "" +"Esta función debería llamarse antes de :c:func:`Py_Initialize`, si es que se " +"llama. Especifica qué codificación y manejo de errores usar con IO estándar, " +"con los mismos significados que en :func:`str.encode`." #: ../Doc/c-api/init.rst:329 msgid "" "It overrides :envvar:`PYTHONIOENCODING` values, and allows embedding code to " "control IO encoding when the environment variable does not work." msgstr "" +"Reemplaza los valores :envvar:`PYTHONIOENCODING`, y permite incrustar código " +"para controlar la codificación IO cuando la variable de entorno no funciona." #: ../Doc/c-api/init.rst:332 msgid "" "*encoding* and/or *errors* may be ``NULL`` to use :envvar:`PYTHONIOENCODING` " "and/or default values (depending on other settings)." msgstr "" +"*codificación* o *errores* pueden ser ``NULL`` para usar :envvar:" +"`PYTHONIOENCODING` o valores predeterminados (dependiendo de otras " +"configuraciones)." #: ../Doc/c-api/init.rst:336 msgid "" "Note that :data:`sys.stderr` always uses the \"backslashreplace\" error " "handler, regardless of this (or any other) setting." msgstr "" +"Tenga en cuenta que :data:`sys.stderr` siempre usa el controlador de error " +"\"*backslashreplace*\", independientemente de esta configuración (o " +"cualquier otra)." #: ../Doc/c-api/init.rst:339 msgid "" "If :c:func:`Py_FinalizeEx` is called, this function will need to be called " "again in order to affect subsequent calls to :c:func:`Py_Initialize`." msgstr "" +"Si se llama a :c:func:`Py_FinalizeEx`, será necesario volver a llamar a esta " +"función para afectar las llamadas posteriores a :c:func:`Py_Initialize`." #: ../Doc/c-api/init.rst:342 msgid "" "Returns ``0`` if successful, a nonzero value on error (e.g. calling after " "the interpreter has already been initialized)." msgstr "" +"Retorna ``0`` si tiene éxito, un valor distinto de cero en caso de error " +"(por ejemplo, llamar después de que el intérprete ya se haya inicializado)" #: ../Doc/c-api/init.rst:355 msgid "" @@ -531,6 +683,16 @@ msgid "" "execution. No code in the Python interpreter will change the contents of " "this storage." msgstr "" +"Esta función debería llamarse antes :c:func:`Py_Initialize` se llama por " +"primera vez, si es que se llama. Le dice al intérprete el valor del " +"argumento ``argv[0]`` para la función :c:func:`main` del programa " +"(convertido a caracteres anchos). Esto es utilizado por :c:func:`Py_GetPath` " +"y algunas otras funciones a continuación para encontrar las bibliotecas de " +"tiempo de ejecución de Python relativas al ejecutable del intérprete. El " +"valor predeterminado es ``'python'``. El argumento debe apuntar a una cadena " +"de caracteres anchos terminada en cero en almacenamiento estático cuyo " +"contenido no cambiará mientras dure la ejecución del programa. Ningún código " +"en el intérprete de Python cambiará el contenido de este almacenamiento." #: ../Doc/c-api/init.rst:366 ../Doc/c-api/init.rst:480 #: ../Doc/c-api/init.rst:586 ../Doc/c-api/init.rst:613 @@ -539,6 +701,8 @@ msgid "" "Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:" "`wchar_*` string." msgstr "" +"Use :c:func:`Py_DecodeLocale` para decodificar una cadena de bytes para " +"obtener una cadena :c:type:`wchar_ *`." #: ../Doc/c-api/init.rst:374 msgid "" @@ -546,6 +710,9 @@ msgid "" "default. The returned string points into static storage; the caller should " "not modify its value." msgstr "" +"Retorna el nombre del programa establecido con :c:func:`Py_SetProgramName`, " +"o el valor predeterminado. La cadena de caracteres retornada apunta al " +"almacenamiento estático; la persona que llama no debe modificar su valor." #: ../Doc/c-api/init.rst:381 msgid "" @@ -560,6 +727,17 @@ msgid "" "Python code as ``sys.prefix``. It is only useful on Unix. See also the next " "function." msgstr "" +"Retorna el prefijo *prefix* para los archivos instalados independientes de " +"la plataforma. Esto se deriva a través de una serie de reglas complicadas " +"del nombre del programa establecido con :c:func:`Py_SetProgramName` y " +"algunas variables de entorno; por ejemplo, si el nombre del programa es ``'/" +"usr/local/bin/python'``, el prefijo es ``'/usr/local'``. La cadena de " +"caracteres retornada apunta al almacenamiento estático; la persona que llama " +"no debe modificar su valor. Esto corresponde a la variable :makevar:`prefix` " +"en el archivo de nivel superior :file:`Makefile` y el argumento ``--prefix`` " +"al script :program:`configure` en tiempo de compilación. El valor está " +"disponible para el código de Python como ``sys.prefix``. Solo es útil en " +"Unix. Ver también la siguiente función." #: ../Doc/c-api/init.rst:394 msgid "" @@ -574,6 +752,17 @@ msgid "" "value is available to Python code as ``sys.exec_prefix``. It is only useful " "on Unix." msgstr "" +"Retorna el *exec-prefix* para los archivos instalados *dependientes* de la " +"plataforma. Esto se deriva a través de una serie de reglas complicadas del " +"nombre del programa establecido con :c:func:`Py_SetProgramName` y algunas " +"variables de entorno; por ejemplo, si el nombre del programa es ``'/usr/" +"local/bin/python'``, el prefijo `exec` es ``'/usr/local'``. La cadena de " +"caracteres retornada apunta al almacenamiento estático; la persona que llama " +"no debe modificar su valor. Esto corresponde a la variable :makevar:" +"`exec_prefix` en el archivo de nivel superior :file:`Makefile` y el " +"argumento ``--exec-prefix`` al script :program:`configure` en tiempo de " +"compilación. El valor está disponible para el código de Python como ``sys." +"exec_prefix``. Solo es útil en Unix." #: ../Doc/c-api/init.rst:404 msgid "" @@ -583,6 +772,12 @@ msgid "" "files may be installed in the :file:`/usr/local/plat` subtree while platform " "independent may be installed in :file:`/usr/local`." msgstr "" +"Antecedentes: el prefijo *exec* difiere del prefijo cuando los archivos " +"dependientes de la plataforma (como ejecutables y bibliotecas compartidas) " +"se instalan en un árbol de directorios diferente. En una instalación típica, " +"los archivos dependientes de la plataforma pueden instalarse en el subárbol :" +"file:`/usr/local/plat` mientras que la plataforma independiente puede " +"instalarse en :file:`/usr/local`." #: ../Doc/c-api/init.rst:410 msgid "" @@ -597,6 +792,18 @@ msgid "" "Note that compiled Python bytecode files are platform independent (but not " "independent from the Python version by which they were compiled!)." msgstr "" +"En términos generales, una plataforma es una combinación de familias de " +"hardware y software, por ejemplo, las máquinas Sparc que ejecutan el sistema " +"operativo Solaris 2.x se consideran la misma plataforma, pero las máquinas " +"Intel que ejecutan Solaris 2.x son otra plataforma, y las máquinas Intel que " +"ejecutan Linux son otra plataforma más. Las diferentes revisiones " +"importantes del mismo sistema operativo generalmente también forman " +"plataformas diferentes. Los sistemas operativos que no son Unix son una " +"historia diferente; Las estrategias de instalación en esos sistemas son tan " +"diferentes que el prefijo y el prefijo ``exec`` no tienen sentido y se " +"configuran en la cadena vacía. Tenga en cuenta que los archivos de bytecode " +"compilados de Python son independientes de la plataforma (¡pero no " +"independientes de la versión de Python con la que fueron compilados!)." #: ../Doc/c-api/init.rst:421 msgid "" @@ -605,6 +812,10 @@ msgid "" "while having :file:`/usr/local/plat` be a different filesystem for each " "platform." msgstr "" +"Los administradores del sistema sabrán cómo configurar los programas :" +"program:`mount` o :program:`automount` para compartir :file:`/usr/local` " +"entre plataformas mientras que :file:`/usr/local/plat` sea un Sistema de " +"archivos diferente para cada plataforma." #: ../Doc/c-api/init.rst:433 msgid "" @@ -614,6 +825,12 @@ msgid "" "into static storage; the caller should not modify its value. The value is " "available to Python code as ``sys.executable``." msgstr "" +"Retorna el nombre completo del programa del ejecutable de Python; esto se " +"calcula como un efecto secundario de derivar la ruta de búsqueda " +"predeterminada del módulo del nombre del programa (establecido por :c:func:" +"`Py_SetProgramName` arriba). La cadena de caracteres retornada apunta al " +"almacenamiento estático; la persona que llama no debe modificar su valor. El " +"valor está disponible para el código de Python como ``sys.executable``." #: ../Doc/c-api/init.rst:447 msgid "" @@ -627,6 +844,16 @@ msgid "" "startup; it can be (and usually is) modified later to change the search path " "for loading modules." msgstr "" +"Retorna la ruta de búsqueda del módulo predeterminado; esto se calcula a " +"partir del nombre del programa (establecido por :c:func:`Py_SetProgramName` " +"arriba) y algunas variables de entorno. La cadena de caracteres retornada " +"consta de una serie de nombres de directorio separados por un carácter " +"delimitador dependiente de la plataforma. El carácter delimitador es ``':'`` " +"en Unix y Mac OS X, ``';'`` en Windows. La cadena de caracteres retornada " +"apunta al almacenamiento estático; la persona que llama no debe modificar su " +"valor. La lista :data:`sys.path` se inicializa con este valor en el inicio " +"del intérprete; se puede modificar (y generalmente se modifica) más adelante " +"para cambiar la ruta de búsqueda para cargar módulos." #: ../Doc/c-api/init.rst:467 msgid "" @@ -638,6 +865,14 @@ msgid "" "dependent delimiter character, which is ``':'`` on Unix and Mac OS X, " "``';'`` on Windows." msgstr "" +"Establece la ruta de búsqueda del módulo predeterminado. Si se llama a esta " +"función antes de :c:func:`Py_Initialize`, entonces :c:func:`Py_GetPath` no " +"intentará calcular una ruta de búsqueda predeterminada, sino que utilizará " +"la proporcionada en su lugar. Esto es útil si Python está incrustado por una " +"aplicación que tiene pleno conocimiento de la ubicación de todos los " +"módulos. Los componentes de la ruta deben estar separados por el carácter " +"delimitador dependiente de la plataforma, que es ``':'`` en Unix y Mac OS X, " +"``';'`` en Windows." #: ../Doc/c-api/init.rst:475 msgid "" @@ -646,24 +881,35 @@ msgid "" "`sys.exec_prefix` to be empty. It is up to the caller to modify these if " "required after calling :c:func:`Py_Initialize`." msgstr "" +"Esto también hace que :data:`sys.executable` se configure en la ruta " +"completa del programa (consulte :c:func:`Py_GetProgramFullPath`) y para :" +"data:`sys.prefix` y :data:`sys.exec_prefix` a estar vacío. Depende de la " +"persona que llama modificarlos si es necesario después de llamar :c:func:" +"`Py_Initialize`." #: ../Doc/c-api/init.rst:483 msgid "" "The path argument is copied internally, so the caller may free it after the " "call completes." msgstr "" +"El argumento de ruta se copia internamente, por lo que la persona que llama " +"puede liberarlo después de que se complete la llamada." #: ../Doc/c-api/init.rst:486 msgid "" "The program full path is now used for :data:`sys.executable`, instead of the " "program name." msgstr "" +"La ruta completa del programa ahora se usa para :data:`sys.executable`, en " +"lugar del nombre del programa." #: ../Doc/c-api/init.rst:493 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" msgstr "" +"Retorna la versión de este intérprete de Python. Esta es una cadena de " +"caracteres que se parece a ::" #: ../Doc/c-api/init.rst:500 msgid "" @@ -673,6 +919,11 @@ msgid "" "caller should not modify its value. The value is available to Python code " "as :data:`sys.version`." msgstr "" +"La primera palabra (hasta el primer carácter de espacio) es la versión " +"actual de Python; Los primeros tres caracteres son la versión mayor y menor " +"separados por un punto. La cadena de caracteres retornada apunta al " +"almacenamiento estático; la persona que llama no debe modificar su valor. El " +"valor está disponible para el código Python como :data:`sys.version`." #: ../Doc/c-api/init.rst:510 msgid "" @@ -684,28 +935,43 @@ msgid "" "points into static storage; the caller should not modify its value. The " "value is available to Python code as ``sys.platform``." msgstr "" +"Retorna el identificador de plataforma para la plataforma actual. En Unix, " +"esto se forma a partir del nombre \"oficial\" del sistema operativo, " +"convertido a minúsculas, seguido del número de revisión principal; por " +"ejemplo, para Solaris 2.x, que también se conoce como SunOS 5.x, el valor es " +"``'sunos5'``. En Mac OS X, es `` 'darwin'``. En Windows, es ``'win'``. La " +"cadena de caracteres apunta al almacenamiento estático; la persona que llama " +"no debe modificar su valor. El valor está disponible para el código de " +"Python como ``sys.platform``." #: ../Doc/c-api/init.rst:521 msgid "" "Return the official copyright string for the current Python version, for " "example" msgstr "" +"Retorna la cadena de caracteres de copyright oficial para la versión actual " +"de Python, por ejemplo" #: ../Doc/c-api/init.rst:523 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" -msgstr "" +msgstr "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" #: ../Doc/c-api/init.rst:527 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as ``sys.copyright``." msgstr "" +"La cadena de caracteres retornada apunta al almacenamiento estático; la " +"persona que llama no debe modificar su valor. El valor está disponible para " +"el código de Python como ``sys.copyright``." #: ../Doc/c-api/init.rst:533 msgid "" "Return an indication of the compiler used to build the current Python " "version, in square brackets, for example::" msgstr "" +"Retorna una indicación del compilador utilizado para construir la versión " +"actual de Python, entre corchetes, por ejemplo:" #: ../Doc/c-api/init.rst:540 ../Doc/c-api/init.rst:554 msgid "" @@ -713,12 +979,17 @@ msgid "" "its value. The value is available to Python code as part of the variable " "``sys.version``." msgstr "" +"La cadena de caracteres retornada apunta al almacenamiento estático; la " +"persona que llama no debe modificar su valor. El valor está disponible para " +"el código Python como parte de la variable ``sys.version``." #: ../Doc/c-api/init.rst:547 msgid "" "Return information about the sequence number and build date and time of the " "current Python interpreter instance, for example ::" msgstr "" +"Retorna información sobre el número de secuencia y la fecha y hora de " +"compilación de la instancia actual de intérprete de Python, por ejemplo::" #: ../Doc/c-api/init.rst:566 msgid "" @@ -730,6 +1001,13 @@ msgid "" "empty string. If this function fails to initialize :data:`sys.argv`, a " "fatal condition is signalled using :c:func:`Py_FatalError`." msgstr "" +"Establece :data:`sys.argv` basado en *argc* y *argv*. Estos parámetros son " +"similares a los pasados a la función del programa :c:func:`main` con la " +"diferencia de que la primera entrada debe referirse al archivo de script que " +"se ejecutará en lugar del ejecutable que aloja el intérprete de Python. Si " +"no se ejecuta un script, la primera entrada en *argv* puede ser una cadena " +"de caracteres vacía. Si esta función no puede inicializar :data:`sys.argv`, " +"una condición fatal se señala usando :c:func:`Py_FatalError`." #: ../Doc/c-api/init.rst:574 msgid "" @@ -737,6 +1015,9 @@ msgid "" "non-zero, the function also modifies :data:`sys.path` according to the " "following algorithm:" msgstr "" +"Si *updatepath* es cero, esto es todo lo que hace la función. Si " +"*updatepath* no es cero, la función también modifica :data:`sys.path` de " +"acuerdo con el siguiente algoritmo:" #: ../Doc/c-api/init.rst:578 msgid "" @@ -744,6 +1025,9 @@ msgid "" "path of the directory where the script is located is prepended to :data:`sys." "path`." msgstr "" +"Si el nombre de un *script* existente se pasa en ``argv[0]``, la ruta " +"absoluta del directorio donde se encuentra el *script* se antepone a :data:" +"`sys.path`." #: ../Doc/c-api/init.rst:581 msgid "" @@ -751,6 +1035,10 @@ msgid "" "existing file name), an empty string is prepended to :data:`sys.path`, which " "is the same as prepending the current working directory (``\".\"``)." msgstr "" +"De lo contrario (es decir, si *argc* es ``0`` o ``argv[0]`` no apunta a un " +"nombre de archivo existente), una cadena de caracteres vacía se antepone a :" +"data:`sys.path`, que es lo mismo que anteponer el directorio de trabajo " +"actual (``\".\"``)." #: ../Doc/c-api/init.rst:590 msgid "" @@ -759,6 +1047,10 @@ msgid "" "and update :data:`sys.path` themselves if desired. See `CVE-2008-5983 " "`_." msgstr "" +"Se recomienda que las aplicaciones que incorporan el intérprete de Python " +"para otros fines que no sean ejecutar un solo script pasen ``0`` como " +"*updatepath* y actualicen :data:`sys.path` si lo desean. Ver `CVE-2008-5983 " +"` _." #: ../Doc/c-api/init.rst:595 msgid "" @@ -766,6 +1058,9 @@ msgid "" "popping the first :data:`sys.path` element after having called :c:func:" "`PySys_SetArgv`, for example using::" msgstr "" +"En las versiones anteriores a 3.1.3, puede lograr el mismo efecto quitando " +"manualmente (*popping*) el primer elemento :data:`sys.path` después de haber " +"llamado :c:func:`PySys_SetArgv`, por ejemplo usando ::" #: ../Doc/c-api/init.rst:609 msgid "" @@ -773,10 +1068,13 @@ msgid "" "``1`` unless the :program:`python` interpreter was started with the :option:" "`-I`." msgstr "" +"Esta función funciona como :c:func:`PySys_SetArgvEx` con *updatepath* " +"establecido en ``1`` a menos que el intérprete :program:`python` se haya " +"iniciado con la opción :option:`-I`." #: ../Doc/c-api/init.rst:616 msgid "The *updatepath* value depends on :option:`-I`." -msgstr "" +msgstr "El valor *updatepath* depende de la opción :option:`-I`." #: ../Doc/c-api/init.rst:621 msgid "" @@ -784,6 +1082,9 @@ msgid "" "Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " "string." msgstr "" +"Establece el directorio \"inicio\" (*\"home\"*) predeterminado, es decir, la " +"ubicación de las bibliotecas estándar de Python. Ver :envvar:`PYTHONHOME` " +"para el significado de la cadena de caracteres de argumento." #: ../Doc/c-api/init.rst:625 msgid "" @@ -792,6 +1093,10 @@ msgid "" "execution. No code in the Python interpreter will change the contents of " "this storage." msgstr "" +"El argumento debe apuntar a una cadena de caracteres terminada en cero en el " +"almacenamiento estático cuyo contenido no cambiará mientras dure la " +"ejecución del programa. Ningún código en el intérprete de Python cambiará el " +"contenido de este almacenamiento." #: ../Doc/c-api/init.rst:636 msgid "" @@ -799,10 +1104,13 @@ msgid "" "func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " "environment variable if it is set." msgstr "" +"Retorna el \"inicio\" (*home*) predeterminado, es decir, el valor " +"establecido por una llamada anterior a :c:func:`Py_SetPythonHome`, o el " +"valor de la variable de entorno :envvar:`PYTHONHOME` si está configurado." #: ../Doc/c-api/init.rst:644 msgid "Thread State and the Global Interpreter Lock" -msgstr "" +msgstr "Estado del hilo y el bloqueo global del intérprete" #: ../Doc/c-api/init.rst:651 msgid "" @@ -815,6 +1123,15 @@ msgid "" "the same object, the reference count could end up being incremented only " "once instead of twice." msgstr "" +"El intérprete de Python no es completamente seguro para hilos (*thread-" +"safe*). Para admitir programas Python multiproceso, hay un bloqueo global, " +"denominado :term:`global interpreter lock` o :term:`GIL`, que debe mantener " +"el hilo actual antes de que pueda acceder de forma segura a los objetos " +"Python. Sin el bloqueo, incluso las operaciones más simples podrían causar " +"problemas en un programa de hilos múltiples: por ejemplo, cuando dos hilos " +"incrementan simultáneamente el conteo de referencias del mismo objeto, el " +"conteo de referencias podría terminar incrementándose solo una vez en lugar " +"de dos veces." #: ../Doc/c-api/init.rst:661 msgid "" @@ -825,6 +1142,13 @@ msgid "" "released around potentially blocking I/O operations like reading or writing " "a file, so that other Python threads can run in the meantime." msgstr "" +"Por lo tanto, existe la regla de que solo el hilo que ha adquirido :term:" +"`GIL` puede operar en objetos Python o llamar a funciones API Python/C. Para " +"emular la concurrencia de ejecución, el intérprete regularmente intenta " +"cambiar los hilos (ver :func:`sys.setswitchinterval`). El bloqueo también se " +"libera para bloquear potencialmente las operaciones de E/S, como leer o " +"escribir un archivo, para que otros hilos de Python puedan ejecutarse " +"mientras tanto." #: ../Doc/c-api/init.rst:672 msgid "" @@ -833,20 +1157,26 @@ msgid "" "global variable pointing to the current :c:type:`PyThreadState`: it can be " "retrieved using :c:func:`PyThreadState_Get`." msgstr "" +"El intérprete de Python mantiene cierta información de contabilidad " +"específica de hilos dentro de una estructura de datos llamada :c:type:" +"`PyThreadState`. También hay una variable global que apunta a la actual :c:" +"type:`PyThreadState`: se puede recuperar usando :c:func:`PyThreadState_Get`." #: ../Doc/c-api/init.rst:678 msgid "Releasing the GIL from extension code" -msgstr "" +msgstr "Liberando el GIL del código de extensión" #: ../Doc/c-api/init.rst:680 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" msgstr "" +"La mayoría del código de extensión que manipula el :term:`GIL` tiene la " +"siguiente estructura simple ::" #: ../Doc/c-api/init.rst:689 msgid "This is so common that a pair of macros exists to simplify it::" -msgstr "" +msgstr "Esto es tan común que existe un par de macros para simplificarlo:" #: ../Doc/c-api/init.rst:699 msgid "" @@ -854,10 +1184,13 @@ msgid "" "hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " "block." msgstr "" +"La macro :c:macro:`Py_BEGIN_ALLOW_THREADS` abre un nuevo bloque y declara " +"una variable local oculta; la macro :c:macro:`Py_END_ALLOW_THREADS` cierra " +"el bloque." #: ../Doc/c-api/init.rst:703 msgid "The block above expands to the following code::" -msgstr "" +msgstr "El bloque anterior se expande al siguiente código::" #: ../Doc/c-api/init.rst:715 msgid "" @@ -869,6 +1202,14 @@ msgid "" "variable). Conversely, when acquiring the lock and restoring the thread " "state, the lock must be acquired before storing the thread state pointer." msgstr "" +"Así es como funcionan estas funciones: el bloqueo global del intérprete se " +"usa para proteger el puntero al estado actual del hilo. Al liberar el " +"bloqueo y guardar el estado del hilo, el puntero del estado del hilo actual " +"debe recuperarse antes de que se libere el bloqueo (ya que otro hilo podría " +"adquirir inmediatamente el bloqueo y almacenar su propio estado de hilo en " +"la variable global). Por el contrario, al adquirir el bloqueo y restaurar el " +"estado del hilo, el bloqueo debe adquirirse antes de almacenar el puntero " +"del estado del hilo." #: ../Doc/c-api/init.rst:724 msgid "" @@ -879,10 +1220,16 @@ msgid "" "standard :mod:`zlib` and :mod:`hashlib` modules release the GIL when " "compressing or hashing data." msgstr "" +"Llamar a las funciones de E/S del sistema es el caso de uso más común para " +"liberar el GIL, pero también puede ser útil antes de llamar a cálculos de " +"larga duración que no necesitan acceso a objetos de Python, como las " +"funciones de compresión o criptográficas que operan sobre memorias " +"intermedias. Por ejemplo, los módulos estándar :mod:`zlib` y :mod:`hashlib` " +"liberan el GIL al comprimir o mezclar datos." #: ../Doc/c-api/init.rst:735 msgid "Non-Python created threads" -msgstr "" +msgstr "Hilos creados sin Python" #: ../Doc/c-api/init.rst:737 msgid "" @@ -893,6 +1240,12 @@ msgid "" "management), they don't hold the GIL, nor is there a thread state structure " "for them." msgstr "" +"Cuando se crean hilos utilizando las API dedicadas de Python (como el " +"módulo :mod:`threading`), se les asocia automáticamente un estado del hilo " +"y, por lo tanto, el código que se muestra arriba es correcto. Sin embargo, " +"cuando los hilos se crean desde C (por ejemplo, por una biblioteca de " +"terceros con su propia administración de hilos), no contienen el GIL, ni " +"existe una estructura de estado de hilos para ellos." #: ../Doc/c-api/init.rst:744 msgid "" @@ -904,6 +1257,15 @@ msgid "" "are done, you should reset the thread state pointer, release the GIL, and " "finally free the thread state data structure." msgstr "" +"Si necesita llamar al código Python desde estos subprocesos (a menudo esto " +"será parte de una API de devolución de llamada proporcionada por la " +"biblioteca de terceros mencionada anteriormente), primero debe registrar " +"estos subprocesos con el intérprete creando una estructura de datos de " +"estado del subproceso, luego adquiriendo el GIL, y finalmente almacenando su " +"puntero de estado de hilo, antes de que pueda comenzar a usar la API Python/" +"C Cuando haya terminado, debe restablecer el puntero del estado del hilo, " +"liberar el GIL y finalmente liberar la estructura de datos del estado del " +"hilo." #: ../Doc/c-api/init.rst:752 msgid "" @@ -911,6 +1273,9 @@ msgid "" "do all of the above automatically. The typical idiom for calling into " "Python from a C thread is::" msgstr "" +"Las funciones :c:func:`PyGILState_Ensure` y :c:func:`PyGILState_Release` " +"hacen todo lo anterior automáticamente. El idioma típico para llamar a " +"Python desde un hilo C es::" #: ../Doc/c-api/init.rst:766 msgid "" @@ -920,10 +1285,15 @@ msgid "" "`Py_NewInterpreter`), but mixing multiple interpreters and the :c:func:" "`PyGILState_\\*` API is unsupported." msgstr "" +"Tenga en cuenta que las funciones :c:func:`PyGILState_\\*` suponen que solo " +"hay un intérprete global (creado automáticamente por :c:func:" +"`Py_Initialize`). Python admite la creación de intérpretes adicionales " +"(usando :c:func:`Py_NewInterpreter`), pero la mezcla de múltiples " +"intérpretes y la API :c:func:`PyGILState_\\*` no son compatibles." #: ../Doc/c-api/init.rst:776 msgid "Cautions about fork()" -msgstr "" +msgstr "Precauciones sobre ``fork()``" #: ../Doc/c-api/init.rst:778 msgid "" @@ -933,6 +1303,12 @@ msgid "" "concrete impact both on how locks must be handled and on all stored state in " "CPython's runtime." msgstr "" +"Otra cosa importante a tener en cuenta sobre los hilos es su comportamiento " +"frente a la llamada C :c:func:`fork`. En la mayoría de los sistemas con :c:" +"func:`fork`, después de que un proceso se bifurca, solo existirá el hilo que " +"emitió el *fork*. Esto tiene un impacto concreto tanto en cómo se deben " +"manejar las cerraduras como en todo el estado almacenado en el tiempo de " +"ejecución de CPython." #: ../Doc/c-api/init.rst:784 msgid "" @@ -950,6 +1326,21 @@ msgid "" "after the fork. :c:func:`PyOS_AfterFork_Child` tries to reset the necessary " "locks, but is not always able to." msgstr "" +"El hecho de que solo permanezca al hilo \"actual\" significa que ningún " +"bloqueo retenido por otros hilos nunca se liberará. Python resuelve esto " +"para :func:`os.fork` adquiriendo los bloqueos que usa internamente antes de " +"la bifurcación (*fork*) y soltándolos después. Además, restablece cualquier :" +"ref:`lock-objects` en el elemento secundario. Al extender o incrustar " +"Python, no hay forma de informar a Python de bloqueos adicionales (que no " +"sean Python) que deben adquirirse antes o restablecerse después de una " +"bifurcación. Las instalaciones del sistema operativo como :c:func:" +"`pthread_atfork` tendrían que usarse para lograr lo mismo. Además, al " +"extender o incrustar Python, llamando :c:func:`fork` directamente en lugar " +"de a través de :func:`os.fork` (y retornar o llamar a Python) puede resultar " +"en un punto muerto (*deadlock*) por uno de los bloqueos internos de Python. " +"sostenido por un hilo que no funciona después del *fork*. :c:func:" +"`PyOS_AfterFork_Child` intenta restablecer los bloqueos necesarios, pero no " +"siempre puede hacerlo." #: ../Doc/c-api/init.rst:799 msgid "" @@ -963,16 +1354,28 @@ msgid "" "originally initialized. The only exception is if :c:func:`exec` will be " "called immediately after." msgstr "" +"El hecho de que todos los otros hilos desaparezcan también significa que el " +"estado de ejecución de CPython debe limpiarse correctamente, lo que :func:" +"`os.fork` lo hace. Esto significa finalizar todos los demás objetos :c:type:" +"`PyThreadState` que pertenecen al intérprete actual y todos los demás " +"objetos :c:type:`PyInterpreterState`. Debido a esto y a la naturaleza " +"especial del :ref:`intérprete \"principal\" `, :c:" +"func:`fork` solo debería llamarse en el hilo \"principal\" de ese " +"intérprete, donde el CPython global el tiempo de ejecución se inicializó " +"originalmente. La única excepción es si :c:func:`exec` se llamará " +"inmediatamente después." #: ../Doc/c-api/init.rst:812 msgid "High-level API" -msgstr "" +msgstr "API de alto nivel" #: ../Doc/c-api/init.rst:814 msgid "" "These are the most commonly used types and functions when writing C " "extension code, or when embedding the Python interpreter:" msgstr "" +"Estos son los tipos y funciones más utilizados al escribir código de " +"extensión C o al incrustar el intérprete de Python:" #: ../Doc/c-api/init.rst:819 msgid "" @@ -981,6 +1384,10 @@ msgid "" "administration and a few other internal items. There are no public members " "in this structure." msgstr "" +"Esta estructura de datos representa el estado compartido por varios " +"subprocesos cooperantes. Los hilos que pertenecen al mismo intérprete " +"comparten la administración de su módulo y algunos otros elementos internos. " +"No hay miembros públicos en esta estructura." #: ../Doc/c-api/init.rst:824 msgid "" @@ -989,6 +1396,11 @@ msgid "" "global interpreter lock is also shared by all threads, regardless of to " "which interpreter they belong." msgstr "" +"Los hilos que pertenecen a diferentes intérpretes inicialmente no comparten " +"nada, excepto el estado del proceso como memoria disponible, descriptores de " +"archivos abiertos y demás. El bloqueo global del intérprete también es " +"compartido por todos los hilos, independientemente de a qué intérprete " +"pertenezcan." #: ../Doc/c-api/init.rst:832 msgid "" @@ -996,6 +1408,9 @@ msgid "" "public data member is :c:type:`PyInterpreterState \\*`:attr:`interp`, which " "points to this thread's interpreter state." msgstr "" +"Esta estructura de datos representa el estado de un solo hilo. El único " +"miembro de datos públicos es :c:type:`PyInterpreterState \\*`:attr:`interp`, " +"que apunta al estado del intérprete de este hilo." #: ../Doc/c-api/init.rst:845 msgid "" @@ -1004,21 +1419,28 @@ msgid "" "thread operations such as ``PyEval_ReleaseThread(tstate)``. It is not needed " "before calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`." msgstr "" +"Inicializa y adquiere el bloqueo global de intérprete. Debe llamarse en el " +"hilo principal antes de crear un segundo hilo o participar en cualquier otra " +"operación de hilo como ``PyEval_ReleaseThread(tstate)``. No es necesario " +"antes de llamar a :c:func:`PyEval_SaveThread` o :c:func:" +"`PyEval_RestoreThread`." #: ../Doc/c-api/init.rst:850 msgid "This is a no-op when called for a second time." -msgstr "" +msgstr "Esto es un *no-op* cuando se llama por segunda vez." #: ../Doc/c-api/init.rst:852 msgid "" "This function is now called by :c:func:`Py_Initialize()`, so you don't have " "to call it yourself anymore." msgstr "" +"Esta función ahora es llamada por :c:func:`Py_Initialize()`, por lo que ya " +"no tiene que llamarla usted mismo." #: ../Doc/c-api/init.rst:856 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." -msgstr "" +msgstr "Esta función ya no se puede llamar antes de :c:func:`Py_Initialize()`." #: ../Doc/c-api/init.rst:864 msgid "" @@ -1026,10 +1448,15 @@ msgid "" "This function can be called without holding the GIL, and therefore can be " "used to avoid calls to the locking API when running single-threaded." msgstr "" +"Retorna un valor distinto de cero si se ha llamado a :c:func:" +"`PyEval_InitThreads`. Esta función se puede invocar sin mantener el GIL y, " +"por lo tanto, se puede utilizar para evitar llamadas a la API de bloqueo " +"cuando se ejecuta un solo hilo." #: ../Doc/c-api/init.rst:868 msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." msgstr "" +"El término :term:`GIL` ahora se inicializa con :c:func:`Py_Initialize()`." #: ../Doc/c-api/init.rst:874 msgid "" @@ -1038,6 +1465,10 @@ msgid "" "``NULL``). If the lock has been created, the current thread must have " "acquired it." msgstr "" +"Libere el bloqueo global del intérprete (si se ha creado) y restablezca el " +"estado del hilo a ``NULL``, devolviendo el estado del hilo anterior (que no " +"es ``NULL``). Si se ha creado el bloqueo, el hilo actual debe haberlo " +"adquirido." #: ../Doc/c-api/init.rst:882 msgid "" @@ -1046,6 +1477,10 @@ msgid "" "created, the current thread must not have acquired it, otherwise deadlock " "ensues." msgstr "" +"Adquiera el bloqueo global del intérprete (si se ha creado) y establezca el " +"estado del hilo en *tstate*, que no debe ser ``NULL``. Si se ha creado el " +"bloqueo, el hilo actual no debe haberlo adquirido, de lo contrario se " +"produce un *deadlock*." #: ../Doc/c-api/init.rst:888 ../Doc/c-api/init.rst:934 #: ../Doc/c-api/init.rst:1109 ../Doc/c-api/init.rst:1147 @@ -1056,6 +1491,11 @@ msgid "" "interpreter is in process of being finalized before calling this function to " "avoid unwanted termination." msgstr "" +"Llamar a esta función desde un hilo cuando finalice el tiempo de ejecución " +"terminará el hilo, incluso si Python no creó el hilo. Puede usar :c:func:" +"`_Py_IsFinalizing` o :func:`sys.is_finalizing` para verificar si el " +"intérprete está en proceso de finalización antes de llamar a esta función " +"para evitar una terminación no deseada." #: ../Doc/c-api/init.rst:896 msgid "" @@ -1063,6 +1503,9 @@ msgid "" "When the current thread state is ``NULL``, this issues a fatal error (so " "that the caller needn't check for ``NULL``)." msgstr "" +"Retorna el estado actual del hilo. Se debe mantener el bloqueo global del " +"intérprete. Cuando el estado actual del hilo es ``NULL``, esto genera un " +"error fatal (por lo que la persona que llama no necesita verificar ``NULL``)." #: ../Doc/c-api/init.rst:903 msgid "" @@ -1070,12 +1513,17 @@ msgid "" "*tstate*, which may be ``NULL``. The global interpreter lock must be held " "and is not released." msgstr "" +"Cambia el estado del hilo actual con el estado del hilo dado por el " +"argumento *tstate*, que puede ser ``NULL``. El bloqueo global del intérprete " +"debe mantenerse y no se libera." #: ../Doc/c-api/init.rst:908 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" +"Las siguientes funciones utilizan almacenamiento local de hilos y no son " +"compatibles con subinterpretes:" #: ../Doc/c-api/init.rst:913 msgid "" @@ -1089,6 +1537,16 @@ msgid "" "c:macro:`Py_BEGIN_ALLOW_THREADS` and :c:macro:`Py_END_ALLOW_THREADS` macros " "is acceptable." msgstr "" +"Asegúrese de que el subproceso actual esté listo para llamar a la API de " +"Python C, independientemente del estado actual de Python o del bloqueo " +"global del intérprete. Esto se puede invocar tantas veces como lo desee un " +"subproceso siempre que cada llamada coincida con una llamada a :c:func:" +"`PyGILState_Release`. En general, se pueden usar otras API relacionadas con " +"subprocesos entre :c:func:`PyGILState_Ensure` y :c:func:`PyGILState_Release` " +"invoca siempre que el estado del subproceso se restablezca a su estado " +"anterior antes del *Release()*. Por ejemplo, el uso normal de las macros :c:" +"macro:`Py_BEGIN_ALLOW_THREADS` y :c:macro:`Py_END_ALLOW_THREADS` es " +"aceptable." #: ../Doc/c-api/init.rst:923 msgid "" @@ -1099,12 +1557,20 @@ msgid "" "call to :c:func:`PyGILState_Ensure` must save the handle for its call to :c:" "func:`PyGILState_Release`." msgstr "" +"El valor de retorno es un \"identificador\" opaco al estado del hilo cuando :" +"c:func:`PyGILState_Ensure` fue llamado, y debe pasarse a :c:func:" +"`PyGILState_Release` para asegurar que Python se deje en el mismo estado. " +"Aunque las llamadas recursivas están permitidas, estos identificadores *no* " +"pueden compartirse; cada llamada única a :c:func:`PyGILState_Ensure` debe " +"guardar el identificador para su llamada a :c:func:`PyGILState_Release`." #: ../Doc/c-api/init.rst:930 msgid "" "When the function returns, the current thread will hold the GIL and be able " "to call arbitrary Python code. Failure is a fatal error." msgstr "" +"Cuando la función regrese, el hilo actual contendrá el GIL y podrá llamar a " +"código arbitrario de Python. El fracaso es un error fatal." #: ../Doc/c-api/init.rst:942 msgid "" @@ -1113,12 +1579,18 @@ msgid "" "`PyGILState_Ensure` call (but generally this state will be unknown to the " "caller, hence the use of the GILState API)." msgstr "" +"Libera cualquier recurso previamente adquirido. Después de esta llamada, el " +"estado de Python será el mismo que antes de la llamada correspondiente :c:" +"func:`PyGILState_Ensure` (pero en general este estado será desconocido para " +"la persona que llama, de ahí el uso de la API ``GILState``)." #: ../Doc/c-api/init.rst:947 msgid "" "Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" "func:`PyGILState_Release` on the same thread." msgstr "" +"Cada llamada a :c:func:`PyGILState_Ensure` debe coincidir con una llamada a :" +"c:func:`PyGILState_Release` en el mismo hilo." #: ../Doc/c-api/init.rst:953 msgid "" @@ -1127,6 +1599,12 @@ msgid "" "always has such a thread-state, even if no auto-thread-state call has been " "made on the main thread. This is mainly a helper/diagnostic function." msgstr "" +"Obtenga el estado actual del hilo para este hilo. Puede retornar ``NULL`` si " +"no se ha utilizado la API ``GILState`` en el hilo actual. Tenga en cuenta " +"que el subproceso principal siempre tiene dicho estado de subproceso, " +"incluso si no se ha realizado una llamada de estado de subproceso automático " +"en el subproceso principal. Esta es principalmente una función auxiliar y de " +"diagnóstico." #: ../Doc/c-api/init.rst:961 msgid "" @@ -1138,12 +1616,22 @@ msgid "" "that the GIL is locked can allow the caller to perform sensitive actions or " "otherwise behave differently." msgstr "" +"Retorna ``1`` si el hilo actual mantiene el GIL y ``0`` de lo contrario. " +"Esta función se puede llamar desde cualquier hilo en cualquier momento. Solo " +"si se ha inicializado el hilo de Python y actualmente mantiene el GIL, " +"retornará ``1``. Esta es principalmente una función auxiliar y de " +"diagnóstico. Puede ser útil, por ejemplo, en contextos de devolución de " +"llamada o funciones de asignación de memoria cuando saber que el GIL está " +"bloqueado puede permitir que la persona que llama realice acciones " +"confidenciales o se comporte de otra manera de manera diferente." #: ../Doc/c-api/init.rst:973 msgid "" "The following macros are normally used without a trailing semicolon; look " "for example usage in the Python source distribution." msgstr "" +"Las siguientes macros se usan normalmente sin punto y coma final; busque, " +"por ejemplo, el uso en la distribución fuente de Python." #: ../Doc/c-api/init.rst:979 msgid "" @@ -1152,6 +1640,10 @@ msgid "" "following :c:macro:`Py_END_ALLOW_THREADS` macro. See above for further " "discussion of this macro." msgstr "" +"Esta macro se expande a ``{PyThreadState *_save; _save = PyEval_SaveThread();" +"``. Tenga en cuenta que contiene una llave de apertura; debe coincidir con " +"la siguiente macro :c:macro:`Py_END_ALLOW_THREADS`. Ver arriba para una " +"discusión más detallada de esta macro." #: ../Doc/c-api/init.rst:987 msgid "" @@ -1160,12 +1652,18 @@ msgid "" "`Py_BEGIN_ALLOW_THREADS` macro. See above for further discussion of this " "macro." msgstr "" +"Esta macro se expande a ``PyEval_RestoreThread(_save);}``. Tenga en cuenta " +"que contiene una llave de cierre; debe coincidir con una macro anterior :c:" +"macro:`Py_BEGIN_ALLOW_THREADS`. Ver arriba para una discusión más detallada " +"de esta macro." #: ../Doc/c-api/init.rst:995 msgid "" "This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" "c:macro:`Py_END_ALLOW_THREADS` without the closing brace." msgstr "" +"Esta macro se expande a ``PyEval_RestoreThread(_save);``: es equivalente a :" +"c:macro:`Py_END_ALLOW_THREADS` sin la llave de cierre." #: ../Doc/c-api/init.rst:1001 msgid "" @@ -1173,19 +1671,24 @@ msgid "" "c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " "declaration." msgstr "" +"Esta macro se expande a ``_save = PyEval_SaveThread();``: es equivalente a :" +"c:macro:`Py_BEGIN_ALLOW_THREADS` sin la llave de apertura y la declaración " +"de variable." #: ../Doc/c-api/init.rst:1007 msgid "Low-level API" -msgstr "" +msgstr "API de bajo nivel" #: ../Doc/c-api/init.rst:1009 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" +"Todas las siguientes funciones deben llamarse después de :c:func:" +"`Py_Initialize`." #: ../Doc/c-api/init.rst:1011 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." -msgstr "" +msgstr ":c:func:`Py_Initialize()` ahora inicializa el :term:`GIL`." #: ../Doc/c-api/init.rst:1017 msgid "" @@ -1193,24 +1696,33 @@ msgid "" "be held, but may be held if it is necessary to serialize calls to this " "function." msgstr "" +"Crea un nuevo objeto de estado de intérprete. No es necesario retener el " +"bloqueo global del intérprete, pero se puede retener si es necesario para " +"serializar llamadas a esta función." #: ../Doc/c-api/init.rst:1021 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_New`` with no arguments." msgstr "" +"Genera un :ref:`evento de auditoría ` ``python." +"PyInterpreterState_New`` sin argumentos." #: ../Doc/c-api/init.rst:1026 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." msgstr "" +"Restablece toda la información en un objeto de estado de intérprete. Se debe " +"mantener el bloqueo global del intérprete." #: ../Doc/c-api/init.rst:1029 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_Clear`` with no arguments." msgstr "" +"Lanza una :ref:`eventos de auditoría ` ``python.PyInterpreterState " +"Clear`` sin argumentos." #: ../Doc/c-api/init.rst:1034 msgid "" @@ -1218,6 +1730,9 @@ msgid "" "be held. The interpreter state must have been reset with a previous call " "to :c:func:`PyInterpreterState_Clear`." msgstr "" +"Destruye un objeto de estado de intérprete. No es necesario mantener el " +"bloqueo global del intérprete. El estado del intérprete debe haberse " +"restablecido con una llamada previa a :c:func:`PyInterpreterState_Clear`." #: ../Doc/c-api/init.rst:1041 msgid "" @@ -1225,12 +1740,17 @@ msgid "" "The global interpreter lock need not be held, but may be held if it is " "necessary to serialize calls to this function." msgstr "" +"Crea un nuevo objeto de estado de hilo que pertenece al objeto de intérprete " +"dado. No es necesario retener el bloqueo global del intérprete, pero se " +"puede retener si es necesario para serializar llamadas a esta función." #: ../Doc/c-api/init.rst:1048 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." msgstr "" +"Restablece toda la información en un objeto de estado de hilo. Se debe " +"mantener el bloqueo global del intérprete." #: ../Doc/c-api/init.rst:1054 msgid "" @@ -1238,12 +1758,17 @@ msgid "" "held. The thread state must have been reset with a previous call to :c:func:" "`PyThreadState_Clear`." msgstr "" +"Destruye un objeto de estado de hilo. No es necesario mantener el bloqueo " +"global del intérprete. El estado del hilo debe haberse restablecido con una " +"llamada previa a :c:func:`PyThreadState_Clear`." #: ../Doc/c-api/init.rst:1061 msgid "" "Return the interpreter's unique ID. If there was any error in doing so then " "``-1`` is returned and an error is set." msgstr "" +"Retorna la identificación única del intérprete. Si hubo algún error al " +"hacerlo, entonces se retorna ``-1`` y se establece un error." #: ../Doc/c-api/init.rst:1069 msgid "" @@ -1251,12 +1776,18 @@ msgid "" "this function returns ``NULL`` then no exception has been raised and the " "caller should assume no interpreter-specific dict is available." msgstr "" +"Retorna un diccionario en el que se pueden almacenar datos específicos del " +"intérprete. Si esta función retorna ``NULL``, no se ha producido ninguna " +"excepción y la persona que llama debe suponer que no hay disponible una " +"instrucción específica del intérprete." #: ../Doc/c-api/init.rst:1073 msgid "" "This is not a replacement for :c:func:`PyModule_GetState()`, which " "extensions should use to store interpreter-specific state information." msgstr "" +"Esto no reemplaza a :c:func:`PyModule_GetState()`, que las extensiones deben " +"usar para almacenar información de estado específica del intérprete." #: ../Doc/c-api/init.rst:1081 msgid "" @@ -1266,6 +1797,12 @@ msgid "" "state is available. If this function returns ``NULL``, no exception has been " "raised and the caller should assume no current thread state is available." msgstr "" +"Retorna un diccionario en el que las extensiones pueden almacenar " +"información de estado específica del hilo. Cada extensión debe usar una " +"clave única para almacenar el estado en el diccionario. Está bien llamar a " +"esta función cuando no hay un estado del hilo actual disponible. Si esta " +"función devuelve ``NULL``, no se ha producido ninguna excepción y la persona " +"que llama debe asumir que no hay disponible ningún estado del hilo actual." #: ../Doc/c-api/init.rst:1090 msgid "" @@ -1278,12 +1815,22 @@ msgid "" "const:`NULL`, the pending exception (if any) for the thread is cleared. This " "raises no exceptions." msgstr "" +"Asincrónicamente lanza una excepción en un hilo. El argumento *id* es el id " +"del hilo del hilo de destino; *exc* es el objeto de excepción que se debe " +"generar. Esta función no roba ninguna referencia a *exc*. Para evitar el uso " +"indebido ingenuo, debe escribir su propia extensión C para llamar a esto. " +"Debe llamarse con el GIL retenido. Retorna el número de estados de hilo " +"modificados; normalmente es uno, pero será cero si no se encuentra la " +"identificación del hilo. Si *exc* es :const:`NULL`, se borra la excepción " +"pendiente (si existe) para el hilo. Esto no lanza excepciones." #: ../Doc/c-api/init.rst:1098 msgid "" "The type of the *id* parameter changed from :c:type:`long` to :c:type:" "`unsigned long`." msgstr "" +"El tipo del parámetro *id* cambia de :c:type:`long` a :c:type:`unsigned " +"long`." #: ../Doc/c-api/init.rst:1104 msgid "" @@ -1291,6 +1838,10 @@ msgid "" "*tstate*, which should not be ``NULL``. The lock must have been created " "earlier. If this thread already has the lock, deadlock ensues." msgstr "" +"Adquiere el bloqueo global del intérprete y establece el estado actual del " +"hilo en *tstate*, que no debe ser ``NULL``. El bloqueo debe haber sido " +"creado anteriormente. Si este hilo ya tiene el bloqueo, se produce un " +"*deadlock*." #: ../Doc/c-api/init.rst:1115 ../Doc/c-api/init.rst:1153 msgid "" @@ -1298,12 +1849,17 @@ msgid "" "`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`, and terminate the " "current thread if called while the interpreter is finalizing." msgstr "" +"Actualiza para ser coherente con :c:func:`PyEval_RestoreThread`, :c:func:" +"`Py_END_ALLOW_THREADS`, y :c:func:`PyGILState_Ensure`, y termina el hilo " +"actual si se llama mientras el intérprete está finalizando." #: ../Doc/c-api/init.rst:1120 msgid "" ":c:func:`PyEval_RestoreThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" +":c:func:`PyEval_RestoreThread` es una función de nivel superior que siempre " +"está disponible (incluso cuando los subprocesos no se han inicializado)." #: ../Doc/c-api/init.rst:1126 msgid "" @@ -1313,40 +1869,55 @@ msgid "" "is only used to check that it represents the current thread state --- if it " "isn't, a fatal error is reported." msgstr "" +"Restablece el estado actual del hilo a ``NULL`` y libera el bloqueo global " +"del intérprete. El bloqueo debe haberse creado antes y debe estar retenido " +"por el hilo actual. El argumento *tstate*, que no debe ser ``NULL``, solo se " +"usa para verificar que representa el estado actual del hilo --- si no lo es, " +"se informa un error fatal." #: ../Doc/c-api/init.rst:1132 msgid "" ":c:func:`PyEval_SaveThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" +":c:func:`PyEval_SaveThread` es una función de nivel superior que siempre " +"está disponible (incluso cuando los hilos no se han inicializado)." #: ../Doc/c-api/init.rst:1138 msgid "" "Acquire the global interpreter lock. The lock must have been created " "earlier. If this thread already has the lock, a deadlock ensues." msgstr "" +"Adquiera el bloqueo global de intérprete. El bloqueo debe haber sido creado " +"anteriormente. Si este hilo ya tiene el bloqueo, se produce un *deadlock*." #: ../Doc/c-api/init.rst:1141 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." msgstr "" +"Esta función no actualiza el estado actual del hilo. Utilice :c:func:" +"`PyEval_RestoreThread` o :c:func:`PyEval_AcquireThread` en su lugar." #: ../Doc/c-api/init.rst:1161 msgid "" "Release the global interpreter lock. The lock must have been created " "earlier." msgstr "" +"Libere el bloqueo global del intérprete. El bloqueo debe haber sido creado " +"anteriormente." #: ../Doc/c-api/init.rst:1163 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." msgstr "" +"Esta función no actualiza el estado actual del hilo. Utilice :c:func:" +"`PyEval_SaveThread` o :c:func:`PyEval_ReleaseThread` en su lugar." #: ../Doc/c-api/init.rst:1172 msgid "Sub-interpreter support" -msgstr "" +msgstr "Soporte de subinterprete" #: ../Doc/c-api/init.rst:1174 msgid "" @@ -1355,6 +1926,10 @@ msgid "" "same process and perhaps even in the same thread. Sub-interpreters allow you " "to do that." msgstr "" +"Si bien en la mayoría de los usos, solo incrustará un solo intérprete de " +"Python, hay casos en los que necesita crear varios intérpretes " +"independientes en el mismo proceso y tal vez incluso en el mismo hilo. Los " +"subinterpretes le permiten hacer eso." #: ../Doc/c-api/init.rst:1179 msgid "" @@ -1366,6 +1941,14 @@ msgid "" "runtime finalization. The :c:func:`PyInterpreterState_Main` function " "returns a pointer to its state." msgstr "" +"El intérprete \"principal\" es el primero creado cuando se inicializa el " +"tiempo de ejecución. Suele ser el único intérprete de Python en un proceso. " +"A diferencia de los subinterpretes, el intérprete principal tiene " +"responsabilidades globales de proceso únicas, como el manejo de señales. " +"También es responsable de la ejecución durante la inicialización del tiempo " +"de ejecución y generalmente es el intérprete activo durante la finalización " +"del tiempo de ejecución. La función :c:func:`PyInterpreterState_Main` " +"retorna un puntero a su estado." #: ../Doc/c-api/init.rst:1186 msgid "" @@ -1373,6 +1956,9 @@ msgid "" "`PyThreadState_Swap` function. You can create and destroy them using the " "following functions:" msgstr "" +"Puede cambiar entre subinterpretes utilizando la función :c:func:" +"`PyThreadState_Swap`. Puede crearlos y destruirlos utilizando las siguientes " +"funciones:" #: ../Doc/c-api/init.rst:1200 msgid "" @@ -1386,6 +1972,15 @@ msgid "" "``sys.stdout`` and ``sys.stderr`` (however these refer to the same " "underlying file descriptors)." msgstr "" +"Crea un nuevo subinterprete. Este es un entorno (casi) totalmente separado " +"para la ejecución de código Python. En particular, el nuevo intérprete tiene " +"versiones separadas e independientes de todos los módulos importados, " +"incluidos los módulos fundamentales :mod:`builtins`, :mod:`__main__` y :mod:" +"`sys`. La tabla de módulos cargados (``sys.modules``) y la ruta de búsqueda " +"del módulo (``sys.path``) también están separados. El nuevo entorno no tiene " +"variable ``sys.argv``. Tiene nuevos objetos de archivo de flujo de E/S " +"estándar ``sys.stdin``, ``sys.stdout`` y ``sys.stderr`` (sin embargo, estos " +"se refieren a los mismos descriptores de archivo subyacentes)." #: ../Doc/c-api/init.rst:1210 msgid "" @@ -1400,10 +1995,23 @@ msgid "" "unlike most other Python/C API functions, there needn't be a current thread " "state on entry.)" msgstr "" +"El valor de retorno apunta al primer estado del hilo creado en el nuevo " +"subinterprete. Este estado de hilo se realiza en el estado de hilo actual. " +"Tenga en cuenta que no se crea ningún hilo real; vea la discusión de los " +"estados del hilo a continuación. Si la creación del nuevo intérprete no " +"tiene éxito, se devuelve ``NULL``; no se establece ninguna excepción, ya que " +"el estado de excepción se almacena en el estado actual del hilo y es posible " +"que no haya un estado actual del hilo. (Al igual que todas las otras " +"funciones de Python/C API, el bloqueo global del intérprete debe mantenerse " +"antes de llamar a esta función y aún se mantiene cuando regresa; sin " +"embargo, a diferencia de la mayoría de las otras funciones de Python/C API, " +"no es necesario que haya un estado del hilo actual en entrada.)" #: ../Doc/c-api/init.rst:1225 msgid "Extension modules are shared between (sub-)interpreters as follows:" msgstr "" +"Los módulos de extensión se comparten entre (sub) intérpretes de la " +"siguiente manera:" #: ../Doc/c-api/init.rst:1227 msgid "" @@ -1412,6 +2020,10 @@ msgid "" "initialized for each interpreter. Only C-level static and global variables " "are shared between these module objects." msgstr "" +"Para módulos que usan inicialización multifase, por ejemplo :c:func:" +"`PyModule_FromDefAndSpec`, se crea e inicializa un objeto de módulo separado " +"para cada intérprete. Solo las variables estáticas y globales de nivel C se " +"comparten entre estos objetos de módulo." #: ../Doc/c-api/init.rst:1233 msgid "" @@ -1424,6 +2036,15 @@ msgid "" "the module's dictionary thus end up shared across (sub-)interpreters, which " "might cause unwanted behavior (see `Bugs and caveats`_ below)." msgstr "" +"Para módulos que utilizan inicialización monofásica, por ejemplo :c:func:" +"`PyModule_Create`, la primera vez que se importa una extensión en " +"particular, se inicializa normalmente y una copia (superficial) del " +"diccionario de su módulo se guarda. Cuando otro (sub) intérprete importa la " +"misma extensión, se inicializa un nuevo módulo y se llena con el contenido " +"de esta copia; no se llama a la función ``init`` de la extensión. Los " +"objetos en el diccionario del módulo terminan compartidos entre (sub) " +"intérpretes, lo que puede causar un comportamiento no deseado (ver Errores y " +"advertencias (`Bugs and caveats`_) a continuación)." #: ../Doc/c-api/init.rst:1244 msgid "" @@ -1434,6 +2055,12 @@ msgid "" "initialization, this means that only C-level static and global variables are " "shared between these modules." msgstr "" +"Tenga en cuenta que esto es diferente de lo que sucede cuando se importa una " +"extensión después de que el intérprete se haya reiniciado por completo " +"llamando a :c:func:`Py_FinalizeEx` y :c:func:`Py_Initialize`; en ese caso, " +"la función ``initmodule`` de la extensión *se llama* nuevamente. Al igual " +"que con la inicialización de múltiples fases, esto significa que solo se " +"comparten variables estáticas y globales de nivel C entre estos módulos." #: ../Doc/c-api/init.rst:1258 msgid "" @@ -1446,10 +2073,18 @@ msgid "" "destroy all sub-interpreters that haven't been explicitly destroyed at that " "point." msgstr "" +"Destruye el (sub) intérprete representado por el estado del hilo dado. El " +"estado del hilo dado debe ser el estado del hilo actual. Vea la discusión de " +"los estados del hilo a continuación. Cuando la llamada regresa, el estado " +"actual del hilo es ``NULL``. Todos los estados de hilo asociados con este " +"intérprete se destruyen. (El bloqueo global del intérprete debe mantenerse " +"antes de llamar a esta función y aún se mantiene cuando vuelve). :c:func:" +"`Py_FinalizeEx` destruirá todos los subinterpretes que no se hayan destruido " +"explícitamente en ese punto." #: ../Doc/c-api/init.rst:1268 msgid "Bugs and caveats" -msgstr "" +msgstr "Errores y advertencias" #: ../Doc/c-api/init.rst:1270 msgid "" @@ -1463,6 +2098,16 @@ msgid "" "one sub-interpreter into a namespace of another (sub-)interpreter; this " "should be avoided if possible." msgstr "" +"Debido a que los subinterpretes (y el intérprete principal) son parte del " +"mismo proceso, el aislamiento entre ellos no es perfecto --- por ejemplo, " +"usando operaciones de archivos de bajo nivel como :func:`os.close` pueden " +"(accidentalmente o maliciosamente) afectar los archivos abiertos del otro. " +"Debido a la forma en que las extensiones se comparten entre (sub) " +"intérpretes, algunas extensiones pueden no funcionar correctamente; Esto es " +"especialmente probable cuando se utiliza la inicialización monofásica o las " +"variables globales (estáticas). Es posible insertar objetos creados en un " +"subinterprete en un espacio de nombres de otro (sub) intérprete; Esto debe " +"evitarse si es posible." #: ../Doc/c-api/init.rst:1280 msgid "" @@ -1472,6 +2117,12 @@ msgid "" "dictionary of loaded modules. It is equally important to avoid sharing " "objects from which the above are reachable." msgstr "" +"Se debe tener especial cuidado para evitar compartir funciones, métodos, " +"instancias o clases definidas por el usuario entre los subinterpretes, ya " +"que las operaciones de importación ejecutadas por dichos objetos pueden " +"afectar el diccionario (sub-) intérprete incorrecto de los módulos cargados. " +"Es igualmente importante evitar compartir objetos desde los que se pueda " +"acceder a lo anterior." #: ../Doc/c-api/init.rst:1286 msgid "" @@ -1484,10 +2135,19 @@ msgid "" "`ctypes`) using these APIs to allow calling of Python code from non-Python " "created threads will probably be broken when using sub-interpreters." msgstr "" +"También tenga en cuenta que la combinación de esta funcionalidad con :c:func:" +"`PyGILState_\\*` API es delicada, porque estas API suponen una biyección " +"entre los estados de hilo de Python e hilos a nivel del sistema operativo, " +"una suposición rota por la presencia de subinterpretes. Se recomienda " +"encarecidamente que no cambie los subinterpretes entre un par de llamadas " +"coincidentes :c:func:`PyGILState_Ensure` y :c:func:`PyGILState_Release`. " +"Además, las extensiones (como :mod:`ctypes`) que usan estas API para " +"permitir la llamada de código Python desde hilos no creados por Python " +"probablemente se rompan cuando se usan subinterpretes." #: ../Doc/c-api/init.rst:1297 msgid "Asynchronous Notifications" -msgstr "" +msgstr "Notificaciones asincrónicas" #: ../Doc/c-api/init.rst:1299 msgid "" @@ -1495,6 +2155,9 @@ msgid "" "interpreter thread. These notifications take the form of a function pointer " "and a void pointer argument." msgstr "" +"Se proporciona un mecanismo para hacer notificaciones asincrónicas al hilo " +"principal del intérprete. Estas notificaciones toman la forma de un puntero " +"de función y un argumento de puntero nulo." #: ../Doc/c-api/init.rst:1308 msgid "" @@ -1502,6 +2165,10 @@ msgid "" "success, ``0`` is returned and *func* is queued for being called in the main " "thread. On failure, ``-1`` is returned without setting any exception." msgstr "" +"Programa una función para que se llame desde el hilo principal del " +"intérprete. En caso de éxito, se retorna ``0`` y se pone en cola *func* para " +"ser llamado en el hilo principal. En caso de fallo, se retorna ``-1`` sin " +"establecer ninguna excepción." #: ../Doc/c-api/init.rst:1312 msgid "" @@ -1510,16 +2177,22 @@ msgid "" "asynchronously with respect to normally running Python code, but with both " "these conditions met:" msgstr "" +"Cuando se puso en cola con éxito, *func* será *eventualmente* invocado desde " +"el hilo principal del intérprete con el argumento *arg*. Se llamará de forma " +"asincrónica con respecto al código Python que se ejecuta normalmente, pero " +"con ambas condiciones cumplidas:" #: ../Doc/c-api/init.rst:1317 msgid "on a :term:`bytecode` boundary;" -msgstr "" +msgstr "en un límite :term:`bytecode`;" #: ../Doc/c-api/init.rst:1318 msgid "" "with the main thread holding the :term:`global interpreter lock` (*func* can " "therefore use the full C API)." msgstr "" +"con el hilo principal que contiene el :term:`global interpreter lock` " +"(*func*, por lo tanto, puede usar la API C completa)." #: ../Doc/c-api/init.rst:1321 msgid "" @@ -1528,12 +2201,18 @@ msgid "" "notification recursively, but it can still be interrupted to switch threads " "if the global interpreter lock is released." msgstr "" +"*func* debe retornar ``0`` en caso de éxito o ``-1`` en caso de error con " +"una excepción establecida. *func* no se interrumpirá para realizar otra " +"notificación asíncrona de forma recursiva, pero aún se puede interrumpir " +"para cambiar hilos si se libera el bloqueo global del intérprete." #: ../Doc/c-api/init.rst:1326 msgid "" "This function doesn't need a current thread state to run, and it doesn't " "need the global interpreter lock." msgstr "" +"Esta función no necesita un estado de hilo actual para ejecutarse y no " +"necesita el bloqueo global del intérprete." #: ../Doc/c-api/init.rst:1330 msgid "" @@ -1544,10 +2223,16 @@ msgid "" "calling Python code from arbitrary C threads. Instead, use the :ref:" "`PyGILState API`." msgstr "" +"Esta es una función de bajo nivel, solo útil para casos muy especiales. No " +"hay garantía de que *func* se llame lo más rápido posible. Si el hilo " +"principal está ocupado ejecutando una llamada al sistema, no se llamará " +"*func* antes de que vuelva la llamada del sistema. Esta función generalmente " +"** no ** es adecuada para llamar a código Python desde hilos C arbitrarios. " +"En su lugar, use :ref:`PyGILState API `." #: ../Doc/c-api/init.rst:1342 msgid "Profiling and Tracing" -msgstr "" +msgstr "Perfilado y Rastreo" #: ../Doc/c-api/init.rst:1347 msgid "" @@ -1555,6 +2240,9 @@ msgid "" "profiling and execution tracing facilities. These are used for profiling, " "debugging, and coverage analysis tools." msgstr "" +"El intérprete de Python proporciona soporte de bajo nivel para adjuntar " +"funciones de creación de perfiles y seguimiento de ejecución. Estos se " +"utilizan para herramientas de análisis de perfiles, depuración y cobertura." #: ../Doc/c-api/init.rst:1351 msgid "" @@ -1565,6 +2253,13 @@ msgid "" "basic events reported to the trace function are the same as had been " "reported to the Python-level trace functions in previous versions." msgstr "" +"Esta interfaz C permite que el código de perfil o rastreo evite la " +"sobrecarga de llamar a través de objetos invocables a nivel de Python, " +"haciendo una llamada directa a la función C en su lugar. Los atributos " +"esenciales de la instalación no han cambiado; la interfaz permite instalar " +"funciones de rastreo por hilos, y los eventos básicos informados a la " +"función de rastreo son los mismos que se informaron a las funciones de " +"rastreo a nivel de Python en versiones anteriores." #: ../Doc/c-api/init.rst:1361 msgid "" @@ -1576,65 +2271,74 @@ msgid "" "`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION`, :const:`PyTrace_C_RETURN`, " "or :const:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" msgstr "" +"El tipo de la función de rastreo registrada usando :c:func:" +"`PyEval_SetProfile` y :c:func:`PyEval_SetTrace`. El primer parámetro es el " +"objeto pasado a la función de registro como *obj*, *frame* es el objeto de " +"marco al que pertenece el evento, *what* es una de las constantes :const:" +"`PyTrace_CALL`, :const:`PyTrace_EXCEPTION` , :const:`PyTrace_LINE`, :const:" +"`PyTrace_RETURN`, :const:`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION`, :" +"const:`PyTrace_C_RETURN`, o :const:`PyTrace_OPCODE`, y *arg* depende de el " +"valor de *what*:" #: ../Doc/c-api/init.rst:1370 msgid "Value of *what*" -msgstr "" +msgstr "Valor de *que*" #: ../Doc/c-api/init.rst:1370 msgid "Meaning of *arg*" -msgstr "" +msgstr "Significado de *arg*" #: ../Doc/c-api/init.rst:1372 msgid ":const:`PyTrace_CALL`" -msgstr "" +msgstr ":const:`PyTrace_CALL`" #: ../Doc/c-api/init.rst:1372 ../Doc/c-api/init.rst:1377 #: ../Doc/c-api/init.rst:1388 msgid "Always :c:data:`Py_None`." -msgstr "" +msgstr "Siempre :c:data:`Py_None`." #: ../Doc/c-api/init.rst:1374 msgid ":const:`PyTrace_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_EXCEPTION`" #: ../Doc/c-api/init.rst:1374 msgid "Exception information as returned by :func:`sys.exc_info`." -msgstr "" +msgstr "Información de excepción retornada por :func:`sys.exc_info`." #: ../Doc/c-api/init.rst:1377 msgid ":const:`PyTrace_LINE`" -msgstr "" +msgstr ":const:`PyTrace_LINE`" #: ../Doc/c-api/init.rst:1379 msgid ":const:`PyTrace_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_RETURN`" #: ../Doc/c-api/init.rst:1379 msgid "" "Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" +"Valor devuelto al que llama, o ``NULL`` si es causado por una excepción." #: ../Doc/c-api/init.rst:1382 msgid ":const:`PyTrace_C_CALL`" -msgstr "" +msgstr ":const:`PyTrace_C_CALL`" #: ../Doc/c-api/init.rst:1382 ../Doc/c-api/init.rst:1384 #: ../Doc/c-api/init.rst:1386 msgid "Function object being called." -msgstr "" +msgstr "Objeto función que se llaman." #: ../Doc/c-api/init.rst:1384 msgid ":const:`PyTrace_C_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_C_EXCEPTION`" #: ../Doc/c-api/init.rst:1386 msgid ":const:`PyTrace_C_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_C_RETURN`" #: ../Doc/c-api/init.rst:1388 msgid ":const:`PyTrace_OPCODE`" -msgstr "" +msgstr ":const:`PyTrace_OPCODE`" #: ../Doc/c-api/init.rst:1393 msgid "" @@ -1644,6 +2348,11 @@ msgid "" "is not reported as there is no control transfer to the Python bytecode in " "the corresponding frame." msgstr "" +"El valor del parámetro *what* para una función :c:type:`Py_tracefunc` cuando " +"se informa una nueva llamada a una función o método, o una nueva entrada en " +"un generador. Tenga en cuenta que la creación del iterador para una función " +"de generador no se informa ya que no hay transferencia de control al código " +"de bytes de Python en la marco correspondiente." #: ../Doc/c-api/init.rst:1402 msgid "" @@ -1656,6 +2365,15 @@ msgid "" "Only trace functions receives these events; they are not needed by the " "profiler." msgstr "" +"El valor del parámetro *what* para una función :c:type:`Py_tracefunc` cuando " +"se ha producido una excepción. La función de devolución de llamada se llama " +"con este valor para *what* cuando después de que se procese cualquier " +"bytecode, después de lo cual la excepción se establece dentro del marco que " +"se está ejecutando. El efecto de esto es que a medida que la propagación de " +"la excepción hace que la pila de Python se desenrolle, el retorno de llamada " +"se llama al retornar a cada marco a medida que se propaga la excepción. Solo " +"las funciones de rastreo reciben estos eventos; el perfilador (*profiler*) " +"no los necesita." #: ../Doc/c-api/init.rst:1413 msgid "" @@ -1664,30 +2382,42 @@ msgid "" "reported. It may be disabled for a frame by setting :attr:`f_trace_lines` to " "*0* on that frame." msgstr "" +"El valor pasado como parámetro *what* a una función :c:type:`Py_tracefunc` " +"(pero no una función de creación de perfiles) cuando se informa un evento de " +"número de línea. Puede deshabilitarse para un marco configurando :attr:" +"`f_trace_lines` en *0* en ese marco." #: ../Doc/c-api/init.rst:1420 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a call is about to return." msgstr "" +"El valor para el parámetro *what* para :c:type:`Py_tracefunc` funciona " +"cuando una llamada está por regresar." #: ../Doc/c-api/init.rst:1426 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function is about to be called." msgstr "" +"El valor del parámetro *what* para :c:type:`Py_tracefunc` funciona cuando " +"una función C está a punto de ser invocada." #: ../Doc/c-api/init.rst:1432 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has raised an exception." msgstr "" +"El valor del parámetro *what* para funciones :c:type:`Py_tracefunc` cuando " +"una función C ha lanzado una excepción." #: ../Doc/c-api/init.rst:1438 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." msgstr "" +"El valor del parámetro *what* para :c:type:`Py_tracefunc` funciona cuando " +"una función C ha retornado." #: ../Doc/c-api/init.rst:1444 msgid "" @@ -1696,6 +2426,11 @@ msgid "" "event is not emitted by default: it must be explicitly requested by setting :" "attr:`f_trace_opcodes` to *1* on the frame." msgstr "" +"El valor del parámetro *what* para funciones :c:type:`Py_tracefunc` (pero no " +"funciones de creación de perfiles) cuando un nuevo código de operación está " +"a punto de ejecutarse. Este evento no se emite de forma predeterminada: debe " +"solicitarse explícitamente estableciendo :attr:`f_trace_opcodes` en *1* en " +"el marco." #: ../Doc/c-api/init.rst:1452 msgid "" @@ -1706,6 +2441,13 @@ msgid "" "it. The profile function is called for all monitored events except :const:" "`PyTrace_LINE` :const:`PyTrace_OPCODE` and :const:`PyTrace_EXCEPTION`." msgstr "" +"Establece la función del generador de perfiles en *func*. El parámetro *obj* " +"se pasa a la función como su primer parámetro, y puede ser cualquier objeto " +"de Python o ``NULL``. Si la función de perfil necesita mantener el estado, " +"el uso de un valor diferente para *obj* para cada hilo proporciona un lugar " +"conveniente y seguro para guardarlo. Se llama a la función de perfil para " +"todos los eventos supervisados, excepto :const:`PyTrace_LINE` :const:" +"`PyTrace_OPCODE` y :const:`PyTrace_EXCEPTION`." #: ../Doc/c-api/init.rst:1462 msgid "" @@ -1717,47 +2459,65 @@ msgid "" "`PyTrace_C_EXCEPTION` or :const:`PyTrace_C_RETURN` as a value for the *what* " "parameter." msgstr "" +"Establece la función de rastreo en *func*. Esto es similar a :c:func:" +"`PyEval_SetProfile`, excepto que la función de rastreo recibe eventos de " +"número de línea y eventos por código de operación, pero no recibe ningún " +"evento relacionado con los objetos de la función C. Cualquier función de " +"rastreo registrada con :c:func:`PyEval_SetTrace` no recibirá :const:" +"`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION` o :const:`PyTrace_C_RETURN` " +"como valor para el parámetro *what*." #: ../Doc/c-api/init.rst:1472 msgid "Advanced Debugger Support" -msgstr "" +msgstr "Soporte avanzado del depurador" #: ../Doc/c-api/init.rst:1477 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" +"Estas funciones solo están destinadas a ser utilizadas por herramientas de " +"depuración avanzadas." #: ../Doc/c-api/init.rst:1482 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" +"Retorna el objeto de estado del intérprete al principio de la lista de todos " +"esos objetos." #: ../Doc/c-api/init.rst:1487 msgid "Return the main interpreter state object." -msgstr "" +msgstr "Retorna el objeto de estado del intérprete principal." #: ../Doc/c-api/init.rst:1492 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" +"Retorna el siguiente objeto de estado de intérprete después de *interp* de " +"la lista de todos esos objetos." #: ../Doc/c-api/init.rst:1498 msgid "" "Return the pointer to the first :c:type:`PyThreadState` object in the list " "of threads associated with the interpreter *interp*." msgstr "" +"Retorna el puntero al primer objeto :c:type:`PyThreadState` en la lista de " +"hilos asociados con el intérprete *interp*." #: ../Doc/c-api/init.rst:1504 msgid "" "Return the next thread state object after *tstate* from the list of all such " "objects belonging to the same :c:type:`PyInterpreterState` object." msgstr "" +"Retorna el siguiente objeto de estado del hilo después de *tstate* de la " +"lista de todos los objetos que pertenecen al mismo objeto :c:type:" +"`PyInterpreterState`." #: ../Doc/c-api/init.rst:1511 msgid "Thread Local Storage Support" -msgstr "" +msgstr "Soporte de almacenamiento local de hilo" #: ../Doc/c-api/init.rst:1515 msgid "" @@ -1768,18 +2528,29 @@ msgid "" "use a thread key and functions to associate a :c:type:`void\\*` value per " "thread." msgstr "" +"El intérprete de Python proporciona soporte de bajo nivel para el " +"almacenamiento local de hilos (TLS) que envuelve la implementación de TLS " +"nativa subyacente para admitir la API de almacenamiento local de hilos de " +"nivel Python (:class:`threading.local`). Las API de nivel CPython C son " +"similares a las ofrecidas por *pthreads* y Windows: use una clave de hilo y " +"funciones para asociar un valor de :c:type:`void\\*` por hilo." #: ../Doc/c-api/init.rst:1522 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." msgstr "" +"El GIL *no* necesita ser retenido al llamar a estas funciones; proporcionan " +"su propio bloqueo." #: ../Doc/c-api/init.rst:1525 msgid "" "Note that :file:`Python.h` does not include the declaration of the TLS APIs, " "you need to include :file:`pythread.h` to use thread-local storage." msgstr "" +"Tenga en cuenta que :file:`Python.h` no incluye la declaración de las API de " +"TLS, debe incluir :file:`pythread.h` para usar el almacenamiento local de " +"hilos." #: ../Doc/c-api/init.rst:1529 msgid "" @@ -1788,10 +2559,15 @@ msgid "" "If the :c:type:`void\\*` values happen to be :c:type:`PyObject\\*`, these " "functions don't do refcount operations on them either." msgstr "" +"Ninguna de estas funciones API maneja la administración de memoria en nombre " +"de los valores :c:type:`void\\*`. Debe asignarlos y desasignarlos usted " +"mismo. Si los valores :c:type:`void\\*` son :c:type:`PyObject\\*`, estas " +"funciones tampoco realizan operaciones de recuento en ellos." #: ../Doc/c-api/init.rst:1537 msgid "Thread Specific Storage (TSS) API" msgstr "" +"API de almacenamiento específico de hilo (TSS, *Thread Specific Storage*)" #: ../Doc/c-api/init.rst:1539 msgid "" @@ -1799,10 +2575,14 @@ msgid "" "the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " "instead of :c:type:`int` to represent thread keys." msgstr "" +"La API de TSS se introduce para reemplazar el uso de la API TLS existente " +"dentro del intérprete de CPython. Esta API utiliza un nuevo tipo :c:type:" +"`Py_tss_t` en lugar de :c:type:`int` para representar las claves del hilo." #: ../Doc/c-api/init.rst:1545 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" +"\"Una nueva C-API para *Thread-Local Storage* en CPython\" (:pep:`539`)" #: ../Doc/c-api/init.rst:1550 msgid "" @@ -1811,22 +2591,31 @@ msgid "" "internal field representing the key's initialization state. There are no " "public members in this structure." msgstr "" +"Esta estructura de datos representa el estado de una clave del hilo, cuya " +"definición puede depender de la implementación de TLS subyacente, y tiene un " +"campo interno que representa el estado de inicialización de la clave. No hay " +"miembros públicos en esta estructura." #: ../Doc/c-api/init.rst:1555 msgid "" "When :ref:`Py_LIMITED_API ` is not defined, static allocation of " "this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." msgstr "" +"Cuando :ref:`Py_LIMITED_API ` no está definido, la asignación " +"estática de este tipo por :c:macro:`Py_tss_NEEDS_INIT` está permitida." #: ../Doc/c-api/init.rst:1561 msgid "" "This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " "that this macro won't be defined with :ref:`Py_LIMITED_API `." msgstr "" +"Esta macro se expande al inicializador para variables :c:type:`Py_tss_t`. " +"Tenga en cuenta que esta macro no se definirá con :ref:`Py_LIMITED_API " +"`." #: ../Doc/c-api/init.rst:1566 msgid "Dynamic Allocation" -msgstr "" +msgstr "Asignación dinámica" #: ../Doc/c-api/init.rst:1568 msgid "" @@ -1834,12 +2623,19 @@ msgid "" "built with :ref:`Py_LIMITED_API `, where static allocation of this " "type is not possible due to its implementation being opaque at build time." msgstr "" +"Asignación dinámica de :c:type:`Py_tss_t`, requerida en los módulos de " +"extensión construidos con :ref:`Py_LIMITED_API `, donde la " +"asignación estática de este tipo no es posible debido a que su " +"implementación es opaca en el momento de la compilación." #: ../Doc/c-api/init.rst:1575 msgid "" "Return a value which is the same state as a value initialized with :c:macro:" "`Py_tss_NEEDS_INIT`, or ``NULL`` in the case of dynamic allocation failure." msgstr "" +"Retorna un valor que es el mismo estado que un valor inicializado con :c:" +"macro:`Py_tss_NEEDS_INIT`, o ``NULL`` en caso de falla de asignación " +"dinámica." #: ../Doc/c-api/init.rst:1582 msgid "" @@ -1847,15 +2643,21 @@ msgid "" "calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " "have been unassigned. This is a no-op if the *key* argument is `NULL`." msgstr "" +"Libera la clave *key* asignada por :c:func:`PyThread_tss_alloc`, después de " +"llamar por primera vez :c:func:`PyThread_tss_delete` para asegurarse de que " +"los hilos locales asociados no hayan sido asignados. Esto es un *no-op* si " +"el argumento *key* es `NULL`." #: ../Doc/c-api/init.rst:1588 msgid "" "A freed key becomes a dangling pointer, you should reset the key to `NULL`." msgstr "" +"Una llave liberada se convierte en un puntero colgante (*dangling pointer*), " +"debe restablecer la llave a `NULL`." #: ../Doc/c-api/init.rst:1593 msgid "Methods" -msgstr "" +msgstr "Métodos" #: ../Doc/c-api/init.rst:1595 msgid "" @@ -1864,12 +2666,18 @@ msgid "" "undefined if the given :c:type:`Py_tss_t` has not been initialized by :c:" "func:`PyThread_tss_create`." msgstr "" +"El parámetro *key* de estas funciones no debe ser ``NULL``. Además, los " +"comportamientos de :c:func:`PyThread_tss_set` y :c:func:`PyThread_tss_get` " +"no están definidos si el :c:type:`Py_tss_t` dado no ha sido inicializado " +"por :c:func:`PyThread_tss_create`." #: ../Doc/c-api/init.rst:1603 msgid "" "Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " "by :c:func:`PyThread_tss_create`." msgstr "" +"Retorna un valor distinto de cero si :c:type:`Py_tss_t` ha sido inicializado " +"por :c:func:`PyThread_tss_create`." #: ../Doc/c-api/init.rst:1609 msgid "" @@ -1879,6 +2687,11 @@ msgid "" "repeatedly on the same key -- calling it on an already initialized key is a " "no-op and immediately returns success." msgstr "" +"Retorna un valor cero en la inicialización exitosa de una clave TSS. El " +"comportamiento no está definido si el valor señalado por el argumento *key* " +"no se inicializa con :c:macro:`Py_tss_NEEDS_INIT`. Esta función se puede " +"invocar repetidamente en la misma tecla: llamarla a una tecla ya " +"inicializada es un *no-op* e inmediatamente retorna el éxito." #: ../Doc/c-api/init.rst:1618 msgid "" @@ -1888,6 +2701,11 @@ msgid "" "`PyThread_tss_create`. This function can be called repeatedly on the same " "key -- calling it on an already destroyed key is a no-op." msgstr "" +"Destruye una clave TSS para olvidar los valores asociados con la clave en " +"todos los hilos y cambie el estado de inicialización de la clave a no " +"inicializado. Una clave destruida se puede inicializar nuevamente mediante :" +"c:func:`PyThread_tss_create`. Esta función se puede invocar repetidamente en " +"la misma llave; llamarla en una llave ya destruida es un *no-op*." #: ../Doc/c-api/init.rst:1627 msgid "" @@ -1895,6 +2713,9 @@ msgid "" "value with a TSS key in the current thread. Each thread has a distinct " "mapping of the key to a :c:type:`void\\*` value." msgstr "" +"Retorna un valor cero para indicar la asociación exitosa de un valor a :c:" +"type:`void\\*` con una clave TSS en el hilo actual. Cada hilo tiene un mapeo " +"distinto de la clave a un valor :c:type:`void\\*`." #: ../Doc/c-api/init.rst:1634 msgid "" @@ -1902,16 +2723,22 @@ msgid "" "thread. This returns ``NULL`` if no value is associated with the key in the " "current thread." msgstr "" +"Retorna el valor :c:type:`void\\*` asociado con una clave TSS en el hilo " +"actual. Esto retorna ``NULL`` si no hay ningún valor asociado con la clave " +"en el hilo actual." #: ../Doc/c-api/init.rst:1642 msgid "Thread Local Storage (TLS) API" -msgstr "" +msgstr "API de almacenamiento local de hilos (TLS, *Thread Local Storage*)" #: ../Doc/c-api/init.rst:1644 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" +"Esta API es reemplazada por :ref:`API de Almacenamiento Específico de Hilos " +"(TSS, por sus significado en inglés *Thread Specific Storage*) `." #: ../Doc/c-api/init.rst:1649 msgid "" @@ -1921,9 +2748,16 @@ msgid "" "failure status, and the other TLS functions will all be no-ops on such " "platforms." msgstr "" +"Esta versión de la API no es compatible con plataformas donde la clave TLS " +"nativa se define de una manera que no se puede transmitir de forma segura a " +"``int``. En tales plataformas, :c:func:`PyThread_create_key` regresará " +"inmediatamente con un estado de falla, y las otras funciones TLS serán no " +"operativas en tales plataformas." #: ../Doc/c-api/init.rst:1654 msgid "" "Due to the compatibility problem noted above, this version of the API should " "not be used in new code." msgstr "" +"Debido al problema de compatibilidad mencionado anteriormente, esta versión " +"de la API no debe usarse en código nuevo." diff --git a/dict b/dict index bffd6b03b6..809ab3b22c 100644 --- a/dict +++ b/dict @@ -7,6 +7,8 @@ Ahlstrom Alex Android Associates +Asincrónicamente +asincrónicas Autocompletado Awk B @@ -14,6 +16,7 @@ BSD Boddie Brian Built +biyección C CPU Cameron @@ -48,6 +51,7 @@ Hewlett Hugunin I Index +Intel Inf Interesantemente Java @@ -107,8 +111,13 @@ Smalltalk Solaris Solaris Spot +Sparc Stein subdirectorios +subinterprete +subinterpretes +subproceso +subprocesos TCP Tcl Tix @@ -130,6 +139,7 @@ aproximarla argv array arrays +asignadores asincrónica asincrónico assert @@ -175,12 +185,14 @@ customizarlo códec datagramas debugueando +darwin default desalojable desasigna desasignación desasignada desasignador +desasignarlos descargable descompresor deserialización @@ -241,11 +253,15 @@ indexación inf inicializa inicialización +inicializaciones inicializada inicializado +inicializador inicializan +inicializando inicializar inicializarse +inicializó insert install instanciación @@ -286,13 +302,16 @@ mezclarlos mini modularidad monoespaciada +monofásica mortem muestrea multi multicast +multifase multihilo multilínea multiprocesamiento +multiproceso mutex mxBase mxBase @@ -308,6 +327,7 @@ pads parsea parseada parsear +perfilador permitiéndole permutaciones personalizadamente From 46f036c58546d14a695beff7f63b799f8aa15f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sun, 7 Jun 2020 15:30:14 +0200 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: E. Ortega --- c-api/init.po | 121 ++++++++++++++++++++++++++------------------------ 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/c-api/init.po b/c-api/init.po index 7867b9273c..0e9cd95b47 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -289,7 +289,7 @@ msgid "" "If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " "variable to initialize the secret hash seed." msgstr "" -"Si el indicador no es cero, lea la variable de entorno :envvar:" +"Si el indicador no es cero, lee la variable de entorno :envvar:" "`PYTHONHASHSEED` para inicializar la semilla de *hash* secreta." #: ../Doc/c-api/init.rst:125 @@ -297,7 +297,7 @@ msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." msgstr "" -"Ignorar todas las variables de entorno :envvar:`PYTHON *`, por ejemplo :" +"Ignorar todas las variables de entorno :envvar:`PYTHON*`, por ejemplo :" "envvar:`PYTHONPATH` y :envvar:`PYTHONHOME`, eso podría establecerse." #: ../Doc/c-api/init.rst:128 @@ -310,10 +310,10 @@ msgid "" "used, enter interactive mode after executing the script or the command, even " "when :data:`sys.stdin` does not appear to be a terminal." msgstr "" -"Cuando se pasa una secuencia de comandos como primer argumento o se usa la " -"opción :option:`-c`, ingresa al modo interactivo después de ejecutar la " -"secuencia de comandos o el comando, incluso cuando :data:`sys.stdin` no " -"parece ser un terminal." +"Cuando se pasa una secuencia de comandos (*script*) como primer argumento o " +"se usa la opción :option:`-c`, ingresa al modo interactivo después de " +"ejecutar la secuencia de comandos o el comando, incluso cuando :data:`sys." +"stdin` no parece ser un terminal." #: ../Doc/c-api/init.rst:136 msgid "" @@ -333,8 +333,8 @@ msgid "" "neither the script's directory nor the user's site-packages directory." msgstr "" "Ejecuta Python en modo aislado. En modo aislado :data:`sys.path` no contiene " -"ni el directorio del script ni el directorio de paquetes del sitio del " -"usuario (*site-pacages*)." +"ni el directorio de la secuencia de comandos (*script*) ni el directorio de " +"paquetes del sitio del usuario (*site-pacages*)." #: ../Doc/c-api/init.rst:148 msgid "Set by the :option:`-I` option." @@ -543,14 +543,14 @@ msgid "" "(flushing buffered data), ``-1`` is returned." msgstr "" "Deshace todas las inicializaciones realizadas por :c:func:`Py_Initialize` y " -"el uso posterior de las funciones de Python/C API, y destruye todos los " -"subinterpretes (ver :c:func:`Py_NewInterpreter` a continuación) que se " -"crearon y aún no se destruyeron desde el última llamada a :c:func:" -"`Py_Initialize`. Idealmente, esto libera toda la memoria asignada por el " -"intérprete de Python. Este es un *no-op* cuando se llama por segunda vez " -"(sin llamar a :c:func:`Py_Initialize` nuevamente primero). Normalmente el " -"valor de retorno es ``0``. Si hubo errores durante la finalización (lavado " -"de datos almacenados en el búfer), se retorna ``-1``." +"el uso posterior de las funciones de Python/C API, y destruye todos los sub-" +"intérpretes (ver :c:func:`Py_NewInterpreter` a continuación) que se crearon " +"y aún no se destruyeron desde el última llamada a :c:func:`Py_Initialize`. " +"Idealmente, esto libera toda la memoria asignada por el intérprete de " +"Python. Este es un *no-op* cuando se llama por segunda vez (sin llamar a :c:" +"func:`Py_Initialize` nuevamente primero). Normalmente el valor de retorno es " +"``0``. Si hubo errores durante la finalización (lavado de datos almacenados " +"en el búfer), se retorna ``-1``." #: ../Doc/c-api/init.rst:285 msgid "" @@ -591,12 +591,12 @@ msgstr "" "funciones) o módulos. Los módulos de extensión cargados dinámicamente " "cargados por Python no se descargan. Es posible que no se liberen pequeñas " "cantidades de memoria asignadas por el intérprete de Python (si encuentra " -"una fuga, se informa). La memoria atada en referencias circulares entre " -"objetos no se libera. Es posible que parte de la memoria asignada por los " -"módulos de extensión no se libere. Algunas extensiones pueden no funcionar " -"correctamente si su rutina de inicialización se llama más de una vez; Esto " -"puede suceder si una aplicación llama a :c:func:`Py_Initialize` y :c:func:" -"`Py_FinalizeEx` más de una vez." +"una fuga, informe por favor). La memoria atada en referencias circulares " +"entre objetos no se libera. Es posible que parte de la memoria asignada por " +"los módulos de extensión no se libere. Algunas extensiones pueden no " +"funcionar correctamente si su rutina de inicialización se llama más de una " +"vez; Esto puede suceder si una aplicación llama a :c:func:`Py_Initialize` y :" +"c:func:`Py_FinalizeEx` más de una vez." #: ../Doc/c-api/init.rst:305 msgid "" @@ -735,9 +735,9 @@ msgstr "" "caracteres retornada apunta al almacenamiento estático; la persona que llama " "no debe modificar su valor. Esto corresponde a la variable :makevar:`prefix` " "en el archivo de nivel superior :file:`Makefile` y el argumento ``--prefix`` " -"al script :program:`configure` en tiempo de compilación. El valor está " -"disponible para el código de Python como ``sys.prefix``. Solo es útil en " -"Unix. Ver también la siguiente función." +"a la secuencia de comandos (*script*) :program:`configure` en tiempo de " +"compilación. El valor está disponible para el código de Python como ``sys." +"prefix``. Solo es útil en Unix. Ver también la siguiente función." #: ../Doc/c-api/init.rst:394 msgid "" @@ -760,9 +760,9 @@ msgstr "" "caracteres retornada apunta al almacenamiento estático; la persona que llama " "no debe modificar su valor. Esto corresponde a la variable :makevar:" "`exec_prefix` en el archivo de nivel superior :file:`Makefile` y el " -"argumento ``--exec-prefix`` al script :program:`configure` en tiempo de " -"compilación. El valor está disponible para el código de Python como ``sys." -"exec_prefix``. Solo es útil en Unix." +"argumento ``--exec-prefix`` a la secuencia de comandos (*script*) :program:" +"`configure` en tiempo de compilación. El valor está disponible para el " +"código de Python como ``sys.exec_prefix``. Solo es útil en Unix." #: ../Doc/c-api/init.rst:404 msgid "" @@ -812,9 +812,9 @@ msgid "" "while having :file:`/usr/local/plat` be a different filesystem for each " "platform." msgstr "" -"Los administradores del sistema sabrán cómo configurar los programas :" +"Los administradores de sistemas sabrán cómo configurar los programas :" "program:`mount` o :program:`automount` para compartir :file:`/usr/local` " -"entre plataformas mientras que :file:`/usr/local/plat` sea un Sistema de " +"entre plataformas mientras que :file:`/usr/local/plat` sea un sistema de " "archivos diferente para cada plataforma." #: ../Doc/c-api/init.rst:433 @@ -920,7 +920,7 @@ msgid "" "as :data:`sys.version`." msgstr "" "La primera palabra (hasta el primer carácter de espacio) es la versión " -"actual de Python; Los primeros tres caracteres son la versión mayor y menor " +"actual de Python; los primeros tres caracteres son la versión mayor y menor " "separados por un punto. La cadena de caracteres retornada apunta al " "almacenamiento estático; la persona que llama no debe modificar su valor. El " "valor está disponible para el código Python como :data:`sys.version`." @@ -1003,11 +1003,12 @@ msgid "" msgstr "" "Establece :data:`sys.argv` basado en *argc* y *argv*. Estos parámetros son " "similares a los pasados a la función del programa :c:func:`main` con la " -"diferencia de que la primera entrada debe referirse al archivo de script que " -"se ejecutará en lugar del ejecutable que aloja el intérprete de Python. Si " -"no se ejecuta un script, la primera entrada en *argv* puede ser una cadena " -"de caracteres vacía. Si esta función no puede inicializar :data:`sys.argv`, " -"una condición fatal se señala usando :c:func:`Py_FatalError`." +"diferencia de que la primera entrada debe referirse al archivo de la " +"secuencia de comandos (*script*) que se ejecutará en lugar del ejecutable " +"que aloja el intérprete de Python. Si no se ejecuta una secuencia de " +"comandos (*script*), la primera entrada en *argv* puede ser una cadena de " +"caracteres vacía. Si esta función no puede inicializar :data:`sys.argv`, una " +"condición fatal se señala usando :c:func:`Py_FatalError`." #: ../Doc/c-api/init.rst:574 msgid "" @@ -1025,9 +1026,9 @@ msgid "" "path of the directory where the script is located is prepended to :data:`sys." "path`." msgstr "" -"Si el nombre de un *script* existente se pasa en ``argv[0]``, la ruta " -"absoluta del directorio donde se encuentra el *script* se antepone a :data:" -"`sys.path`." +"Si el nombre de una secuencia de comandos (*script*) existente se pasa en " +"``argv[0]``, la ruta absoluta del directorio donde se encuentra el *script* " +"se antepone a :data:`sys.path`." #: ../Doc/c-api/init.rst:581 msgid "" @@ -1048,9 +1049,10 @@ msgid "" "`_." msgstr "" "Se recomienda que las aplicaciones que incorporan el intérprete de Python " -"para otros fines que no sean ejecutar un solo script pasen ``0`` como " -"*updatepath* y actualicen :data:`sys.path` si lo desean. Ver `CVE-2008-5983 " -"` _." +"para otros fines que no sean ejecutar una sola secuencia de comandos " +"(*script*) pasen ``0`` como *updatepath* y actualicen :data:`sys.path` si lo " +"desean. Ver `CVE-2008-5983 ` _." #: ../Doc/c-api/init.rst:595 msgid "" @@ -1059,7 +1061,7 @@ msgid "" "`PySys_SetArgv`, for example using::" msgstr "" "En las versiones anteriores a 3.1.3, puede lograr el mismo efecto quitando " -"manualmente (*popping*) el primer elemento :data:`sys.path` después de haber " +"manualmente el primer elemento (*popping*) :data:`sys.path` después de haber " "llamado :c:func:`PySys_SetArgv`, por ejemplo usando ::" #: ../Doc/c-api/init.rst:609 @@ -1176,7 +1178,7 @@ msgstr "" #: ../Doc/c-api/init.rst:689 msgid "This is so common that a pair of macros exists to simplify it::" -msgstr "Esto es tan común que existe un par de macros para simplificarlo:" +msgstr "Esto es tan común que existen un par de macros para simplificarlo:" #: ../Doc/c-api/init.rst:699 msgid "" @@ -1652,7 +1654,7 @@ msgid "" "`Py_BEGIN_ALLOW_THREADS` macro. See above for further discussion of this " "macro." msgstr "" -"Esta macro se expande a ``PyEval_RestoreThread(_save);}``. Tenga en cuenta " +"Esta macro se expande a ``PyEval_RestoreThread(_save); }``. Tenga en cuenta " "que contiene una llave de cierre; debe coincidir con una macro anterior :c:" "macro:`Py_BEGIN_ALLOW_THREADS`. Ver arriba para una discusión más detallada " "de esta macro." @@ -2058,7 +2060,7 @@ msgstr "" "Tenga en cuenta que esto es diferente de lo que sucede cuando se importa una " "extensión después de que el intérprete se haya reiniciado por completo " "llamando a :c:func:`Py_FinalizeEx` y :c:func:`Py_Initialize`; en ese caso, " -"la función ``initmodule`` de la extensión *se llama* nuevamente. Al igual " +"la función ``initmodule`` de la extensión *es* llamada nuevamente. Al igual " "que con la inicialización de múltiples fases, esto significa que solo se " "comparten variables estáticas y globales de nivel C entre estos módulos." @@ -2103,7 +2105,7 @@ msgstr "" "usando operaciones de archivos de bajo nivel como :func:`os.close` pueden " "(accidentalmente o maliciosamente) afectar los archivos abiertos del otro. " "Debido a la forma en que las extensiones se comparten entre (sub) " -"intérpretes, algunas extensiones pueden no funcionar correctamente; Esto es " +"intérpretes, algunas extensiones pueden no funcionar correctamente; esto es " "especialmente probable cuando se utiliza la inicialización monofásica o las " "variables globales (estáticas). Es posible insertar objetos creados en un " "subinterprete en un espacio de nombres de otro (sub) intérprete; Esto debe " @@ -2227,8 +2229,8 @@ msgstr "" "hay garantía de que *func* se llame lo más rápido posible. Si el hilo " "principal está ocupado ejecutando una llamada al sistema, no se llamará " "*func* antes de que vuelva la llamada del sistema. Esta función generalmente " -"** no ** es adecuada para llamar a código Python desde hilos C arbitrarios. " -"En su lugar, use :ref:`PyGILState API `." +"**no** es adecuada para llamar a código Python desde hilos C arbitrarios. En " +"su lugar, use :ref:`PyGILState API `." #: ../Doc/c-api/init.rst:1342 msgid "Profiling and Tracing" @@ -2253,7 +2255,7 @@ msgid "" "basic events reported to the trace function are the same as had been " "reported to the Python-level trace functions in previous versions." msgstr "" -"Esta interfaz C permite que el código de perfil o rastreo evite la " +"Esta interfaz C permite que el código de perfilado o rastreo evite la " "sobrecarga de llamar a través de objetos invocables a nivel de Python, " "haciendo una llamada directa a la función C en su lugar. Los atributos " "esenciales de la instalación no han cambiado; la interfaz permite instalar " @@ -2282,7 +2284,7 @@ msgstr "" #: ../Doc/c-api/init.rst:1370 msgid "Value of *what*" -msgstr "Valor de *que*" +msgstr "Valor de *what*" #: ../Doc/c-api/init.rst:1370 msgid "Meaning of *arg*" @@ -2443,11 +2445,11 @@ msgid "" msgstr "" "Establece la función del generador de perfiles en *func*. El parámetro *obj* " "se pasa a la función como su primer parámetro, y puede ser cualquier objeto " -"de Python o ``NULL``. Si la función de perfil necesita mantener el estado, " -"el uso de un valor diferente para *obj* para cada hilo proporciona un lugar " -"conveniente y seguro para guardarlo. Se llama a la función de perfil para " -"todos los eventos supervisados, excepto :const:`PyTrace_LINE` :const:" -"`PyTrace_OPCODE` y :const:`PyTrace_EXCEPTION`." +"de Python o ``NULL``. Si la función de perfilado necesita mantener el " +"estado, el uso de un valor diferente para *obj* para cada hilo proporciona " +"un lugar conveniente y seguro para guardarlo. Se llama a la función de " +"perfilado para todos los eventos supervisados, excepto :const:" +"`PyTrace_LINE` :const:`PyTrace_OPCODE` y :const:`PyTrace_EXCEPTION`." #: ../Doc/c-api/init.rst:1462 msgid "" @@ -2562,7 +2564,8 @@ msgstr "" "Ninguna de estas funciones API maneja la administración de memoria en nombre " "de los valores :c:type:`void\\*`. Debe asignarlos y desasignarlos usted " "mismo. Si los valores :c:type:`void\\*` son :c:type:`PyObject\\*`, estas " -"funciones tampoco realizan operaciones de recuento en ellos." +"funciones tampoco realizan operaciones de conteo de referencias (*refcount*) " +"en ellos." #: ../Doc/c-api/init.rst:1537 msgid "Thread Specific Storage (TSS) API" @@ -2652,8 +2655,8 @@ msgstr "" msgid "" "A freed key becomes a dangling pointer, you should reset the key to `NULL`." msgstr "" -"Una llave liberada se convierte en un puntero colgante (*dangling pointer*), " -"debe restablecer la llave a `NULL`." +"Una clave (*key*) liberada se convierte en un puntero colgante (*dangling " +"pointer*), debe restablecer la llave a `NULL`." #: ../Doc/c-api/init.rst:1593 msgid "Methods" From 95c8ed873aec45db3150fd5899bc04ba0654b588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sun, 7 Jun 2020 17:19:01 +0200 Subject: [PATCH 3/3] Apply suggestions from code review --- dict | 3 --- 1 file changed, 3 deletions(-) diff --git a/dict b/dict index f260036e44..e881ca3bab 100644 --- a/dict +++ b/dict @@ -116,11 +116,9 @@ Solaris Spot Sparc Stein -subdirectorios subinterprete subinterpretes subproceso -subprocesos TCP Tcl Tix @@ -209,7 +207,6 @@ desasigna desasigne desasignación desasignada -desasignador desasignarlos desasignado descargable