From 4b03149d57751df16a9e2b0a1cb8eda1c47ee429 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Wed, 4 Aug 2021 14:00:50 +0200
Subject: [PATCH 1/4] Traducidas actualizaciones de archivos library/async*

---
 dictionaries/library_asynchat.txt       |  1 +
 dictionaries/library_asyncio-policy.txt |  5 +-
 dictionaries/library_asyncio-task.txt   |  3 ++
 library/asynchat.po                     | 25 +++-------
 library/asyncio-api-index.po            | 16 ++++---
 library/asyncio-dev.po                  | 24 +++++++---
 library/asyncio-eventloop.po            | 43 +++++++++--------
 library/asyncio-future.po               | 11 +++--
 library/asyncio-policy.po               | 20 +++++---
 library/asyncio-protocol.po             | 10 ++--
 library/asyncio-subprocess.po           | 15 +++---
 library/asyncio-sync.po                 | 27 +++++------
 library/asyncio-task.po                 | 62 ++++++++++++++++++-------
 library/asyncore.po                     | 15 +++---
 14 files changed, 157 insertions(+), 120 deletions(-)
 create mode 100644 dictionaries/library_asyncio-task.txt

diff --git a/dictionaries/library_asynchat.txt b/dictionaries/library_asynchat.txt
index 000eb524a4..6083014743 100644
--- a/dictionaries/library_asynchat.txt
+++ b/dictionaries/library_asynchat.txt
@@ -2,3 +2,4 @@ encriptación
 polling
 asíncronamente
 mseg
+asynchat
diff --git a/dictionaries/library_asyncio-policy.txt b/dictionaries/library_asyncio-policy.txt
index a1a0156e5b..5369a2371a 100644
--- a/dictionaries/library_asyncio-policy.txt
+++ b/dictionaries/library_asyncio-policy.txt
@@ -1 +1,4 @@
-monitorea
\ No newline at end of file
+monitorea
+Ricitos
+pidfds
+kernels
diff --git a/dictionaries/library_asyncio-task.txt b/dictionaries/library_asyncio-task.txt
new file mode 100644
index 0000000000..69df8e2489
--- /dev/null
+++ b/dictionaries/library_asyncio-task.txt
@@ -0,0 +1,3 @@
+threadpool
+gather
+kwargs
diff --git a/library/asynchat.po b/library/asynchat.po
index 3cc31c2899..555d027811 100644
--- a/library/asynchat.po
+++ b/library/asynchat.po
@@ -9,15 +9,15 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-02-07 16:54+0100\n"
+"PO-Revision-Date: 2021-08-04 13:58+0200\n"
 "Language-Team: python-doc-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"
-"Last-Translator: \n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asynchat.rst:2
 msgid ":mod:`asynchat` --- Asynchronous socket command/response handler"
@@ -40,10 +40,7 @@ msgstr ""
 "Este módulo existe únicamente por motivos de retrocompatibilidad. Para nuevo "
 "código, es recomendable usar :mod:`asyncio`."
 
-# -He "traducido" el verbo de "subclass" por "heredar", ¿alguna solución mejor?
-# -¿Mejor traduccion para "channel map"? (depende del contexto pero lo desconozco)
 #: ../Doc/library/asynchat.rst:22
-#, fuzzy
 msgid ""
 "This module builds on the :mod:`asyncore` infrastructure, simplifying "
 "asynchronous clients and servers and making it easier to handle protocols "
@@ -114,10 +111,7 @@ msgstr "El tamaño del _buffer_ de entrada asíncrona (por defecto ``4096``)."
 msgid "The asynchronous output buffer size (default ``4096``)."
 msgstr "El tamaño del _buffer_ de salida asíncrona (por defecto ``4096``)."
 
-# -Traducido "exhaustion" como "agotamiento", ¿alguna palabra más técnica mejor?
-# -¿Traducción de "endpoint"?
 #: ../Doc/library/asynchat.rst:63
-#, fuzzy
 msgid ""
 "Unlike :class:`asyncore.dispatcher`, :class:`async_chat` allows you to "
 "define a :abbr:`FIFO (first-in, first-out)` queue of *producers*. A producer "
@@ -211,10 +205,7 @@ msgstr ""
 "aunque es posible usar productores personalizados en esquemas más complejos "
 "para implementar características como encriptación o fragmentación."
 
-# -Seguramente "Takes" se refiere a un método que obtiene el objeto como parámetro de entrada, por lo que "Obtiene" no me parece la mejor traducción en este caso. ¿Quizás "recibe"?
-# -¿Mejor traducción de "endpoint"?
 #: ../Doc/library/asynchat.rst:124
-#, fuzzy
 msgid ""
 "Takes a producer object and adds it to the producer queue associated with "
 "the channel.  When all currently-pushed producers have been exhausted the "
@@ -288,7 +279,7 @@ msgstr ""
 
 #: ../Doc/library/asynchat.rst:157
 msgid "asynchat Example"
-msgstr "Ejemplo de *asynchat*"
+msgstr "Ejemplo de asynchat"
 
 #: ../Doc/library/asynchat.rst:159
 msgid ""
@@ -318,15 +309,13 @@ msgstr ""
 "cabecera ``Content-Length:`` se utiliza para establecer un terminador "
 "numérico para leer la cantidad de datos correcta en el canal."
 
-# ¿Traducción de "marshalled"?
 #: ../Doc/library/asynchat.rst:171
-#, fuzzy
 msgid ""
 "The :meth:`handle_request` method is called once all relevant input has been "
 "marshalled, after setting the channel terminator to ``None`` to ensure that "
 "any extraneous data sent by the web client are ignored. ::"
 msgstr ""
 "El método :meth:`handle_request` se llama en cuanto todas las entradas "
-"relevantes han sido reunidas, tras establecer el terminador del canal a "
-"``None`` para asegurarse de que cualquier dato extraño enviado por el "
-"cliente web es ignorado. ::"
+"relevantes han sido serializadas (*marshalled*), tras establecer el "
+"terminador del canal a ``None`` para asegurarse de que cualquier dato "
+"extraño enviado por el cliente web es ignorado. ::"
diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po
index 43e16a7dbb..c20c5a04c9 100644
--- a/library/asyncio-api-index.po
+++ b/library/asyncio-api-index.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-09-10 00:17+0200\n"
-"Last-Translator: Álvaro Mondéjar Rubio <mondejar1994@gmail.com>\n"
+"PO-Revision-Date: 2021-08-04 13:57+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-api-index.rst:6
 msgid "High-level API Index"
@@ -39,8 +40,8 @@ msgid ""
 "Utilities to run asyncio programs, create Tasks, and await on multiple "
 "things with timeouts."
 msgstr ""
-"Utilidades para ejecutar programas asyncio, crear Tareas y esperar a varias "
-"cosas con tiempos de expiración. "
+"Utilidades para ejecutar programas asyncio, crear Tareas y esperar en varias "
+"cosas con tiempos de espera."
 
 #: ../Doc/library/asyncio-api-index.rst:21
 msgid ":func:`run`"
@@ -123,13 +124,14 @@ msgid "Task object."
 msgstr "Objeto Tarea."
 
 #: ../Doc/library/asyncio-api-index.rst:51
-#, fuzzy
 msgid ":func:`to_thread`"
-msgstr ":func:`run_coroutine_threadsafe`"
+msgstr ":func:`to_thread`"
 
 #: ../Doc/library/asyncio-api-index.rst:52
 msgid "Asychronously run a function in a separate OS thread."
 msgstr ""
+"Ejecute de forma asincrónica una función en un subproceso del sistema "
+"operativo independiente."
 
 #: ../Doc/library/asyncio-api-index.rst:54
 msgid ":func:`run_coroutine_threadsafe`"
diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po
index cee14ae9da..cfb7d2eafd 100644
--- a/library/asyncio-dev.po
+++ b/library/asyncio-dev.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-10-07 09:13+0200\n"
-"Last-Translator: Álvaro Mondéjar <mondejar1994@gmail.com>\n"
+"PO-Revision-Date: 2021-08-04 13:56+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-dev.rst:7
 msgid "Developing with asyncio"
@@ -62,7 +63,7 @@ msgstr ""
 
 #: ../Doc/library/asyncio-dev.rst:28
 msgid "Using the :ref:`Python Development Mode <devmode>`."
-msgstr ""
+msgstr "Usando :ref:`Python Development Mode <devmode>`."
 
 #: ../Doc/library/asyncio-dev.rst:30
 msgid "Passing ``debug=True`` to :func:`asyncio.run`."
@@ -157,13 +158,12 @@ msgstr ""
 "ejecución se suspende y el bucle de eventos ejecuta la siguiente Tarea."
 
 #: ../Doc/library/asyncio-dev.rst:76
-#, fuzzy
 msgid ""
 "To schedule a :term:`callback` from another OS thread, the :meth:`loop."
 "call_soon_threadsafe` method should be used. Example::"
 msgstr ""
-"Para ejecutar un callback desde un hilo diferente del sistema operativo se "
-"debe usar el método :meth:`loop.call_soon_threadsafe`. Ejemplo::"
+"Para programar una :term:`callback` desde otro hilo del SO, se debe usar el "
+"método :meth:`loop.call_soon_threadsafe`. Ejemplo::"
 
 #: ../Doc/library/asyncio-dev.rst:81
 msgid ""
@@ -220,6 +220,16 @@ msgid ""
 "a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a "
 "different process."
 msgstr ""
+"Actualmente no hay forma de programar corrutinas o devoluciones de llamada "
+"directamente desde un proceso diferente (como uno que comenzó con :mod:"
+"`multiprocessing`). La sección :ref:`Event Loop Methods <asyncio-event-"
+"loop>` enumera las API que pueden leer desde las tuberías y ver descriptores "
+"de archivos sin bloquear el bucle de eventos. Además, las API de asyncio :"
+"ref:`Subprocess <asyncio-subprocess>` proporcionan una forma de iniciar un "
+"proceso y comunicarse con él desde el bucle de eventos. Por último, el "
+"método :meth:`loop.run_in_executor` mencionado anteriormente también se "
+"puede usar con un :class:`concurrent.futures.ProcessPoolExecutor` para "
+"ejecutar código en un proceso diferente."
 
 #: ../Doc/library/asyncio-dev.rst:124
 msgid "Running Blocking Code"
diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po
index c935f0569a..024e0bba0d 100644
--- a/library/asyncio-eventloop.po
+++ b/library/asyncio-eventloop.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-09-22 17:54+0000\n"
+"PO-Revision-Date: 2021-08-04 13:51+0200\n"
 "Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-eventloop.rst:6
 msgid "Event Loop"
@@ -328,19 +329,22 @@ msgid ""
 "a :exc:`RuntimeError` will be raised if :meth:`loop.run_in_executor` is "
 "called while using the default executor."
 msgstr ""
+"Programa el cierre del ejecutor predeterminado y espere a que se una a todos "
+"los hilos de la clase :class:`ThreadPoolExecutor`. Después de llamar a este "
+"método, se generará un :exc:`RuntimeError` si se llama a :meth:`loop."
+"run_in_executor` mientras se usa el ejecutor predeterminado."
 
 #: ../Doc/library/asyncio-eventloop.rst:190
 msgid "Scheduling callbacks"
 msgstr "Programación de llamadas de retorno"
 
 #: ../Doc/library/asyncio-eventloop.rst:194
-#, fuzzy
 msgid ""
 "Schedule the *callback* :term:`callback` to be called with *args* arguments "
 "at the next iteration of the event loop."
 msgstr ""
-"Planifica un *callback* para ser ejecutada con los argumentos *args* en la "
-"próxima iteración del bucle de eventos."
+"Programa el *callback* (retrollamada) :term:`callback` para que se llame con "
+"argumentos *args* en la próxima iteración del ciclo de eventos."
 
 #: ../Doc/library/asyncio-eventloop.rst:197
 msgid ""
@@ -731,7 +735,6 @@ msgstr ""
 "constantes del módulo :mod:`socket` correspondiente."
 
 #: ../Doc/library/asyncio-eventloop.rst:419
-#, fuzzy
 msgid ""
 "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this "
 "connection. It should be a floating-point number representing the amount of "
@@ -740,13 +743,12 @@ msgid ""
 "\" as defined in :rfc:`8305`. A sensible default value recommended by the "
 "RFC is ``0.25`` (250 milliseconds)."
 msgstr ""
-"*happy_eyeballs_delay*, si es provisto, habilita Globos Oculares Felices "
-"(*Happy Eyeballs*) para esta conexión. Debería ser un número con coma "
-"flotante representando la cantidad de tiempo en segundos a esperar para que "
-"un intento de conexión se complete, antes de empezar el próximo intento en "
-"paralelo.  Este es el retraso de intento de conexión (*Connection Attempt "
-"Delay*) como es definido en :rfc:`8305`. Un valor predefinido sensible que "
-"es recomendado por el RFC es ``0.25`` (250 milisegundos)."
+"*happy_eyeballs_delay*, si se proporciona, habilita Happy Eyeballs para esta "
+"conexión. Debe ser un número de punto flotante que represente la cantidad de "
+"tiempo en segundos para esperar a que se complete un intento de conexión, "
+"antes de comenzar el siguiente intento en paralelo. Este es el \"Retraso de "
+"intento de conexión\" como se define en :rfc:`8305`. Un valor predeterminado "
+"sensato recomendado por el RFC es ``0.25`` (250 milisegundos)."
 
 #: ../Doc/library/asyncio-eventloop.rst:427
 msgid ""
@@ -1796,9 +1798,8 @@ msgid "Executing code in thread or process pools"
 msgstr "Ejecutando código en un hilos o grupos de procesos"
 
 #: ../Doc/library/asyncio-eventloop.rst:1069
-#, fuzzy
 msgid "Arrange for *func* to be called in the specified executor."
-msgstr "Arregla que *func* sea llamada en el ejecutor especificado."
+msgstr "Hace arreglos para que *func* sea llamado en el ejecutor especificado."
 
 #: ../Doc/library/asyncio-eventloop.rst:1071
 msgid ""
@@ -1821,7 +1822,6 @@ msgstr ""
 "<asyncio-pass-keywords>` a *func*."
 
 #: ../Doc/library/asyncio-eventloop.rst:1120
-#, fuzzy
 msgid ""
 ":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the "
 "thread pool executor it creates, instead leaving it up to the thread pool "
@@ -1829,9 +1829,9 @@ msgid ""
 "default."
 msgstr ""
 ":meth:`loop.run_in_executor` ya no configura el ``max_workers`` del ejecutor "
-"del grupo de subprocesos que crea, sino que lo deja al ejecutor del grupo de "
-"subprocesos (:class:`~concurrent.futures.ThreadPoolExecutor`) para "
-"configurar al predeterminado."
+"del grupo de subprocesos que crea, sino que lo deja en manos del ejecutor "
+"del grupo de subprocesos (:class:`~concurrent.futures.ThreadPoolExecutor`) "
+"para establecer el valor por defecto."
 
 #: ../Doc/library/asyncio-eventloop.rst:1129
 msgid ""
@@ -1992,13 +1992,12 @@ msgid "Set the debug mode of the event loop."
 msgstr "Establece el modo de depuración del bucle de eventos."
 
 #: ../Doc/library/asyncio-eventloop.rst:1215
-#, fuzzy
 msgid ""
 "The new :ref:`Python Development Mode <devmode>` can now also be used to "
 "enable the debug mode."
 msgstr ""
-"La nueva opción de linea de comandos ``-X dev`` ahora también puede ser "
-"utilizada para habilitar el modo depuración."
+"El nuevo :ref:`Python Development Mode <devmode>` ahora también se puede "
+"usar para habilitar el modo de depuración."
 
 #: ../Doc/library/asyncio-eventloop.rst:1220
 msgid "The :ref:`debug mode of asyncio <asyncio-debug-mode>`."
diff --git a/library/asyncio-future.po b/library/asyncio-future.po
index ad15a14039..f1c63c8029 100644
--- a/library/asyncio-future.po
+++ b/library/asyncio-future.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-10-07 09:20+0200\n"
-"Last-Translator: \n"
+"PO-Revision-Date: 2021-08-04 13:46+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-future.rst:8
 msgid "Futures"
@@ -316,7 +317,7 @@ msgstr ""
 
 #: ../Doc/library/asyncio-future.rst:181
 msgid "Added the ``msg`` parameter."
-msgstr ""
+msgstr "Se agregó el parámetro ``msg``."
 
 #: ../Doc/library/asyncio-future.rst:186
 msgid "Return the exception that was set on this Future."
@@ -407,3 +408,5 @@ msgid ""
 ":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :"
 "func:`concurrent.futures.cancel` does not."
 msgstr ""
+":meth:`asyncio.Future.cancel` acepta un argumento opcional ``msg``, pero :"
+"func:`concurrent.futures.cancel` no."
diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po
index 73cd9e90d8..4c52724c56 100644
--- a/library/asyncio-policy.po
+++ b/library/asyncio-policy.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-10-06 19:01+0200\n"
-"Last-Translator: \n"
+"PO-Revision-Date: 2021-08-04 13:45+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-policy.rst:8
 msgid "Policies"
@@ -355,7 +356,6 @@ msgstr ""
 "ejecuta en un hilo de SO no principal."
 
 #: ../Doc/library/asyncio-policy.rst:211
-#, fuzzy
 msgid ""
 "There is no noticeable overhead when handling a big number of children "
 "(*O(1)* each time a child terminates), but starting a thread per process "
@@ -363,14 +363,13 @@ msgid ""
 msgstr ""
 "No hay sobrecarga notable cuando se gestiona un número grande de procesos "
 "secundarios (*O(1)* cada vez que un proceso secundario termina), pero "
-"indicar un hilo por proceso requiere memoria extra."
+"iniciar un hilo por proceso requiere memoria extra."
 
 #: ../Doc/library/asyncio-policy.rst:214
 msgid "This watcher is used by default."
 msgstr "Este observador es usado por defecto."
 
 #: ../Doc/library/asyncio-policy.rst:220
-#, fuzzy
 msgid ""
 "This implementation registers a :py:data:`SIGCHLD` signal handler on "
 "instantiation. That can break third-party code that installs a custom "
@@ -378,7 +377,7 @@ msgid ""
 msgstr ""
 "Esta implementación registra un gestor de señal en instanciación :py:data:"
 "`SIGCHLD`. Eso puede romper código de terceras partes que instalen un gestor "
-"personalizado para la señal `SIGCHLD`."
+"personalizado para la señal :py:data:`SIGCHLD`."
 
 #: ../Doc/library/asyncio-policy.rst:224 ../Doc/library/asyncio-policy.rst:242
 msgid ""
@@ -462,6 +461,13 @@ msgid ""
 "event loop. The main disadvantage is that pidfds are specific to Linux, and "
 "only work on recent (5.3+) kernels."
 msgstr ""
+"Esta implementación sondea los descriptores de archivos de proceso (pidfds) "
+"para esperar la terminación del proceso hijo. En algunos aspectos, :class:"
+"`PidfdChildWatcher` es una implementación de niño vigilante \"Ricitos de oro"
+"\". No requiere señales o hilos, no interfiere con ningún proceso lanzado "
+"fuera del bucle de eventos y escala linealmente con el número de subprocesos "
+"lanzados por el bucle de eventos. La principal desventaja es que los pidfds "
+"son específicos de Linux y solo funcionan en kernels recientes (5.3+)."
 
 #: ../Doc/library/asyncio-policy.rst:274
 msgid "Custom Policies"
diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po
index 88dc53f5a8..760ec9438d 100644
--- a/library/asyncio-protocol.po
+++ b/library/asyncio-protocol.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-09-07 15:02+0200\n"
-"Last-Translator: Francisco Jesús Sevilla García <fjsevilla.dev@gmail.com>\n"
+"PO-Revision-Date: 2021-08-04 13:44+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-protocol.rst:9
 msgid "Transports and Protocols"
@@ -1340,9 +1341,8 @@ msgstr ""
 "salida de un subproceso y esperar su terminación."
 
 #: ../Doc/library/asyncio-protocol.rst:996
-#, fuzzy
 msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::"
-msgstr "El subproceso es creado por el método :meth:`loop.subprocess_exec`::"
+msgstr "El subproceso es creado por el método :meth:`loop.subprocess_exec` ::"
 
 #: ../Doc/library/asyncio-protocol.rst:1042
 msgid ""
diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po
index 8bb3107543..cea630e961 100644
--- a/library/asyncio-subprocess.po
+++ b/library/asyncio-subprocess.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-10-30 20:40-0500\n"
-"Last-Translator: Adolfo Hristo David Roque Gámez <hristo.roqueg@gmail.com>\n"
+"PO-Revision-Date: 2021-08-04 13:43+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-subprocess.rst:7
 msgid "Subprocesses"
@@ -135,16 +136,14 @@ msgstr ""
 "usadas para construir comandos de *shell*."
 
 #: ../Doc/library/asyncio-subprocess.rst:113
-#, fuzzy
 msgid ""
 "Subprocesses are available for Windows if a :class:`ProactorEventLoop` is "
 "used. See :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>` "
 "for details."
 msgstr ""
-"La implementación del bucle de eventos de asyncio por defecto en **Windows** "
-"no admite sub-procesos.  Los sub-procesos están disponibles para Windows si "
-"un :class:`ProactorEventLoop` es usado. Véase :ref:`Soporte de Sub-procesos "
-"en Windows <asyncio-windows-subprocess>` para los detalles."
+"Los subprocesos están disponibles para Windows si se utiliza :class:"
+"`ProactorEventLoop`. Consulte :ref:`Soporte de subprocesos en Windows "
+"<asyncio-windows-subprocess>` para obtener más detalles."
 
 #: ../Doc/library/asyncio-subprocess.rst:119
 msgid ""
diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po
index 3b333c0865..d72c0ec40d 100644
--- a/library/asyncio-sync.po
+++ b/library/asyncio-sync.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-10-05 19:15+0200\n"
-"Last-Translator: Francisco Jesús Sevilla García <fjsevilla.dev@gmail.com>\n"
+"PO-Revision-Date: 2021-08-04 13:43+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-sync.rst:7
 msgid "Synchronization Primitives"
@@ -179,18 +180,16 @@ msgstr ""
 "ha ocurrido algún evento."
 
 #: ../Doc/library/asyncio-sync.rst:106
-#, fuzzy
 msgid ""
 "An Event object manages an internal flag that can be set to *true* with the :"
 "meth:`~Event.set` method and reset to *false* with the :meth:`clear` "
 "method.  The :meth:`~Event.wait` method blocks until the flag is set to "
 "*true*.  The flag is set to *false* initially."
 msgstr ""
-"Un objeto Event gestiona un indicador interno que puede ser establecido en "
-"*verdadero* mediante el método :meth:`set` y restaurado a *falso* con el "
-"método :meth:`clear`. El método :meth:`wait` bloquea hasta que el indicador "
-"es establecido en *verdadero*. De inicio, el indicador se establece en "
-"*falso*."
+"Un objeto Event administra una bandera interna que se puede establecer en "
+"*true* con el método :meth:`~Event.set` y se restablece en *false* con el "
+"método :meth:`clear`. El método :meth:`~Event.wait` se bloquea hasta que la "
+"bandera se establece en *true*. El flag se establece en *false* inicialmente."
 
 #: ../Doc/library/asyncio-sync.rst:117
 msgid "Example::"
@@ -201,13 +200,12 @@ msgid "Wait until the event is set."
 msgstr "Espera hasta que se establezca el evento."
 
 #: ../Doc/library/asyncio-sync.rst:144
-#, fuzzy
 msgid ""
 "If the event is set, return ``True`` immediately. Otherwise block until "
 "another task calls :meth:`~Event.set`."
 msgstr ""
-"Si el evento está establecido, retorna ``True`` inmediatamente. En caso "
-"contrario, bloquea hasta que alguna otra tarea invoca al método :meth:`set`."
+"Si el evento está configurado, retorna ``True`` inmediatamente. De lo "
+"contrario, bloquea hasta que otra tarea llame a :meth:`~Event.set`."
 
 #: ../Doc/library/asyncio-sync.rst:149
 msgid "Set the event."
@@ -224,13 +222,12 @@ msgid "Clear (unset) the event."
 msgstr "Borra (restablece) el evento."
 
 #: ../Doc/library/asyncio-sync.rst:158
-#, fuzzy
 msgid ""
 "Tasks awaiting on :meth:`~Event.wait` will now block until the :meth:`~Event."
 "set` method is called again."
 msgstr ""
-"Las tareas pendientes en :meth:`wait` ahora se bloquearán hasta que se "
-"vuelva a llamar al método :meth:`set` de nuevo."
+"Las tareas que esperan en :meth:`~Event.wait` ahora se bloquearán hasta que "
+"se vuelva a llamar al método :meth:`~Event.set`."
 
 #: ../Doc/library/asyncio-sync.rst:163
 msgid "Return ``True`` if the event is set."
diff --git a/library/asyncio-task.po b/library/asyncio-task.po
index 50abca384a..e53837016c 100644
--- a/library/asyncio-task.po
+++ b/library/asyncio-task.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-03-19 11:16+0100\n"
-"PO-Revision-Date: 2020-12-12 14:25-0300\n"
-"Last-Translator: Emmanuel Arias <eamanu@yaerobi.com>\n"
+"PO-Revision-Date: 2021-08-04 13:41+0200\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
 "Language-Team: python-doc-es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\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"
 "Generated-By: Babel 2.8.0\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncio-task.rst:6
 msgid "Coroutines and Tasks"
@@ -243,13 +244,13 @@ msgid "Execute the :term:`coroutine` *coro* and return the result."
 msgstr "Ejecuta la :term:`coroutine` *coro* y retornando el resultado."
 
 #: ../Doc/library/asyncio-task.rst:217
-#, fuzzy
 msgid ""
 "This function runs the passed coroutine, taking care of managing the asyncio "
 "event loop, *finalizing asynchronous generators*, and closing the threadpool."
 msgstr ""
 "Esta función ejecuta la corrutina pasada, encargándose de administrar el "
-"bucle de eventos asyncio y *finalizar los generadores asíncronos*."
+"bucle de eventos asyncio, *finalizing asynchronous generators* y cerrando el "
+"threadpool."
 
 #: ../Doc/library/asyncio-task.rst:221
 msgid ""
@@ -281,7 +282,7 @@ msgstr "Ejemplo::"
 
 #: ../Doc/library/asyncio-task.rst:240
 msgid "Updated to use :meth:`loop.shutdown_default_executor`."
-msgstr ""
+msgstr "Actualizado para usar :meth:`loop.shutdown_default_executor`."
 
 #: ../Doc/library/asyncio-task.rst:244
 msgid ""
@@ -448,6 +449,12 @@ msgid ""
 "calling ``gather.cancel()`` after catching an exception (raised by one of "
 "the awaitables) from gather won't cancel any other awaitables."
 msgstr ""
+"Si *return_exceptions* es False, cancelar gather() después de que se haya "
+"marcado como hecho no cancelará ninguna espera enviada. Por ejemplo, la "
+"recopilación se puede marcar como hecha después de propagar una excepción a "
+"la persona que llama, por lo tanto, llamar a ``gather.cancel()`` después de "
+"detectar una excepción (generada por uno de los elementos pendientes) de "
+"recopilación no cancelará ningún otro elemento pendiente."
 
 #: ../Doc/library/asyncio-task.rst:398
 msgid ""
@@ -550,14 +557,14 @@ msgstr ""
 "en :func:`shield`."
 
 #: ../Doc/library/asyncio-task.rst:463
-#, fuzzy
 msgid ""
 "The function will wait until the future is actually cancelled, so the total "
 "wait time may exceed the *timeout*. If an exception happens during "
 "cancellation, it is propagated."
 msgstr ""
-"La función esperará hasta que el futuro este cancelado, por lo que el tiempo "
-"de espera total puede superar el *timeout*."
+"La función esperará hasta que se cancele el futuro, por lo que el tiempo de "
+"espera total puede exceder el *timeout*. Si ocurre una excepción durante la "
+"cancelación, se propaga."
 
 #: ../Doc/library/asyncio-task.rst:467
 msgid "If the wait is cancelled, the future *aw* is also cancelled."
@@ -577,18 +584,16 @@ msgid "Waiting Primitives"
 msgstr "Esperando Primitivas"
 
 #: ../Doc/library/asyncio-task.rst:506
-#, fuzzy
 msgid ""
 "Run :ref:`awaitable objects <asyncio-awaitables>` in the *aws* iterable "
 "concurrently and block until the condition specified by *return_when*."
 msgstr ""
-"Ejecute :ref:`objetos esperables <asyncio-awaitables>` en el conjunto *aws* "
-"simultáneamente y bloquee hasta que la condición especificada por "
-"*return_when*."
+"Ejecuta :ref:`objetos en espera <asyncio-awaitables>` en el *aws* iterable "
+"simultáneamente y bloquee hasta la condición especificada por *return_when*."
 
 #: ../Doc/library/asyncio-task.rst:510
 msgid "The *aws* iterable must not be empty."
-msgstr ""
+msgstr "El iterable *aws* no debe estar vacía."
 
 #: ../Doc/library/asyncio-task.rst:512
 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``."
@@ -708,6 +713,10 @@ msgid ""
 "be awaited to get the earliest next result from the iterable of the "
 "remaining awaitables."
 msgstr ""
+"Ejecutar :ref:`objetos en espera <asyncio-awaitables>` en el *aws* iterable "
+"al mismo tiempo. Devuelve un iterador de corrutinas. Se puede esperar a cada "
+"corrutina devuelta para obtener el siguiente resultado más temprano del "
+"iterable de los esperables restantes."
 
 #: ../Doc/library/asyncio-task.rst:600
 msgid ""
@@ -719,11 +728,11 @@ msgstr ""
 
 #: ../Doc/library/asyncio-task.rst:614
 msgid "Running in Threads"
-msgstr ""
+msgstr "Ejecutando en hilos"
 
 #: ../Doc/library/asyncio-task.rst:618
 msgid "Asynchronously run function *func* in a separate thread."
-msgstr ""
+msgstr "Ejecutar asincrónicamente la función *func* en un hilo separado."
 
 #: ../Doc/library/asyncio-task.rst:620
 msgid ""
@@ -732,11 +741,17 @@ msgid ""
 "allowing context variables from the event loop thread to be accessed in the "
 "separate thread."
 msgstr ""
+"Cualquier \\*args y \\*\\*kwargs suministrados para esta función se pasan "
+"directamente a *func*. Además, el current :class:`contextvars.Context` se "
+"propaga, lo que permite acceder a las variables de contexto del subproceso "
+"del bucle de eventos en el subproceso separado."
 
 #: ../Doc/library/asyncio-task.rst:625
 msgid ""
 "Return a coroutine that can be awaited to get the eventual result of *func*."
 msgstr ""
+"Retorna una corrutina que se puede esperar para obtener el resultado final "
+"de *func*."
 
 #: ../Doc/library/asyncio-task.rst:627
 msgid ""
@@ -744,6 +759,9 @@ msgid ""
 "bound functions/methods that would otherwise block the event loop if they "
 "were ran in the main thread. For example::"
 msgstr ""
+"Esta función de corrutina está destinada principalmente a ser utilizada para "
+"ejecutar funciones/métodos vinculados a IO que de otro modo bloquearían el "
+"bucle de eventos si se ejecutaran en el hilo principal. Por ejemplo::"
 
 #: ../Doc/library/asyncio-task.rst:657
 msgid ""
@@ -752,6 +770,10 @@ msgid ""
 "by using `asyncio.to_thread()`, we can run it in a separate thread without "
 "blocking the event loop."
 msgstr ""
+"Llama directamente a `blocking_io()` en cualquier corrutina bloquearía el "
+"bucle de eventos durante su duración, lo que daría como resultado 1 segundo "
+"adicional de tiempo de ejecución. En cambio, usando `asyncio.to_thread()`, "
+"podemos ejecutarlo en un hilo separado sin bloquear el bucle de eventos."
 
 #: ../Doc/library/asyncio-task.rst:664
 msgid ""
@@ -760,6 +782,11 @@ msgid ""
 "release the GIL or alternative Python implementations that don't have one, "
 "`asyncio.to_thread()` can also be used for CPU-bound functions."
 msgstr ""
+"Debido al :term:`GIL`, `asyncio.to_thread()` normalmente solo se puede usar "
+"para hacer que las funciones vinculadas a IO no bloqueen. Sin embargo, para "
+"los módulos de extensión que lanzan GIL o implementaciones alternativas de "
+"Python que no tienen una, `asyncio.to_thread()` también se puede usar para "
+"funciones vinculadas a la CPU."
 
 #: ../Doc/library/asyncio-task.rst:673
 msgid "Scheduling From Other Threads"
@@ -962,9 +989,8 @@ msgstr ""
 "desalienta activamente."
 
 #: ../Doc/library/asyncio-task.rst:809
-#, fuzzy
 msgid "Added the ``msg`` parameter."
-msgstr "Se ha añadido el parámetro ``name``."
+msgstr "Se agregó el parámetro ``msg``."
 
 #: ../Doc/library/asyncio-task.rst:814
 msgid ""
diff --git a/library/asyncore.po b/library/asyncore.po
index 7fb4598f13..69d5b8e249 100644
--- a/library/asyncore.po
+++ b/library/asyncore.po
@@ -9,15 +9,14 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2020-07-18 19:18-0500\n"
+"PO-Revision-Date: 2021-08-04 13:36+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Last-Translator: Juan Diego Alfonso Ocampo <juandiego.alfonsoocampo@gmail."
-"com>\n"
+"Last-Translator: Cristián Maureira-Fredes <cmaureirafredes@gmail.com>\n"
 "Language: es\n"
-"X-Generator: Poedit 2.3.1\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/library/asyncore.rst:2
 msgid ":mod:`asyncore` --- Asynchronous socket handler"
@@ -468,7 +467,7 @@ msgid ""
 "`fileno` method, that method will be called and passed to the :class:"
 "`file_wrapper` constructor."
 msgstr ""
-"file_dispatcher toma un descriptor de archivo o :term:`file object` junto "
+"Un file_dispatcher toma un descriptor de archivo o :term:`file object` junto "
 "con un argumento de mapa opcional y lo ajusta para su uso con las funciones :"
 "c:func:`poll` o :c:func:`loop`.  Si se proporciona un objeto de archivo o "
 "cualquier cosa con un método :c:func:`fileno`, ese método se llamará y se "
@@ -485,9 +484,9 @@ msgid ""
 "of the file_wrapper.  This class implements sufficient methods to emulate a "
 "socket for use by the :class:`file_dispatcher` class."
 msgstr ""
-"file_wrapper toma un descriptor de archivo entero y llama a :func:`os.dup` "
-"para duplicar el identificador de modo que el identificador original se "
-"pueda cerrar independientemente del file_wrapper.  Esta clase implementa "
+"Un file_wrapper toma un descriptor de archivo entero y llama a :func:`os."
+"dup` para duplicar el identificador de modo que el identificador original se "
+"pueda cerrar independientemente del file_wrapper. Esta clase implementa "
 "métodos suficientes emulando un socket para su uso por la clase :class:"
 "`file_dispatcher`."
 

From 2f0b2fed3dfc6fed0d515210e3258243ffdbfd94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Wed, 4 Aug 2021 15:43:48 +0200
Subject: [PATCH 2/4] Fix comilla simple

---
 library/asynchat.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/library/asynchat.po b/library/asynchat.po
index 555d027811..e96d4d229d 100644
--- a/library/asynchat.po
+++ b/library/asynchat.po
@@ -54,7 +54,7 @@ msgid ""
 "class:`asynchat.async_chat` channel objects as it receives incoming "
 "connection requests."
 msgstr ""
-"Este módulo se construye en la infraestructura de :mod:`asyncore', "
+"Este módulo se construye en la infraestructura de :mod:`asyncore`, "
 "simplificando los clientes y servidores asíncronos y facilitando la gestión "
 "de protocolos cuyos elementos son terminados por cadenas de texto "
 "arbitrarias, o que son de longitud variable. :mod:`asynchat` define la clase "

From 386b335bb6464985724d9aa577ed30ba912ca9a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <cmaureir@users.noreply.github.com>
Date: Fri, 6 Aug 2021 16:29:04 +0200
Subject: [PATCH 3/4] Apply suggestions from code review

Co-authored-by: iamagf <61362029+iam-agf@users.noreply.github.com>
---
 library/asynchat.po           |  2 +-
 library/asyncio-api-index.po  |  2 +-
 library/asyncio-dev.po        |  8 ++++----
 library/asyncio-eventloop.po  |  2 +-
 library/asyncio-policy.po     |  2 +-
 library/asyncio-subprocess.po |  2 +-
 library/asyncio-task.po       | 10 +++++-----
 7 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/library/asynchat.po b/library/asynchat.po
index e96d4d229d..bda1b9d78a 100644
--- a/library/asynchat.po
+++ b/library/asynchat.po
@@ -315,7 +315,7 @@ msgid ""
 "marshalled, after setting the channel terminator to ``None`` to ensure that "
 "any extraneous data sent by the web client are ignored. ::"
 msgstr ""
-"El método :meth:`handle_request` se llama en cuanto todas las entradas "
+"El método :meth:`handle_request` se llama una vez todas las entradas "
 "relevantes han sido serializadas (*marshalled*), tras establecer el "
 "terminador del canal a ``None`` para asegurarse de que cualquier dato "
 "extraño enviado por el cliente web es ignorado. ::"
diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po
index c20c5a04c9..d3cc86b21d 100644
--- a/library/asyncio-api-index.po
+++ b/library/asyncio-api-index.po
@@ -40,7 +40,7 @@ msgid ""
 "Utilities to run asyncio programs, create Tasks, and await on multiple "
 "things with timeouts."
 msgstr ""
-"Utilidades para ejecutar programas asyncio, crear Tareas y esperar en varias "
+"Utilidades para ejecutar programas asyncio, crear Tareas, y esperar en múltiples "
 "cosas con tiempos de espera."
 
 #: ../Doc/library/asyncio-api-index.rst:21
diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po
index cfb7d2eafd..0d223c05fb 100644
--- a/library/asyncio-dev.po
+++ b/library/asyncio-dev.po
@@ -63,7 +63,7 @@ msgstr ""
 
 #: ../Doc/library/asyncio-dev.rst:28
 msgid "Using the :ref:`Python Development Mode <devmode>`."
-msgstr "Usando :ref:`Python Development Mode <devmode>`."
+msgstr "Usando :ref:`Modo de Desarrollo de Python <devmode>`."
 
 #: ../Doc/library/asyncio-dev.rst:30
 msgid "Passing ``debug=True`` to :func:`asyncio.run`."
@@ -162,7 +162,7 @@ msgid ""
 "To schedule a :term:`callback` from another OS thread, the :meth:`loop."
 "call_soon_threadsafe` method should be used. Example::"
 msgstr ""
-"Para programar una :term:`callback` desde otro hilo del SO, se debe usar el "
+"Para programar un :term:`callback` desde otro hilo del SO, se debe usar el "
 "método :meth:`loop.call_soon_threadsafe`. Ejemplo::"
 
 #: ../Doc/library/asyncio-dev.rst:81
@@ -223,8 +223,8 @@ msgstr ""
 "Actualmente no hay forma de programar corrutinas o devoluciones de llamada "
 "directamente desde un proceso diferente (como uno que comenzó con :mod:"
 "`multiprocessing`). La sección :ref:`Event Loop Methods <asyncio-event-"
-"loop>` enumera las API que pueden leer desde las tuberías y ver descriptores "
-"de archivos sin bloquear el bucle de eventos. Además, las API de asyncio :"
+"loop>` enumera las APIs que pueden leer desde las tuberías y ver descriptores "
+"de archivos sin bloquear el bucle de eventos. Además, las APIs de asyncio :"
 "ref:`Subprocess <asyncio-subprocess>` proporcionan una forma de iniciar un "
 "proceso y comunicarse con él desde el bucle de eventos. Por último, el "
 "método :meth:`loop.run_in_executor` mencionado anteriormente también se "
diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po
index 024e0bba0d..1ce7cf45ef 100644
--- a/library/asyncio-eventloop.po
+++ b/library/asyncio-eventloop.po
@@ -1996,7 +1996,7 @@ msgid ""
 "The new :ref:`Python Development Mode <devmode>` can now also be used to "
 "enable the debug mode."
 msgstr ""
-"El nuevo :ref:`Python Development Mode <devmode>` ahora también se puede "
+"El nuevo :ref:`Python Modo de Desarrollo <devmode>` ahora también se puede "
 "usar para habilitar el modo de depuración."
 
 #: ../Doc/library/asyncio-eventloop.rst:1220
diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po
index 4c52724c56..7fc4aa98d3 100644
--- a/library/asyncio-policy.po
+++ b/library/asyncio-policy.po
@@ -462,7 +462,7 @@ msgid ""
 "only work on recent (5.3+) kernels."
 msgstr ""
 "Esta implementación sondea los descriptores de archivos de proceso (pidfds) "
-"para esperar la terminación del proceso hijo. En algunos aspectos, :class:"
+"para esperar la terminación del proceso hijo. En ciertos sentidos :class:"
 "`PidfdChildWatcher` es una implementación de niño vigilante \"Ricitos de oro"
 "\". No requiere señales o hilos, no interfiere con ningún proceso lanzado "
 "fuera del bucle de eventos y escala linealmente con el número de subprocesos "
diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po
index cea630e961..1d01e95abd 100644
--- a/library/asyncio-subprocess.po
+++ b/library/asyncio-subprocess.po
@@ -141,7 +141,7 @@ msgid ""
 "used. See :ref:`Subprocess Support on Windows <asyncio-windows-subprocess>` "
 "for details."
 msgstr ""
-"Los subprocesos están disponibles para Windows si se utiliza :class:"
+"Los subprocesos están disponibles para Windows si se utiliza un :class:"
 "`ProactorEventLoop`. Consulte :ref:`Soporte de subprocesos en Windows "
 "<asyncio-windows-subprocess>` para obtener más detalles."
 
diff --git a/library/asyncio-task.po b/library/asyncio-task.po
index e53837016c..5d09acc801 100644
--- a/library/asyncio-task.po
+++ b/library/asyncio-task.po
@@ -593,7 +593,7 @@ msgstr ""
 
 #: ../Doc/library/asyncio-task.rst:510
 msgid "The *aws* iterable must not be empty."
-msgstr "El iterable *aws* no debe estar vacía."
+msgstr "El iterable *aws* no debe estar vacío."
 
 #: ../Doc/library/asyncio-task.rst:512
 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``."
@@ -713,7 +713,7 @@ msgid ""
 "be awaited to get the earliest next result from the iterable of the "
 "remaining awaitables."
 msgstr ""
-"Ejecutar :ref:`objetos en espera <asyncio-awaitables>` en el *aws* iterable "
+"Ejecuta :ref:`objetos en espera <asyncio-awaitables>` en el *aws* iterable "
 "al mismo tiempo. Devuelve un iterador de corrutinas. Se puede esperar a cada "
 "corrutina devuelta para obtener el siguiente resultado más temprano del "
 "iterable de los esperables restantes."
@@ -728,7 +728,7 @@ msgstr ""
 
 #: ../Doc/library/asyncio-task.rst:614
 msgid "Running in Threads"
-msgstr "Ejecutando en hilos"
+msgstr "Ejecutando en Hilos"
 
 #: ../Doc/library/asyncio-task.rst:618
 msgid "Asynchronously run function *func* in a separate thread."
@@ -770,8 +770,8 @@ msgid ""
 "by using `asyncio.to_thread()`, we can run it in a separate thread without "
 "blocking the event loop."
 msgstr ""
-"Llama directamente a `blocking_io()` en cualquier corrutina bloquearía el "
-"bucle de eventos durante su duración, lo que daría como resultado 1 segundo "
+"Llamando directamente a `blocking_io()` en cualquier corrutina bloquearía el "
+"bucle de eventos por su duración, lo que daría como resultado 1 segundo "
 "adicional de tiempo de ejecución. En cambio, usando `asyncio.to_thread()`, "
 "podemos ejecutarlo en un hilo separado sin bloquear el bucle de eventos."
 

From e3a7cdf897721a0a5e4c8cd87caa48fdcf459faa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Fri, 6 Aug 2021 21:36:44 +0200
Subject: [PATCH 4/4] powrap library/async

---
 library/asyncio-api-index.po |  4 ++--
 library/asyncio-dev.po       | 14 +++++++-------
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po
index d3cc86b21d..9805892959 100644
--- a/library/asyncio-api-index.po
+++ b/library/asyncio-api-index.po
@@ -40,8 +40,8 @@ msgid ""
 "Utilities to run asyncio programs, create Tasks, and await on multiple "
 "things with timeouts."
 msgstr ""
-"Utilidades para ejecutar programas asyncio, crear Tareas, y esperar en múltiples "
-"cosas con tiempos de espera."
+"Utilidades para ejecutar programas asyncio, crear Tareas, y esperar en "
+"múltiples cosas con tiempos de espera."
 
 #: ../Doc/library/asyncio-api-index.rst:21
 msgid ":func:`run`"
diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po
index 0d223c05fb..7167d86a69 100644
--- a/library/asyncio-dev.po
+++ b/library/asyncio-dev.po
@@ -223,13 +223,13 @@ msgstr ""
 "Actualmente no hay forma de programar corrutinas o devoluciones de llamada "
 "directamente desde un proceso diferente (como uno que comenzó con :mod:"
 "`multiprocessing`). La sección :ref:`Event Loop Methods <asyncio-event-"
-"loop>` enumera las APIs que pueden leer desde las tuberías y ver descriptores "
-"de archivos sin bloquear el bucle de eventos. Además, las APIs de asyncio :"
-"ref:`Subprocess <asyncio-subprocess>` proporcionan una forma de iniciar un "
-"proceso y comunicarse con él desde el bucle de eventos. Por último, el "
-"método :meth:`loop.run_in_executor` mencionado anteriormente también se "
-"puede usar con un :class:`concurrent.futures.ProcessPoolExecutor` para "
-"ejecutar código en un proceso diferente."
+"loop>` enumera las APIs que pueden leer desde las tuberías y ver "
+"descriptores de archivos sin bloquear el bucle de eventos. Además, las APIs "
+"de asyncio :ref:`Subprocess <asyncio-subprocess>` proporcionan una forma de "
+"iniciar un proceso y comunicarse con él desde el bucle de eventos. Por "
+"último, el método :meth:`loop.run_in_executor` mencionado anteriormente "
+"también se puede usar con un :class:`concurrent.futures.ProcessPoolExecutor` "
+"para ejecutar código en un proceso diferente."
 
 #: ../Doc/library/asyncio-dev.rst:124
 msgid "Running Blocking Code"