From 25b73ac4f6fbf1b6499f4828b5602d73d3be2430 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Fri, 26 Nov 2021 15:03:32 +0100
Subject: [PATCH 1/2] Traducida entradas tutorial/errors

Closes #1404
---
 tutorial/errors.po | 107 ++++++++++++++++++++++-----------------------
 1 file changed, 52 insertions(+), 55 deletions(-)

diff --git a/tutorial/errors.po b/tutorial/errors.po
index 1226bcb21a..e46148e957 100644
--- a/tutorial/errors.po
+++ b/tutorial/errors.po
@@ -11,15 +11,16 @@ msgstr ""
 "Project-Id-Version: Python 3.8\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2021-10-16 21:42+0200\n"
-"PO-Revision-Date: 2021-08-02 19:54+0200\n"
+"PO-Revision-Date: 2021-11-26 15:03+0100\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.9.1\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/tutorial/errors.rst:5
 msgid "Errors and Exceptions"
@@ -176,35 +177,33 @@ msgstr ""
 "de la cláusula :keyword:`try` finaliza."
 
 #: ../Doc/tutorial/errors.rst:104
-#, fuzzy
 msgid ""
 "If an exception occurs during execution of the :keyword:`try` clause, the "
 "rest of the clause is skipped.  Then, if its type matches the exception "
 "named after the :keyword:`except` keyword, the *except clause* is executed, "
 "and then execution continues after the try/except block."
 msgstr ""
-"Si ocurre una excepción durante la ejecución de la cláusula *try* el resto "
-"de la cláusula se omite. Entonces, si el tipo de excepción coincide con la "
-"excepción indicada después de la :keyword:`except`, la cláusula *except* se "
-"ejecuta, y la ejecución continua después de la  :keyword:`try`."
+"Si ocurre una excepción durante la ejecución de la cláusula :keyword:`try`, "
+"se omite el resto de la cláusula. Luego, si su tipo coincide con la "
+"excepción nombrada después de la palabra clave :keyword:`except`, se ejecuta "
+"la *cláusula except*, y luego la ejecución continúa después del bloque try/"
+"except."
 
 #: ../Doc/tutorial/errors.rst:109
-#, fuzzy
 msgid ""
 "If an exception occurs which does not match the exception named in the "
 "*except clause*, it is passed on to outer :keyword:`try` statements; if no "
 "handler is found, it is an *unhandled exception* and execution stops with a "
 "message as shown above."
 msgstr ""
-"Si ocurre una excepción que no coincide con la indicada en la cláusula "
-"*except* se pasa a los :keyword:`try` más externos; si no se encuentra un "
-"gestor, se genera una *unhandled exception* (excepción no gestionada) y la "
-"ejecución se interrumpe con un mensaje como el que se muestra arriba."
+"Si ocurre una excepción que no coincide con la indicada en la *cláusula "
+"except* se pasa a los :keyword:`try` más externos; si no se encuentra un "
+"manejador, se genera una *unhandled exception* (excepción no gestionada) y "
+"la ejecución se interrumpe con un mensaje como el que se muestra arriba."
 
 # en desacuerdo con manejadores, serían, por ejemplo gestores. en mi opinión
 # se debería discutir y acordar.
 #: ../Doc/tutorial/errors.rst:114
-#, fuzzy
 msgid ""
 "A :keyword:`try` statement may have more than one *except clause*, to "
 "specify handlers for different exceptions.  At most one handler will be "
@@ -213,14 +212,14 @@ msgid ""
 "An *except clause* may name multiple exceptions as a parenthesized tuple, "
 "for example::"
 msgstr ""
-"Una declaración :keyword:`try` puede tener más de un *except*, para "
-"especificar gestores para distintas excepciones.  A lo sumo un bloque será "
-"ejecutado.  Sólo se gestionarán excepciones que ocurren en el "
-"correspondiente *try*, no en otros bloques del mismo :keyword:`!try`.  Un "
-"*except* puede nombrar múltiples excepciones usando paréntesis, por ejemplo::"
+"Una declaración :keyword:`try` puede tener más de una *cláusula except*, "
+"para especificar controladores para diferentes excepciones. Como máximo, se "
+"ejecutará un manejador. Los manejadores solo manejan las excepciones que "
+"ocurren en la *cláusula try* correspondiente, no en otros manejadores de la "
+"misma declaración :keyword:`!try`. Una *cláusula except* puede nombrar "
+"múltiples excepciones como una tupla entre paréntesis, por ejemplo:"
 
 #: ../Doc/tutorial/errors.rst:123
-#, fuzzy
 msgid ""
 "A class in an :keyword:`except` clause is compatible with an exception if it "
 "is the same class or a base class thereof (but not the other way around --- "
@@ -229,23 +228,21 @@ msgid ""
 msgstr ""
 "Una clase en una cláusula :keyword:`except` es compatible con una excepción "
 "si es de la misma clase o de una clase derivada de la misma (pero no de la "
-"otra manera --- una cláusula *except* listando una clase derivada no es "
+"otra manera --- una *cláusula except* listando una clase derivada no es "
 "compatible con una clase base). Por ejemplo, el siguiente código imprimirá "
 "B, C y D, en ese orden::"
 
 #: ../Doc/tutorial/errors.rst:147
-#, fuzzy
 msgid ""
 "Note that if the *except clauses* were reversed (with ``except B`` first), "
 "it would have printed B, B, B --- the first matching *except clause* is "
 "triggered."
 msgstr ""
-"Nótese que si las cláusulas *except* estuvieran invertidas (con ``except B`` "
-"primero), habría impreso B, B, B --- se usa la primera cláusula *except* "
+"Nótese que si las *cláusulas except* estuvieran invertidas (con ``except B`` "
+"primero), habría impreso B, B, B --- se usa la primera *cláusula except* "
 "coincidente."
 
 #: ../Doc/tutorial/errors.rst:150
-#, fuzzy
 msgid ""
 "All exceptions inherit from :exc:`BaseException`, and so it can be used to "
 "serve as a wildcard. Use this with extreme caution, since it is easy to mask "
@@ -253,30 +250,32 @@ msgid ""
 "message and then re-raise the exception (allowing a caller to handle the "
 "exception as well)::"
 msgstr ""
-"El último *except* puede omitir el nombre de la excepción capturada y servir "
-"como comodín.  Se debe usar esta posibilidad con extremo cuidado, ya que de "
-"esta manera es fácil ocultar un error real de programación.  También puede "
-"usarse para mostrar un mensaje de error y luego re-generar la excepción "
-"(permitiéndole al que llama, gestionar también la excepción)::"
+"Todas las excepciones heredan de :exc:`BaseException`, por lo que se puede "
+"utilizar como comodín. ¡Use esto con extrema precaución, ya que es fácil "
+"enmascarar un error de programación real de esta manera! También se puede "
+"usar para imprimir un mensaje de error y luego volver a generar la excepción "
+"(permitiendo que una persona que llama también maneje la excepción):"
 
 #: ../Doc/tutorial/errors.rst:169
 msgid ""
 "Alternatively the last except clause may omit the exception name(s), however "
 "the exception value must then be retrieved from ``sys.exc_info()[1]``."
 msgstr ""
+"Alternativamente, la última cláusula except puede omitir el(los) nombre(s) "
+"de excepción, sin embargo, el valor de la excepción debe recuperarse de "
+"``sys.exc_info()[1]``."
 
 #: ../Doc/tutorial/errors.rst:172
-#, fuzzy
 msgid ""
 "The :keyword:`try` ... :keyword:`except` statement has an optional *else "
 "clause*, which, when present, must follow all *except clauses*.  It is "
 "useful for code that must be executed if the *try clause* does not raise an "
 "exception. For example::"
 msgstr ""
-"Las declaraciones :keyword:`try` ... :keyword:`except` tienen un *bloque "
-"else* opcional, el cual, cuando está presente, debe seguir a los *except*. "
-"Es útil para aquel código que debe ejecutarse si el *bloque try* no genera "
-"una excepción.  Por ejemplo::"
+"La declaración :keyword:`try` ... :keyword:`except` tiene una *cláusula "
+"else* opcional, que, cuando está presente, debe seguir todas las *cláusulas "
+"except*. Es útil para el código que debe ejecutarse si la *cláusula try* no "
+"lanza una excepción. Por ejemplo::"
 
 #: ../Doc/tutorial/errors.rst:186
 msgid ""
@@ -301,7 +300,6 @@ msgstr ""
 "depende del tipo de excepción."
 
 #: ../Doc/tutorial/errors.rst:195
-#, fuzzy
 msgid ""
 "The *except clause* may specify a variable after the exception name.  The "
 "variable is bound to an exception instance with the arguments stored in "
@@ -310,13 +308,13 @@ msgid ""
 "reference ``.args``.  One may also instantiate an exception first before "
 "raising it and add any attributes to it as desired. ::"
 msgstr ""
-"La cláusula *except* puede especificar una variable después del nombre de "
-"excepción. La variable se vincula a una instancia de la excepción con los "
-"argumentos almacenados en ``instance.args``.  Por conveniencia, la instancia "
-"de excepción define :meth:`__str__` para que se pueda mostrar los argumentos "
-"directamente, sin necesidad de hacer referencia a ``.args``.  También se "
-"puede instanciar la excepción primero, antes de generarla, y agregarle los "
-"atributos que se desee::"
+"La *cláusula except* puede especificar una variable después del nombre de la "
+"excepción. La variable está vinculada a una instancia de excepción con los "
+"argumentos almacenados en ``instance.args``. Por conveniencia, la instancia "
+"de excepción define :meth:`__str__` para que los argumentos se puedan "
+"imprimir directamente sin tener que hacer referencia a ``.args``. También se "
+"puede crear una instancia de una excepción antes de generarla y agregarle "
+"los atributos que desee. ::"
 
 #: ../Doc/tutorial/errors.rst:219
 msgid ""
@@ -328,16 +326,15 @@ msgstr ""
 "exception*')."
 
 #: ../Doc/tutorial/errors.rst:222
-#, fuzzy
 msgid ""
 "Exception handlers don't just handle exceptions if they occur immediately in "
 "the *try clause*, but also if they occur inside functions that are called "
 "(even indirectly) in the *try clause*. For example::"
 msgstr ""
-"Los gestores de excepciones no se encargan solamente de las excepciones que "
-"ocurren en el *bloque try*, también gestionan las excepciones que ocurren "
-"dentro de las funciones que se llaman (inclusive indirectamente) dentro del "
-"*bloque try*.  Por ejemplo::"
+"Los manejadores de excepciones no solo manejan las excepciones si ocurren "
+"inmediatamente en la *cláusula try*, sino también si ocurren dentro de "
+"funciones que son llamadas (incluso indirectamente) en la *cláusula try*. "
+"Por ejemplo::"
 
 #: ../Doc/tutorial/errors.rst:240
 msgid "Raising Exceptions"
@@ -380,13 +377,12 @@ msgid "Exception Chaining"
 msgstr "Encadenamiento de excepciones"
 
 #: ../Doc/tutorial/errors.rst:278
-#, fuzzy
 msgid ""
 "The :keyword:`raise` statement allows an optional :keyword:`from<raise>` "
 "which enables chaining exceptions. For example::"
 msgstr ""
-"La instrucción :keyword:`raise` permite una palabra clave opcional :keyword:"
-"`from` que habilita el encadenamiento de excepciones. Por ejemplo::"
+"La declaración :keyword:`raise` permite una palabra clave opcional :keyword:"
+"`from<raise>` que habilita el encadenamiento de excepciones. Por ejemplo::"
 
 #: ../Doc/tutorial/errors.rst:284
 msgid "This can be useful when you are transforming exceptions. For example::"
@@ -394,16 +390,14 @@ msgstr ""
 "Esto puede resultar útil cuando está transformando excepciones. Por ejemplo::"
 
 #: ../Doc/tutorial/errors.rst:305
-#, fuzzy
 msgid ""
 "Exception chaining happens automatically when an exception is raised inside "
 "an :keyword:`except` or :keyword:`finally` section. This can be disabled by "
 "using ``from None`` idiom:"
 msgstr ""
-"El encadenamiento de excepciones ocurre automáticamente cuando se genera una "
-"excepción dentro de una sección palabra clave :keyword:`except` o :keyword:"
-"`finally`. El encadenamiento de excepciones se puede deshabilitar usando el "
-"modismo ``from None``:"
+"El encadenamiento de excepciones ocurre automáticamente cuando se lanza una "
+"excepción dentro de una sección :keyword:`except` o :keyword:`finally`. Esto "
+"se puede desactivar usando el modismo ``from None``:"
 
 #: ../Doc/tutorial/errors.rst:318
 msgid ""
@@ -520,6 +514,9 @@ msgid ""
 "If the :keyword:`!finally` clause executes a :keyword:`break`, :keyword:"
 "`continue` or :keyword:`return` statement, exceptions are not re-raised."
 msgstr ""
+"Si la cláusula :keyword:`!finally` ejecuta una declaración :keyword:"
+"`break`, :keyword:`continue` o :keyword:`return`, las excepciones no se "
+"vuelven a lanzar."
 
 #: ../Doc/tutorial/errors.rst:415
 msgid ""

From 71cf2c39804218087576d78fc55759cf4aa20838 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Tue, 7 Dec 2021 23:21:11 +0100
Subject: [PATCH 2/2] =?UTF-8?q?aplicando=20sugerencia=20de=20la=20revisi?=
 =?UTF-8?q?=C3=B3n?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 tutorial/errors.po | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/tutorial/errors.po b/tutorial/errors.po
index e46148e957..97e2921cbb 100644
--- a/tutorial/errors.po
+++ b/tutorial/errors.po
@@ -198,11 +198,9 @@ msgid ""
 msgstr ""
 "Si ocurre una excepción que no coincide con la indicada en la *cláusula "
 "except* se pasa a los :keyword:`try` más externos; si no se encuentra un "
-"manejador, se genera una *unhandled exception* (excepción no gestionada) y "
-"la ejecución se interrumpe con un mensaje como el que se muestra arriba."
+"gestor, se genera una *unhandled exception* (excepción no gestionada) y la "
+"ejecución se interrumpe con un mensaje como el que se muestra arriba."
 
-# en desacuerdo con manejadores, serían, por ejemplo gestores. en mi opinión
-# se debería discutir y acordar.
 #: ../Doc/tutorial/errors.rst:114
 msgid ""
 "A :keyword:`try` statement may have more than one *except clause*, to "
@@ -213,11 +211,11 @@ msgid ""
 "for example::"
 msgstr ""
 "Una declaración :keyword:`try` puede tener más de una *cláusula except*, "
-"para especificar controladores para diferentes excepciones. Como máximo, se "
-"ejecutará un manejador. Los manejadores solo manejan las excepciones que "
-"ocurren en la *cláusula try* correspondiente, no en otros manejadores de la "
-"misma declaración :keyword:`!try`. Una *cláusula except* puede nombrar "
-"múltiples excepciones como una tupla entre paréntesis, por ejemplo:"
+"para especificar gestores para diferentes excepciones. Como máximo, se "
+"ejecutará un gestor. Los gestores solo manejan las excepciones que ocurren "
+"en la *cláusula try* correspondiente, no en otros gestores de la misma "
+"declaración :keyword:`!try`. Una *cláusula except* puede nombrar múltiples "
+"excepciones como una tupla entre paréntesis, por ejemplo:"
 
 #: ../Doc/tutorial/errors.rst:123
 msgid ""
@@ -254,7 +252,7 @@ msgstr ""
 "utilizar como comodín. ¡Use esto con extrema precaución, ya que es fácil "
 "enmascarar un error de programación real de esta manera! También se puede "
 "usar para imprimir un mensaje de error y luego volver a generar la excepción "
-"(permitiendo que una persona que llama también maneje la excepción):"
+"(permitiendo que la función que llama también maneje la excepción):"
 
 #: ../Doc/tutorial/errors.rst:169
 msgid ""
@@ -331,7 +329,7 @@ msgid ""
 "the *try clause*, but also if they occur inside functions that are called "
 "(even indirectly) in the *try clause*. For example::"
 msgstr ""
-"Los manejadores de excepciones no solo manejan las excepciones si ocurren "
+"Los gestores de excepciones no solo gestionan las excepciones si ocurren "
 "inmediatamente en la *cláusula try*, sino también si ocurren dentro de "
 "funciones que son llamadas (incluso indirectamente) en la *cláusula try*. "
 "Por ejemplo::"