From afc440b11d406690b63c8eca6f705287bfe8e281 Mon Sep 17 00:00:00 2001 From: Tatiana Delgadillo Date: Mon, 6 Jan 2025 20:11:42 -0400 Subject: [PATCH 01/31] =?UTF-8?q?Traducci=C3=B3n=20archivo=20c-api/memoryv?= =?UTF-8?q?iew=20(#3356)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3278 --- c-api/memoryview.po | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/c-api/memoryview.po b/c-api/memoryview.po index fa6e02a4eb..aefbdded34 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2024-10-29 21:14-0400\n" +"PO-Revision-Date: 2025-01-06 16:11-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/memoryview.rst:9 msgid "MemoryView objects" @@ -50,11 +51,11 @@ msgstr "" #: ../Doc/c-api/memoryview.rst:26 msgid "Flag to request a readonly buffer." -msgstr "" +msgstr "Indicador para solicitar un búfer de solo lectura." #: ../Doc/c-api/memoryview.rst:31 msgid "Flag to request a writable buffer." -msgstr "" +msgstr "Indicador para solicitar un búfer escribible." #: ../Doc/c-api/memoryview.rst:36 msgid "" @@ -89,12 +90,10 @@ msgstr "" "realiza una copia y la vista de memoria apunta a un nuevo objeto de bytes." #: ../Doc/c-api/memoryview.rst:55 -#, fuzzy msgid "" "*buffertype* can be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" -"Crea un objeto de vista de memoria usando *mem* como el búfer subyacente. " -"*flags* pueden ser uno de :c:macro:`PyBUF_READ` o :c:macro:`PyBUF_WRITE`." +"*buffertype* puede ser uno de :c:macro:`PyBUF_READ` o :c:macro:`PyBUF_WRITE`." #: ../Doc/c-api/memoryview.rst:60 msgid "" From f375648ed230f98adfb507e6cfc90b3fefe45825 Mon Sep 17 00:00:00 2001 From: Jonathan Villanueva Date: Wed, 15 Jan 2025 00:23:49 -0400 Subject: [PATCH 02/31] Traducido archivo faq/gui (#3357) Closes #2893 --- faq/gui.po | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/faq/gui.po b/faq/gui.po index d1ee2dbdb1..3e0f98460e 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-11-09 22:34-0600\n" +"PO-Revision-Date: 2025-01-15 00:01-0400\n" "Last-Translator: Erick G. Islas Osuna \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/faq/gui.rst:5 msgid "Graphic User Interface FAQ" @@ -90,28 +91,28 @@ msgstr "" "y Tk." #: ../Doc/faq/gui.rst:45 -#, fuzzy msgid "" "One solution is to ship the application with the Tcl and Tk libraries, and " "point to them at run-time using the :envvar:`!TCL_LIBRARY` and :envvar:`!" "TK_LIBRARY` environment variables." msgstr "" "Una solución es enviar la aplicación con las bibliotecas Tcl y Tk, y " -"apuntarlas en tiempo de ejecución utilizando :envvar:`TCL_LIBRARY` y las " -"variables de entorno :envvar:`TK_LIBRARY`." +"apuntarlas en tiempo de ejecución utilizando las variables de entorno :" +"envvar:`!TCL_LIBRARY` y :envvar:`!TK_LIBRARY`." #: ../Doc/faq/gui.rst:49 msgid "" "Various third-party freeze libraries such as py2exe and cx_Freeze have " "handling for Tkinter applications built-in." msgstr "" +"Varias bibliotecas de terceros para congelar como py2exe y cx_Freeze tienen " +"soporte integrado para aplicaciones Tkinter." #: ../Doc/faq/gui.rst:54 msgid "Can I have Tk events handled while waiting for I/O?" msgstr "¿Puedo tener eventos Tk manejados mientras espero por *I/O*?" #: ../Doc/faq/gui.rst:56 -#, fuzzy msgid "" "On platforms other than Windows, yes, and you don't even need threads! But " "you'll have to restructure your I/O code a bit. Tk has the equivalent of " @@ -119,12 +120,12 @@ msgid "" "function which will be called from the Tk mainloop when I/O is possible on a " "file descriptor. See :ref:`tkinter-file-handlers`." msgstr "" -"En plataformas que no sean Windows, sí, ¡y ni siquiera necesita hilos! Pero " -"tendrá que reestructurar un poco su código de I/O. Tk tiene el equivalente " -"de la llamada Xt :c:func:`XtAddInput()`, que le permite registrar una " -"función de *callback* que se llamará desde el bucle principal de Tk cuando " -"sea posible I/O en un descriptor de archivo. Ver :ref:`tkinter-file-" -"handlers`." +"En plataformas que no sean Windows, sí, ¡y ni siquiera necesitas hilos! Pero " +"tendrá que reestructurar un poco su código de entrada/salida. Tk tiene un " +"equivalente de la llamada :c:func:`XtAddInput` de Xt, que permite registrar " +"una función de retorno que será llamada desde el bucle principal de Tk " +"cuando sea posible entrada/salida en un descriptor de archivo. Ver :ref:" +"`tkinter-file-handlers`." #: ../Doc/faq/gui.rst:64 msgid "I can't get key bindings to work in Tkinter: why?" @@ -132,15 +133,14 @@ msgstr "" "No puedo hacer que los atajos de teclado funcionen en Tkinter: ¿por qué?" #: ../Doc/faq/gui.rst:66 -#, fuzzy msgid "" "An often-heard complaint is that event handlers :ref:`bound ` to events with the :meth:`!bind` method don't get handled even when " "the appropriate key is pressed." msgstr "" -"Una queja que se escucha con frecuencia es que los controladores de eventos " -"vinculados a eventos con el método :meth:`bind` no se manejan incluso cuando " -"se presiona la tecla adecuada." +"Una queja frecuente que se escucha es que los controladores de eventos :ref:" +"`vinculados ` con el método :meth:`!bind` no se " +"ejecutan incluso cuando se presiona la tecla correspondiente." #: ../Doc/faq/gui.rst:70 msgid "" From be6f74f3dd25492cfee54391daa1a3e6ae4e7109 Mon Sep 17 00:00:00 2001 From: rtobar Date: Mon, 27 Jan 2025 10:10:10 +0800 Subject: [PATCH 03/31] Arregla faq/gui.po (#3361) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Al revisar #3357 la nueva interfaz experimental de GitHub no mostró el botón para aceptar y ejecutar los cambios en CI (dado que eran cambios de alguien que contribuía por primera vez). Al mismo tiempo todos los chequeos aparecían en verde, dando la sensación de que estaba todo bien. Hice el merge, pero había problemas, que este commit arregla. Signed-off-by: Rodrigo Tobar --- dictionaries/faq_gui.txt | 1 + faq/gui.po | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 dictionaries/faq_gui.txt diff --git a/dictionaries/faq_gui.txt b/dictionaries/faq_gui.txt new file mode 100644 index 0000000000..17f90afc2b --- /dev/null +++ b/dictionaries/faq_gui.txt @@ -0,0 +1 @@ +cx diff --git a/faq/gui.po b/faq/gui.po index 3e0f98460e..24c292c525 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -122,7 +122,7 @@ msgid "" msgstr "" "En plataformas que no sean Windows, sí, ¡y ni siquiera necesitas hilos! Pero " "tendrá que reestructurar un poco su código de entrada/salida. Tk tiene un " -"equivalente de la llamada :c:func:`XtAddInput` de Xt, que permite registrar " +"equivalente de la llamada :c:func:`!XtAddInput` de Xt, que permite registrar " "una función de retorno que será llamada desde el bucle principal de Tk " "cuando sea posible entrada/salida en un descriptor de archivo. Ver :ref:" "`tkinter-file-handlers`." From 335fa605308f1746bc3c509de5e39b18057c7059 Mon Sep 17 00:00:00 2001 From: Alberto Andrei Soria Gomez <44327209+AASG2003@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:53:54 -0500 Subject: [PATCH 04/31] Traducido archivo c-api/datetime (#3359) Closes #3246 --------- Co-authored-by: andrei --- c-api/datetime.po | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/c-api/datetime.po b/c-api/datetime.po index 704a87a82d..100d1f7118 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2024-11-10 19:13-0500\n" +"PO-Revision-Date: 2025-01-26 21:27-0500\n" "Last-Translator: Meta Louis-Kosmas \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/datetime.rst:6 msgid "DateTime Objects" @@ -73,8 +74,7 @@ msgid "" "is the same object as :class:`datetime.date` in the Python layer." msgstr "" "Esta instancia de :c:type:`PyTypeObject` representa el *date type* de " -"Python; es el mismo objecto que que :class:`datetime.date` en la capa de " -"Python." +"Python; es el mismo objeto que :class:`datetime.date` en la capa de Python." #: ../Doc/c-api/datetime.rst:39 msgid "" @@ -82,7 +82,7 @@ msgid "" "it is the same object as :class:`datetime.datetime` in the Python layer." msgstr "" "Esta instancia de :c:type:`PyTypeObject` representa el *datetime type* de " -"Python; es el mismo objecto que que :class:`datetime.datetime` en la capa de " +"Python; es el mismo objeto que :class:`datetime.datetime` en la capa de " "Python." #: ../Doc/c-api/datetime.rst:44 @@ -91,7 +91,7 @@ msgid "" "is the same object as :class:`datetime.time` in the Python layer." msgstr "" "Esta instancia de :c:type:`PyObject` representa el *time type* de Python; es " -"el mismo objecto que que :class:`datetime.time` en la capa de Python." +"el mismo objeto que :class:`datetime.time` en la capa de Python." #: ../Doc/c-api/datetime.rst:49 msgid "" @@ -384,19 +384,17 @@ msgid "Macros for the convenience of modules implementing the DB API:" msgstr "Macros para la conveniencia de módulos que implementan la API DB:" #: ../Doc/c-api/datetime.rst:320 -#, fuzzy msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." msgstr "" "Crea y retorna un nuevo objeto :class:`datetime.datetime` dado una tupla de " -"argumentos adecuada para pasar a :meth:`datetime.datetime.fromtimestamp()`." +"argumentos adecuada para pasar a :meth:`datetime.datetime.fromtimestamp`." #: ../Doc/c-api/datetime.rst:326 -#, fuzzy msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." msgstr "" "Crea y retorna un nuevo objeto :class:`datetime.date` dado una tupla de " -"argumentos adecuada para pasar a :meth:`datetime.date.fromtimestamp()`." +"argumentos adecuada para pasar a :meth:`datetime.date.fromtimestamp`." From b16744908c001b066acb579d011399bc521700fb Mon Sep 17 00:00:00 2001 From: xDanna <159052616+xDanna@users.noreply.github.com> Date: Sun, 26 Jan 2025 22:55:53 -0400 Subject: [PATCH 05/31] Traducido archivo c-api/marshal (#3360) Closes #3255 Co-authored-by: rtobar --- c-api/marshal.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/c-api/marshal.po b/c-api/marshal.po index d1f8676833..0fb738f127 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2024-10-28 21:01-0400\n" +"PO-Revision-Date: 2025-01-26 17:22-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/marshal.rst:6 msgid "Data marshalling support" @@ -45,7 +46,6 @@ msgstr "" "Los valores numéricos se almacenan con el byte menos significativo primero." #: ../Doc/c-api/marshal.rst:16 -#, fuzzy msgid "" "The module supports two versions of the data format: version 0 is the " "historical version, version 1 shares interned strings in the file, and upon " From 8144640c9e3a70c5228b43b80ccddf53b9b5e61f Mon Sep 17 00:00:00 2001 From: kbiggers Date: Sun, 26 Jan 2025 21:57:33 -0500 Subject: [PATCH 06/31] =?UTF-8?q?Actualizar=20la=20documentaci=C3=B3n=20pa?= =?UTF-8?q?ra=20indicar=20que=20el=20clon=20debe=20ser=20recursivo=20(#335?= =?UTF-8?q?3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Actualizar la documentación para indicar que el clon debe ser recursivo closes #3352 --------- Co-authored-by: rtobar --- .overrides/CONTRIBUTING.rst | 2 +- Makefile | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.overrides/CONTRIBUTING.rst b/.overrides/CONTRIBUTING.rst index 903fd6aa46..360b3f0957 100644 --- a/.overrides/CONTRIBUTING.rst +++ b/.overrides/CONTRIBUTING.rst @@ -60,7 +60,7 @@ podrás realizar todas las contribuciones que quieras. #. (Opcional) Instala los requerimientos del proyecto:: - pip install -r requirements.txt + pip install -r requirements-own.txt .. note:: diff --git a/Makefile b/Makefile index f6e011c7b4..75f0f9dd50 100644 --- a/Makefile +++ b/Makefile @@ -56,6 +56,9 @@ do_build: setup: venv git submodule sync git submodule update --init --force --depth 1 $(CPYTHON_PATH) + # Now that we've initialized the submodules, install all requirements necessary for the build + $(VENV)/bin/python -m pip install -q -r requirements.txt + # venv: create a virtual environment which will be used by almost every @@ -66,7 +69,7 @@ venv: $(PYTHON) -m venv --prompt $(LANGUAGE_TEAM) $(VENV); \ fi - $(VENV)/bin/python -m pip install -q -r requirements.txt + $(VENV)/bin/python -m pip install -q -r requirements-own.txt # serve: serve the documentation in a simple local web server, using cpython From d1b3567100348d90f43f575592024361a8ec6dae Mon Sep 17 00:00:00 2001 From: Francisco Mora <193986059+srmorita@users.noreply.github.com> Date: Mon, 27 Jan 2025 11:19:29 -0300 Subject: [PATCH 07/31] Traducido archivo c-api/concrete (#3358) Closes #3270 --- TRANSLATORS | 1 + c-api/concrete.po | 20 +++++++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/TRANSLATORS b/TRANSLATORS index 107807d0bb..3686c2a25f 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -228,6 +228,7 @@ Sergio Infante (@neosergio) Silvina Tamburini (@silvinabt87) Sofia Carballo (@sofiacarballo) Sofía Denner +Srmorita (@srmorita) Stephanie Orellana Bello Sumit Kashyap Summerok diff --git a/c-api/concrete.po b/c-api/concrete.po index fe90ed851a..a787976028 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 19:43+0200\n" -"PO-Revision-Date: 2020-05-09 18:24+0200\n" -"Last-Translator: \n" -"Language: es\n" +"PO-Revision-Date: 2025-01-27 08:51-0300\n" +"Last-Translator: srmorita \n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.13.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/concrete.rst:8 msgid "Concrete Objects Layer" @@ -99,20 +100,17 @@ msgstr "Otros objetos" #: ../Doc/c-api/concrete.rst:43 ../Doc/c-api/concrete.rst:58 #: ../Doc/c-api/concrete.rst:80 -#, fuzzy msgid "object" -msgstr "Otros objetos" +msgstr "object" #: ../Doc/c-api/concrete.rst:43 -#, fuzzy msgid "numeric" -msgstr "Objetos numéricos" +msgstr "numeric" #: ../Doc/c-api/concrete.rst:58 -#, fuzzy msgid "sequence" -msgstr "Objetos de secuencia" +msgstr "sequence" #: ../Doc/c-api/concrete.rst:80 msgid "mapping" -msgstr "" +msgstr "mapping" From 553c804f3d68f0866d6f86ad710cf31af45e77e6 Mon Sep 17 00:00:00 2001 From: Carlos Mena <50986837+carlosm00@users.noreply.github.com> Date: Tue, 28 Jan 2025 11:50:45 +0100 Subject: [PATCH 08/31] Traduccion deprecations/c-api-pending-removal-in-3.15.po (#3362) Closes #3294 --- deprecations/c-api-pending-removal-in-3.15.po | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/deprecations/c-api-pending-removal-in-3.15.po b/deprecations/c-api-pending-removal-in-3.15.po index 8b11f9a0ea..b111679eed 100644 --- a/deprecations/c-api-pending-removal-in-3.15.po +++ b/deprecations/c-api-pending-removal-in-3.15.po @@ -10,74 +10,88 @@ msgstr "" "Project-Id-Version: Python en Español 3.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: es\n" +"PO-Revision-Date: 2025-01-28 11:30+0100\n" +"Last-Translator: Carlos Mena Pérez <@carlosm00>\n" "Language-Team: es \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:2 msgid "Pending Removal in Python 3.15" -msgstr "" +msgstr "Pendiente de eliminación en Python 3.15" #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:4 msgid "The bundled copy of ``libmpdecimal``." -msgstr "" +msgstr "La copia incluida de ``libmpdecimal``." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:5 msgid "" "The :c:func:`PyImport_ImportModuleNoBlock`: Use :c:func:" "`PyImport_ImportModule` instead." msgstr "" +"La función :c:func:`PyImport_ImportModuleNoBlock`: use :c:func:" +"`PyImport_ImportModule` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:7 msgid "" ":c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`: Use :c:" "func:`PyWeakref_GetRef` instead." msgstr "" +":c:func:`PyWeakref_GetObject` y :c:func:`PyWeakref_GET_OBJECT`: use :c:func:" +"`PyWeakref_GetRef` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:9 msgid "" ":c:type:`Py_UNICODE` type and the :c:macro:`!Py_UNICODE_WIDE` macro: Use :c:" "type:`wchar_t` instead." msgstr "" +"El tipo :c:type:`Py_UNICODE` y macro :c:macro:`!Py_UNICODE_WIDE`: use :c:" +"type:`wchar_t` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:11 msgid "Python initialization functions:" -msgstr "" +msgstr "Funciones de inicialización de Python:" #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:13 msgid "" ":c:func:`PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" "warnings.filters` instead." msgstr "" +":c:func:`PySys_ResetWarnOptions`: Borre :data:`sys.warnoptions` y :data:`!" +"warnings.filters` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:15 msgid ":c:func:`Py_GetExecPrefix`: Get :data:`sys.exec_prefix` instead." msgstr "" +":c:func:`Py_GetExecPrefix`: obtenga :data:`sys.exec_prefix` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:17 msgid ":c:func:`Py_GetPath`: Get :data:`sys.path` instead." -msgstr "" +msgstr ":c:func:`Py_GetPath`: obtenga :data:`sys.path` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:19 msgid ":c:func:`Py_GetPrefix`: Get :data:`sys.prefix` instead." -msgstr "" +msgstr ":c:func:`Py_GetPrefix`: obtenga :data:`sys.prefix` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:21 msgid ":c:func:`Py_GetProgramFullPath`: Get :data:`sys.executable` instead." msgstr "" +":c:func:`Py_GetProgramFullPath`: obtenga :data:`sys.executable` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:23 msgid ":c:func:`Py_GetProgramName`: Get :data:`sys.executable` instead." msgstr "" +":c:func:`Py_GetProgramName`: obtenga :data:`sys.executable` en su lugar." #: ../Doc/deprecations/c-api-pending-removal-in-3.15.rst:25 msgid "" ":c:func:`Py_GetPythonHome`: Get :c:member:`PyConfig.home` or the :envvar:" "`PYTHONHOME` environment variable instead." msgstr "" +":c:func:`Py_GetPythonHome`: obtenga :c:member:`PyConfig.home` o la variable " +"de entorno :envvar:`PYTHONHOME` en su lugar." From 05866b02143952c427a9b167183d568f5882e2fb Mon Sep 17 00:00:00 2001 From: Francisco Mora <193986059+srmorita@users.noreply.github.com> Date: Fri, 31 Jan 2025 10:28:15 -0300 Subject: [PATCH 09/31] Traducido archivo c-api/perfmaps (#3363) Closes #3276 --- c-api/perfmaps.po | 62 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 12 deletions(-) diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po index 233c0924f9..1bfd599da0 100644 --- a/c-api/perfmaps.po +++ b/c-api/perfmaps.po @@ -10,53 +10,74 @@ msgstr "" "Project-Id-Version: Python en Español 3.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: es\n" +"PO-Revision-Date: 2025-01-31 10:04-0300\n" +"Last-Translator: srmorita \n" "Language-Team: es \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/perfmaps.rst:6 msgid "Support for Perf Maps" -msgstr "" +msgstr "Soporte para Mapeo Perf" #: ../Doc/c-api/perfmaps.rst:8 msgid "" "On supported platforms (as of this writing, only Linux), the runtime can " "take advantage of *perf map files* to make Python functions visible to an " -"external profiling tool (such as `perf `_). A running process may create a file in the ``/tmp`` " +"external profiling tool (such as `perf `_). A running process may create a file in the ``/tmp`` " "directory, which contains entries that can map a section of executable code " "to a name. This interface is described in the `documentation of the Linux " -"Perf tool `_." +"Perf tool `_." msgstr "" +"En las plataformas soportadas (en el momento de escribir esto, sólo Linux), " +"el tiempo de ejecución puede aprovechar *perf map files* para hacer que las " +"funciones de Python sean visibles para una herramienta externa de perfiles " +"(como `perf `_). Un " +"proceso en ejecución puede crear un fichero en el directorio ``/tmp``, que " +"contiene entradas que pueden asignar una sección de código ejecutable a un " +"nombre. Esta interfaz se describe en la `documentación de la herramienta " +"Perf de Linux `_." #: ../Doc/c-api/perfmaps.rst:16 msgid "" "In Python, these helper APIs can be used by libraries and features that rely " "on generating machine code on the fly." msgstr "" +"En Python, estas API auxiliares pueden ser utilizadas por bibliotecas y " +"funciones que dependen de la generación de código de máquina sobre la marcha." #: ../Doc/c-api/perfmaps.rst:19 msgid "" "Note that holding the Global Interpreter Lock (GIL) is not required for " "these APIs." msgstr "" +"Tenga en cuenta que para estas APIs no es necesario mantener el Bloqueo " +"Global del Intérprete (GIL)." #: ../Doc/c-api/perfmaps.rst:23 msgid "" "Open the ``/tmp/perf-$pid.map`` file, unless it's already opened, and create " "a lock to ensure thread-safe writes to the file (provided the writes are " "done through :c:func:`PyUnstable_WritePerfMapEntry`). Normally, there's no " -"need to call this explicitly; just use :c:func:" -"`PyUnstable_WritePerfMapEntry` and it will initialize the state on first " -"call." +"need to call this explicitly; just " +"use :c:func:`PyUnstable_WritePerfMapEntry` and it will initialize the state " +"on first call." msgstr "" +"Abre el archivo ``/tmp/perf-$pid.map``, a menos que ya esté abierto, y crea " +"un bloqueo para garantizar escrituras seguras para hilos en el archivo " +"(siempre que las escrituras se realicen " +"mediante :c:func:`PyUnstable_WritePerfMapEntry`). Normalmente, no es " +"necesario llamar a esto explícitamente; solo " +"use :c:func:`PyUnstable_WritePerfMapEntry` e inicializará el estado en la " +"primera llamada." #: ../Doc/c-api/perfmaps.rst:29 msgid "" @@ -64,18 +85,26 @@ msgid "" "file, or ``-2`` on failure to create a lock. Check ``errno`` for more " "information about the cause of a failure." msgstr "" +"Retorna ``0`` en caso de éxito, ``-1`` en caso de fallo al crear/abrir el " +"fichero perf map, o ``-2`` en caso de fallo al crear un bloqueo. Comprueba " +"``errno`` para más información sobre la causa de un fallo." #: ../Doc/c-api/perfmaps.rst:35 msgid "" "Write one single entry to the ``/tmp/perf-$pid.map`` file. This function is " "thread safe. Here is what an example entry looks like::" msgstr "" +"Escribe una única entrada en el fichero ``/tmp/perf-$pid.map``. Esta función " +"es segura para hilos. Aquí hay un ejemplo de entrada::" +# creo que esto debe quedar igual. Es solo código fuente. #: ../Doc/c-api/perfmaps.rst:38 msgid "" "# address size name\n" "7f3529fcf759 b py::bar:/run/t.py" msgstr "" +"# address size name\n" +"7f3529fcf759 b py::bar:/run/t.py" #: ../Doc/c-api/perfmaps.rst:41 msgid "" @@ -83,6 +112,10 @@ msgid "" "if the perf map file is not already opened. Returns ``0`` on success, or the " "same error codes as :c:func:`PyUnstable_PerfMapState_Init` on failure." msgstr "" +"Llamará a :c:func:`PyUnstable_PerfMapState_Init` antes de escribir la " +"entrada, si el fichero perf map no está ya abierto. Retorna ``0`` en caso de " +"éxito, o los mismos códigos de error " +"que :c:func:`PyUnstable_PerfMapState_Init` en caso de fallo." #: ../Doc/c-api/perfmaps.rst:47 msgid "" @@ -91,3 +124,8 @@ msgid "" "general, there shouldn't be a reason to explicitly call this, except to " "handle specific scenarios such as forking." msgstr "" +"Cierra el fichero perf map abierto " +"por :c:func:`PyUnstable_PerfMapState_Init`. Esto es llamado por el propio " +"tiempo de ejecución durante el cierre del intérprete. En general, no debería " +"haber una razón para llamar explícitamente a esto, excepto para manejar " +"escenarios específicos como la bifurcación." From 4682fd76371cf465e5c80154f6f71503df743bee Mon Sep 17 00:00:00 2001 From: kbiggers Date: Sat, 1 Feb 2025 23:15:45 -0500 Subject: [PATCH 10/31] Traducido reference/compound_stmts.po (#3354) closes #3288 --------- Co-authored-by: rtobar --- dictionaries/reference_compound_stmts.txt | 4 +- reference/compound_stmts.po | 465 +++++++++++++++++----- 2 files changed, 358 insertions(+), 111 deletions(-) diff --git a/dictionaries/reference_compound_stmts.txt b/dictionaries/reference_compound_stmts.txt index 2d866fb770..5c0b4f635d 100644 --- a/dictionaries/reference_compound_stmts.txt +++ b/dictionaries/reference_compound_stmts.txt @@ -1 +1,3 @@ -precalculado \ No newline at end of file +precalculado +anything +bound \ No newline at end of file diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index ac239c5b29..483661f484 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2024-11-18 15:17-0300\n" +"PO-Revision-Date: 2025-01-01 17:41-0500\n" "Last-Translator: Carlos A. Crespo \n" -"Language: es_AR\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es_AR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/reference/compound_stmts.rst:5 msgid "Compound statements" @@ -84,7 +85,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:37 msgid "if test1: if test2: print(x)" -msgstr "" +msgstr "if test1: if test2: print(x)" #: ../Doc/reference/compound_stmts.rst:39 msgid "" @@ -98,7 +99,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:43 msgid "if x < y < z: print(x); print(y); print(z)" -msgstr "" +msgstr "if x < y < z: print(x); print(y); print(z)" #: ../Doc/reference/compound_stmts.rst:45 msgid "Summarizing:" @@ -243,6 +244,8 @@ msgstr "" "sobrescribe todas las asignaciones anteriores a esas variables, incluidas " "las realizadas en la suite del bucle ``for``::" +# No se pueden traducir los commentarios hasta que pospell tenga la habilidad +# de entender líneas de código. #: ../Doc/reference/compound_stmts.rst:183 msgid "" "for i in range(10):\n" @@ -251,6 +254,11 @@ msgid "" " # because i will be overwritten with the next\n" " # index in the range" msgstr "" +"for i in range(10):\n" +" print(i)\n" +" i = 5 # this will not affect the for-loop\n" +" # because i will be overwritten with the next\n" +" # index in the range" #: ../Doc/reference/compound_stmts.rst:193 msgid "" @@ -299,7 +307,6 @@ msgid ":keyword:`!except` clause" msgstr "Cláusula :keyword:`!except`" #: ../Doc/reference/compound_stmts.rst:241 -#, fuzzy msgid "" "The :keyword:`!except` clause(s) specify one or more exception handlers. " "When no exception occurs in the :keyword:`try` clause, no exception handler " @@ -316,13 +323,7 @@ msgstr "" "controlador de excepciones. Esta búsqueda inspecciona las cláusulas :keyword:" "`!except` a su vez hasta que se encuentra una que coincida con la excepción. " "Una cláusula :keyword:`!except` sin expresión, si está presente, debe ser la " -"última; coincide con cualquier excepción. Para una cláusula :keyword:`!" -"except` con una expresión, esa expresión se evalúa y la cláusula coincide " -"con la excepción si el objeto resultante es \"compatible\" con la excepción. " -"Un objeto es compatible con una excepción si el objeto es la clase o un :" -"term:`non-virtual base class ` del objeto de excepción, " -"o una tupla que contiene un elemento que es la clase o una clase base no " -"virtual del objeto de excepción." +"última; coincide con cualquier excepción." #: ../Doc/reference/compound_stmts.rst:249 msgid "" @@ -332,6 +333,11 @@ msgid "" "the class or a :term:`non-virtual base class ` of the " "exception object, or to a tuple that contains such a class." msgstr "" +"Para una cláusula de :keyword:`!except`con una expresión, la expresión debe " +"evaluar a un tipo de excepción o un tupla de tipos de excepciones. La " +"excepción generada coincide con una cláusula :keyword:`!except` cuya " +"expresión evaluá a la clase o una :term:`clase base no virtual ` del objeto excepción, o una tupla que contiene dicha clase." #: ../Doc/reference/compound_stmts.rst:255 msgid "" @@ -393,6 +399,8 @@ msgid "" "except E as N:\n" " foo" msgstr "" +"except E as N:\n" +" foo" #: ../Doc/reference/compound_stmts.rst:284 msgid "was translated to ::" @@ -406,6 +414,11 @@ msgid "" " finally:\n" " del N" msgstr "" +"except E as N:\n" +" try:\n" +" foo\n" +" finally:\n" +" del N" #: ../Doc/reference/compound_stmts.rst:292 msgid "" @@ -457,6 +470,23 @@ msgid "" ">>> print(sys.exception())\n" "None" msgstr "" +">>> print(sys.exception())\n" +"None\n" +">>> try:\n" +"... raise TypeError\n" +"... except:\n" +"... print(repr(sys.exception()))\n" +"... try:\n" +"... raise ValueError\n" +"... except:\n" +"... print(repr(sys.exception()))\n" +"... print(repr(sys.exception()))\n" +"...\n" +"TypeError()\n" +"ValueError()\n" +"TypeError()\n" +">>> print(sys.exception())\n" +"None" #: ../Doc/reference/compound_stmts.rst:333 msgid ":keyword:`!except*` clause" @@ -464,15 +494,15 @@ msgstr "Cláusula :keyword:`!except*`" #: ../Doc/reference/compound_stmts.rst:335 msgid "" -"The :keyword:`!except*` clause(s) are used for handling :exc:" -"`ExceptionGroup`\\s. The exception type for matching is interpreted as in " -"the case of :keyword:`except`, but in the case of exception groups we can " -"have partial matches when the type matches some of the exceptions in the " -"group. This means that multiple :keyword:`!except*` clauses can execute, " -"each handling part of the exception group. Each clause executes at most once " -"and handles an exception group of all matching exceptions. Each exception " -"in the group is handled by at most one :keyword:`!except*` clause, the first " -"that matches it. ::" +"The :keyword:`!except*` clause(s) are used for handling :exc:`ExceptionGroup`" +"\\s. The exception type for matching is interpreted as in the case of :" +"keyword:`except`, but in the case of exception groups we can have partial " +"matches when the type matches some of the exceptions in the group. This " +"means that multiple :keyword:`!except*` clauses can execute, each handling " +"part of the exception group. Each clause executes at most once and handles " +"an exception group of all matching exceptions. Each exception in the group " +"is handled by at most one :keyword:`!except*` clause, the first that matches " +"it. ::" msgstr "" "La(s) cláusula(s) :keyword:`!except*` se utilizan para manejar :exc:" "`ExceptionGroup`\\s. El tipo de excepción para la coincidencia se interpreta " @@ -504,6 +534,22 @@ msgid "" " | ValueError: 1\n" " +------------------------------------" msgstr "" +">>> try:\n" +"... raise ExceptionGroup(\"eg\",\n" +"... [ValueError(1), TypeError(2), OSError(3), OSError(4)])\n" +"... except* TypeError as e:\n" +"... print(f'caught {type(e)} with nested {e.exceptions}')\n" +"... except* OSError as e:\n" +"... print(f'caught {type(e)} with nested {e.exceptions}')\n" +"...\n" +"caught with nested (TypeError(2),)\n" +"caught with nested (OSError(3), OSError(4))\n" +" + Exception Group Traceback (most recent call last):\n" +" | File \"\", line 2, in \n" +" | ExceptionGroup: eg\n" +" +-+---------------- 1 ----------------\n" +" | ValueError: 1\n" +" +------------------------------------" #: ../Doc/reference/compound_stmts.rst:363 msgid "" @@ -537,6 +583,12 @@ msgid "" "...\n" "ExceptionGroup('', (BlockingIOError()))" msgstr "" +">>> try:\n" +"... raise BlockingIOError\n" +"... except* BlockingIOError as e:\n" +"... print(repr(e))\n" +"...\n" +"ExceptionGroup('', (BlockingIOError()))" #: ../Doc/reference/compound_stmts.rst:380 msgid "" @@ -544,19 +596,19 @@ msgid "" "``except*:``. Furthermore, this expression cannot contain exception group " "types, because that would have ambiguous semantics." msgstr "" +"Una cláusula :keyword:`!except*` debe tener una expresión coincidente; no " +"puede ser ``except*:``. Además, esta expresión no puede contener tipos de " +"excepción grupal. porque esto tendría semánticas ambiguas." #: ../Doc/reference/compound_stmts.rst:384 -#, fuzzy msgid "" "It is not possible to mix :keyword:`except` and :keyword:`!except*` in the " "same :keyword:`try`. :keyword:`break`, :keyword:`continue` and :keyword:" "`return` cannot appear in an :keyword:`!except*` clause." msgstr "" -"Una cláusula :keyword:`!except*` debe tener un tipo coincidente y este tipo " -"no puede ser una subclase de :exc:`BaseExceptionGroup`. No es posible " -"mezclar :keyword:`except` y :keyword:`!except*` en el mismo :keyword:`try`. :" -"keyword:`break`, :keyword:`continue` y :keyword:`return` no pueden aparecer " -"en una cláusula :keyword:`!except*`." +"No se puede mezclar :keyword:`except` y :keyword:`!except*` en el mismo " +":keyword:`try`. :keyword:`break`, :keyword:`continue` y :keyword:`return` no " +"puede aparecer en una cláusula :keyword:`!except*`." #: ../Doc/reference/compound_stmts.rst:399 msgid ":keyword:`!else` clause" @@ -615,6 +667,14 @@ msgid "" ">>> f()\n" "42" msgstr "" +">>> def f():\n" +"... try:\n" +"... 1/0\n" +"... finally:\n" +"... return 42\n" +"...\n" +">>> f()\n" +"42" #: ../Doc/reference/compound_stmts.rst:434 msgid "" @@ -659,6 +719,14 @@ msgid "" ">>> foo()\n" "'finally'" msgstr "" +">>> def foo():\n" +"... try:\n" +"... return 'try'\n" +"... finally:\n" +"... return 'finally'\n" +"...\n" +">>> foo()\n" +"'finally'" #: ../Doc/reference/compound_stmts.rst:460 msgid "" @@ -702,35 +770,30 @@ msgstr "" "with_item`) se evalúa para obtener un administrador de contexto." #: ../Doc/reference/compound_stmts.rst:493 -#, fuzzy msgid "" "The context manager's :meth:`~object.__enter__` is loaded for later use." msgstr "" -"El administrador de contexto :meth:`__enter__` se carga para su uso " +"El administrador de contexto :meth:`~object.__enter__` se carga para su uso " "posterior." #: ../Doc/reference/compound_stmts.rst:495 -#, fuzzy msgid "The context manager's :meth:`~object.__exit__` is loaded for later use." msgstr "" -"El administrador de contexto :meth:`__exit__` se carga para su uso posterior." +"El administrador de contexto :meth:`~object.__exit__` se carga para su uso posterior." #: ../Doc/reference/compound_stmts.rst:497 -#, fuzzy msgid "The context manager's :meth:`~object.__enter__` method is invoked." -msgstr "Se invoca el método del administrador de contexto :meth:`__enter__`." +msgstr "Se invoca el método :meth:`__enter__` del administrador de contexto." #: ../Doc/reference/compound_stmts.rst:499 -#, fuzzy msgid "" "If a target was included in the :keyword:`with` statement, the return value " "from :meth:`~object.__enter__` is assigned to it." msgstr "" -"Si se incluyó el destino en la sentencia :keyword:`with`, se le asigna el " -"valor de retorno de :meth:`__enter__`." +"Si se incluyó el destino en la declaración :keyword:`with`, se le asigna el " +"valor de retorno de :meth:`~object.__enter__`." #: ../Doc/reference/compound_stmts.rst:504 -#, fuzzy msgid "" "The :keyword:`with` statement guarantees that if the :meth:`~object." "__enter__` method returns without an error, then :meth:`~object.__exit__` " @@ -738,31 +801,29 @@ msgid "" "target list, it will be treated the same as an error occurring within the " "suite would be. See step 7 below." msgstr "" -"La sentencia :keyword:`with` garantiza que si el método :meth:`__enter__` " -"regresa sin error, entonces siempre se llamará a :meth:`__exit__`. Por lo " -"tanto, si se produce un error durante la asignación a la lista de destino, " -"se tratará de la misma manera que si el error ocurriera dentro del bloque de " -"instrucciones. Vea el paso 7 a continuación." +"La declaración :keyword:`with` garantiza que si el método :meth:`~object." +"__enter__` regresa sin error, entonces siempre se llamará a :meth:`~object." +"__exit__`. Por lo tanto, si se produce un error durante la asignación a la " +"lista de destino, se trataría de la misma manera que si el error ocurriera " +"dentro del suite. Consulte el paso 7 a continuación." #: ../Doc/reference/compound_stmts.rst:510 msgid "The suite is executed." msgstr "La suite se ejecuta." #: ../Doc/reference/compound_stmts.rst:512 -#, fuzzy msgid "" "The context manager's :meth:`~object.__exit__` method is invoked. If an " "exception caused the suite to be exited, its type, value, and traceback are " "passed as arguments to :meth:`~object.__exit__`. Otherwise, three :const:" "`None` arguments are supplied." msgstr "" -"Se invoca el método del administrador de contexto :meth:`__exit__`. Si una " -"excepción causó la salida de la suite, su tipo, valor y rastreo se pasan " -"como argumentos a :meth:`__exit__`. De lo contrario, se proporcionan tres " -"argumentos :const:`None`." +"Se invoca el método :meth:`~object.__exit__` del administrador de contexto. " +"Si una excepción causó la salida de la suite, su tipo, valor y rastreo se " +"pasan como argumentos a :meth:`~object.__exit__`. De lo contrario, se " +"proporcionan tres argumentos :const:`None`." #: ../Doc/reference/compound_stmts.rst:517 -#, fuzzy msgid "" "If the suite was exited due to an exception, and the return value from the :" "meth:`~object.__exit__` method was false, the exception is reraised. If the " @@ -770,20 +831,20 @@ msgid "" "with the statement following the :keyword:`with` statement." msgstr "" "Si se salió de la suite debido a una excepción, y el valor de retorno del " -"método :meth:`__exit__` fue falso, la excepción se vuelve a plantear. Si el " -"valor de retorno era verdadero, la excepción se suprime y la ejecución " -"continúa con la sentencia que sigue a la sentencia :keyword:`with`." +"método :meth:`~object.__exit__` fue falso, la excepción se vuelve a " +"plantear. Si el valor de retorno era verdadero, la excepción se suprime y la " +"ejecución continúa con la declaración que sigue a la declaración :keyword:" +"`with`." #: ../Doc/reference/compound_stmts.rst:522 -#, fuzzy msgid "" "If the suite was exited for any reason other than an exception, the return " "value from :meth:`~object.__exit__` is ignored, and execution proceeds at " "the normal location for the kind of exit that was taken." msgstr "" "Si se salió de la suite por cualquier motivo que no sea una excepción, el " -"valor de retorno de :meth:`__exit__` se ignora y la ejecución continúa en la " -"ubicación normal para el tipo de salida que se tomó." +"valor de retorno de :meth:`~object.__exit__` se ignora y la ejecución continúa en " +"la ubicación normal para el tipo de salida que se tomó." #: ../Doc/reference/compound_stmts.rst:526 #: ../Doc/reference/compound_stmts.rst:1547 @@ -796,6 +857,8 @@ msgid "" "with EXPRESSION as TARGET:\n" " SUITE" msgstr "" +"with EXPRESSION as TARGET:\n" +" SUITE" #: ../Doc/reference/compound_stmts.rst:531 #: ../Doc/reference/compound_stmts.rst:556 @@ -822,6 +885,22 @@ msgid "" " if not hit_except:\n" " exit(manager, None, None, None)" msgstr "" +"manager = (EXPRESSION)\n" +"enter = type(manager).__enter__\n" +"exit = type(manager).__exit__\n" +"value = enter(manager)\n" +"hit_except = False\n" +"\n" +"try:\n" +" TARGET = value\n" +" SUITE\n" +"except:\n" +" hit_except = True\n" +" if not exit(manager, *sys.exc_info()):\n" +" raise\n" +"finally:\n" +" if not hit_except:\n" +" exit(manager, None, None, None)" #: ../Doc/reference/compound_stmts.rst:550 msgid "" @@ -836,6 +915,8 @@ msgid "" "with A() as a, B() as b:\n" " SUITE" msgstr "" +"with A() as a, B() as b:\n" +" SUITE" #: ../Doc/reference/compound_stmts.rst:558 msgid "" @@ -843,6 +924,9 @@ msgid "" " with B() as b:\n" " SUITE" msgstr "" +"with A() as a:\n" +" with B() as b:\n" +" SUITE" #: ../Doc/reference/compound_stmts.rst:562 msgid "" @@ -860,6 +944,11 @@ msgid "" "):\n" " SUITE" msgstr "" +"with (\n" +" A() as a,\n" +" B() as b,\n" +"):\n" +" SUITE" #: ../Doc/reference/compound_stmts.rst:571 msgid "Support for multiple context expressions." @@ -1058,6 +1147,18 @@ msgid "" "...\n" "Case 3, y: 200" msgstr "" +">>> flag = False\n" +">>> match (100, 200):\n" +"... case (100, 300): # No coinciden: 200 != 300\n" +"... print('Case 1')\n" +"... case (100, 200) if flag: # Coinciden, pero la guardia falla\n" +"... print('Case 2')\n" +"... case (100, y): # Coinciden, y vincula `y` a 200\n" +"... print(f'Case 3, y: {y}')\n" +"... case _: # Patrón no se intentó\n" +"... print('Case 4, I match anything!')\n" +"...\n" +"Case 3, y: 200" #: ../Doc/reference/compound_stmts.rst:687 msgid "" @@ -1721,7 +1822,6 @@ msgstr "" "duplicados; o un :exc:`ValueError` para claves con nombre del mismo valor." #: ../Doc/reference/compound_stmts.rst:1059 -#, fuzzy msgid "" "Key-value pairs are matched using the two-argument form of the mapping " "subject's ``get()`` method. Matched key-value pairs must already be present " @@ -1729,9 +1829,10 @@ msgid "" "`~object.__getitem__`." msgstr "" "Los pares clave-valor se hacen coincidir utilizando la forma de dos " -"argumentos del método ``get()`` del sujeto de mapeo. Los pares clave-valor " -"coincidentes ya deben estar presentes en la asignación y no deben crearse " -"sobre la marcha a través de :meth:`__missing__` o :meth:`__getitem__`." +"argumentos del método ``get()`` del sujeto de asignación. Los pares clave-" +"valor coincidentes ya deben estar presentes en la asignación y no deben " +"crearse sobre la marcha a través de :meth:`__missing__` o :meth:" +"`~object.__getitem__`." #: ../Doc/reference/compound_stmts.rst:1064 msgid "" @@ -2082,6 +2183,9 @@ msgid "" "@f2\n" "def func(): pass" msgstr "" +"@f1(arg)\n" +"@f2\n" +"def func(): pass" #: ../Doc/reference/compound_stmts.rst:1251 #: ../Doc/reference/compound_stmts.rst:1446 @@ -2093,6 +2197,8 @@ msgid "" "def func(): pass\n" "func = f1(arg)(f2(func))" msgstr "" +"def func(): pass\n" +"func = f1(arg)(f2(func))" #: ../Doc/reference/compound_stmts.rst:1256 msgid "" @@ -2113,7 +2219,6 @@ msgstr "" "restrictiva; ver :pep:`614` para más detalles." #: ../Doc/reference/compound_stmts.rst:1263 -#, fuzzy msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets between the function's name and the opening parenthesis for its " @@ -2122,12 +2227,12 @@ msgid "" "function's :attr:`~function.__type_params__` attribute. See :ref:`generic-" "functions` for more." msgstr "" -"Se puede dar una :ref:`type parameters ` entre corchetes entre " -"el nombre de la función y el paréntesis de apertura para su lista de " -"parámetros. Esto indica a los verificadores de tipo estático que la función " -"es genérica. En ejecución, los parámetros de tipo pueden recuperarse del " -"atributo ``__type_params__``. Mirar :ref:`generic-functions` para más " -"información." +"Una lista de :ref:`parámetros del tipo ` se puede dar entre " +"corchetes entre el nombre de la función y el paréntesis de apertura para su " +"lista de parámetros. Esto indica a los verificadores de tipo estático que la " +"función es genérica. En ejecución, los parámetros de tipo pueden recuperarse " +"del atributo :attr:`~function.__type_params__`. Consulte :ref:`generic-" +"functions` para más información." #: ../Doc/reference/compound_stmts.rst:1270 #: ../Doc/reference/compound_stmts.rst:1465 @@ -2185,6 +2290,11 @@ msgid "" " penguin.append(\"property of the zoo\")\n" " return penguin" msgstr "" +"def whats_on_the_telly(penguin=None):\n" +" if penguin is None:\n" +" penguin = []\n" +" penguin.append(\"property of the zoo\")\n" +" return penguin" #: ../Doc/reference/compound_stmts.rst:1307 msgid "" @@ -2210,9 +2320,9 @@ msgstr "" "por defecto en la tupla vacía. Si el formulario \"``**identifier``\" está " "presente, se inicializa a una nueva asignación ordenada que recibe cualquier " "exceso de argumentos por palabra clave, por defecto a una nueva asignación " -"vacía del mismo tipo. Los parámetros después de \"``*``\" o " -"\"``*identifier``\" son parámetros solo por palabra clave y solo pueden " -"pasarse con argumentos de palabras claves usadas." +"vacía del mismo tipo. Los parámetros después de \"``*``\" o \"``*identifier``" +"\" son parámetros solo por palabra clave y solo pueden pasarse con " +"argumentos de palabras claves usadas." #: ../Doc/reference/compound_stmts.rst:1319 msgid "" @@ -2224,7 +2334,6 @@ msgstr "" "detalles." #: ../Doc/reference/compound_stmts.rst:1328 -#, fuzzy msgid "" "Parameters may have an :term:`annotation ` of the form " "\"``: expression``\" following the parameter name. Any parameter may have " @@ -2245,12 +2354,14 @@ msgstr "" "Los parámetros pueden tener :term:`annotation ` de la " "forma \"``: expression``\" que sigue al nombre del parámetro. Cualquier " "parámetro puede tener una anotación, incluso las de la forma ``*identifier`` " -"o ``** identifier``. Las funciones pueden tener una anotación \"return\" de " -"la forma \"``-> expression``\" después de la lista de parámetros. Estas " -"anotaciones pueden ser cualquier expresión válida de Python. La presencia de " -"anotaciones no cambia la semántica de una función. Los valores de anotación " -"están disponibles como valores de un diccionario con los nombres de los " -"parámetros en el atributo :attr:`__annotations__` del objeto de la función. " +"o ``** identifier``. (Como caso especial, parámetros de la forma " +"``*identifier`` puede tener una anotación \"``: *expression``\".) Las " +"funciones pueden tener una anotación \"return\" de la forma \"``-> " +"expression``\" después de la lista de parámetros. Estas anotaciones pueden " +"ser cualquier expresión válida de Python. La presencia de anotaciones no " +"cambia la semántica de una función. Los valores de anotación están " +"disponibles como valores de un diccionario con los nombres de los parámetros " +"como claves en el atributo :attr:`__annotations__` del objeto de la función. " "Si se usa ``annotations`` importada desde :mod:`__future__`, las anotaciones " "se conservan como cadenas de caracteres en tiempo de ejecución que permiten " "la evaluación pospuesta. De lo contrario, se evalúan cuando se ejecuta la " @@ -2262,6 +2373,8 @@ msgid "" "Parameters of the form \"``*identifier``\" may have an annotation \"``: " "*expression``\". See :pep:`646`." msgstr "" +"Parámetros de la forma \"``*identifier``\" puede tener una anotación " +"\"``: *expression``\". Consulte :pep:`646`." #: ../Doc/reference/compound_stmts.rst:1348 msgid "" @@ -2320,13 +2433,12 @@ msgid ":pep:`526` - Syntax for Variable Annotations" msgstr ":pep:`526` - Sintaxis para anotaciones variables" #: ../Doc/reference/compound_stmts.rst:1371 -#, fuzzy msgid "" "Ability to type hint variable declarations, including class variables and " "instance variables." msgstr "" -"Capacidad para escribir declaraciones de variables indirectas, incluidas " -"variables de clase y variables de instancia" +"Capacidad para escribir anotaciones de tipo para declaraciones de variables, " +"incluidas variables de clase y variables de instancia." #: ../Doc/reference/compound_stmts.rst:1376 msgid ":pep:`563` - Postponed Evaluation of Annotations" @@ -2342,18 +2454,14 @@ msgstr "" "de una evaluación apresurada." #: ../Doc/reference/compound_stmts.rst:1379 -#, fuzzy msgid ":pep:`318` - Decorators for Functions and Methods" -msgstr ":pep:`3107` - Anotaciones de funciones" +msgstr ":pep:`318` - Decoradores para Funciones y Métodos" #: ../Doc/reference/compound_stmts.rst:1379 -#, fuzzy msgid "" "Function and method decorators were introduced. Class decorators were " "introduced in :pep:`3129`." -msgstr "" -"La propuesta que agregó decoradores de clase. Los decoradores de funciones y " -"métodos se introdujeron en :pep:`318`." +msgstr "Decoradores de función y método se introdujeron en :pep:`3129`." #: ../Doc/reference/compound_stmts.rst:1385 msgid "Class definitions" @@ -2384,6 +2492,8 @@ msgid "" "class Foo:\n" " pass" msgstr "" +"class Foo:\n" +" pass" #: ../Doc/reference/compound_stmts.rst:1416 msgid "is equivalent to ::" @@ -2394,6 +2504,8 @@ msgid "" "class Foo(object):\n" " pass" msgstr "" +"class Foo(object):\n" +" pass" #: ../Doc/reference/compound_stmts.rst:1421 msgid "" @@ -2417,7 +2529,6 @@ msgstr "" "de clase en el espacio de nombres local original." #: ../Doc/reference/compound_stmts.rst:1430 -#, fuzzy msgid "" "The order in which attributes are defined in the class body is preserved in " "the new class's :attr:`~type.__dict__`. Note that this is reliable only " @@ -2425,9 +2536,9 @@ msgid "" "using the definition syntax." msgstr "" "El orden en que se definen los atributos en el cuerpo de la clase se " -"conserva en el ``__dict__`` de la nueva clase. Tenga en cuenta que esto es " -"confiable solo justo después de crear la clase y solo para las clases que se " -"definieron utilizando la sintaxis de definición." +"conserva en el :attr:`~type.__dict__` de la nueva clase. Tenga en cuenta que " +"esto es confiable solo justo después de crear la clase y solo para las " +"clases que se definieron utilizando la sintaxis de definición." #: ../Doc/reference/compound_stmts.rst:1435 msgid "" @@ -2449,12 +2560,17 @@ msgid "" "@f2\n" "class Foo: pass" msgstr "" +"@f1(arg)\n" +"@f2\n" +"class Foo: pass" #: ../Doc/reference/compound_stmts.rst:1448 msgid "" "class Foo: pass\n" "Foo = f1(arg)(f2(Foo))" msgstr "" +"class Foo: pass\n" +"Foo = f1(arg)(f2(Foo))" #: ../Doc/reference/compound_stmts.rst:1451 msgid "" @@ -2476,7 +2592,6 @@ msgstr "" "restrictiva; ver :pep:`614` para más detalles." #: ../Doc/reference/compound_stmts.rst:1459 -#, fuzzy msgid "" "A list of :ref:`type parameters ` may be given in square " "brackets immediately after the class's name. This indicates to static type " @@ -2484,11 +2599,11 @@ msgid "" "retrieved from the class's :attr:`~type.__type_params__` attribute. See :ref:" "`generic-classes` for more." msgstr "" -"Una lista de :ref:`type parameters ` definida inmediatamente " +"Una lista de :ref:`parámetros del tipo ` definida inmediatamente " "después de un nombre de clase debe ir entre corchetes. Esto indica a los " "verificadores de tipo estático que la clase es genérica. En ejecución, el " -"tipo de parámetros puede retirarse de la clase ``__type_params__`` . Para " -"más información ver :ref:`generic-classes` ." +"tipo de parámetros puede retirarse del atributo de la clase :attr:`~type." +"__type_params__`. Para más información consulte :ref:`generic-classes`." #: ../Doc/reference/compound_stmts.rst:1468 msgid "" @@ -2583,6 +2698,9 @@ msgid "" " do_stuff()\n" " await some_coroutine()" msgstr "" +"async def func(param1, param2):\n" +" do_stuff()\n" +" await some_coroutine()" #: ../Doc/reference/compound_stmts.rst:1527 msgid "" @@ -2621,6 +2739,10 @@ msgid "" "else:\n" " SUITE2" msgstr "" +"async for TARGET in ITER:\n" +" SUITE\n" +"else:\n" +" SUITE2" #: ../Doc/reference/compound_stmts.rst:1554 msgid "Is semantically equivalent to::" @@ -2642,6 +2764,19 @@ msgid "" "else:\n" " SUITE2" msgstr "" +"iter = (ITER)\n" +"iter = type(iter).__aiter__(iter)\n" +"running = True\n" +"\n" +"while running:\n" +" try:\n" +" TARGET = await type(iter).__anext__(iter)\n" +" except StopAsyncIteration:\n" +" running = False\n" +" else:\n" +" SUITE\n" +"else:\n" +" SUITE2" #: ../Doc/reference/compound_stmts.rst:1570 msgid "" @@ -2675,6 +2810,8 @@ msgid "" "async with EXPRESSION as TARGET:\n" " SUITE" msgstr "" +"async with EXPRESSION as TARGET:\n" +" SUITE" #: ../Doc/reference/compound_stmts.rst:1595 msgid "" @@ -2695,6 +2832,22 @@ msgid "" " if not hit_except:\n" " await aexit(manager, None, None, None)" msgstr "" +"manager = (EXPRESSION)\n" +"aenter = type(manager).__aenter__\n" +"aexit = type(manager).__aexit__\n" +"value = await aenter(manager)\n" +"hit_except = False\n" +"\n" +"try:\n" +" TARGET = value\n" +" SUITE\n" +"except:\n" +" hit_except = True\n" +" if not await aexit(manager, *sys.exc_info()):\n" +" raise\n" +"finally:\n" +" if not hit_except:\n" +" await aexit(manager, None, None, None)" #: ../Doc/reference/compound_stmts.rst:1612 msgid "" @@ -2731,6 +2884,7 @@ msgstr "Listas de tipo parámetro" #: ../Doc/reference/compound_stmts.rst:1630 msgid "Support for default values was added (see :pep:`696`)." msgstr "" +"Compatibilidad para valores predeterminados se añadió (Consulte :pep:`696`)." #: ../Doc/reference/compound_stmts.rst:1643 msgid "" @@ -2759,6 +2913,20 @@ msgid "" "\n" "type ListOrSet[T] = list[T] | set[T]" msgstr "" +"def max[T](args: list[T]) -> T:\n" +" ...\n" +"\n" +"async def amax[T](args: list[T]) -> T:\n" +" ...\n" +"\n" +"class Bag[T]:\n" +" def __iter__(self) -> Iterator[T]:\n" +" ...\n" +"\n" +" def add(self, arg: T) -> None:\n" +" ...\n" +"\n" +"type ListOrSet[T] = list[T] | set[T]" #: ../Doc/reference/compound_stmts.rst:1662 msgid "" @@ -2790,16 +2958,15 @@ msgstr "" "``T`` no está disponible en el ámbito del módulo. A continuación, se " "describe con más precisión la semántica de los objetos genéricos. El ámbito " "de los parámetros de tipo se modela con una función especial (técnicamente, " -"una :ref:`annotation scope `) que envuelve la creación " +"una :ref:`ámbito de anotación `) que envuelve la creación " "del objeto genérico." #: ../Doc/reference/compound_stmts.rst:1676 -#, fuzzy msgid "" "Generic functions, classes, and type aliases have a :attr:`~definition." "__type_params__` attribute listing their type parameters." msgstr "" -"Las funciones genéricas, clases y alias de tipo tienen un atributo :attr:`!" +"Funciones genéricas, clases y aliases de tipo tienen un atributo ::attr:`~definition." "__type_params__` que lista sus parámetros de tipo." #: ../Doc/reference/compound_stmts.rst:1679 @@ -2891,6 +3058,16 @@ msgid "" "default value is specified for a type parameter, the ``__default__`` " "attribute is set to the special sentinel object :data:`typing.NoDefault`." msgstr "" +"Los tres sabores de parámetros de tipo también pueden tener un *valor " +"predeterminado*, lo que se usa cuando el parámetro de tipo no se proporciona " +"explícitamente. Esto se añade adjuntando un solo signo igual (``=``) seguido " +"por una expresión. Como los límites y restricciones del tipo variables, el " +"valor predeterminado no se evalúa cuando el objeto se crea, solamente " +"cuando se accede el atributo ``__default__`` del parámetro del tipo. Con " +"este fin, el valor predeterminado se evalúa en un :ref:`ámbito de anotación " +"` separado. Si no se especifica un valor predeterminado " +"para un parámetro de tipo, el atributo ``__default__`` se establece en el " +"objeto de centinela especial :data:`typing.NoDefault`." #: ../Doc/reference/compound_stmts.rst:1717 msgid "" @@ -2917,6 +3094,20 @@ msgid "" " *e: SimpleTypeVarTuple,\n" "): ..." msgstr "" +"def overly_generic[\n" +" SimpleTypeVar,\n" +" TypeVarWithDefault = int,\n" +" TypeVarWithBound: int,\n" +" TypeVarWithConstraints: (str, bytes),\n" +" *SimpleTypeVarTuple = (int, float),\n" +" **SimpleParamSpec = (str, bytearray),\n" +"](\n" +" a: SimpleTypeVar,\n" +" b: TypeVarWithDefault,\n" +" c: TypeVarWithBound,\n" +" d: Callable[SimpleParamSpec, TypeVarWithConstraints],\n" +" *e: SimpleTypeVarTuple,\n" +"): ..." #: ../Doc/reference/compound_stmts.rst:1737 msgid "Generic functions" @@ -2928,7 +3119,7 @@ msgstr "Las funciones genéricas son declaradas de la siguiente forma::" #: ../Doc/reference/compound_stmts.rst:1741 msgid "def func[T](arg: T): ..." -msgstr "" +msgstr "def func[T](arg: T): ..." #: ../Doc/reference/compound_stmts.rst:1743 #: ../Doc/reference/compound_stmts.rst:1803 @@ -2944,6 +3135,12 @@ msgid "" " return func\n" "func = TYPE_PARAMS_OF_func()" msgstr "" +"annotation-def TYPE_PARAMS_OF_func():\n" +" T = typing.TypeVar(\"T\")\n" +" def func(arg: T): ...\n" +" func.__type_params__ = (T,)\n" +" return func\n" +"func = TYPE_PARAMS_OF_func()" #: ../Doc/reference/compound_stmts.rst:1752 msgid "" @@ -2953,7 +3150,7 @@ msgid "" "attribute access on the :mod:`typing` module, but creates an instance of :" "data:`typing.TypeVar` directly.)" msgstr "" -"Aquí ``annotation-def`` indica un :ref:`annotation scope `, que en realidad no está vinculado a ningún nombre en tiempo de " "ejecución. (Se ha tomado otra libertad en la traducción: la sintaxis no pasa " "por el acceso a atributos en el módulo :mod:`typing`, sino que crea una " @@ -2983,6 +3180,9 @@ msgid "" "def func[T: int, *Ts, **P](*args: *Ts, arg: Callable[P, T] = some_default):\n" " ..." msgstr "" +"@decorator\n" +"def func[T: int, *Ts, **P](*args: *Ts, arg: Callable[P, T] = some_default):\n" +" ..." #: ../Doc/reference/compound_stmts.rst:1769 msgid "" @@ -2992,6 +3192,8 @@ msgstr "" "Excepto para la :ref:`lazy-evaluation ` del :class:`~typing." "TypeVar` vinculada, esto es equivalente a::" +# No se pueden traducir los commentarios hasta que pospell tenga la habilidad +# de entender líneas de código. #: ../Doc/reference/compound_stmts.rst:1772 msgid "" "DEFAULT_OF_arg = some_default\n" @@ -3013,6 +3215,24 @@ msgid "" " return func\n" "func = decorator(TYPE_PARAMS_OF_func())" msgstr "" +"DEFAULT_OF_arg = some_default\n" +"\n" +"annotation-def TYPE_PARAMS_OF_func():\n" +"\n" +" annotation-def BOUND_OF_T():\n" +" return int\n" +" # In reality, BOUND_OF_T() is evaluated only on demand.\n" +" T = typing.TypeVar(\"T\", bound=BOUND_OF_T())\n" +"\n" +" Ts = typing.TypeVarTuple(\"Ts\")\n" +" P = typing.ParamSpec(\"P\")\n" +"\n" +" def func(*args: *Ts, arg: Callable[P, T] = DEFAULT_OF_arg):\n" +" ...\n" +"\n" +" func.__type_params__ = (T, Ts, P)\n" +" return func\n" +"func = decorator(TYPE_PARAMS_OF_func())" #: ../Doc/reference/compound_stmts.rst:1791 msgid "" @@ -3032,7 +3252,7 @@ msgstr "Las clases genéricas son declaradas de la siguiente forma::" #: ../Doc/reference/compound_stmts.rst:1801 msgid "class Bag[T]: ..." -msgstr "" +msgstr "class Bag[T]: ..." #: ../Doc/reference/compound_stmts.rst:1805 msgid "" @@ -3044,6 +3264,13 @@ msgid "" " return Bag\n" "Bag = TYPE_PARAMS_OF_Bag()" msgstr "" +"annotation-def TYPE_PARAMS_OF_Bag():\n" +" T = typing.TypeVar(\"T\")\n" +" class Bag(typing.Generic[T]):\n" +" __type_params__ = (T,)\n" +" ...\n" +" return Bag\n" +"Bag = TYPE_PARAMS_OF_Bag()" #: ../Doc/reference/compound_stmts.rst:1813 msgid "" @@ -3052,7 +3279,7 @@ msgid "" "is not actually bound at runtime." msgstr "" "Aquí de nuevo ``annotation-def`` (no es una palabra clave real) indica un :" -"ref:`annotation scope `, y el nombre " +"ref:`ámbito de anotación `, y el nombre " "``TYPE_PARAMS_OF_Bag`` no está vinculado en tiempo de ejecución." #: ../Doc/reference/compound_stmts.rst:1817 @@ -3073,6 +3300,8 @@ msgid "" "@decorator\n" "class Bag(Base[T], arg=T): ..." msgstr "" +"@decorator\n" +"class Bag(Base[T], arg=T): ..." #: ../Doc/reference/compound_stmts.rst:1826 msgid "This is equivalent to::" @@ -3088,6 +3317,13 @@ msgid "" " return Bag\n" "Bag = decorator(TYPE_PARAMS_OF_Bag())" msgstr "" +"annotation-def TYPE_PARAMS_OF_Bag():\n" +" T = typing.TypeVar(\"T\")\n" +" class Bag(Base[T], typing.Generic[T], arg=T):\n" +" __type_params__ = (T,)\n" +" ...\n" +" return Bag\n" +"Bag = decorator(TYPE_PARAMS_OF_Bag())" #: ../Doc/reference/compound_stmts.rst:1839 msgid "Generic type aliases" @@ -3103,7 +3339,7 @@ msgstr "" #: ../Doc/reference/compound_stmts.rst:1843 msgid "type ListOrSet[T] = list[T] | set[T]" -msgstr "" +msgstr "type ListOrSet[T] = list[T] | set[T]" #: ../Doc/reference/compound_stmts.rst:1845 msgid "" @@ -3113,6 +3349,8 @@ msgstr "" "Excepto para la :ref:`evaluación perezosa ` del valor, esto " "es equivalente a::" +# No se pueden traducir los commentarios hasta que pospell tenga la habilidad +# de entender líneas de código. #: ../Doc/reference/compound_stmts.rst:1848 msgid "" "annotation-def TYPE_PARAMS_OF_ListOrSet():\n" @@ -3125,6 +3363,15 @@ msgid "" "type_params=(T,))\n" "ListOrSet = TYPE_PARAMS_OF_ListOrSet()" msgstr "" +"annotation-def TYPE_PARAMS_OF_ListOrSet():\n" +" T = typing.TypeVar(\"T\")\n" +"\n" +" annotation-def VALUE_OF_ListOrSet():\n" +" return list[T] | set[T]\n" +" # In reality, the value is lazily evaluated\n" +" return typing.TypeAliasType(\"ListOrSet\", VALUE_OF_ListOrSet(), " +"type_params=(T,))\n" +"ListOrSet = TYPE_PARAMS_OF_ListOrSet()" #: ../Doc/reference/compound_stmts.rst:1857 msgid "" @@ -3133,7 +3380,7 @@ msgid "" "``TYPE_PARAMS_OF_ListOrSet`` are not actually bound at runtime." msgstr "" "Aquí, ``annotation-def`` (no es una palabra clave real) indica un :ref:" -"`annotation scope `. Los nombres en mayúsculas como " +"`ámbito de anotación `. Los nombres en mayúsculas como " "``TYPE_PARAMS_OF_ListOrSet`` no están vinculados en tiempo de ejecución." #: ../Doc/reference/compound_stmts.rst:1862 @@ -3240,26 +3487,24 @@ msgstr "" "MappingProxyType` son asignaciones." #: ../Doc/reference/compound_stmts.rst:1896 -#, fuzzy msgid "" "A string literal appearing as the first statement in the function body is " "transformed into the function's :attr:`~function.__doc__` attribute and " "therefore the function's :term:`docstring`." msgstr "" -"Una cadena de caracteres literal que aparece como la primera sentencia en el " -"cuerpo de la función se transforma en el atributo ``__doc__`` de la función " -"y, por lo tanto, en funciones :term:`docstring`." +"Una cadena de caracteres literal que aparece como la primera declaración en " +"el cuerpo de la función se transforma en el atributo :attr:`~function." +"__doc__` y por lo tanto en :term:`docstring` de la función." #: ../Doc/reference/compound_stmts.rst:1900 -#, fuzzy msgid "" "A string literal appearing as the first statement in the class body is " "transformed into the namespace's :attr:`~type.__doc__` item and therefore " "the class's :term:`docstring`." msgstr "" -"Una cadena de caracteres literal que aparece como la primera sentencia en el " -"cuerpo de la clase se transforma en el elemento del espacio de nombre " -"``__doc__`` y, por lo tanto, de la clase :term:`docstring`." +"Una cadena de caracteres literal que aparece como la primera declaración en " +"el cuerpo de la clase se transforma en el elemento del espacio de nombre :" +"attr:`~type.__doc__` y, por lo tanto, de la clase :term:`docstring`." #: ../Doc/reference/compound_stmts.rst:7 msgid "compound" From 34166cd4e1337aa0a799c5d176ad5b4ecd0f150c Mon Sep 17 00:00:00 2001 From: Francisco Mora <193986059+srmorita@users.noreply.github.com> Date: Tue, 4 Feb 2025 12:42:10 -0300 Subject: [PATCH 11/31] Traducido archivo c-api/number (#3368) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3275 Se corrigen fuzzy, traducciones faltantes se mantienen, ya que, son código. --------- Signed-off-by: Francisco Mora --- c-api/number.po | 85 ++++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/c-api/number.po b/c-api/number.po index 6ec7173f10..25cb1c4dd6 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2024-01-27 17:24+0100\n" -"Last-Translator: Meta Louis-Kosmas \n" -"Language: es\n" +"PO-Revision-Date: 2025-02-03 17:14-0300\n" +"Last-Translator: srmorita \n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/number.rst:6 msgid "Number Protocol" @@ -80,7 +81,6 @@ msgstr "" "``o1 // o2``." #: ../Doc/c-api/number.rst:52 -#, fuzzy msgid "" "Return a reasonable approximation for the mathematical value of *o1* divided " "by *o2*, or ``NULL`` on failure. The return value is \"approximate\" " @@ -92,7 +92,7 @@ msgstr "" "Retorna una aproximación razonable para el valor matemático de *o1* dividido " "por *o2* o ``NULL`` en caso de falla. El valor de retorno es \"aproximado\" " "porque los números binarios de punto flotante son aproximados; No es posible " -"representar todos los números reales en la base dos. Esta función puede " +"representar todos los números reales en base dos. Esta función puede " "retornar un valor de punto flotante cuando se pasan dos enteros. Es " "equivalente a la expresión de Python ``o1 / o2``." @@ -256,7 +256,6 @@ msgstr "" "o2``." #: ../Doc/c-api/number.rst:178 -#, fuzzy msgid "" "Return a reasonable approximation for the mathematical value of *o1* divided " "by *o2*, or ``NULL`` on failure. The return value is \"approximate\" " @@ -269,7 +268,7 @@ msgstr "" "Retorna una aproximación razonable para el valor matemático de *o1* dividido " "por *o2* o ``NULL`` en caso de falla. El valor de retorno es \"aproximado\" " "porque los números binarios de coma flotante son aproximados; No es posible " -"representar todos los números reales en la base dos. Esta función puede " +"representar todos los números reales en base dos. Esta función puede " "retornar un valor de punto flotante cuando se pasan dos enteros. La " "operación se realiza en su lugar (*in-place*) cuando *o1* lo admite." @@ -296,9 +295,9 @@ msgstr "" "falla. La operación se realiza en su lugar (*in-place*) cuando *o1* lo " "admite. Este es el equivalente de la declaración de Python ``o1 **= o2`` " "cuando *o3* es :c:data:`Py_None`, o una variante en su lugar (*in-place*) de " -"``pow (o1, o2, o3)`` de lo contrario. Si se ignora *o3*, pase :c:data:" -"`Py_None` en su lugar (pasar ``NULL`` para *o3* provocaría un acceso ilegal " -"a la memoria)." +"``pow (o1, o2, o3)`` de lo contrario. Si se ignora *o3*, " +"pase :c:data:`Py_None` en su lugar (pasar ``NULL`` para *o3* provocaría un " +"acceso ilegal a la memoria)." #: ../Doc/c-api/number.rst:206 msgid "" @@ -374,8 +373,8 @@ msgstr "" #: ../Doc/c-api/number.rst:257 msgid "" -"Returns the *o* converted to a Python int on success or ``NULL`` with a :exc:" -"`TypeError` exception raised on failure." +"Returns the *o* converted to a Python int on success or ``NULL`` with " +"a :exc:`TypeError` exception raised on failure." msgstr "" "Retorna el *o* convertido aun entero de Python (*int*) en caso de éxito o " "``NULL`` con una excepción :exc:`TypeError` lanzada en caso de error." @@ -393,8 +392,8 @@ msgid "" "Returns the integer *n* converted to base *base* as a string. The *base* " "argument must be one of 2, 8, 10, or 16. For base 2, 8, or 16, the returned " "string is prefixed with a base marker of ``'0b'``, ``'0o'``, or ``'0x'``, " -"respectively. If *n* is not a Python int, it is converted with :c:func:" -"`PyNumber_Index` first." +"respectively. If *n* is not a Python int, it is converted " +"with :c:func:`PyNumber_Index` first." msgstr "" "Retorna el entero *n* convertido a base *base* como una cadena de " "caracteres. El argumento *base* debe ser uno de 2, 8, 10 o 16. Para la base " @@ -403,66 +402,64 @@ msgstr "" "(*int*) Python, primero se convierte con :c:func:`PyNumber_Index`." #: ../Doc/c-api/number.rst:276 -#, fuzzy msgid "" "Returns *o* converted to a :c:type:`Py_ssize_t` value if *o* can be " "interpreted as an integer. If the call fails, an exception is raised and " "``-1`` is returned." msgstr "" -"Retorna *o* convertido a un valor ``Py_ssize_t`` si *o* puede interpretarse " -"como un entero. Si la llamada falla, se lanza una excepción y se retorna " -"``-1``." +"Retorna *o* convertido a un valor :c:type:`Py_ssize_t` si *o* puede " +"interpretarse como un entero. Si la llamada falla, se lanza una excepción y " +"se retorna ``-1``." #: ../Doc/c-api/number.rst:279 -#, fuzzy -msgid "" -"If *o* can be converted to a Python int but the attempt to convert to a :c:" -"type:`Py_ssize_t` value would raise an :exc:`OverflowError`, then the *exc* " -"argument is the type of exception that will be raised (usually :exc:" -"`IndexError` or :exc:`OverflowError`). If *exc* is ``NULL``, then the " -"exception is cleared and the value is clipped to ``PY_SSIZE_T_MIN`` for a " -"negative integer or ``PY_SSIZE_T_MAX`` for a positive integer." -msgstr "" -"Si *o* se puede convertir a un entero Python (*int*) pero el intento de " -"convertir a un valor ``Py_ssize_t`` lanzaría un :exc:`OverflowError`, " -"entonces el argumento *exc* es el tipo de excepción que se lanzará " -"(generalmente :exc:`IndexError` o :exc:`OverflowError`). Si *exc* es " -"``NULL``, la excepción se borra y el valor se recorta a ``PY_SSIZE_T_MIN`` " -"para un entero negativo o ``PY_SSIZE_T_MAX`` para un entero positivo." +msgid "" +"If *o* can be converted to a Python int but the attempt to convert to " +"a :c:type:`Py_ssize_t` value would raise an :exc:`OverflowError`, then the " +"*exc* argument is the type of exception that will be raised " +"(usually :exc:`IndexError` or :exc:`OverflowError`). If *exc* is ``NULL``, " +"then the exception is cleared and the value is clipped to ``PY_SSIZE_T_MIN`` " +"for a negative integer or ``PY_SSIZE_T_MAX`` for a positive integer." +msgstr "" +"Si *o* puede convertirse a un entero de Python pero el intento de " +"convertirlo a un valor :c:type:`Py_ssize_t` lanzaría " +"un :exc:`OverflowError`, entonces el argumento *exc* es el tipo de excepción " +"que se lanzará (normalmente :exc:`IndexError` o :exc:`OverflowError`). Si " +"*exc* es ``NULL``, la excepción se borra y el valor se recorta a " +"``PY_SSIZE_T_MIN`` para un entero negativo o a ``PY_SSIZE_T_MAX`` para un " +"entero positivo." #: ../Doc/c-api/number.rst:289 -#, fuzzy msgid "" "Returns ``1`` if *o* is an index integer (has the ``nb_index`` slot of the " "``tp_as_number`` structure filled in), and ``0`` otherwise. This function " "always succeeds." msgstr "" -"Retorna ``1`` si *o* es un entero índice (tiene el espacio ``nb_index`` de " -"la estructura ``tp_as_number`` rellenado) y ``0`` en caso contrario. Esta " -"función siempre tiene éxito." +"Retorna ``1`` si *o* es un entero índice (tiene la ranura ``nb_index`` de la " +"estructura ``tp_as_number`` rellenada), y ``0`` en caso contrario. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/number.rst:67 ../Doc/c-api/number.rst:75 #: ../Doc/c-api/number.rst:97 ../Doc/c-api/number.rst:195 #: ../Doc/c-api/number.rst:241 ../Doc/c-api/number.rst:249 msgid "built-in function" -msgstr "" +msgstr "built-in function" #: ../Doc/c-api/number.rst:67 msgid "divmod" -msgstr "" +msgstr "divmod" #: ../Doc/c-api/number.rst:75 ../Doc/c-api/number.rst:195 msgid "pow" -msgstr "" +msgstr "pow" #: ../Doc/c-api/number.rst:97 msgid "abs" -msgstr "" +msgstr "abs" #: ../Doc/c-api/number.rst:241 msgid "int" -msgstr "" +msgstr "int" #: ../Doc/c-api/number.rst:249 msgid "float" -msgstr "" +msgstr "float" From 2a167a622b977dfad896ff1a55823f5713880915 Mon Sep 17 00:00:00 2001 From: Carlos Mena <50986837+carlosm00@users.noreply.github.com> Date: Thu, 6 Feb 2025 05:21:26 +0100 Subject: [PATCH 12/31] Traduccion deprecations/pending removal in 3.14.po (#3367) Closes #3295 --- deprecations/pending-removal-in-3.14.po | 112 +++++++++++++++++++----- 1 file changed, 88 insertions(+), 24 deletions(-) diff --git a/deprecations/pending-removal-in-3.14.po b/deprecations/pending-removal-in-3.14.po index b1ab292270..2b54cd1856 100644 --- a/deprecations/pending-removal-in-3.14.po +++ b/deprecations/pending-removal-in-3.14.po @@ -10,19 +10,20 @@ msgstr "" "Project-Id-Version: Python en Español 3.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: es\n" +"PO-Revision-Date: 2025-02-03 22:46+0100\n" +"Last-Translator: Carlos Mena Pérez <@carlosm00>\n" "Language-Team: es \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/deprecations/pending-removal-in-3.14.rst:2 msgid "Pending Removal in Python 3.14" -msgstr "" +msgstr "Pendiente de eliminación en Python 3.13" #: ../Doc/deprecations/pending-removal-in-3.14.rst:4 msgid "" @@ -30,6 +31,9 @@ msgid "" "argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " "(Contributed by Nikita Sobolev in :gh:`92248`.)" msgstr "" +":mod:`argparse`: Los parámetros de :class:`!argparse.BooleanOptionalAction`, " +"*type*, *choices*, y *metavar*, son obsoletos y serán eliminados en la " +"versión 3.14 (Contribución de Nikita Sobolev en :gh:`92248`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:9 msgid "" @@ -37,36 +41,42 @@ msgid "" "since Python 3.8, now cause a :exc:`DeprecationWarning` to be emitted at " "runtime when they are accessed or used, and will be removed in Python 3.14:" msgstr "" +":mod:`ast`: Las siguientes capacidades han quedado obsoletas en la " +"documentación desde Python 3.8, ahora hacen que se emita una excepción :exc:" +"`DeprecationWarning` en tiempo de ejecución cuando se accede a ellas o se " +"utilizan, y se eliminarán en Python 3.14:" #: ../Doc/deprecations/pending-removal-in-3.14.rst:13 msgid ":class:`!ast.Num`" -msgstr "" +msgstr ":class:`!ast.Num`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:14 msgid ":class:`!ast.Str`" -msgstr "" +msgstr ":class:`!ast.Str`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:15 msgid ":class:`!ast.Bytes`" -msgstr "" +msgstr ":class:`!ast.Bytes`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:16 msgid ":class:`!ast.NameConstant`" -msgstr "" +msgstr ":class:`!ast.NameConstant`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:17 msgid ":class:`!ast.Ellipsis`" -msgstr "" +msgstr ":class:`!ast.Ellipsis`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:19 msgid "" "Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka in :gh:" "`90953`.)" msgstr "" +"Use :class:`ast.Constant` en su lugar. (Contribución de Serhiy Storchaka en :" +"gh:`90953`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:22 msgid ":mod:`asyncio`:" -msgstr "" +msgstr ":mod:`asyncio`:" #: ../Doc/deprecations/pending-removal-in-3.14.rst:24 msgid "" @@ -75,6 +85,11 @@ msgid "" "class:`~asyncio.SafeChildWatcher` are deprecated and will be removed in " "Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" +"Las clases de observadores de procesos :class:`~asyncio." +"MultiLoopChildWatcher`, :class:`~asyncio.FastChildWatcher`, :class:`~asyncio." +"AbstractChildWatcher` y :class:`~asyncio.SafeChildWatcher` quedan obsoletos " +"y serán eliminadas en Python 3.14. (Contribución de Kumar Aditya en :gh:" +"`94597`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:30 msgid "" @@ -83,6 +98,10 @@ msgid "" "AbstractEventLoopPolicy.get_child_watcher` are deprecated and will be " "removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" msgstr "" +":func:`asyncio.set_child_watcher`, :func:`asyncio.get_child_watcher`, :meth:" +"`asyncio.AbstractEventLoopPolicy.set_child_watcher` y :meth:`asyncio." +"AbstractEventLoopPolicy.get_child_watcher` quedan obsoletos y serán " +"eliminadas en Python 3.14. (Contribución de Kumar Aditya en :gh:`94597`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:36 msgid "" @@ -91,6 +110,10 @@ msgid "" "and it decides to create one. (Contributed by Serhiy Storchaka and Guido van " "Rossum in :gh:`100160`.)" msgstr "" +"El método :meth:`~asyncio.get_event_loop` de la política de bucle de eventos " +"predeterminada ahora emite un :exc:`DeprecationWarning` si no hay ningún " +"bucle de eventos definido actualmente y decide crear uno. (Contribución de " +"Serhiy Storchaka y Guido van Rossum en :gh:`100160`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:41 msgid "" @@ -99,44 +122,50 @@ msgid "" "typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." "abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" msgstr "" +":mod:`collections.abc`: :class:`~collections.abc.ByteString` queda obsoleto. " +"Se prefiere :class:`!Sequence` o :class:`~collections.abc.Buffer`. Para uso " +"en tipificación, se prefiere una unión, como ``bytes | bytearray`` o :class:" +"`collections.abc.Buffer`. (Contribución de Shantanu Jain en :gh:`91896`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:47 msgid "" ":mod:`email`: Deprecated the *isdst* parameter in :func:`email.utils." "localtime`. (Contributed by Alan Williams in :gh:`72346`.)" msgstr "" +":mod:`email`: Se ha descontinuado el parámetro *isdst* en :func:`email.utils." +"localtime`. (Contribución de Alan Williams en :gh:`72346`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:50 msgid ":mod:`importlib.abc` deprecated classes:" -msgstr "" +msgstr "Clases obsoletas de :mod:`importlib.abc`:" #: ../Doc/deprecations/pending-removal-in-3.14.rst:52 msgid ":class:`!importlib.abc.ResourceReader`" -msgstr "" +msgstr ":class:`!importlib.abc.ResourceReader`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:53 msgid ":class:`!importlib.abc.Traversable`" -msgstr "" +msgstr ":class:`!importlib.abc.Traversable`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:54 msgid ":class:`!importlib.abc.TraversableResources`" -msgstr "" +msgstr ":class:`!importlib.abc.TraversableResources`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:56 msgid "Use :mod:`importlib.resources.abc` classes instead:" -msgstr "" +msgstr "Use las clases :mod:`importlib.resources.abc` en su lugar:" #: ../Doc/deprecations/pending-removal-in-3.14.rst:58 msgid ":class:`importlib.resources.abc.Traversable`" -msgstr "" +msgstr ":class:`importlib.resources.abc.Traversable`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:59 msgid ":class:`importlib.resources.abc.TraversableResources`" -msgstr "" +msgstr ":class:`importlib.resources.abc.TraversableResources`" #: ../Doc/deprecations/pending-removal-in-3.14.rst:61 msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" -msgstr "" +msgstr "(Contribución de Jason R. Coombs y Hugo van Kemenade en :gh:`93963`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:63 msgid "" @@ -145,6 +174,11 @@ msgid "" "removed in 3.14 for a significant reduction in code volume and maintenance " "burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" msgstr "" +":mod:`itertools` tenía un soporte indocumentado, ineficiente, históricamente " +"lleno de errores e inconsistente para operaciones de copia, copia profunda y " +"*pickle*. Esto se eliminará en la versión 3.14 para lograr una reducción " +"significativa en el volumen de código y la carga de mantenimiento. " +"(Contribución de Raymond Hettinger en :gh:`101588`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:69 msgid "" @@ -156,12 +190,23 @@ msgid "" "set_start_method` APIs to explicitly specify when your code *requires* " "``'fork'``. See :ref:`multiprocessing-start-methods`." msgstr "" +":mod:`multiprocessing`: El método de inicio predeterminado cambiará a uno " +"más seguro en Linux, BSDs y otras plataformas POSIX que no sean macOS donde " +"``'fork'`` es actualmente el predeterminado (:gh:`84559`). Agregar una " +"advertencia de tiempo de ejecución sobre esto se consideró demasiado " +"disruptivo, ya que no se espera que la mayoría del código tenga en cuenta " +"esto. Use las APIs :func:`~multiprocessing.get_context` o :func:" +"`~multiprocessing.set_start_method` para especificar explícitamente cuándo " +"su código *requires* ``'fork'``. Consulte :ref:`multiprocessing-start-" +"methods`." #: ../Doc/deprecations/pending-removal-in-3.14.rst:77 msgid "" ":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` and :meth:`~pathlib." "PurePath.relative_to`: passing additional arguments is deprecated." msgstr "" +":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` y :meth:`~pathlib." +"PurePath.relative_to`: pasar argumentos adicionales está obsoleto." #: ../Doc/deprecations/pending-removal-in-3.14.rst:81 msgid "" @@ -169,26 +214,29 @@ msgid "" "now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " "instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" msgstr "" +":mod:`pkgutil`: :func:`~pkgutil.find_loader` y :func:`~pkgutil.get_loader` " +"ahora generan :exc:`DeprecationWarning`; use :func:`importlib.util." +"find_spec` en su lugar. (Contribución de Nikita Sobolev en :gh:`97850`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:86 msgid ":mod:`pty`:" -msgstr "" +msgstr ":mod:`pty`:" #: ../Doc/deprecations/pending-removal-in-3.14.rst:88 msgid "``master_open()``: use :func:`pty.openpty`." -msgstr "" +msgstr "``master_open()``: use :func:`pty.openpty`." #: ../Doc/deprecations/pending-removal-in-3.14.rst:89 msgid "``slave_open()``: use :func:`pty.openpty`." -msgstr "" +msgstr "``slave_open()``: use :func:`pty.openpty`." #: ../Doc/deprecations/pending-removal-in-3.14.rst:91 msgid ":mod:`sqlite3`:" -msgstr "" +msgstr ":mod:`sqlite3`:" #: ../Doc/deprecations/pending-removal-in-3.14.rst:93 msgid ":data:`~sqlite3.version` and :data:`~sqlite3.version_info`." -msgstr "" +msgstr ":data:`~sqlite3.version` y :data:`~sqlite3.version_info`." #: ../Doc/deprecations/pending-removal-in-3.14.rst:95 msgid "" @@ -196,12 +244,18 @@ msgid "" "ref:`named placeholders ` are used and *parameters* is " "a sequence instead of a :class:`dict`." msgstr "" +":meth:`~sqlite3.Cursor.execute` y :meth:`~sqlite3.Cursor.executemany` si se " +"utilizan :ref:`marcadores de posición con nombre ` y " +"*parameters* es una secuencia en lugar de :class:`dict`." #: ../Doc/deprecations/pending-removal-in-3.14.rst:99 msgid "" "date and datetime adapter, date and timestamp converter: see the :mod:" "`sqlite3` documentation for suggested replacement recipes." msgstr "" +"Adaptador de fecha y hora, convertidor de fecha y marca de tiempo: consulte " +"la documentación de :mod:`sqlite3` para obtener recetas de reemplazo " +"sugeridas." #: ../Doc/deprecations/pending-removal-in-3.14.rst:102 msgid "" @@ -210,12 +264,19 @@ msgid "" "but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " "in 3.14. (Contributed by Nikita Sobolev in :gh:`101866`.)" msgstr "" +":class:`types.CodeType`: El acceso a :attr:`~codeobject.co_lnotab` quedó " +"obsoleto en :pep:`626` desde la versión 3.10, y se planeó eliminarlo en la " +"versión 3.12, pero recién se agregó un :exc:`DeprecationWarning` adecuado en " +"la versión 3.12. Es posible que se elimine en la versión 3.14. (Contribución " +"de Nikita Sobolev en :gh:`101866`.)" #: ../Doc/deprecations/pending-removal-in-3.14.rst:109 msgid "" ":mod:`typing`: :class:`~typing.ByteString`, deprecated since Python 3.9, now " "causes a :exc:`DeprecationWarning` to be emitted when it is used." msgstr "" +":mod:`typing`: :class:`~typing.ByteString`, obsoleto desde Python 3.9, ahora " +"hace que se emita un :exc:`DeprecationWarning` cuando se utiliza." #: ../Doc/deprecations/pending-removal-in-3.14.rst:112 msgid "" @@ -223,3 +284,6 @@ msgid "" "intended to be a public API. (Contributed by Gregory P. Smith in :gh:" "`88168`.)" msgstr "" +":mod:`urllib`: :class:`!urllib.parse.Quoter` está obsoleto: no estaba " +"destinado a ser una API pública. (Contribución de Gregory P. Smith en :gh:" +"`88168`.)" From c17edf6507f986746450663e995a617373a3d027 Mon Sep 17 00:00:00 2001 From: Francisco Mora <193986059+srmorita@users.noreply.github.com> Date: Tue, 11 Feb 2025 04:27:17 -0300 Subject: [PATCH 13/31] Traducido archivo c-api/weakref (#3369) Closes #3264 --------- Co-authored-by: rtobar --- c-api/number.po | 2 +- c-api/weakref.po | 74 +++++++++++++++++++++++++++++------------------- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/c-api/number.po b/c-api/number.po index 25cb1c4dd6..aa3192b079 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2025-02-03 17:14-0300\n" +"PO-Revision-Date: 2025-02-05 17:10-0300\n" "Last-Translator: srmorita \n" "Language-Team: python-doc-es\n" "Language: es\n" diff --git a/c-api/weakref.po b/c-api/weakref.po index 8084c69ade..93e696e785 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -11,16 +11,17 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-10-18 19:38+0200\n" -"Last-Translator: Diego Cristóbal Herreros \n" +"PO-Revision-Date: 2025-02-07 10:04-0300\n" +"Last-Translator: srmorita \n" +"Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-" +"es.python.org)\n" "Language: es\n" -"Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-es." -"python.org)\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/weakref.rst:6 msgid "Weak Reference Objects" @@ -39,33 +40,29 @@ msgstr "" "como un proxy del objeto original tanto como pueda." #: ../Doc/c-api/weakref.rst:16 -#, fuzzy msgid "" "Return non-zero if *ob* is either a reference or proxy object. This " "function always succeeds." msgstr "" -"Retorna verdadero (true) si *ob* es una referencia o un objeto proxy. Esta " -"función siempre finaliza con éxito." +"Retorna un valor distinto de cero si *ob* es una referencia o un objeto " +"proxy. Esta función siempre finaliza con éxito." #: ../Doc/c-api/weakref.rst:22 -#, fuzzy msgid "" "Return non-zero if *ob* is a reference object. This function always " "succeeds." msgstr "" -"Retorna verdadero (true) si *ob* es un objeto de referencia. Esta función " -"siempre finaliza con éxito." +"Retorna un valor distinto de cero si *ob* es un objeto de referencia. Esta " +"función siempre finaliza con éxito." #: ../Doc/c-api/weakref.rst:27 -#, fuzzy msgid "" "Return non-zero if *ob* is a proxy object. This function always succeeds." msgstr "" -"Retorna verdadero (true) si *ob* es un objeto proxy. Esta función siempre " -"finaliza con éxito." +"Retorna un valor distinto de cero si *ob* es un objeto proxy. Esta función " +"siempre finaliza con éxito." #: ../Doc/c-api/weakref.rst:32 -#, fuzzy msgid "" "Return a weak reference object for the object *ob*. This will always return " "a new reference, but is not guaranteed to create a new object; an existing " @@ -84,10 +81,9 @@ msgstr "" "parámetro, el cual será el mismo objeto de referencia débil. *callback* " "también puede ser ``None`` o ``NULL``. Si *ob* no es un objeto que puede ser " "referido de forma débil, o si *callback* no es invocable, ``None``, o " -"``NULL``, esto retornará ``NULL`` y causará un :exc:`TypeError`." +"``NULL``, esto retornará ``NULL`` y lanzará un :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:44 -#, fuzzy msgid "" "Return a weak reference proxy object for the object *ob*. This will always " "return a new reference, but is not guaranteed to create a new object; an " @@ -106,36 +102,41 @@ msgstr "" "aceptar un solo parámetro, el cual será el mismo objeto de referencia débil. " "*callback* también puede ser ``None`` o ``NULL``. Si *ob* no es un objeto " "que puede ser referido de forma débil, o si *callback* no es invocable, " -"``None``, o ``NULL``, esto retornará ``NULL`` y causará un :exc:`TypeError`." +"``None``, o ``NULL``, esto retornará ``NULL`` y lanzará un :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:56 msgid "" "Get a :term:`strong reference` to the referenced object from a weak " "reference, *ref*, into *\\*pobj*." msgstr "" +"Obtiene un :term:`strong reference` al objeto referenciado desde una " +"referencia débil, *ref*, en *\\*pobj*." #: ../Doc/c-api/weakref.rst:59 msgid "" "On success, set *\\*pobj* to a new :term:`strong reference` to the " "referenced object and return 1." msgstr "" +"En caso de éxito, asigna *\\*pobj* en un nuevo :term:`strong reference` al " +"objeto referenciado y retorna 1." #: ../Doc/c-api/weakref.rst:61 msgid "If the reference is dead, set *\\*pobj* to ``NULL`` and return 0." msgstr "" +"Si la referencia está inactiva, asigna *\\*pobj* a ``NULL`` y retorna 0." #: ../Doc/c-api/weakref.rst:62 msgid "On error, raise an exception and return -1." -msgstr "" +msgstr "En caso de error, lanza una excepción y devuelve -1." #: ../Doc/c-api/weakref.rst:69 -#, fuzzy msgid "" "Return a :term:`borrowed reference` to the referenced object from a weak " "reference, *ref*. If the referent is no longer live, returns ``Py_None``." msgstr "" -"Retorna el objeto referenciado desde una referencia débil, *ref*. Si el " -"referente no está vivo, retornará :const:`Py_None`." +"Retorna un :term:`borrowed reference` del objeto referenciado desde una " +"referencia débil, *ref*. Si el referente ya no está activo, retorna " +"``Py_None``." #: ../Doc/c-api/weakref.rst:74 msgid "" @@ -146,25 +147,26 @@ msgid "" msgstr "" "Esta función retorna una referencia :term:`borrowed reference` al objeto " "referenciado. Esto significa que siempre debe llamar a :c:func:`Py_INCREF` " -"sobre el objeto, excepto cuando no pueda ser destruido antes del último uso " +"sobre el objeto excepto cuando no pueda ser destruido antes del último uso " "de la referencia prestada." #: ../Doc/c-api/weakref.rst:79 ../Doc/c-api/weakref.rst:87 msgid "Use :c:func:`PyWeakref_GetRef` instead." -msgstr "" +msgstr "Utiliza :c:func:`PyWeakref_GetRef` en su lugar." #: ../Doc/c-api/weakref.rst:85 -#, fuzzy msgid "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking." msgstr "" -"Similar a :c:func:`PyWeakref_GetObject`, pero implementado como un macro que " -"no verifica errores." +"Similar a :c:func:`PyWeakref_GetObject`, pero no realiza ninguna " +"comprobación de errores." #: ../Doc/c-api/weakref.rst:93 msgid "" "This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " "to clear weak references." msgstr "" +"Esta función es invocada por el gestor :c:member:`~PyTypeObject.tp_dealloc` " +"para limpiar referencias débiles." #: ../Doc/c-api/weakref.rst:96 msgid "" @@ -172,10 +174,14 @@ msgid "" "for those references which have one. It returns when all callbacks have been " "attempted." msgstr "" +"Esto recorre las referencias débiles de *object* e invoca retrollamadas para " +"aquellas referencias que tengan una. Retorna cuando se han intentado todas " +"las retrollamadas." #: ../Doc/c-api/weakref.rst:103 msgid "Clears the weakrefs for *object* without calling the callbacks." msgstr "" +"Borra las referencias débiles para *object* sin llamar a las retrollamadas." #: ../Doc/c-api/weakref.rst:105 msgid "" @@ -185,9 +191,19 @@ msgid "" "and call their callbacks, then the finalizer, and finally this function to " "clear any weakrefs that may have been created by the finalizer." msgstr "" +"Esta función es invocada por el gestor :c:member:`~PyTypeObject.tp_dealloc` " +"para tipos con finalizadores (i.e., :meth:`~object.__del__`). El gestor de " +"esos objetos primero llama a :c:func:`PyObject_ClearWeakRefs` para borrar " +"las referencias débiles y llamar a sus callbacks, luego al finalizador, y " +"finalmente a esta función para borrar cualquier referencia débil que pueda " +"haber sido creada por el finalizador." #: ../Doc/c-api/weakref.rst:111 msgid "" -"In most circumstances, it's more appropriate to use :c:func:" -"`PyObject_ClearWeakRefs` to clear weakrefs instead of this function." +"In most circumstances, it's more appropriate to " +"use :c:func:`PyObject_ClearWeakRefs` to clear weakrefs instead of this " +"function." msgstr "" +"En la mayoría de los casos, es más apropiado " +"utilizar :c:func:`PyObject_ClearWeakRefs` para borrar las referencias " +"débiles en lugar de esta función." From 95cd34a1e1b5b8626a80e6eb0a6734b93b357460 Mon Sep 17 00:00:00 2001 From: kbiggers Date: Sat, 1 Mar 2025 21:31:34 -0500 Subject: [PATCH 14/31] Traducido reference/executionmodel.po (#3370) closes #3282 --------- Co-authored-by: rtobar --- reference/executionmodel.po | 73 ++++++++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/reference/executionmodel.po b/reference/executionmodel.po index a5d272e08b..000b586018 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2023-11-11 16:50-0300\n" +"PO-Revision-Date: 2025-02-17 16:37-0500\n" "Last-Translator: Francisco Mora \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" @@ -258,7 +259,6 @@ msgstr "" "` para ejemplos." #: ../Doc/reference/executionmodel.rst:136 -#, fuzzy msgid "" "If the :keyword:`global` statement occurs within a block, all uses of the " "names specified in the statement refer to the bindings of those names in the " @@ -279,8 +279,10 @@ msgstr "" "nombres incorporado, el *namespace* del módulo :mod:`builtins`. La búsqueda " "se realiza primero en el espacio de nombres global. Si el nombre no se " "encuentra ahí, se busca en el espacio de nombres incorporado (*builtins " -"namespace*). La declaración :keyword:`!global` debe preceder a todos los " -"usos del nombre." +"namespace*) próximamente. Si tampoco se encuentran los nombres en el espacio " +"de nombres incorporado, se crean variables nuevas en el espacio de nombres " +"global. La declaración global debe preceder a todos los usos de los nombres " +"listados." #: ../Doc/reference/executionmodel.rst:146 msgid "" @@ -351,6 +353,9 @@ msgid "" " a = 42\n" " b = list(a + i for i in range(10))" msgstr "" +"class A:\n" +" a = 42\n" +" b = list(a + i for i in range(10))" #: ../Doc/reference/executionmodel.rst:180 msgid "However, the following will succeed::" @@ -364,6 +369,11 @@ msgid "" "\n" "print(A.Alias.__value__) # " msgstr "" +"class A:\n" +" type Alias = Nested\n" +" class Nested: pass\n" +"\n" +"print(A.Alias.__value__) # " #: ../Doc/reference/executionmodel.rst:191 msgid "Annotation scopes" @@ -416,13 +426,12 @@ msgstr "" "ejecutan dentro del ámbito de la anotación, pero sus decoradores no." #: ../Doc/reference/executionmodel.rst:208 -#, fuzzy msgid "" "The bounds, constraints, and default values for type parameters (:ref:" "`lazily evaluated `)." msgstr "" -"Los límites y restricciones de las variables de tipo (:ref:`lazily evaluated " -"`)." +"Los límites, restricciones y valores predeterminados para los parámetros de " +"tipo (:ref:`evaluados de forma diferida `)." #: ../Doc/reference/executionmodel.rst:210 msgid "The value of type aliases (:ref:`lazily evaluated `)." @@ -478,7 +487,6 @@ msgstr "" "aparecer dentro de ámbitos de anotación puede introducir nuevos nombres." #: ../Doc/reference/executionmodel.rst:227 -#, fuzzy msgid "" "While annotation scopes have an internal name, that name is not reflected in " "the :term:`qualified name` of objects defined within the scope. Instead, " @@ -486,8 +494,8 @@ msgid "" "were defined in the enclosing scope." msgstr "" "Aunque los ámbitos de anotación tienen un nombre interno, ese nombre no se " -"refleja en el :term:`__qualname__ ` de los objetos definidos " -"dentro del ámbito. En su lugar, el :attr:`!__qualname__` de dichos objetos " +"refleja en el :term:`qualified name` de los objetos definidos dentro del " +"ámbito. En su lugar, el :attr:`~definition.__qualname__` de dichos objetos " "es como si el objeto estuviera definido en el ámbito que lo encierra." #: ../Doc/reference/executionmodel.rst:232 @@ -501,13 +509,14 @@ msgid "" "Annotation scopes are also used for type parameter defaults, as introduced " "by :pep:`696`." msgstr "" +"También se usan ámbitos de anotación para parámetros de tipo " +"predeterminados, introducido por :pep:`696`." #: ../Doc/reference/executionmodel.rst:242 msgid "Lazy evaluation" msgstr "Evaluación perezosa" #: ../Doc/reference/executionmodel.rst:244 -#, fuzzy msgid "" "The values of type aliases created through the :keyword:`type` statement are " "*lazily evaluated*. The same applies to the bounds, constraints, and default " @@ -516,12 +525,13 @@ msgid "" "or type variable is created. Instead, they are only evaluated when doing so " "is necessary to resolve an attribute access." msgstr "" -"Los valores de los alias de tipo creados mediante la sentencia :keyword:" -"`type` se *evalúan rápidamente*. Lo mismo se aplica a los límites y " -"restricciones de las variables de tipo creadas mediante la sintaxis de " -"parámetros :ref:`type `. Esto significa que no se evalúan " -"cuando se crea el alias de tipo o la variable de tipo. En su lugar, sólo se " -"evalúan cuando es necesario para resolver el acceso a un atributo." +"Los valores de los alias de tipo creados mediante la declaración :keyword:" +"`type` *se evalúan de forma diferida*. Lo mismo se aplica a los límites, " +"restricciones y valores predeterminados de las variables de tipo creadas " +"mediante la :ref:`sintaxis de parámetros de tipo `. Esto " +"significa que no se evalúan cuando se crea el alias de tipo o la variable de " +"tipo. En su lugar, sólo se evalúan cuando es necesario para resolver el " +"acceso a un atributo." #: ../Doc/reference/executionmodel.rst:251 msgid "Example:" @@ -541,6 +551,17 @@ msgid "" " ...\n" "ZeroDivisionError: division by zero" msgstr "" +">>> type Alias = 1/0\n" +">>> Alias.__value__\n" +"Traceback (most recent call last):\n" +" ...\n" +"ZeroDivisionError: division by zero\n" +">>> def func[T: 1/0](): pass\n" +">>> T = func.__type_params__[0]\n" +">>> T.__bound__\n" +"Traceback (most recent call last):\n" +" ...\n" +"ZeroDivisionError: division by zero" #: ../Doc/reference/executionmodel.rst:267 msgid "" @@ -569,6 +590,11 @@ msgid "" "type Parenthesized = tuple[Literal[\"(\"], Expr, Literal[\")\"]]\n" "type Expr = SimpleExpr | tuple[SimpleExpr, Literal[\"+\", \"-\"], Expr]" msgstr "" +"from typing import Literal\n" +"\n" +"type SimpleExpr = int | Parenthesized\n" +"type Parenthesized = tuple[Literal[\"(\"], Expr, Literal[\")\"]]\n" +"type Expr = SimpleExpr | tuple[SimpleExpr, Literal[\"+\", \"-\"], Expr]" #: ../Doc/reference/executionmodel.rst:281 msgid "" @@ -637,6 +663,11 @@ msgid "" "i = 42\n" "f()" msgstr "" +"i = 10\n" +"def f():\n" +" print(i)\n" +"i = 42\n" +"f()" #: ../Doc/reference/executionmodel.rst:326 msgid "" @@ -703,8 +734,8 @@ msgid "" "but it cannot repair the cause of the error and retry the failing operation " "(except by re-entering the offending piece of code from the top)." msgstr "" -"Python usa el modelo de gestión de errores de \"terminación\" " -"(\"*termination*\"): un gestor de excepción puede descubrir qué sucedió y " +"Python usa el modelo de gestión de errores de \"terminación" +"\" (\"*termination*\"): un gestor de excepción puede descubrir qué sucedió y " "continuar la ejecución en un nivel exterior, pero no puede reparar la causa " "del error y reintentar la operación que ha fallado (excepto que se reingrese " "al trozo de código fallido desde su inicio)." From 01e2ca88e9bb3fa365e20e9f67ebc81a4e0825a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Sat, 15 Mar 2025 13:13:37 +0100 Subject: [PATCH 15/31] Pin hash to a previous version in order to avoid the exploit (#3374) This uses another version (v44) where I could find the hash (we currently used v45). In summary, the repo got compromised and all the tags versions point to a malicius commit that includes a function to expose the secrets on the github action logs, so people can fetch them. --- .github/workflows/main.yml | 2 +- .github/workflows/pr-comment.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1c519fb344..f727f72190 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,7 +52,7 @@ jobs: - name: Obtiene la lista de archivos .po con cambios (sólo en PRs) if: github.event_name == 'pull_request' id: changed-po-files - uses: tj-actions/changed-files@v45 + uses: tj-actions/changed-files@9200e69727eb73eb060652b19946b8a2fdfb654b with: files: | **/*.po diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml index f66cf799c9..659a83cf08 100644 --- a/.github/workflows/pr-comment.yml +++ b/.github/workflows/pr-comment.yml @@ -37,7 +37,7 @@ jobs: python -m pip install -r base-branch/requirements-own.txt - name: Obtiene lista de archivos con cambios id: changed-files - uses: tj-actions/changed-files@v45 + uses: tj-actions/changed-files@9200e69727eb73eb060652b19946b8a2fdfb654b with: files: | **/*.po From f57ac51a97ffa26106c1ad3b33d5718daed9544e Mon Sep 17 00:00:00 2001 From: Marco Richetta Date: Fri, 4 Apr 2025 10:15:43 +0200 Subject: [PATCH 16/31] Upgrade tj-actions to v46 per security recommendations. (#3378) Per discussion in issue https://github.com/python/python-docs-es/issues/3373, this PR update `tj-actions/changed-files` to its latest version [v46](https://github.com/tj-actions/changed-files/releases/tag/v46.0.3). Related PR: https://github.com/python/python-docs-es/pull/3374 Supersedes https://github.com/python/python-docs-es/pull/3377 --- .github/workflows/main.yml | 2 +- .github/workflows/pr-comment.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f727f72190..7f375d29ff 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,7 +52,7 @@ jobs: - name: Obtiene la lista de archivos .po con cambios (sólo en PRs) if: github.event_name == 'pull_request' id: changed-po-files - uses: tj-actions/changed-files@9200e69727eb73eb060652b19946b8a2fdfb654b + uses: tj-actions/changed-files@v46 with: files: | **/*.po diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml index 659a83cf08..41165bef7e 100644 --- a/.github/workflows/pr-comment.yml +++ b/.github/workflows/pr-comment.yml @@ -37,7 +37,7 @@ jobs: python -m pip install -r base-branch/requirements-own.txt - name: Obtiene lista de archivos con cambios id: changed-files - uses: tj-actions/changed-files@9200e69727eb73eb060652b19946b8a2fdfb654b + uses: tj-actions/changed-files@v46 with: files: | **/*.po From d55c6fec8fbf4c05c4aa1b7ae729b83f7161890b Mon Sep 17 00:00:00 2001 From: David Date: Wed, 9 Apr 2025 11:46:47 +0100 Subject: [PATCH 17/31] Traducido archivo c-api/bytearray (#3379) Closes #3263 --- TRANSLATORS | 1 + c-api/bytearray.po | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/TRANSLATORS b/TRANSLATORS index 3686c2a25f..4686fde202 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -62,6 +62,7 @@ David Jaimes (@henrzven) David Lorenzo (@David-Lor) David Revillas (@r3v1) David Silva (@dvidsilva) +David Spindola (@davidspindola) David Trigo Chávez (@dtrinf) Diego Cristóbal Herreros (@dcristobalh) Diego Mascialino (@dmascialino) diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 20ed044e7f..a04bbe978a 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2024-10-29 21:11-0400\n" -"Last-Translator: Sofía Denner \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-09 09:25+0200\n" +"Last-Translator: David Spindola\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/bytearray.rst:6 msgid "Byte Array Objects" @@ -68,8 +69,8 @@ msgstr "Funciones API directas" #: ../Doc/c-api/bytearray.rst:42 msgid "" -"Return a new bytearray object from any object, *o*, that implements the :ref:" -"`buffer protocol `." +"Return a new bytearray object from any object, *o*, that implements " +"the :ref:`buffer protocol `." msgstr "" "Retorna un nuevo objeto de arreglo de bytes de cualquier objeto, *o*, que " "implementa el :ref:`buffer protocol `." @@ -77,14 +78,13 @@ msgstr "" #: ../Doc/c-api/bytearray.rst:45 ../Doc/c-api/bytearray.rst:52 #: ../Doc/c-api/bytearray.rst:59 msgid "On failure, return ``NULL`` with an exception set." -msgstr "" +msgstr "Al fallar, retorna ``NULL`` con una excepción asignada." #: ../Doc/c-api/bytearray.rst:50 -#, fuzzy msgid "Create a new bytearray object from *string* and its length, *len*." msgstr "" "Crea un nuevo objeto de arreglo de bytes a partir de *string* y su longitud, " -"*len*. En caso de fallo, se retorna ``NULL``." +"*len*." #: ../Doc/c-api/bytearray.rst:57 msgid "" @@ -104,7 +104,7 @@ msgid "" "``NULL`` pointer. The returned array always has an extra null byte appended." msgstr "" "Retorna el contenido de *bytearray* como un arreglo de caracteres después de " -"verificar un puntero ``NULL``. La arreglo retornado siempre tiene un byte " +"verificar un puntero ``NULL``. El arreglo retornado siempre tiene un byte " "nulo adicional agregado." #: ../Doc/c-api/bytearray.rst:76 From 6071c2fbfdaa17e3556c550be2b5e2206a009daa Mon Sep 17 00:00:00 2001 From: David Date: Thu, 10 Apr 2025 04:50:43 +0100 Subject: [PATCH 18/31] Traducido archivo c-api/allocation (#3380) Closes #3230 --- c-api/allocation.po | 74 ++++++++++++++++++++++----------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/c-api/allocation.po b/c-api/allocation.po index f0908ad22b..dab388e66e 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -11,22 +11,22 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 19:43+0200\n" -"PO-Revision-Date: 2020-05-08 01:33+0200\n" -"Last-Translator: \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-09 21:56+0200\n" +"Last-Translator: David Spindola\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.13.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/allocation.rst:6 msgid "Allocating Objects on the Heap" msgstr "Asignación de objetos en el montículo" #: ../Doc/c-api/allocation.rst:17 -#, fuzzy msgid "" "Initialize a newly allocated object *op* with its type and initial " "reference. Returns the initialized object. If *type* indicates that the " @@ -34,10 +34,10 @@ msgid "" "detector's set of observed objects. Other fields of the object are not " "affected." msgstr "" -"Inicializa un objeto *op* recientemente asignado con su tipo y referencia " -"inicial. Retorna el objeto inicializado. Si *type* indica que el objeto " -"participa en el detector de basura cíclico, se agrega al conjunto de objetos " -"observados del detector. Otros campos del objeto no se ven afectados." +"Inicializa un objeto recién asignado *op* con su tipo y referencia inicial. " +"Retorna el objeto inicializado. Si *type* indica que el objeto participa en " +"el detector de basura cíclico, se agrega al conjunto de objetos observados " +"por el detector. Otros campos del objeto no se ven afectados." #: ../Doc/c-api/allocation.rst:26 msgid "" @@ -48,23 +48,22 @@ msgstr "" "información de longitud para un objeto de tamaño variable." #: ../Doc/c-api/allocation.rst:32 -#, fuzzy msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " "Python type object *typeobj* (``PyTypeObject*``). Fields not defined by the " "Python object header are not initialized. The caller will own the only " "reference to the object (i.e. its reference count will be one). The size of " -"the memory allocation is determined from the :c:member:`~PyTypeObject." -"tp_basicsize` field of the type object." +"the memory allocation is determined from " +"the :c:member:`~PyTypeObject.tp_basicsize` field of the type object." msgstr "" -"Asigna un nuevo objeto Python usando el tipo de estructura de C *TYPE* y el " -"objeto tipo Python *type*. Los campos no definidos por el encabezado del " -"objeto Python no se inicializan;el conteo de referencias del objeto será " -"uno. El tamaño de la asignación de memoria se determina a partir del campo :" -"c:member:`~PyTypeObject.tp_basicsize` del tipo de objeto." +"Asigna un nuevo objeto de Python usando el tipo de estructura de C *TYPE* y " +"el objeto de tipo Python *typeobj* (``PyTypeObject*``). Los campos no " +"definidos por el encabezado del objeto Python no se inicializan. El llamador " +"será el propietario de la única referencia al objeto (es decir, su contador " +"de referencias será uno). El tamaño de la asignación de memoria se determina " +"a partir del campo :c:member:`~PyTypeObject.tp_basicsize` del objeto de tipo." #: ../Doc/c-api/allocation.rst:43 -#, fuzzy msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " "Python type object *typeobj* (``PyTypeObject*``). Fields not defined by the " @@ -76,30 +75,29 @@ msgid "" "same allocation decreases the number of allocations, improving the memory " "management efficiency." msgstr "" -"Asigna un nuevo objeto Python usando el tipo de estructura de C *TYPE* y el " -"objeto tipo Python *type*. Los campos no definidos por el encabezado del " -"objeto Python no se inicializan. La memoria asignada permite los campos de " -"la estructura *TYPE* más los campos *size* del tamaño dado por el campo :c:" -"member:`~PyTypeObject.tp_itemsize` de *type*. Esto es útil para implementar " -"objetos como tuplas, que pueden determinar su tamaño en el momento de la " -"construcción. Incrustar el arreglo de campos en la misma asignación " -"disminuye el número de asignaciones, mejorando la eficiencia de la gestión " -"de memoria." +"Asigna un nuevo objeto de Python utilizando el tipo de estructura de C " +"*TYPE* y el objeto de tipo Python *typeobj* (``PyTypeObject*``). Los campos " +"no definidos por el encabezado del objeto Python no se inicializan. La " +"memoria asignada permite la estructura *TYPE* más *size* (``Py_ssize_t``) " +"campos del tamaño dado por el campo :c:member:`~PyTypeObject.tp_itemsize` de " +"*typeobj*. Esto es útil para implementar objetos como las tuplas, que pueden " +"determinar su tamaño en el momento de la construcción. Integrar el arreglo " +"de campos en la misma asignación disminuye el número de asignaciones, " +"mejorando la eficiencia de la gestión de memoria." #: ../Doc/c-api/allocation.rst:57 -#, fuzzy msgid "" -"Releases memory allocated to an object using :c:macro:`PyObject_New` or :c:" -"macro:`PyObject_NewVar`. This is normally called from the :c:member:" -"`~PyTypeObject.tp_dealloc` handler specified in the object's type. The " -"fields of the object should not be accessed after this call as the memory is " -"no longer a valid Python object." +"Releases memory allocated to an object using :c:macro:`PyObject_New` " +"or :c:macro:`PyObject_NewVar`. This is normally called from " +"the :c:member:`~PyTypeObject.tp_dealloc` handler specified in the object's " +"type. The fields of the object should not be accessed after this call as " +"the memory is no longer a valid Python object." msgstr "" -"Libera memoria asignada a un objeto usando :c:func:`PyObject_New` o :c:func:" -"`PyObject_NewVar`. Esto normalmente se llama desde el manejador :c:member:" -"`~PyTypeObject.tp_dealloc` especificado en el tipo de objeto. No se debe " -"acceder a los campos del objeto después de esta llamada, ya que la memoria " -"ya no es un objeto Python válido." +"Libera la memoria asignada a un objeto usando :c:macro:`PyObject_New` " +"o :c:macro:`PyObject_NewVar`. Esto normalmente se llama desde el " +"manejador :c:member:`~PyTypeObject.tp_dealloc` especificado en el tipo de " +"objeto. Los campos del objeto no deben ser accedidos después de esta " +"llamada, ya que la memoria ya no es un objeto de Python válido." #: ../Doc/c-api/allocation.rst:66 msgid "" From c98c7ee5961a856e1c7e322f1fd29ed574587556 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 10 Apr 2025 04:52:49 +0100 Subject: [PATCH 19/31] Traducido archivo c-api/typehints (#3381) Closes #3244 --- c-api/typehints.po | 61 ++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/c-api/typehints.po b/c-api/typehints.po index 82e8b82881..6b0ed950a6 100644 --- a/c-api/typehints.po +++ b/c-api/typehints.po @@ -9,15 +9,16 @@ msgstr "" "Project-Id-Version: Python en Español 3.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-11-16 22:14-0600\n" -"Last-Translator: Erick G. Islas Osuna \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-09 22:51+0200\n" +"Last-Translator: David Spindola\n" "Language-Team: \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/typehints.rst:6 msgid "Objects for Type Hinting" @@ -30,36 +31,35 @@ msgid "" "union>`. Only ``GenericAlias`` is exposed to C." msgstr "" "Se proporcionan varios tipos incorporados para indicaciones de tipado. " -"Actualmente existen dos tipos -- :ref:`GenericAlias ` y :" -"ref:`Union `. Solo ``GenericAlias`` es expuesto a C." +"Actualmente existen dos tipos -- :ref:`GenericAlias ` " +"y :ref:`Union `. Solo ``GenericAlias`` es expuesto a C." #: ../Doc/c-api/typehints.rst:14 -#, fuzzy msgid "" "Create a :ref:`GenericAlias ` object. Equivalent to " "calling the Python class :class:`types.GenericAlias`. The *origin* and " "*args* arguments set the ``GenericAlias``\\ 's ``__origin__`` and " -"``__args__`` attributes respectively. *origin* should be a :c:expr:" -"`PyTypeObject*`, and *args* can be a :c:expr:`PyTupleObject*` or any " -"``PyObject*``. If *args* passed is not a tuple, a 1-tuple is automatically " -"constructed and ``__args__`` is set to ``(args,)``. Minimal checking is done " -"for the arguments, so the function will succeed even if *origin* is not a " -"type. The ``GenericAlias``\\ 's ``__parameters__`` attribute is constructed " -"lazily from ``__args__``. On failure, an exception is raised and ``NULL`` " -"is returned." +"``__args__`` attributes respectively. *origin* should be " +"a :c:expr:`PyTypeObject*`, and *args* can be a :c:expr:`PyTupleObject*` or " +"any ``PyObject*``. If *args* passed is not a tuple, a 1-tuple is " +"automatically constructed and ``__args__`` is set to ``(args,)``. Minimal " +"checking is done for the arguments, so the function will succeed even if " +"*origin* is not a type. The ``GenericAlias``\\ 's ``__parameters__`` " +"attribute is constructed lazily from ``__args__``. On failure, an exception " +"is raised and ``NULL`` is returned." msgstr "" "Crea un objeto :ref:`GenericAlias `. Equivalente a " "llamar la clase de Python :class:`types.GenericAlias`. Los argumentos " -"*origin* y *args* configuran los atributos ``__origin__`` y ``__args__`` de " -"``GenericAlias`` respectivamente. *origin* debe ser un :c:type:" -"`PyTypeObject*`, y *args* puede ser un :c:type:`PyTupleObject*` o cualquier " -"``PyObject*``. Si el valor de *args* no es una tupla, un 1-tupla es " -"automáticamente construida y ``__args__`` es configurado como ``(args,)``. " -"Para los argumentos se realiza un chequeo mínimo, de esta manera la función " -"tendrá éxito incluso si *origin* no es un tipo. El atributo " -"``__parameters__`` de ``GenericAlias`` es construido de forma diferida a " -"partir de ``__args__``. Si existe una falla, se levantará una excepción y se " -"retornará ``NULL``." +"*origin* y *args* establecen los atributos ``__origin__`` y ``__args__`` de " +"``GenericAlias`` respectivamente. *origin* debe ser " +"un :c:expr:`PyTypeObject*`, y *args* puede ser un :c:expr:`PyTupleObject*` o " +"cualquier ``PyObject*``. Si *args* no es una tupla, se construye " +"automáticamente una tupla de un elemento y ``__args__`` se establece como " +"``(args,)``. Se realiza una verificación mínima para los argumentos, por lo " +"que la función tendrá éxito incluso si *origin* no es un tipo. El atributo " +"``__parameters__`` de ``GenericAlias`` se construye de manera perezosa a " +"partir de ``__args__``. En caso de falla, se levantará una excepción y " +"retorna ``NULL``." #: ../Doc/c-api/typehints.rst:28 msgid "Here's an example of how to make an extension type generic::" @@ -76,11 +76,18 @@ msgid "" " ...\n" "}" msgstr "" +"static PyMethodDef my_obj_methods[] = {\n" +" // Otros Métodos.\n" +" ...\n" +" {\"__class_getitem__\", Py_GenericAlias, METH_O|METH_CLASS, \"Ver PEP " +"585\"}\n" +" ...\n" +"\n" +"}" #: ../Doc/c-api/typehints.rst:38 -#, fuzzy msgid "The data model method :meth:`~object.__class_getitem__`." -msgstr "El método del modelo de datos :meth:`__class_getitem__`." +msgstr "El método del modelo de datos :meth:`~object.__class_getitem__`." #: ../Doc/c-api/typehints.rst:44 msgid "" From fde38513cf957b7eeeab3e0bc6c350ed41b56903 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 11 Apr 2025 05:02:39 +0100 Subject: [PATCH 20/31] Traducido archivo c-api/iter (#3382) Closes #3252 --- c-api/iter.po | 63 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/c-api/iter.po b/c-api/iter.po index e00cbf2466..5ebc364693 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-08-16 13:04+0200\n" -"Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-10 23:48+0200\n" +"Last-Translator: David Spindola\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/iter.rst:6 msgid "Iterator Protocol" @@ -30,26 +31,25 @@ msgid "There are two functions specifically for working with iterators." msgstr "Hay dos funciones específicas para trabajar con iteradores." #: ../Doc/c-api/iter.rst:12 -#, fuzzy msgid "" -"Return non-zero if the object *o* can be safely passed to :c:func:" -"`PyIter_Next`, and ``0`` otherwise. This function always succeeds." +"Return non-zero if the object *o* can be safely passed " +"to :c:func:`PyIter_Next`, and ``0`` otherwise. This function always " +"succeeds." msgstr "" -"Retorna un valor distinto de cero si el objeto *o* admite el protocolo de " -"iterador y ``0`` en caso contrario. Esta función siempre tiene éxito." +"Retorna un valor distinto de cero si el objeto *o* puede pasarse de manera " +"segura a :c:func:`PyIter_Next`, y ``0`` en caso contrario. Esta función " +"siempre tiene éxito." #: ../Doc/c-api/iter.rst:17 -#, fuzzy msgid "" "Return non-zero if the object *o* provides the :class:`AsyncIterator` " "protocol, and ``0`` otherwise. This function always succeeds." msgstr "" -"Retorna un valor distinto de cero si el objeto 'obj' proporciona protocolos :" -"class:`AsyncIterator` y ``0`` en caso contrario. Esta función siempre tiene " -"éxito." +"Retorna un valor distinto de cero si el objeto *o* proporciona el " +"protocolo :class:`AsyncIterator`, y ``0`` en caso contrario. Esta función " +"siempre tiene éxito." #: ../Doc/c-api/iter.rst:24 -#, fuzzy msgid "" "Return the next value from the iterator *o*. The object must be an iterator " "according to :c:func:`PyIter_Check` (it is up to the caller to check this). " @@ -57,10 +57,11 @@ msgid "" "an error occurs while retrieving the item, returns ``NULL`` and passes along " "the exception." msgstr "" -"Retorna el siguiente valor de la iteración *o*. El objeto debe ser un " -"iterador (depende de quién llama comprobar esto). Si no quedan valores " -"restantes, retorna ``NULL`` sin establecer ninguna excepción. Si se produce " -"un error al recuperar el elemento, retorna ``NULL`` y pasa la excepción." +"Retorna el siguiente valor del iterador *o*. El objeto debe ser un iterador " +"según :c:func:`PyIter_Check` (depende del llamador verificar esto). Si no " +"hay valores restantes, retorna ``NULL`` sin establecer una excepción. Si " +"ocurre un error al recuperar el elemento, devuelve ``NULL`` y envía la " +"excepción." #: ../Doc/c-api/iter.rst:30 msgid "" @@ -95,13 +96,35 @@ msgid "" " /* continue doing useful work */\n" "}" msgstr "" +"PyObject *iterator = PyObject_GetIter(obj);\n" +"PyObject *item;\n" +"\n" +"if (iterator == NULL) {\n" +" /* propagate error */\n" +"}\n" +"\n" +"while ((item = PyIter_Next(iterator))) {\n" +" /* do something with item */\n" +" ...\n" +" /* release reference when done */\n" +" Py_DECREF(item);\n" +"}\n" +"\n" +"Py_DECREF(iterator);\n" +"\n" +"if (PyErr_Occurred()) {\n" +" /* propagate error */\n" +"}\n" +"else {\n" +" /* continue doing useful work */\n" +"}" #: ../Doc/c-api/iter.rst:59 msgid "" "The enum value used to represent different results of :c:func:`PyIter_Send`." msgstr "" -"El valor de enumeración utilizado para representar diferentes resultados de :" -"c:func:`PyIter_Send`." +"El valor de enumeración utilizado para representar diferentes resultados " +"de :c:func:`PyIter_Send`." #: ../Doc/c-api/iter.rst:66 msgid "Sends the *arg* value into the iterator *iter*. Returns:" From bcc67d62b3c5b17574da4929daa0eb4431b7a5c5 Mon Sep 17 00:00:00 2001 From: David Date: Sat, 12 Apr 2025 02:31:20 +0100 Subject: [PATCH 21/31] Traduccion codec (#3384) Closes #3240 --- c-api/codec.po | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/c-api/codec.po b/c-api/codec.po index d1bfd9d8b4..45396dbae5 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 19:43+0200\n" -"PO-Revision-Date: 2021-10-18 22:40-0300\n" -"Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-12 00:04+0100\n" +"Last-Translator: David Spindola\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.13.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/codec.rst:4 msgid "Codec registry and support functions" @@ -30,13 +31,12 @@ msgid "Register a new codec search function." msgstr "Registra una nueva función de búsqueda de códec." #: ../Doc/c-api/codec.rst:10 -#, fuzzy msgid "" "As side effect, this tries to load the :mod:`!encodings` package, if not yet " "done, to make sure that it is always first in the list of search functions." msgstr "" -"Como efecto secundario, intenta cargar el paquete :mod:`encodings`, si aún " -"no lo ha hecho, para asegurarse de que siempre esté primero en la lista de " +"Como efecto secundario, intenta cargar el paquete :mod:`!encodings`, si aún " +"no se ha hecho, para asegurarse de que siempre esté primero en la lista de " "funciones de búsqueda." #: ../Doc/c-api/codec.rst:15 @@ -66,8 +66,8 @@ msgstr "API de codificación genérica basada en códec." msgid "" "*object* is passed through the encoder function found for the given " "*encoding* using the error handling method defined by *errors*. *errors* " -"may be ``NULL`` to use the default method defined for the codec. Raises a :" -"exc:`LookupError` if no encoder can be found." +"may be ``NULL`` to use the default method defined for the codec. Raises " +"a :exc:`LookupError` if no encoder can be found." msgstr "" "*object* se pasa a través de la función de codificador encontrada por el " "*encoding* dado usando el método de manejo de errores definido por *errors*. " @@ -83,8 +83,8 @@ msgstr "API de decodificación basada en códec genérico." msgid "" "*object* is passed through the decoder function found for the given " "*encoding* using the error handling method defined by *errors*. *errors* " -"may be ``NULL`` to use the default method defined for the codec. Raises a :" -"exc:`LookupError` if no encoder can be found." +"may be ``NULL`` to use the default method defined for the codec. Raises " +"a :exc:`LookupError` if no encoder can be found." msgstr "" "*object* se pasa a través de la función de decodificador encontrada por el " "*encoding* dado usando el método de manejo de errores definido por *errors*. " @@ -100,14 +100,14 @@ msgstr "API de búsqueda de códec" msgid "" "In the following functions, the *encoding* string is looked up converted to " "all lower-case characters, which makes encodings looked up through this " -"mechanism effectively case-insensitive. If no codec is found, a :exc:" -"`KeyError` is set and ``NULL`` returned." +"mechanism effectively case-insensitive. If no codec is found, " +"a :exc:`KeyError` is set and ``NULL`` returned." msgstr "" "En las siguientes funciones, la cadena de caracteres *encoding* se busca " "convertida a todos los caracteres en minúscula, lo que hace que las " "codificaciones se busquen a través de este mecanismo sin distinción entre " -"mayúsculas y minúsculas. Si no se encuentra ningún códec, se establece un :" -"exc:`KeyError` y se retorna ``NULL``." +"mayúsculas y minúsculas. Si no se encuentra ningún códec, se establece " +"un :exc:`KeyError` y se retorna ``NULL``." #: ../Doc/c-api/codec.rst:55 msgid "Get an encoder function for the given *encoding*." @@ -166,9 +166,9 @@ msgstr "" #: ../Doc/c-api/codec.rst:88 msgid "" -"The callback gets a single argument, an instance of :exc:" -"`UnicodeEncodeError`, :exc:`UnicodeDecodeError` or :exc:" -"`UnicodeTranslateError` that holds information about the problematic " +"The callback gets a single argument, an instance " +"of :exc:`UnicodeEncodeError`, :exc:`UnicodeDecodeError` " +"or :exc:`UnicodeTranslateError` that holds information about the problematic " "sequence of characters or bytes and their offset in the original string " "(see :ref:`unicodeexceptions` for functions to extract this information). " "The callback must either raise the given exception, or return a two-item " @@ -176,9 +176,9 @@ msgid "" "integer giving the offset in the original string at which encoding/decoding " "should be resumed." msgstr "" -"La devolución de llamada obtiene un único argumento, una instancia de :exc:" -"`UnicodeEncodeError`, :exc:`UnicodeDecodeError` o :exc:" -"`UnicodeTranslateError` que contiene información sobre la secuencia " +"La devolución de llamada obtiene un único argumento, una instancia " +"de :exc:`UnicodeEncodeError`, :exc:`UnicodeDecodeError` " +"o :exc:`UnicodeTranslateError` que contiene información sobre la secuencia " "problemática de caracteres o bytes y su desplazamiento en la cadena original " "(consulte :ref:`unicodeexceptions` para funciones para extraer esta " "información). La devolución de llamada debe lanzar la excepción dada o " From 7aee5682609fa6456e4614416f1ca1f00c390811 Mon Sep 17 00:00:00 2001 From: David Date: Sat, 12 Apr 2025 02:34:03 +0100 Subject: [PATCH 22/31] Traducido archivo c-api/capsule (#3383) Closes #3259 capsule-html --- c-api/capsule.po | 65 ++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/c-api/capsule.po b/c-api/capsule.po index ac8a29ca40..97a0afb310 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2022-10-30 16:51-0300\n" -"Last-Translator: Sofía Denner \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-11 20:18+0100\n" +"Last-Translator: David Spindola\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/capsule.rst:6 msgid "Capsules" @@ -42,11 +43,12 @@ msgid "" "loaded modules." msgstr "" "Este subtipo de :c:type:`PyObject` representa un valor opaco, útil para los " -"módulos de extensión C que necesitan pasar un valor opaco (como un puntero :" -"c:expr:`void*`) a través del código Python a otro código C . A menudo se usa " -"para hacer que un puntero de función C definido en un módulo esté disponible " -"para otros módulos, por lo que el mecanismo de importación regular se puede " -"usar para acceder a las API C definidas en módulos cargados dinámicamente." +"módulos de extensión C que necesitan pasar un valor opaco (como un " +"puntero :c:expr:`void*`) a través del código Python a otro código C . A " +"menudo se usa para hacer que un puntero de función C definido en un módulo " +"esté disponible para otros módulos, por lo que el mecanismo de importación " +"regular se puede usar para acceder a las API C definidas en módulos cargados " +"dinámicamente." #: ../Doc/c-api/capsule.rst:27 msgid "The type of a destructor callback for a capsule. Defined as::" @@ -56,7 +58,7 @@ msgstr "" #: ../Doc/c-api/capsule.rst:29 msgid "typedef void (*PyCapsule_Destructor)(PyObject *);" -msgstr "" +msgstr "typedef void (*PyCapsule_Destructor)(PyObject *);" #: ../Doc/c-api/capsule.rst:31 msgid "" @@ -123,17 +125,16 @@ msgstr "" "una excepción y retorna ``NULL``." #: ../Doc/c-api/capsule.rst:65 -#, fuzzy msgid "" "The *name* parameter must compare exactly to the name stored in the capsule. " "If the name stored in the capsule is ``NULL``, the *name* passed in must " "also be ``NULL``. Python uses the C function :c:func:`!strcmp` to compare " "capsule names." msgstr "" -"El parámetro *name* debe compararse exactamente con el nombre almacenado en " +"El parámetro *name* debe coincidir exactamente con el nombre almacenado en " "la cápsula. Si el nombre almacenado en la cápsula es ``NULL``, el *name* " -"pasado también debe ser ``NULL``. Python usa la función C :c:func:`strcmp` " -"para comparar nombres de cápsulas." +"también debe ser ``NULL``. Python utiliza la función C :c:func:`!strcmp` " +"para comparar los nombres de las cápsulas." #: ../Doc/c-api/capsule.rst:73 msgid "" @@ -146,8 +147,8 @@ msgstr "" #: ../Doc/c-api/capsule.rst:76 msgid "" "It is legal for a capsule to have a ``NULL`` destructor. This makes a " -"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :" -"c:func:`PyErr_Occurred` to disambiguate." +"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Es legal que una cápsula tenga un destructor ``NULL``. Esto hace que un " "código de retorno ``NULL`` sea algo ambiguo; use :c:func:`PyCapsule_IsValid` " @@ -164,12 +165,12 @@ msgstr "" #: ../Doc/c-api/capsule.rst:86 msgid "" "It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " -"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" -"`PyErr_Occurred` to disambiguate." +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Es legal que una cápsula tenga un contexto ``NULL``. Esto hace que un código " -"de retorno ``NULL`` sea algo ambiguo; use :c:func:`PyCapsule_IsValid` o :c:" -"func:`PyErr_Occurred` para desambiguar." +"de retorno ``NULL`` sea algo ambiguo; use :c:func:`PyCapsule_IsValid` " +"o :c:func:`PyErr_Occurred` para desambiguar." #: ../Doc/c-api/capsule.rst:93 msgid "" @@ -182,12 +183,12 @@ msgstr "" #: ../Doc/c-api/capsule.rst:96 msgid "" "It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " -"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" -"`PyErr_Occurred` to disambiguate." +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " +"or :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Es legal que una cápsula tenga un nombre ``NULL``. Esto hace que un código " -"de retorno ``NULL`` sea algo ambiguo; use :c:func:`PyCapsule_IsValid` o :c:" -"func:`PyErr_Occurred` para desambiguar." +"de retorno ``NULL`` sea algo ambiguo; use :c:func:`PyCapsule_IsValid` " +"o :c:func:`PyErr_Occurred` para desambiguar." #: ../Doc/c-api/capsule.rst:103 msgid "" @@ -223,20 +224,19 @@ msgid "" msgstr "" "Determina si *capsule* es o no una cápsula válida. Una cápsula válida no es " "``NULL``, pasa :c:func:`PyCapsule_CheckExact`, tiene un puntero no ``NULL`` " -"almacenado y su nombre interno coincide con el parámetro *name*. (Consulte :" -"c:func:`PyCapsule_GetPointer` para obtener información sobre cómo se " -"comparan los nombres de las cápsulas)." +"almacenado y su nombre interno coincide con el parámetro *name*. " +"(Consulte :c:func:`PyCapsule_GetPointer` para obtener información sobre cómo " +"se comparan los nombres de las cápsulas)." #: ../Doc/c-api/capsule.rst:123 -#, fuzzy msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " "to any of the accessors (any function starting with ``PyCapsule_Get``) are " "guaranteed to succeed." msgstr "" "En otras palabras, si :c:func:`PyCapsule_IsValid` retorna un valor " -"verdadero, las llamadas a cualquiera de las funciones de acceso (cualquier " -"función que comience con :c:func:`PyCapsule_Get`) tienen éxito." +"verdadero, se garantiza que las llamadas a cualquiera de las funciones de " +"acceso (cualquier función que comience con ``PyCapsule_Get``) tendrán éxito." #: ../Doc/c-api/capsule.rst:127 msgid "" @@ -282,9 +282,8 @@ msgstr "" #: ../Doc/c-api/capsule.rst:8 msgid "object" -msgstr "" +msgstr "objeto" #: ../Doc/c-api/capsule.rst:8 -#, fuzzy msgid "Capsule" -msgstr "Cápsulas" +msgstr "Cápsula" From fabb83ce5e20391bcaa849b2a713ea2194a71dc4 Mon Sep 17 00:00:00 2001 From: David Pizarro <105984897+DavidPPizarro@users.noreply.github.com> Date: Sun, 13 Apr 2025 07:43:01 -0500 Subject: [PATCH 23/31] =?UTF-8?q?Traducido=20el=20archivo=20`c-api/iterato?= =?UTF-8?q?r.po`=20y=20a=C3=B1adido=20mi=20nombre=20a=20`TRANSLATORS`.=20(?= =?UTF-8?q?#3385)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3225 --- TRANSLATORS | 3 ++- c-api/iterator.po | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/TRANSLATORS b/TRANSLATORS index 4686fde202..be067fce8b 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -60,6 +60,7 @@ Daniela Zuluaga Ocampo (@Nany262) Darwing Medina Lacayo (@darwing1210) David Jaimes (@henrzven) David Lorenzo (@David-Lor) +David Pizarro (@davidppizarro) David Revillas (@r3v1) David Silva (@dvidsilva) David Spindola (@davidspindola) @@ -248,4 +249,4 @@ Xavi Rambla Centellas (@xavirambla) Yennifer Paola Herrera Ariza (@Yenniferh) Yohanna Padrino (@Yo-hanaPR) zejiran -Zodac (@zodacdev) +Zodac (@zodacdev) \ No newline at end of file diff --git a/c-api/iterator.po b/c-api/iterator.po index 0a504a7614..2338fd2848 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -11,34 +11,34 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-10-12 19:43+0200\n" -"PO-Revision-Date: 2021-08-01 20:11+0200\n" +"PO-Revision-Date: 2025-04-12 22:30-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.13.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/iterator.rst:6 msgid "Iterator Objects" msgstr "Objetos iteradores" #: ../Doc/c-api/iterator.rst:8 -#, fuzzy msgid "" "Python provides two general-purpose iterator objects. The first, a sequence " -"iterator, works with an arbitrary sequence supporting the :meth:`~object." -"__getitem__` method. The second works with a callable object and a sentinel " -"value, calling the callable for each item in the sequence, and ending the " -"iteration when the sentinel value is returned." +"iterator, works with an arbitrary sequence supporting " +"the :meth:`~object.__getitem__` method. The second works with a callable " +"object and a sentinel value, calling the callable for each item in the " +"sequence, and ending the iteration when the sentinel value is returned." msgstr "" "Python proporciona dos objetos iteradores de propósito general. El primero, " "un iterador de secuencia, funciona con una secuencia arbitraria que admite " -"el método :meth:`__getitem__`. El segundo funciona con un objeto invocable y " -"un valor centinela, llamando al invocable para cada elemento de la secuencia " -"y finalizando la iteración cuando se retorna el valor centinela." +"el método :meth:`~object.__getitem__`. El segundo funciona con un objeto " +"invocable y un valor centinela, llamando al invocable para cada elemento en " +"la secuencia y finalizando la iteración cuando se retorna el valor centinela." #: ../Doc/c-api/iterator.rst:17 msgid "" @@ -73,9 +73,9 @@ msgid "" "Type object for iterator objects returned by :c:func:`PyCallIter_New` and " "the two-argument form of the :func:`iter` built-in function." msgstr "" -"Objeto tipo para los objetos iteradores retornados por :c:func:" -"`PyCallIter_New` y la forma de dos argumentos de la función incorporada :" -"func:`iter`." +"Objeto tipo para los objetos iteradores retornados " +"por :c:func:`PyCallIter_New` y la forma de dos argumentos de la función " +"incorporada :func:`iter`." #: ../Doc/c-api/iterator.rst:43 msgid "" From 3e8a1cbb7fbd39121dd14348a715cc3f0f330ef3 Mon Sep 17 00:00:00 2001 From: Carlos Mena <50986837+carlosm00@users.noreply.github.com> Date: Wed, 16 Apr 2025 03:13:01 +0200 Subject: [PATCH 24/31] Traduccion deprecations/pending-removal-in-future.po (#3372) Closes #3296 --- deprecations/pending-removal-in-future.po | 168 ++++++++++++++++------ 1 file changed, 125 insertions(+), 43 deletions(-) diff --git a/deprecations/pending-removal-in-future.po b/deprecations/pending-removal-in-future.po index 4879bf68bd..042d90b43e 100644 --- a/deprecations/pending-removal-in-future.po +++ b/deprecations/pending-removal-in-future.po @@ -10,43 +10,48 @@ msgstr "" "Project-Id-Version: Python en Español 3.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language: es\n" +"PO-Revision-Date: 2025-04-15 23:17+0360\n" +"Last-Translator: Carlos Mena Pérez <@carlosm00>\n" "Language-Team: es \n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/deprecations/pending-removal-in-future.rst:2 msgid "Pending Removal in Future Versions" -msgstr "" +msgstr "Pendiente de eliminación en versiones futuras" #: ../Doc/deprecations/pending-removal-in-future.rst:4 msgid "" "The following APIs will be removed in the future, although there is " "currently no date scheduled for their removal." msgstr "" +"Las siguientes APIs serán eliminadas en el futuro, aunque no hay fecha de " +"planificación exacta para ello." #: ../Doc/deprecations/pending-removal-in-future.rst:7 msgid "" ":mod:`argparse`: Nesting argument groups and nesting mutually exclusive " "groups are deprecated." msgstr "" +":mod:`argparse`: Anidar grupos de argumentos y anidar grupos mutuamente " +"excluyentes queda deprecado." #: ../Doc/deprecations/pending-removal-in-future.rst:10 msgid ":mod:`array`'s ``'u'`` format code (:gh:`57281`)" -msgstr "" +msgstr "Código de formato ``'u'`` de :mod:`array` (:gh:`57281`)" #: ../Doc/deprecations/pending-removal-in-future.rst:12 msgid ":mod:`builtins`:" -msgstr "" +msgstr ":mod:`builtins`:" #: ../Doc/deprecations/pending-removal-in-future.rst:14 msgid "``bool(NotImplemented)``." -msgstr "" +msgstr "``bool(NotImplemented)``." #: ../Doc/deprecations/pending-removal-in-future.rst:15 msgid "" @@ -54,6 +59,9 @@ msgid "" "is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " "argument signature." msgstr "" +"Generadores: las firmas ``throw(type, exc, tb)`` y ``athrow(type, exc, tb)`` " +"están obsoletas: utilice ``throw(exc)`` y ``athrow(exc)`` en su lugar, la " +"firma de argumento único." #: ../Doc/deprecations/pending-removal-in-future.rst:18 msgid "" @@ -66,6 +74,14 @@ msgid "" "keyword:`is` and :keyword:`or`. In a future release it will be changed to a " "syntax error. (:gh:`87999`)" msgstr "" +"Actualmente Python acepta literales numéricos seguidos inmediatamente de " +"palabras clave, por ejemplo, ``0in x``, ``1or x``, ``0if 1else 2``. Permite " +"expresiones confusas y ambiguas como ``[0x1for x in y]`` (que se puede " +"interpretar como ``[0x1 for x in y]`` o ``[0x1f or x in y]``). Se genera una " +"advertencia de sintaxis si el literal numérico va seguido inmediatamente de " +"una de las palabras clave :keyword:`and`, :keyword:`else`, :keyword:`for`, :" +"keyword:`if`, :keyword:`in`, :keyword:`is` y :keyword:`or`. En una versión " +"futura, se cambiará a un error de sintaxis. (:gh:`87999`)" #: ../Doc/deprecations/pending-removal-in-future.rst:26 msgid "" @@ -73,6 +89,9 @@ msgid "" "these methods will be required to return an instance of a strict subclass " "of :class:`int`." msgstr "" +"Compatibilidad con los métodos ``__index__()`` e ``__int__()`` que retornan " +"un tipo que no es int: estos métodos serán necesarios para retornar una " +"instancia de una subclase estricta de :class:`int`." #: ../Doc/deprecations/pending-removal-in-future.rst:29 msgid "" @@ -80,6 +99,9 @@ msgid "" "`float`: these methods will be required to return an instance of :class:" "`float`." msgstr "" +"Compatibilidad con el método ``__float__()`` que retorna una subclase " +"estricta de :class:`float`: será necesario que estos métodos retornen " +"una instancia de :class:`float`." #: ../Doc/deprecations/pending-removal-in-future.rst:32 msgid "" @@ -87,10 +109,13 @@ msgid "" "`complex`: these methods will be required to return an instance of :class:" "`complex`." msgstr "" +"Compatibilidad con el método ``__complex__()`` que retorna una subclase " +"estricta de :class:`complex`: será necesario que estos métodos retornen una " +"instancia de :class:`complex`." #: ../Doc/deprecations/pending-removal-in-future.rst:35 msgid "Delegation of ``int()`` to ``__trunc__()`` method." -msgstr "" +msgstr "Delegación del método ``int()`` al ``__trunc__()``." #: ../Doc/deprecations/pending-removal-in-future.rst:36 msgid "" @@ -99,6 +124,9 @@ msgid "" "single positional argument. (Contributed by Serhiy Storchaka in :gh:" "`109218`.)" msgstr "" +"Ahora está obsoleto el paso de un número complejo como argumento *real* o " +"*imag* en el constructor :func:`complex`; solo debe pasarse como un único " +"argumento posicional. (Contribución de Serhiy Storchaka en :gh:`109218`.)" #: ../Doc/deprecations/pending-removal-in-future.rst:41 msgid "" @@ -106,81 +134,99 @@ msgid "" "are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." "FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" msgstr "" +":mod:`calendar`: Las constantes ``calendar.January`` y ``calendar.February`` " +"han quedado obsoletas y han sido reemplazadas por :data:`calendar.JANUARY` " +"y :data:`calendar.FEBRUARY`. (Contribución de Prince Roshan en :gh:`103636`.)" #: ../Doc/deprecations/pending-removal-in-future.rst:46 msgid "" ":attr:`codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " "instead." msgstr "" +":attr:`codeobject.co_lnotab`: use el método :meth:`codeobject.co_lines` en " +"su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:49 msgid ":mod:`datetime`:" -msgstr "" +msgstr ":mod:`datetime`:" #: ../Doc/deprecations/pending-removal-in-future.rst:51 msgid "" ":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." "UTC)``." msgstr "" +":meth:`~datetime.datetime.utcnow`: use ``datetime.datetime.now(tz=datetime." +"UTC)``." #: ../Doc/deprecations/pending-removal-in-future.rst:53 msgid "" ":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." "fromtimestamp(timestamp, tz=datetime.UTC)``." msgstr "" +":meth:`~datetime.datetime.utcfromtimestamp`: use ``datetime.datetime." +"fromtimestamp(timestamp, tz=datetime.UTC)``." #: ../Doc/deprecations/pending-removal-in-future.rst:56 msgid ":mod:`gettext`: Plural value must be an integer." -msgstr "" +msgstr ":mod:`gettext`: El valor plural tiene que ser un entero." #: ../Doc/deprecations/pending-removal-in-future.rst:58 msgid ":mod:`importlib`:" -msgstr "" +msgstr ":mod:`importlib`:" #: ../Doc/deprecations/pending-removal-in-future.rst:60 msgid "``load_module()`` method: use ``exec_module()`` instead." -msgstr "" +msgstr "Método ``load_module()``: use ``exec_module()`` en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:61 msgid "" ":func:`~importlib.util.cache_from_source` *debug_override* parameter is " "deprecated: use the *optimization* parameter instead." msgstr "" +"El parámetro *debug_override* de :func:`~importlib.util.cache_from_source` " +"queda obsoleto: use el parámetro *optimization* en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:64 msgid ":mod:`importlib.metadata`:" -msgstr "" +msgstr ":mod:`importlib.metadata`:" #: ../Doc/deprecations/pending-removal-in-future.rst:66 msgid "``EntryPoints`` tuple interface." -msgstr "" +msgstr "Interfaz de tupla ``EntryPoints``." #: ../Doc/deprecations/pending-removal-in-future.rst:67 msgid "Implicit ``None`` on return values." -msgstr "" +msgstr "``None`` implícito en valores retornados." #: ../Doc/deprecations/pending-removal-in-future.rst:69 msgid "" ":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " "use :meth:`~logging.warning` instead." msgstr "" +":mod:`logging`: el método ``warn()`` ha quedado obsoleto desde Python 3.3, " +"use :meth:`~logging.warning` en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:72 msgid "" ":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " "BytesIO and binary mode instead." msgstr "" +":mod:`mailbox`: El uso del modo de entrada y texto StringIO está obsoleto, " +"use BytesIO y el modo binario en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:75 msgid "" ":mod:`os`: Calling :func:`os.register_at_fork` in multi-threaded process." msgstr "" +":mod:`os`: Llamando a :func:`os.register_at_fork` en procesos multi-hilos." #: ../Doc/deprecations/pending-removal-in-future.rst:77 msgid "" ":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " "deprecated, use an exception instance." msgstr "" +":class:`!pydoc.ErrorDuringImport`: El valor de tupla para el parámetro " +"*exc_info* queda obsoleto, use una excepción en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:80 msgid "" @@ -190,171 +236,195 @@ msgid "" "replacement strings can now only contain ASCII letters and digits and " "underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" msgstr "" +":mod:`re`: Ahora se aplican reglas más estrictas para las referencias " +"numéricas de grupos y los nombres de grupos en expresiones regulares. Ahora " +"solo se aceptan secuencias de dígitos ASCII como referencia numérica. El " +"nombre de grupo en patrones de bytes y cadenas de reemplazo ahora solo puede " +"contener letras y dígitos ASCII y guiones bajos. (Contribución de Serhiy " +"Storchaka en :gh:`91760`.)" #: ../Doc/deprecations/pending-removal-in-future.rst:87 msgid "" ":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." msgstr "" +"Módulos :mod:`!sre_compile`, :mod:`!sre_constants` y :mod:`!sre_parse`." #: ../Doc/deprecations/pending-removal-in-future.rst:89 msgid "" ":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " "Python 3.12; use the *onexc* parameter instead." msgstr "" +":mod:`shutil`: el parámetro *onerror* de :func:`~shutil.rmtree` queda " +"obsoleto en Python 3.12; use el parámetro *onexc* en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:92 msgid ":mod:`ssl` options and protocols:" -msgstr "" +msgstr "Opciones y protocolos de :mod:`ssl`:" #: ../Doc/deprecations/pending-removal-in-future.rst:94 msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." -msgstr "" +msgstr ":class:`ssl.SSLContext` sin argumento de protocolo queda obsoleto." #: ../Doc/deprecations/pending-removal-in-future.rst:95 msgid "" ":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` and :meth:" "`!selected_npn_protocol` are deprecated: use ALPN instead." msgstr "" +":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` y :meth:`!" +"selected_npn_protocol` quedan obsoletas: use ALPN en su lugar." #: ../Doc/deprecations/pending-removal-in-future.rst:98 msgid "``ssl.OP_NO_SSL*`` options" -msgstr "" +msgstr "Opciones ``ssl.OP_NO_SSL*``" #: ../Doc/deprecations/pending-removal-in-future.rst:99 msgid "``ssl.OP_NO_TLS*`` options" -msgstr "" +msgstr "Opciones ``ssl.OP_NO_TLS*``" #: ../Doc/deprecations/pending-removal-in-future.rst:100 msgid "``ssl.PROTOCOL_SSLv3``" -msgstr "" +msgstr "``ssl.PROTOCOL_SSLv3``" #: ../Doc/deprecations/pending-removal-in-future.rst:101 msgid "``ssl.PROTOCOL_TLS``" -msgstr "" +msgstr "``ssl.PROTOCOL_TLS``" #: ../Doc/deprecations/pending-removal-in-future.rst:102 msgid "``ssl.PROTOCOL_TLSv1``" -msgstr "" +msgstr "``ssl.PROTOCOL_TLSv1``" #: ../Doc/deprecations/pending-removal-in-future.rst:103 msgid "``ssl.PROTOCOL_TLSv1_1``" -msgstr "" +msgstr "``ssl.PROTOCOL_TLSv1_1``" #: ../Doc/deprecations/pending-removal-in-future.rst:104 msgid "``ssl.PROTOCOL_TLSv1_2``" -msgstr "" +msgstr "``ssl.PROTOCOL_TLSv1_2``" #: ../Doc/deprecations/pending-removal-in-future.rst:105 msgid "``ssl.TLSVersion.SSLv3``" -msgstr "" +msgstr "``ssl.TLSVersion.SSLv3``" #: ../Doc/deprecations/pending-removal-in-future.rst:106 msgid "``ssl.TLSVersion.TLSv1``" -msgstr "" +msgstr "``ssl.TLSVersion.TLSv1``" #: ../Doc/deprecations/pending-removal-in-future.rst:107 msgid "``ssl.TLSVersion.TLSv1_1``" -msgstr "" +msgstr "``ssl.TLSVersion.TLSv1_1``" #: ../Doc/deprecations/pending-removal-in-future.rst:109 msgid "" ":func:`sysconfig.is_python_build` *check_home* parameter is deprecated and " "ignored." msgstr "" +":func:`sysconfig.is_python_build` el parámetro *check_home* es obsoleto e " +"ignorado." #: ../Doc/deprecations/pending-removal-in-future.rst:112 msgid ":mod:`threading` methods:" -msgstr "" +msgstr "Métodos de :mod:`threading`:" #: ../Doc/deprecations/pending-removal-in-future.rst:114 msgid "" ":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." "notify_all`." msgstr "" +":meth:`!threading.Condition.notifyAll`: use :meth:`~threading.Condition." +"notify_all`." #: ../Doc/deprecations/pending-removal-in-future.rst:115 msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." -msgstr "" +msgstr ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." #: ../Doc/deprecations/pending-removal-in-future.rst:116 msgid "" ":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use :" "attr:`threading.Thread.daemon` attribute." msgstr "" +":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: use " +"el atributo :attr:`threading.Thread.daemon`." #: ../Doc/deprecations/pending-removal-in-future.rst:118 msgid "" ":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use :" "attr:`threading.Thread.name` attribute." msgstr "" +":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: use el " +"atributo :attr:`threading.Thread.name`." #: ../Doc/deprecations/pending-removal-in-future.rst:120 msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." msgstr "" +":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." #: ../Doc/deprecations/pending-removal-in-future.rst:121 msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." -msgstr "" +msgstr ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." #: ../Doc/deprecations/pending-removal-in-future.rst:123 msgid ":class:`typing.Text` (:gh:`92332`)." -msgstr "" +msgstr ":class:`typing.Text` (:gh:`92332`)." #: ../Doc/deprecations/pending-removal-in-future.rst:125 msgid "" ":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " "value that is not ``None`` from a test case." msgstr "" +":class:`unittest.IsolatedAsyncioTestCase`: queda deprecado retornar un valor " +"que no sea ``None`` en un caso de prueba." #: ../Doc/deprecations/pending-removal-in-future.rst:128 msgid "" ":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " "instead" msgstr "" +"Funciones deprecadas de :mod:`urllib.parse`: use :func:`~urllib.parse." +"urlparse` en su lugar" #: ../Doc/deprecations/pending-removal-in-future.rst:130 msgid "``splitattr()``" -msgstr "" +msgstr "``splitattr()``" #: ../Doc/deprecations/pending-removal-in-future.rst:131 msgid "``splithost()``" -msgstr "" +msgstr "``splithost()``" #: ../Doc/deprecations/pending-removal-in-future.rst:132 msgid "``splitnport()``" -msgstr "" +msgstr "``splitnport()``" #: ../Doc/deprecations/pending-removal-in-future.rst:133 msgid "``splitpasswd()``" -msgstr "" +msgstr "``splitpasswd()``" #: ../Doc/deprecations/pending-removal-in-future.rst:134 msgid "``splitport()``" -msgstr "" +msgstr "``splitport()``" #: ../Doc/deprecations/pending-removal-in-future.rst:135 msgid "``splitquery()``" -msgstr "" +msgstr "``splitquery()``" #: ../Doc/deprecations/pending-removal-in-future.rst:136 msgid "``splittag()``" -msgstr "" +msgstr "``splittag()``" #: ../Doc/deprecations/pending-removal-in-future.rst:137 msgid "``splittype()``" -msgstr "" +msgstr "``splittype()``" #: ../Doc/deprecations/pending-removal-in-future.rst:138 msgid "``splituser()``" -msgstr "" +msgstr "``splituser()``" #: ../Doc/deprecations/pending-removal-in-future.rst:139 msgid "``splitvalue()``" -msgstr "" +msgstr "``splitvalue()``" #: ../Doc/deprecations/pending-removal-in-future.rst:140 msgid "``to_bytes()``" -msgstr "" +msgstr "``to_bytes()``" #: ../Doc/deprecations/pending-removal-in-future.rst:142 msgid "" @@ -362,12 +432,18 @@ msgid "" "`~urllib.request.FancyURLopener` style of invoking requests is deprecated. " "Use newer :func:`~urllib.request.urlopen` functions and methods." msgstr "" +":mod:`urllib.request`: los estilos :class:`~urllib.request.URLopener` y :" +"class:`~urllib.request.FancyURLopener` para invocar solicitudes quedan " +"obsoletos. Use las nuevas funciones y métodos :func:`~urllib.request." +"urlopen`." #: ../Doc/deprecations/pending-removal-in-future.rst:146 msgid "" ":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " "writes." msgstr "" +":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` no debería hacer escrituras " +"parciales." #: ../Doc/deprecations/pending-removal-in-future.rst:149 msgid "" @@ -376,9 +452,15 @@ msgid "" "return ``True``. Prefer explicit ``len(elem)`` or ``elem is not None`` tests " "instead." msgstr "" +":mod:`xml.etree.ElementTree`: La prueba del valor de verdad de un :class:" +"`~xml.etree.ElementTree.Element` está obsoleta. En una versión futura, " +"siempre retornará ``True``. En su lugar, es preferible realizar pruebas " +"explícitas ``len(elem)`` o ``elem is not None``." #: ../Doc/deprecations/pending-removal-in-future.rst:154 msgid "" ":meth:`zipimport.zipimporter.load_module` is deprecated: use :meth:" "`~zipimport.zipimporter.exec_module` instead." msgstr "" +":meth:`zipimport.zipimporter.load_module` queda obsoleto: use :meth:" +"`~zipimport.zipimporter.exec_module` en su lugar." From a25fadad5fd8446600831b28b4cbafe84e193dec Mon Sep 17 00:00:00 2001 From: David Date: Thu, 17 Apr 2025 17:49:07 +0100 Subject: [PATCH 25/31] Actualizar paso 5 en archivo CONTRIBUTING (#3387) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Encontré una falla en el paso 5 (opcional) de la documentación para contribuir. El Makefile apunta al directorio **venv** y el comando de python crea un directorio nombrado **env**. Snip del código: ``` # # Makefile for Spanish Python Documentation # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... # Internal variables VENV := $(shell realpath ./venv) PYTHON := $(shell which python3) ... ``` Probé la guia siguiendo los pasos actuales y resulta en un error, cambiando el comando y el _source path_ por **venv** se solucionan los errores. --- .overrides/CONTRIBUTING.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.overrides/CONTRIBUTING.rst b/.overrides/CONTRIBUTING.rst index 360b3f0957..c5081c8639 100644 --- a/.overrides/CONTRIBUTING.rst +++ b/.overrides/CONTRIBUTING.rst @@ -54,9 +54,9 @@ podrás realizar todas las contribuciones que quieras. #. (Opcional) Crea un entorno virtual y actívalo:: - python -m venv env - source env/bin/activate # macOS y Linux - env\Scripts\activate.bat # Windows + python -m venv venv + source venv/bin/activate # macOS y Linux + venv\Scripts\activate.bat # Windows #. (Opcional) Instala los requerimientos del proyecto:: From da743319d7dcc7ce4c4ece0a9d10b0454e86f035 Mon Sep 17 00:00:00 2001 From: David Pizarro <105984897+DavidPPizarro@users.noreply.github.com> Date: Sat, 26 Apr 2025 06:58:08 -0500 Subject: [PATCH 26/31] Traducido archivo howto/clinic (#3388) Closes #3222 --- howto/clinic.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/howto/clinic.po b/howto/clinic.po index 36454d3541..c6dd4b7702 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -30,3 +30,6 @@ msgid "" "The Argument Clinic How-TO has been moved to the `Python Developer's Guide " "`__." msgstr "" +"La documentación de *Cómo usar Argument Clinic* ha sido trasladado a la `Guía de Desarrolladores de Python " +"`__." + From 61015d4b248aa0c92b95d45f46e08fe576401f4f Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Wed, 7 May 2025 21:20:00 -0500 Subject: [PATCH 27/31] traduccion c-api/bool (#3390) Closes #3269 Co-authored-by: Luis Angel Gonzalez Pereira --- c-api/bool.po | 68 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/c-api/bool.po b/c-api/bool.po index 3938dc07ae..ea41eda60a 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -10,23 +10,23 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-08-16 13:03+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" +"PO-Revision-Date: 2025-05-07 20:14-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Generated-By: Babel 2.13.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/bool.rst:6 msgid "Boolean Objects" msgstr "Objetos booleanos" #: ../Doc/c-api/bool.rst:8 -#, fuzzy msgid "" "Booleans in Python are implemented as a subclass of integers. There are " "only two booleans, :c:data:`Py_False` and :c:data:`Py_True`. As such, the " @@ -43,6 +43,8 @@ msgid "" "This instance of :c:type:`PyTypeObject` represents the Python boolean type; " "it is the same object as :class:`bool` in the Python layer." msgstr "" +"Esta instancia de :c:type:`PyTypeObject` representa el tipo booleano de " +"Python; es el mismo objeto que :class:`bool` en la capa de Python." #: ../Doc/c-api/bool.rst:22 msgid "" @@ -54,40 +56,62 @@ msgstr "" #: ../Doc/c-api/bool.rst:28 msgid "" -"The Python ``False`` object. This object has no methods and is :term:" -"`immortal`." +"The Python ``False`` object. This object has no methods and is `immortal " +"`_." msgstr "" +"El objeto ``False`` de Python. Este objeto no tiene métodos y es `inmortal " +"`_." #: ../Doc/c-api/bool.rst:31 -msgid ":c:data:`Py_False` is :term:`immortal`." -msgstr "" +msgid ":c:data:`Py_False` is immortal." +msgstr ":c:data:`Py_False` es inmortal." #: ../Doc/c-api/bool.rst:37 msgid "" -"The Python ``True`` object. This object has no methods and is :term:" -"`immortal`." +"The Python ``True`` object. This object has no methods and is `immortal " +"`_." msgstr "" +"El objeto ``True`` de Python. Este objeto no tiene métodos y es `inmortal " +"`_." #: ../Doc/c-api/bool.rst:40 -msgid ":c:data:`Py_True` is :term:`immortal`." -msgstr "" +msgid ":c:data:`Py_True` is immortal." +msgstr ":c:data:`Py_True` es inmortal." #: ../Doc/c-api/bool.rst:46 -#, fuzzy msgid "Return :c:data:`Py_False` from a function." -msgstr "" -"Retorna :const:`Py_False` de una función, incrementando adecuadamente su " -"recuento de referencia." +msgstr "Retorna :c:data:`Py_False` desde una función." #: ../Doc/c-api/bool.rst:51 msgid "Return :c:data:`Py_True` from a function." -msgstr "" +msgstr "Retorna :c:data:`Py_True` desde una función.." #: ../Doc/c-api/bool.rst:56 -#, fuzzy msgid "" "Return :c:data:`Py_True` or :c:data:`Py_False`, depending on the truth value " "of *v*." msgstr "" -"Retorna una nueva referencia a :const:`Py_True` o :const:`Py_False` " -"dependiendo del valor de verdad de *v*." +"Retorna :c:data:`Py_True` o :c:data:`Py_False`, dependiendo del valor " +"verdadero de *v*." + +#~ msgid "" +#~ "The Python ``False`` object. This object has no methods. It needs to be " +#~ "treated just like any other object with respect to reference counts." +#~ msgstr "" +#~ "El objeto ``False`` de Python. Este objeto no tiene métodos. Debe " +#~ "tratarse como cualquier otro objeto con respecto a los recuentos de " +#~ "referencia." + +#~ msgid "" +#~ "The Python ``True`` object. This object has no methods. It needs to be " +#~ "treated just like any other object with respect to reference counts." +#~ msgstr "" +#~ "El objeto ``True`` de Python. Este objeto no tiene métodos. Debe tratarse " +#~ "como cualquier otro objeto con respecto a los recuentos de referencia." + +#~ msgid "" +#~ "Return :const:`Py_True` from a function, properly incrementing its " +#~ "reference count." +#~ msgstr "" +#~ "Retorna :const:`Py_True` desde una función, incrementando adecuadamente " +#~ "su recuento de referencia." From 0ac8952987d63365a7575fedb96c296560c05be1 Mon Sep 17 00:00:00 2001 From: Carlos Mena <50986837+carlosm00@users.noreply.github.com> Date: Sun, 11 May 2025 00:58:15 +0200 Subject: [PATCH 28/31] Traduccion c api/conversion.po (#3391) Closes #3277 --------- Co-authored-by: Carlos Mena --- c-api/conversion.po | 55 ++++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/c-api/conversion.po b/c-api/conversion.po index c7d3a5a401..76376b95c2 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -11,15 +11,16 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-12-09 10:24+0800\n" -"Last-Translator: Rodrigo Tobar \n" -"Language: es\n" +"PO-Revision-Date: 2025-05-09 19:20+0200\n" +"Last-Translator: Carlos Mena Pérez <@carlosm00>\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.5\n" #: ../Doc/c-api/conversion.rst:6 msgid "String conversion and formatting" @@ -64,7 +65,6 @@ msgstr "" "(*corner cases*), que las funciones del Estándar C no hacen." #: ../Doc/c-api/conversion.rst:28 -#, fuzzy msgid "" "The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. " "They never write more than *size* bytes (including the trailing ``'\\0'``) " @@ -76,7 +76,9 @@ msgstr "" "Las envolturas aseguran que ``str[size-1]`` sea siempre ``'\\0'`` al " "retornar. Nunca se escriben más de *size* bytes (incluido el ``'\\0'`` del " "final) en *str*. Ambas funciones requieren que ``str != NULL``, ``size > " -"0``, ``format != NULL`` y ``size < INT_MAX``." +"0``, ``format != NULL`` y ``size < INT_MAX``. Tenga en cuenta que esto " +"significa que no hay equivalente a la expresión ``n = snprintf(NULL, " +"0, ...)`` de C99, la cual determinaría el tamaño del búfer necesario." #: ../Doc/c-api/conversion.rst:34 msgid "" @@ -129,6 +131,9 @@ msgid "" "long` value according to the given ``base``, which must be between ``2`` and " "``36`` inclusive, or be the special value ``0``." msgstr "" +"Convierte la parte inicial de la cadena de caracteres en ``str`` a un valor :" +"c:expr:`unsigned long` según la ``base`` dada, que debe estar entre ``2`` y " +"``36`` inclusive, o ser el valor especial ``0``." #: ../Doc/c-api/conversion.rst:57 msgid "" @@ -138,6 +143,11 @@ msgid "" "(inclusive). If ``ptr`` is non-``NULL`` it will contain a pointer to the " "end of the scan." msgstr "" +"Se ignoran los espacios en blanco y las mayúsculas y minúsculas. Si " +"``base`` es cero se busca un prefijo ``0b``, ``0o`` o ``0x`` para indicar la " +"base. Si no están, por defecto es ``10``. La base debe ser 0 o entre 2 y " +"36 (ambos inclusive). Si ``ptr`` no es ``NULL``, contendrá un puntero al " +"final del escaneo." #: ../Doc/c-api/conversion.rst:63 msgid "" @@ -146,10 +156,14 @@ msgid "" "macro:`!ULONG_MAX` is returned. If no conversion can be performed, ``0`` is " "returned." msgstr "" +"Si el valor convertido queda fuera del rango del tipo de retorno " +"correspondiente, se produce un error de rango (:c:data:`errno` se establece " +"en :c:macro:`!ERANGE`) y se devuelve :c:macro:`!ULONG_MAX`. Si no se puede " +"realizar la conversión, se devuelve ``0``." #: ../Doc/c-api/conversion.rst:68 msgid "See also the Unix man page :manpage:`strtoul(3)`." -msgstr "" +msgstr "Vea también el manual Unix de :manpage:`strtoul(3)`." #: ../Doc/c-api/conversion.rst:75 msgid "" @@ -157,19 +171,23 @@ msgid "" "according to the given ``base``, which must be between ``2`` and ``36`` " "inclusive, or be the special value ``0``." msgstr "" +"Convierte la parte inicial de la cadena de caracteres en ``str`` a un valor :" +"c:expr:`long` según la ``base`` dada, que debe estar entre ``2`` y ``36`` " +"inclusive, o ser el valor especial ``0``." #: ../Doc/c-api/conversion.rst:79 msgid "" "Same as :c:func:`PyOS_strtoul`, but return a :c:expr:`long` value instead " "and :c:macro:`LONG_MAX` on overflows." msgstr "" +"Igual que :c:func:`PyOS_strtoul`, pero devuelve un valor :c:expr:`long` en " +"su lugar y :c:macro:`LONG_MAX` en desbordamientos." #: ../Doc/c-api/conversion.rst:82 msgid "See also the Unix man page :manpage:`strtol(3)`." -msgstr "" +msgstr "Vea también el manual Unix de :manpage:`strtol(3)`." #: ../Doc/c-api/conversion.rst:89 -#, fuzzy msgid "" "Convert a string ``s`` to a :c:expr:`double`, raising a Python exception on " "failure. The set of accepted strings corresponds to the set of strings " @@ -177,9 +195,9 @@ msgid "" "have leading or trailing whitespace. The conversion is independent of the " "current locale." msgstr "" -"Convierte una cadena de caracteres ``s`` en un :c:type:`double`, generando " -"una excepción de Python en caso de falla. El conjunto de cadenas de " -"caracteres aceptadas corresponde al conjunto de cadenas aceptadas por el " +"Convierte una cadena de caracteres ``s`` a un valor :c:expr:`double`, " +"generando una excepción de Python en caso de fallo. El conjunto de cadenas " +"de caracteres aceptadas corresponde al conjunto de cadenas aceptadas por el " "constructor de Python :func:`float`, excepto que ``s`` no debe tener " "espacios en blanco iniciales o finales. La conversión es independiente de la " "configuración regional actual." @@ -239,12 +257,11 @@ msgstr "" "``-1.0``." #: ../Doc/c-api/conversion.rst:123 -#, fuzzy msgid "" "Convert a :c:expr:`double` *val* to a string using supplied *format_code*, " "*precision*, and *flags*." msgstr "" -"Convierte un :c:type:`double` *val* en una cadena de caracteres usando " +"Convierte un :c:expr:`double` *val* a una cadena de caracteres usando " "*format_code*, *precision* y *flags* suministrados." #: ../Doc/c-api/conversion.rst:126 @@ -315,21 +332,19 @@ msgstr "" "`PyMem_Free`." #: ../Doc/c-api/conversion.rst:157 -#, fuzzy msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`!strcmp` except that it ignores the case." msgstr "" "Comparación no sensible a mayúsculas y minúsculas en cadenas de caracteres. " -"La función se comporta casi de manera idéntica a :c:func:`strcmp`, excepto " -"que ignora el caso." +"La función se comporta casi de manera idéntica a :c:func:`!strcmp`, excepto " +"que ignora mayúsculas y minúsculas." #: ../Doc/c-api/conversion.rst:163 -#, fuzzy msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`!strncmp` except that it ignores the case." msgstr "" "Comparación no sensible a mayúsculas y minúsculas en cadenas de caracteres. " -"La función se comporta casi de manera idéntica a :c:func:`strncmp`, excepto " -"que ignora el caso." +"La función se comporta casi de manera idéntica a :c:func:`!strncmp`, excepto " +"que ignora mayúsculas y minúsculas." From 61f56025abeb379b97a8faec35ff5246cd553abb Mon Sep 17 00:00:00 2001 From: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> Date: Tue, 13 May 2025 01:31:39 +0100 Subject: [PATCH 29/31] Lint fixes (#3392) From [dashboard](https://python-docs-translations.github.io/dashboard/warnings-lint-es.txt) ``` clones/rebased_translations/python/python-docs-es/howto/enum.po:27: Unnecessary parentheses in ':func:`repr()`' (unnecessary-parentheses) clones/rebased_translations/python/python-docs-es/howto/enum.po:391: Unnecessary parentheses in ':func:`auto()`' (unnecessary-parentheses) ``` --- howto/enum.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/howto/enum.po b/howto/enum.po index e22a399000..54b709d01f 100644 --- a/howto/enum.po +++ b/howto/enum.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Un :class:`Enum` es un conjunto de nombres simbólicos vinculados a valores " "únicos. Son similares a las variables globales, pero ofrecen un :func:" -"`repr()` más útil, agrupación, seguridad de tipos y algunas otras " +"`repr` más útil, agrupación, seguridad de tipos y algunas otras " "características." #: ../Doc/howto/enum.rst:15 @@ -412,7 +412,7 @@ msgid "" "yourself some work and use :func:`auto` for the values::" msgstr "" "En los casos en que los valores reales de los miembros no importen, puede " -"ahorrarse algo de trabajo y usar :func:`auto()` para los valores:" +"ahorrarse algo de trabajo y usar :func:`auto` para los valores:" #: ../Doc/howto/enum.rst:172 msgid "" From cacb33991bfb740e0d1f82bda76d8deb3b3ec002 Mon Sep 17 00:00:00 2001 From: M-E-K-J-2102 Date: Wed, 14 May 2025 02:27:27 -0400 Subject: [PATCH 30/31] =?UTF-8?q?Traducci=C3=B3n=20c-api/refcounting.po=20?= =?UTF-8?q?(#3386)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #3260 --------- Co-authored-by: Marcos Medrano <786907+mmmarcos@users.noreply.github.com> --- TRANSLATORS | 1 + c-api/refcounting.po | 126 ++++++++++++++++++++++++------------------- 2 files changed, 73 insertions(+), 54 deletions(-) diff --git a/TRANSLATORS b/TRANSLATORS index be067fce8b..e46c181565 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -186,6 +186,7 @@ Martín Gaitán (@mgaitan) Martín Ramírez (@tinchoram) Mateo Cámara (@MateoCamara) Matias Bordese (@matiasb) +Matthew Ellis Kane Jiménez (@M-E-K-J-2102) Melissa Escobar Gutiérrez (@MelissaEscobar) Miguel Ángel Nahuel Ambrosini (@ambro17) diff --git a/c-api/refcounting.po b/c-api/refcounting.po index bac90a57c8..f3abd37805 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -26,18 +26,16 @@ msgid "Reference Counting" msgstr "Conteo de referencias" #: ../Doc/c-api/refcounting.rst:10 -#, fuzzy msgid "" "The functions and macros in this section are used for managing reference " "counts of Python objects." msgstr "" -"Los macros de esta sección se utilizan para administrar conteos de " -"referencia de objetos Python." +"Las funciónes y macros de esta sección se utilizan para administrar conteos " +"de referencia de objetos en Python." #: ../Doc/c-api/refcounting.rst:16 -#, fuzzy msgid "Get the reference count of the Python object *o*." -msgstr "Incrementar el recuento de referencia para el objeto *o*." +msgstr "Obtiene el recuento de referencias para el objeto de Python *o*." #: ../Doc/c-api/refcounting.rst:18 msgid "" @@ -47,46 +45,57 @@ msgid "" "number of references. Consequently, do not rely on the returned value to be " "accurate, other than a value of 0 or 1." msgstr "" +"Ten cuenta que el valor devuelto puede que no reflejar cúantas referencias " +"al objecto existen realmente. Por ejemplo, algunos objetos son :" +"term:'immortal' y tienen un refcount muy alto que no refleja el número " +"real de referencias. Por lo tanto, no confíes en que el valor devuelto sea " +"presciso, salvo cuando sea 0 o 1. " #: ../Doc/c-api/refcounting.rst:24 msgid "" "Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." msgstr "" +"Usa la función :c:func:`Py_SET_REFCNT()` para establecer la cuenta de " +"referencias de un objeto." #: ../Doc/c-api/refcounting.rst:26 msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." -msgstr "" +msgstr ":c:func:`Py_REFCNT()` se convierte en una función estática en línea." #: ../Doc/c-api/refcounting.rst:29 msgid "The parameter type is no longer :c:expr:`const PyObject*`." -msgstr "" +msgstr "El tipo de parámetro ya no es :c:expr:`const PyObject*`." #: ../Doc/c-api/refcounting.rst:35 -#, fuzzy msgid "Set the object *o* reference counter to *refcnt*." -msgstr "Incrementar el recuento de referencia para el objeto *o*." +msgstr "Establece la cuenta de referencias del objeto *o* al valor *refcnt*." #: ../Doc/c-api/refcounting.rst:37 msgid "" "On :ref:`Python build with Free Threading `, if " "*refcnt* is larger than ``UINT32_MAX``, the object is made :term:`immortal`." msgstr "" +"En :ref:`compilación de Python con Free Threading `, " +"si *refcnt* es mas mayor que ``UINT32_MAX``, el objeto se convierte en :term:" +"`immortal`." #: ../Doc/c-api/refcounting.rst:40 ../Doc/c-api/refcounting.rst:53 #: ../Doc/c-api/refcounting.rst:119 msgid "This function has no effect on :term:`immortal` objects." -msgstr "" +msgstr "Esta función no afecta a los objetos :term:`immortal`." #: ../Doc/c-api/refcounting.rst:44 ../Doc/c-api/refcounting.rst:68 #: ../Doc/c-api/refcounting.rst:147 msgid "Immortal objects are not modified." -msgstr "" +msgstr "Los objetos inmortales no se modifican." #: ../Doc/c-api/refcounting.rst:50 msgid "" "Indicate taking a new :term:`strong reference` to object *o*, indicating it " "is in use and should not be destroyed." msgstr "" +"Indica tomar una nueva :term:`strong reference` al objeto *o*, lo que indica " +"que está en uso y no debe ser destruido. " #: ../Doc/c-api/refcounting.rst:55 msgid "" @@ -101,6 +110,8 @@ msgstr "" #: ../Doc/c-api/refcounting.rst:59 msgid "When done using the object, release is by calling :c:func:`Py_DECREF`." msgstr "" +"Cuando se termine de usar el objeto, se libera llamando a :c:func:" +"`Py_DECREF`." #: ../Doc/c-api/refcounting.rst:61 msgid "" @@ -117,33 +128,32 @@ msgid "" msgstr "" #: ../Doc/c-api/refcounting.rst:74 -#, fuzzy msgid "" "Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which " "case this has no effect." -msgstr "Similar a :c:func:`Py_NewRef`, pero el objeto *o* puede ser NULL." +msgstr "" +"Similar a :c:func:`Py_INCREF`, pero el objeto *o* puede ser ``NULL``, en " +"cuyo caso esto no tiene efecto." #: ../Doc/c-api/refcounting.rst:77 msgid "See also :c:func:`Py_XNewRef`." msgstr "Ver también :c:func:`Py_XNewRef`." #: ../Doc/c-api/refcounting.rst:82 -#, fuzzy msgid "" "Create a new :term:`strong reference` to an object: call :c:func:`Py_INCREF` " "on *o* and return the object *o*." msgstr "" -"Crea un nuevo :term:`strong reference` a un objeto: incrementa el recuento " -"de referencias del objeto *o* y retorna el objeto *o*." +"Crea una nueva :term:`strong reference` a un objeto: llama a :c:func:" +"`Py_INCREF` sobre *o* y devuelve el objeto *o*." #: ../Doc/c-api/refcounting.rst:85 -#, fuzzy msgid "" "When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` " "should be called on it to release the reference." msgstr "" -"Cuando el :term:`strong reference` ya no sea necesario :c:func:`Py_DECREF` " -"debe ser llamado para disminuir el recuento de referencias del objeto." +"Cuando la :term:`strong reference` ya no sea necesaria, se debe llamar a :c:" +"func:`Py_DECREF` para disminuir el recuento de referencias del objeto." #: ../Doc/c-api/refcounting.rst:88 msgid "" @@ -184,23 +194,22 @@ msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." msgstr "Si el objeto *o* es ``NULL``, la función solo retorna ``NULL``." #: ../Doc/c-api/refcounting.rst:116 -#, fuzzy msgid "" "Release a :term:`strong reference` to object *o*, indicating the reference " "is no longer used." msgstr "" -"Crea un nuevo :term:`strong reference` a un objeto: incrementa el recuento " -"de referencias del objeto *o* y retorna el objeto *o*." +"Libera una :term:`strong reference` al objeto *o*, indicando que la " +"referencia ya no se usa." #: ../Doc/c-api/refcounting.rst:121 -#, fuzzy msgid "" "Once the last :term:`strong reference` is released (i.e. the object's " "reference count reaches 0), the object's type's deallocation function (which " "must not be ``NULL``) is invoked." msgstr "" -"Si el recuento de referencias llega a cero, se invoca la función de " -"desasignación del tipo de objeto (que no debe ser ``NULL``)." +"Una vez que la última :term:`strong reference` sea liberada (por ejemplo, " +"cuando la cuenta de referencias del objeto llegue a 0), se invoca la función " +"de desasignación del tipo de objeto (la cual no debe ser ``NULL``)." #: ../Doc/c-api/refcounting.rst:126 msgid "" @@ -225,7 +234,6 @@ msgid "" msgstr "" #: ../Doc/c-api/refcounting.rst:138 -#, fuzzy msgid "" "The deallocation function can cause arbitrary Python code to be invoked (e." "g. when a class instance with a :meth:`~object.__del__` method is " @@ -238,15 +246,15 @@ msgid "" "call :c:func:`Py_DECREF` for the temporary variable." msgstr "" "La función de desasignación puede hacer que se invoque un código arbitrario " -"de Python (por ejemplo, cuando se desasigna una instancia de clase con un " -"método :meth:`__del__`). Si bien las excepciones en dicho código no se " -"propagan, el código ejecutado tiene acceso libre a todas las variables " +"de Python (por ejemplo, cuando se desasigna una instancia de clase con el " +"método :meth:`~object.__del__`). Mientras las excepciones en dicho código no sean " +"propagadas, el código ejecutado tendrá acceso libre a todas las variables " "globales de Python. Esto significa que cualquier objeto al que se pueda " -"acceder desde una variable global debe estar en un estado coherente antes de " -"invocar :c:func:`Py_DECREF`. Por ejemplo, el código para eliminar un objeto " -"de una lista debe copiar una referencia al objeto eliminado en una variable " -"temporal, actualizar la estructura de datos de la lista y luego llamar a :c:" -"func:`Py_DECREF` para la variable temporal." +"acceder desde una variable global debería estar en un estado coherente antes " +"de invocar a :c:func:`Py_DECREF`. Por ejemplo, el código para eliminar un " +"objeto de una lista debe copiar una referencia al objeto eliminado en una " +"variable temporal, actualizar la estructura de datos de la lista y luego " +"llamar a :c:func:`Py_DECREF` para la variable temporal." #: ../Doc/c-api/refcounting.rst:153 msgid "" @@ -254,9 +262,11 @@ msgid "" "case this has no effect. The same warning from :c:func:`Py_DECREF` applies " "here as well." msgstr "" +"Similar a :c:func:`Py_DECREF`, pero el objeto *o* puede ser ``NULL``, en " +"cuyo caso esto no tendría efecto alguno. El mismo aviso de :c:func:" +"`Py_DECREF` aplica aqui también." #: ../Doc/c-api/refcounting.rst:160 -#, fuzzy msgid "" "Release a :term:`strong reference` for object *o*. The object may be " "``NULL``, in which case the macro has no effect; otherwise the effect is the " @@ -265,60 +275,60 @@ msgid "" "to the object passed because the macro carefully uses a temporary variable " "and sets the argument to ``NULL`` before releasing the reference." msgstr "" -"Disminuye el conteo de referencia para el objeto *o*. El objeto puede ser " +"Libera una :term:`strong reference` del objeto *o*. El objeto puede ser " "``NULL``, en cuyo caso el macro no tiene efecto; de lo contrario, el efecto " -"es el mismo que para :c:func:`Py_DECREF`, excepto que el argumento también " -"se establece en ``NULL``. La advertencia para :c:func:`Py_DECREF` no se " -"aplica con respecto al objeto pasado porque el macro usa cuidadosamente una " -"variable temporal y establece el argumento en ``NULL`` antes de disminuir su " -"conteo de referencia." +"es el mismo que el de :c:func:`Py_DECREF`, excepto que el argumento también " +"se establece en ``NULL``. La advertencia de :c:func:`Py_DECREF` no se aplica " +"en este caso, ya que el macro usa cuidadosamente una variable temporal y " +"asigna ``NULL`` al algumento antes de luberar la referencia " #: ../Doc/c-api/refcounting.rst:168 -#, fuzzy msgid "" "It is a good idea to use this macro whenever releasing a reference to an " "object that might be traversed during garbage collection." msgstr "" -"Es una buena idea usar este macro siempre que disminuya el conteo de " -"referencia de un objeto que pueda atravesarse durante la recolección de " -"basura." +"Es buena idea usar este macro al liberar una referencia de un objeto que " +"podría ser recorrido durante la recolección de basura." #: ../Doc/c-api/refcounting.rst:171 msgid "" "The macro argument is now only evaluated once. If the argument has side " "effects, these are no longer duplicated." msgstr "" +"Ahora, el macro argumento solo se evalua una vez. Si el argumento tiene " +"efectos secundarios, estos ya no se duplican." #: ../Doc/c-api/refcounting.rst:178 -#, fuzzy msgid "" "Indicate taking a new :term:`strong reference` to object *o*. A function " "version of :c:func:`Py_XINCREF`. It can be used for runtime dynamic " "embedding of Python." msgstr "" -"Incrementa el conteo de referencias para objeto *o*. Una versión de la " -"función :c:func:`Py_XINCREF`. Puede utilizarse para la integración dinámica " -"en tiempo de ejecución de Python." +"Indica la toma de una nueva :term:`strong reference` al objeto *o*. Es una " +"versión en forma de función de :c:func:`Py_XINCREF`. Puede utilizarse para " +"la integración dinámica de Python en tiempo de ejecución." #: ../Doc/c-api/refcounting.rst:185 -#, fuzzy msgid "" "Release a :term:`strong reference` to object *o*. A function version of :c:" "func:`Py_XDECREF`. It can be used for runtime dynamic embedding of Python." msgstr "" -"Disminuye el conteo de referencias del objeto *o*. Una versión de la " -"función :c:func:`Py_XDECREF`. Puede utilizarse para la integración dinámica " -"en tiempo de ejecución de Python." +"Libera una :term:`strong reference` al objeto *o*. Una versión en forma de " +"función de :c:func:`Py_XDECREF`. Puede utilizarse para la integración " +"dinámica de Python en tiempo de ejecución." #: ../Doc/c-api/refcounting.rst:192 msgid "" "Macro safely releasing a :term:`strong reference` to object *dst* and " "setting *dst* to *src*." msgstr "" +"Un macro que libera de forma segura un :term:`strong reference` al objeto " +"*dst* y establece *dst* al valor *src*." #: ../Doc/c-api/refcounting.rst:195 msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::" msgstr "" +"Como en el caso de :c:func:`Py_CLEAR`, el codigo \"obvio\" puede ser mortal::" #: ../Doc/c-api/refcounting.rst:197 msgid "" @@ -328,7 +338,7 @@ msgstr "" #: ../Doc/c-api/refcounting.rst:200 msgid "The safe way is::" -msgstr "" +msgstr "La forma segura es::" #: ../Doc/c-api/refcounting.rst:202 msgid "Py_SETREF(dst, src);" @@ -340,15 +350,23 @@ msgid "" "old value of *dst*, so that any code triggered as a side-effect of *dst* " "getting torn down no longer believes *dst* points to a valid object." msgstr "" +"Eso termina asignando *dst* al valor *src* _antes de_ liberar la referencia " +"al valor anterior de *dst*, para que cualquier código ejecutado como efecto " +"secundario de *dst* siendo destruido ya no crea que *dst* señala a un objeto " +"válido." #: ../Doc/c-api/refcounting.rst:211 ../Doc/c-api/refcounting.rst:223 msgid "" "The macro arguments are now only evaluated once. If an argument has side " "effects, these are no longer duplicated." msgstr "" +"Los macro argumentos ahora solo se evalúan una vez. Si algún argumento tiene " +"efectos secundarios, estos ya no se duplican." #: ../Doc/c-api/refcounting.rst:218 msgid "" "Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead " "of :c:func:`Py_DECREF`." msgstr "" +"Un variante del macro :c:macro:`Py_SETREF` que usa :c:func:`Py_XDECREF` en " +"lugar de :c:func:`Py_DECREF`." From 396cc135439d6c37da9cabb88757299f11205d39 Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Mon, 19 May 2025 15:42:44 -0500 Subject: [PATCH 31/31] primera traduccion (#3396) Closes #3272 --------- Co-authored-by: rtobar --- c-api/reflection.po | 93 +++++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 36 deletions(-) diff --git a/c-api/reflection.po b/c-api/reflection.po index 00aac1c3c4..14714def82 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -11,44 +11,49 @@ msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-11-21 16:38-0300\n" -"PO-Revision-Date: 2021-12-09 10:32+0800\n" +"PO-Revision-Date: 2025-05-15 13:52-0500\n" "Last-Translator: Rodrigo Tobar \n" -"Language: es\n" "Language-Team: python-doc-es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: Babel 2.16.0\n" +"X-Generator: Poedit 3.6\n" #: ../Doc/c-api/reflection.rst:6 msgid "Reflection" msgstr "Reflexión" #: ../Doc/c-api/reflection.rst:12 -#, fuzzy msgid "Use :c:func:`PyEval_GetFrameBuiltins` instead." -msgstr "Vea también :c:func:`PyThreadState_GetFrame`." +msgstr "Utilice :c:func:`PyEval_GetFrameBuiltins` en su lugar." #: ../Doc/c-api/reflection.rst:14 ../Doc/c-api/reflection.rst:66 msgid "" "Return a dictionary of the builtins in the current execution frame, or the " "interpreter of the thread state if no frame is currently executing." msgstr "" -"Retorna un diccionario de las construcciones en el marco de ejecución " -"actual, o el intérprete del estado del hilo si no se está ejecutando ningún " -"marco actualmente." +"Retorna un diccionario de los builtins en el marco de ejecución actual, o " +"el intérprete del estado del hilo si no hay ningún marco en ejecución " +"actualmente." #: ../Doc/c-api/reflection.rst:22 msgid "" "Use either :c:func:`PyEval_GetFrameLocals` to obtain the same behaviour as " -"calling :func:`locals` in Python code, or else call :c:func:" -"`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame` to access " -"the :attr:`~frame.f_locals` attribute of the currently executing frame." +"calling :func:`locals` in Python code, or else " +"call :c:func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame` " +"to access the :attr:`~frame.f_locals` attribute of the currently executing " +"frame." msgstr "" +"Utilice :c:func:`PyEval_GetFrameLocals` para obtener el mismo comportamiento " +"que llamando a :func:`locals` en código Python, o bien llama " +"a :c:func:`PyFrame_GetLocals` sobre el resultado " +"de :c:func:`PyEval_GetFrame` para acceder al " +"atributo :attr:`~frame.f_locals` del frame actualmente en ejecución." #: ../Doc/c-api/reflection.rst:27 -#, fuzzy msgid "" "Return a mapping providing access to the local variables in the current " "execution frame, or ``NULL`` if no frame is currently executing." @@ -61,30 +66,42 @@ msgid "" "Refer to :func:`locals` for details of the mapping returned at different " "scopes." msgstr "" +"Consulte :func:`locals` para obtener más información sobre el mapeo " +"retornado en diferentes ámbitos." #: ../Doc/c-api/reflection.rst:32 msgid "" "As this function returns a :term:`borrowed reference`, the dictionary " "returned for :term:`optimized scopes ` is cached on the " -"frame object and will remain alive as long as the frame object does. Unlike :" -"c:func:`PyEval_GetFrameLocals` and :func:`locals`, subsequent calls to this " -"function in the same frame will update the contents of the cached dictionary " -"to reflect changes in the state of the local variables rather than returning " -"a new snapshot." +"frame object and will remain alive as long as the frame object does. " +"Unlike :c:func:`PyEval_GetFrameLocals` and :func:`locals`, subsequent calls " +"to this function in the same frame will update the contents of the cached " +"dictionary to reflect changes in the state of the local variables rather " +"than returning a new snapshot." msgstr "" +"Como esta función retorna una :term:`referencia prestada`, el diccionario " +"retornado para :term:`ámbitos optimizados ` se almacena en " +"caché en el objeto marco y permanecerá vivo mientras lo haga el marco del " +"objeto. A diferencia de :c:func:`PyEval_GetFrameLocals` y :func:`locals`, " +"las llamadas posteriores a esta función en el mismo marco actualizarán el " +"contenido del diccionario en caché para reflejar los cambios en el estado de " +"las variables locales en lugar de retornar una nueva instantánea." #: ../Doc/c-api/reflection.rst:39 msgid "" -"As part of :pep:`667`, :c:func:`PyFrame_GetLocals`, :func:`locals`, and :" -"attr:`FrameType.f_locals ` no longer make use of the shared " -"cache dictionary. Refer to the :ref:`What's New entry ` for additional details." +"As part of :pep:`667`, :c:func:`PyFrame_GetLocals`, :func:`locals`, " +"and :attr:`FrameType.f_locals ` no longer make use of the " +"shared cache dictionary. Refer to the :ref:`What's New entry ` for additional details." msgstr "" +"Como parte de :pep:`667`, :c:func:`PyFrame_GetLocals`, :func:`locals`, " +"y :attr:`FrameType.f_locals ` ya no utilizan el diccionario " +"de caché compartido. Consulte la entrada :ref:`What's New ` para más detalles." #: ../Doc/c-api/reflection.rst:50 -#, fuzzy msgid "Use :c:func:`PyEval_GetFrameGlobals` instead." -msgstr "Vea también :c:func:`PyThreadState_GetFrame`." +msgstr "Utilice :c:func:`PyEval_GetFrameGlobals` en su lugar." #: ../Doc/c-api/reflection.rst:52 msgid "" @@ -107,31 +124,35 @@ msgid "See also :c:func:`PyThreadState_GetFrame`." msgstr "Vea también :c:func:`PyThreadState_GetFrame`." #: ../Doc/c-api/reflection.rst:74 -#, fuzzy msgid "" "Return a dictionary of the local variables in the current execution frame, " -"or ``NULL`` if no frame is currently executing. Equivalent to calling :func:" -"`locals` in Python code." +"or ``NULL`` if no frame is currently executing. Equivalent to " +"calling :func:`locals` in Python code." msgstr "" "Retorna un diccionario de las variables locales en el marco de ejecución " -"actual, o ``NULL`` si actualmente no se está ejecutando ningún marco." +"actual, o ``NULL`` si no se está ejecutando ningún marco. Equivale a llamar " +"a :func:`locals` en código Python." #: ../Doc/c-api/reflection.rst:78 msgid "" "To access :attr:`~frame.f_locals` on the current frame without making an " -"independent snapshot in :term:`optimized scopes `, call :c:" -"func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame`." +"independent snapshot in :term:`optimized scopes `, " +"call :c:func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame`." msgstr "" +"Para acceder a :attr:`~frame.f_locals` en el marco actual sin hacer una " +"captura independiente en :term:`ámbitos optimizados `, llame " +"a :c:func:`PyFrame_GetLocals` sobre el resultado " +"de :c:func:`PyEval_GetFrame`." #: ../Doc/c-api/reflection.rst:87 -#, fuzzy msgid "" "Return a dictionary of the global variables in the current execution frame, " -"or ``NULL`` if no frame is currently executing. Equivalent to calling :func:" -"`globals` in Python code." +"or ``NULL`` if no frame is currently executing. Equivalent to " +"calling :func:`globals` in Python code." msgstr "" -"Retorna un diccionario de las variables globales en el marco de ejecución " -"actual, o ``NULL`` si actualmente no se está ejecutando ningún marco." +"Retorna un diccionario de las variables locales en el marco de ejecución " +"actual, o ``NULL`` si no se está ejecutando ningún marco. Equivale a llamar " +"a :func:`globals` en código Python." #: ../Doc/c-api/reflection.rst:96 msgid "" @@ -145,8 +166,8 @@ msgstr "" msgid "" "Return a description string, depending on the type of *func*. Return values " "include \"()\" for functions and methods, \" constructor\", \" instance\", " -"and \" object\". Concatenated with the result of :c:func:" -"`PyEval_GetFuncName`, the result will be a description of *func*." +"and \" object\". Concatenated with the result " +"of :c:func:`PyEval_GetFuncName`, the result will be a description of *func*." msgstr "" "Retorna una cadena de caracteres de descripción, según el tipo de *func*. " "Los valores de retorno incluyen \"()\" para funciones y métodos, "