From 934914080c53bf9d2eedb31d90df92573435fab9 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Fri, 2 Apr 2021 20:11:46 +0200
Subject: [PATCH 01/18] hasta decoradores

---
 whatsnew/2.4.po | 158 ++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 139 insertions(+), 19 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index bc7e043d12..522fb540a8 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -1,39 +1,43 @@
 # Copyright (C) 2001-2020, Python Software Foundation
 # This file is distributed under the same license as the Python package.
-# Maintained by the python-doc-es workteam. 
+# Maintained by the python-doc-es workteam.
 # docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/
 # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers
 #
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: Python 3.8\n"
+"Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2021-04-02 20:05+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"
+"Language: es\n"
+"X-Generator: Poedit 2.4.2\n"
 
 #: ../Doc/whatsnew/2.4.rst:3
 msgid "What's New in Python 2.4"
-msgstr ""
+msgstr "Novedades en Python 2.4"
 
 #: ../Doc/whatsnew/2.4.rst:0
 msgid "Author"
-msgstr ""
+msgstr "Autor"
 
 #: ../Doc/whatsnew/2.4.rst:5
 msgid "A.M. Kuchling"
-msgstr ""
+msgstr "A.M. Kuchling"
 
 #: ../Doc/whatsnew/2.4.rst:14
 msgid ""
 "This article explains the new features in Python 2.4.1, released on March "
 "30, 2005."
 msgstr ""
+"Este artículo explica las nuevas funcionalidades en Python 2.4.1 lanzadas el "
+"30 de marzo de 2005."
 
 #: ../Doc/whatsnew/2.4.rst:17
 msgid ""
@@ -43,6 +47,11 @@ msgid ""
 "function decorators and generator expressions; most other changes are to the "
 "standard library."
 msgstr ""
+"Python 2.4 es un lanzamiento de término medio. Esto significa que no se han "
+"introducido grandes cambios como en la versión 2.2 de Python pero si son más "
+"significativas que la versión 2.3. Lo más relevante de estas nuevas "
+"funcionalidades son los decoradores y generadores de expresiones, la mayor "
+"parte del resto de los cambios son a la librería estándar."
 
 #: ../Doc/whatsnew/2.4.rst:22
 msgid ""
@@ -50,6 +59,9 @@ msgid ""
 "bugs fixed between Python 2.3 and 2.4.  Both figures are likely to be "
 "underestimates."
 msgstr ""
+"De acuerdo al registro de cambios CVS , han sido aplicados 481 parches y 502 "
+"bugs han sido corregidos entre las versiones 2.3 y 2.4 de Python. Es posible "
+"que ambas cifras no concuerden con la realidad, podrían estar subestimadas."
 
 #: ../Doc/whatsnew/2.4.rst:25
 msgid ""
@@ -60,10 +72,17 @@ msgid ""
 "Often you will be referred to the PEP for a particular new feature for "
 "explanations of the implementation and design rationale."
 msgstr ""
+"Este artículo no pretende entregar una especificación completa y detallada "
+"de cada funcionalidad nueva, en vez de esto, se provee una breve descripción "
+"de las nuevas características. Para obtener más información se debe "
+"consultar la documentación oficial de Python 2.4, tal como la librería de "
+"referencia de Python y el manual de referencia de Python. Otra fuente de "
+"información es PEP (guía de estilo-mejoras de python) para buscar "
+"información sobre la implementación y fundamentación del diseño."
 
 #: ../Doc/whatsnew/2.4.rst:36
 msgid "PEP 218: Built-In Set Objects"
-msgstr ""
+msgstr "PEP 218: Objetos built-in"
 
 #: ../Doc/whatsnew/2.4.rst:38
 msgid ""
@@ -74,6 +93,13 @@ msgid ""
 "sequences, and for mathematical operations like unions, intersections, "
 "differences, and symmetric differences. ::"
 msgstr ""
+"Python 2.3 introdujo el módulo ´set´, implementaciones del lenguaje C de "
+"tipos de datos han sido agregados al core de Python como dos nuevos tipos "
+"built in. ´Set´ o conjuntos (iterable) y ´frozenset´conjuntos congelados "
+"(iterable) . Ellos proveen operaciones de alto rendimiento para pruebas de "
+"testing, eliminar datos duplicados de una secuencia y operaciones "
+"matemáticas como: Uniones, intersecciones, diferencias y diferencias "
+"simétricas. ::"
 
 #: ../Doc/whatsnew/2.4.rst:71
 msgid ""
@@ -81,6 +107,9 @@ msgid ""
 "is immutable and hashable, it may be used as a dictionary key or as a member "
 "of another set."
 msgstr ""
+"La función built-in frozenset() es la versión inmutable de set(). Como es "
+"inmutable y hashable (su valor no cambia), se puede usar como una llave de "
+"diccionario o como parte de otro set."
 
 #: ../Doc/whatsnew/2.4.rst:75
 msgid ""
@@ -88,20 +117,25 @@ msgid ""
 "you wish to subclass the :class:`Set` or :class:`ImmutableSet` classes.  "
 "There are currently no plans to deprecate the module."
 msgstr ""
+"El modulo set se encuentra en la librería estándar y puede ser útil si se "
+"desea usar una subclase de set o ImmutableSet classes. No existen planes de "
+"depreciación del modulo."
 
 #: ../Doc/whatsnew/2.4.rst:83
 msgid ":pep:`218` - Adding a Built-In Set Object Type"
-msgstr ""
+msgstr ":pep:`218` - Agregando un set de tipo de objeto incorporado"
 
 #: ../Doc/whatsnew/2.4.rst:83
 msgid ""
 "Originally proposed by Greg Wilson and ultimately implemented by Raymond "
 "Hettinger."
 msgstr ""
+"Originalmente propuesto por Greg Wilson e implementado en la posteridad por "
+"Raymond Hettinger."
 
 #: ../Doc/whatsnew/2.4.rst:90
 msgid "PEP 237: Unifying Long Integers and Integers"
-msgstr ""
+msgstr "PEP 237, Unificando tipos de datos enteros"
 
 #: ../Doc/whatsnew/2.4.rst:92
 msgid ""
@@ -112,6 +146,13 @@ msgid ""
 "(depending on your platform).  In 2.4, these expressions no longer produce a "
 "warning and instead produce a different result that's usually a long integer."
 msgstr ""
+"El prolongado proceso de transición para este PEP que comenzó en Python 2.2 "
+"ha dado un paso más adelante en Python 2.4. En la versión 2.3 ciertas "
+"operaciones de enteros podían comportarse diferente después de lanzar la "
+"unificación del tipo de dato int-long entregando alertas FutureWarning y "
+"retornando valores limitados a 32 o 64 bits dependiendo de su plataforma. En "
+"la versión 2.4 estas expresiones ya no producen alertas y en vez de eso "
+"entrega un resultado diferente que suele ser un entero largo."
 
 #: ../Doc/whatsnew/2.4.rst:99
 msgid ""
@@ -120,20 +161,27 @@ msgid ""
 "warning in 2.3, evaluating to 0 on 32-bit platforms.  In Python 2.4, this "
 "expression now returns the correct answer, 8589934592."
 msgstr ""
+"Las expresiones problemáticas son principalmente desplazamientos a la "
+"izquierda y constantes largas de hexadecimales y octales. Por ejemplo, ``2 "
+"<< 32``  entrega una alerta en la versión 2.3 y evalúa 0 en plataformas 32-"
+"bit. Ahora en Python 2.4 la expresión retorna la respuesta correcta, "
+"8589934592."
 
 #: ../Doc/whatsnew/2.4.rst:108
 msgid ":pep:`237` - Unifying Long Integers and Integers"
-msgstr ""
+msgstr ":pep:`237` - Unificando tipos de datos enteros"
 
 #: ../Doc/whatsnew/2.4.rst:108
 msgid ""
 "Original PEP written by Moshe Zadka and GvR.  The changes for 2.4 were "
 "implemented by  Kalle Svensson."
 msgstr ""
+"PEP original escrito por Moshe Zadka y GvR.  Los cambios a la versión 2.4 "
+"fueron implementados por Kalle Svensson."
 
 #: ../Doc/whatsnew/2.4.rst:115
 msgid "PEP 289: Generator Expressions"
-msgstr ""
+msgstr "PEP 289: Expresiones generadoras"
 
 #: ../Doc/whatsnew/2.4.rst:117
 msgid ""
@@ -146,6 +194,11 @@ msgid ""
 "large.  When trying to write a functionally-styled program, it would be "
 "natural to write something like::"
 msgstr ""
+"La funcionalidad iterator fue introducida en Python 2.2 y el modulo "
+"'itertools' hace mas fácil escribir programas que iteran sobre largos sets "
+"de datos sin tener todo el conjunto de datos en memoria en tiempo de "
+"ejecución. Las listas de comprensión no se ajustan adecuadamente pues "
+"producen en python una lista de objetos.contenido todos los ítems ::"
 
 #: ../Doc/whatsnew/2.4.rst:129
 msgid "instead of  ::"
@@ -157,6 +210,10 @@ msgid ""
 "dealing with a large number of link objects you'd have to write the second "
 "form to avoid having all link objects in memory at the same time."
 msgstr ""
+"La primera forma es mas concisa y quizás mas legible pero en caso de "
+"trabajar con un numero largo de objetos podría ser necesario el escribir una "
+"segunda linea para evitar tener los objetos enlazados en memoria al mismo "
+"tiempo."
 
 #: ../Doc/whatsnew/2.4.rst:140
 msgid ""
@@ -164,6 +221,10 @@ msgid ""
 "materialize the entire list; instead they create a generator that will "
 "return elements one by one.  The above example could be written as::"
 msgstr ""
+"Las expresiones generadoras trabajan de forma similar a las listas por "
+"comprensión pero no muestra la lista completa, en vez de eso se crea un "
+"generador que retornará los elementos uno a uno.\n"
+"El siguiente ejemplo podría ser escrito como:"
 
 #: ../Doc/whatsnew/2.4.rst:148
 msgid ""
@@ -172,6 +233,11 @@ msgid ""
 "so if you want to create an iterator that will be immediately passed to a "
 "function you could write::"
 msgstr ""
+"Los generadores de expresiones siempre tienen que ser escritos dentro de "
+"paréntesis como en el ejemplo descrito arriba. Los paréntesis señalan una "
+"llamada a la función que también se puede contar, entonces si se necesita "
+"crear un iterador que inmediatamente pasara a una función se podría "
+"escribir::"
 
 #: ../Doc/whatsnew/2.4.rst:155
 msgid ""
@@ -182,20 +248,29 @@ msgid ""
 "change this, making list comprehensions match generator expressions in this "
 "respect."
 msgstr ""
+"Las expresiones generadoras difieren de las listas de comprensión por "
+"pequeñas diferencias. La mas notable es que la variable del loop (*obj* en "
+"el ejemplo de arriba) no es accesible fuera de la expresión generadora. Las "
+"listas de comprensión dejan la variable asignada a su último valor, en "
+"versiones futuras de Python esto será cambiado en lo que respecta a hacer "
+"que las listas de comprensión coincidan con las expresiones de los "
+"generadores."
 
 #: ../Doc/whatsnew/2.4.rst:165
 msgid ":pep:`289` - Generator Expressions"
-msgstr ""
+msgstr ":pep:`289` - Expresiones generadoras"
 
 #: ../Doc/whatsnew/2.4.rst:165
 msgid ""
 "Proposed by Raymond Hettinger and implemented by Jiwon Seo with early "
 "efforts steered by Hye-Shik Chang."
 msgstr ""
+"Propuesto por Raymond Hettinger e implementada por Jiwon Seo con los "
+"primeros esfuerzos por Hye-Shik Chang."
 
 #: ../Doc/whatsnew/2.4.rst:172
 msgid "PEP 292: Simpler String Substitutions"
-msgstr ""
+msgstr "PEP 292 Sustituciones simples de cadenas de caracteres"
 
 #: ../Doc/whatsnew/2.4.rst:174
 msgid ""
@@ -203,10 +278,16 @@ msgid ""
 "for substituting variables into strings; this style of substitution may be "
 "better for applications where untrained users need to edit templates."
 msgstr ""
+"Algunas nuevas clases en la librería estándar entrega un mecanismo "
+"alternativo para sustituir variables dentro de cadenas de caracteres, este "
+"estilo de sustituciones puede ser mejor por aplicaciones donde usuarios sin "
+"experiencia necesitan editar plantillas."
 
 #: ../Doc/whatsnew/2.4.rst:178
 msgid "The usual way of substituting variables by name is the ``%`` operator::"
 msgstr ""
+"La manera usual de sustituir variables por el nombre es con el operador ``"
+"%`` :"
 
 #: ../Doc/whatsnew/2.4.rst:183
 msgid ""
@@ -220,12 +301,24 @@ msgid ""
 "users, and if they make a mistake, it's difficult to provide helpful "
 "feedback to them."
 msgstr ""
+"Cuando se escriben plantillas con cadenas de caracteres puede ser muy fácil "
+"olvidar el uso de ``i`` or ``s`` después de cerrar paréntesis. Esto no es un "
+"problema grande si se está dentro de un modulo de Python pues al correr el "
+"código se lanza el siguiente mensaje de error \"Unsupported format character"
+"\" :exc:`ValueError` y el problema se resuelve. Sin embargo, tener en cuenta "
+"que una aplicación como Mailman donde una plantilla de caracteres o "
+"traducciones son editadas por usuarios que no están familiarizados con "
+"Python. La sintaxis de como formatear las cadenas de caracteres es "
+"complicada de explicar para ciertos usuarios y si ellos cometen un error es "
+"una dificultad el entregar retroalimentación y ayuda."
 
 #: ../Doc/whatsnew/2.4.rst:192
 msgid ""
 "PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses "
 "``$`` to indicate a substitution::"
 msgstr ""
+"PEP 292 agrega una :class:`Template` class a :mod:`string` al modulo que usa "
+"``$`` para indicar una sustitución::"
 
 #: ../Doc/whatsnew/2.4.rst:200
 msgid ""
@@ -233,18 +326,21 @@ msgid ""
 "raise a :exc:`KeyError`.  There's also a :meth:`safe_substitute` method that "
 "ignores missing keys::"
 msgstr ""
+"Si una llave se ha perdido desde el diccionario, el método `substitute` "
+"lanzará una :exc:`KeyError`. También el método `safe_substitute` que ignora "
+"las llaves perdidas::"
 
 #: ../Doc/whatsnew/2.4.rst:211
 msgid ":pep:`292` - Simpler String Substitutions"
-msgstr ""
+msgstr ":pep:`292` - Sustituciones simples de cadenas de caracteres"
 
 #: ../Doc/whatsnew/2.4.rst:212
 msgid "Written and implemented  by Barry Warsaw."
-msgstr ""
+msgstr "Escrito e implementado por Barry Warsaw."
 
 #: ../Doc/whatsnew/2.4.rst:218
 msgid "PEP 318: Decorators for Functions and Methods"
-msgstr ""
+msgstr "PEP 318: Decoradores para funciones y métodos"
 
 #: ../Doc/whatsnew/2.4.rst:220
 msgid ""
@@ -255,12 +351,21 @@ msgid ""
 "`staticmethod` or :func:`classmethod` function that would wrap up the "
 "function as a method of the new type. Your code would look like this::"
 msgstr ""
+"Python 2.2 extendió el modelo de objeto de Python añadiendo métodos "
+"estéticos y métodos de clase pero no se extendió la sintaxis de Python para "
+"proveer alguna nueva forma de definir métodos estáticos o de clase. En vez "
+"de eso se tenía que escribir la palabra clave `def` de manera usual y pasar "
+"el método resultante a la :func:`staticmethod` o a la :func:`classmethod` "
+"que podía agrupar la función como método de un nuevo tipo. El código podría "
+"verse como esto:"
 
 #: ../Doc/whatsnew/2.4.rst:233
 msgid ""
 "If the method was very long, it would be easy to miss or forget the :func:"
 "`classmethod` invocation after the function body."
 msgstr ""
+"Si el método era muy largo, era muy probable el perder o olvidar la  "
+"invocación :func:`classmethod` dentro del cuerpo de la función."
 
 #: ../Doc/whatsnew/2.4.rst:236
 msgid ""
@@ -270,6 +375,12 @@ msgid ""
 "access to the feature; a new syntactic feature has been added to meet this "
 "need."
 msgstr ""
+"La intención era siempre agregar alguna sintaxis que hicieran las "
+"definiciones mas entendibles pero al tiempo del lanzamiento de la versión "
+"2.2 una buena sintaxis no era clara. Al día de hoy una buena sintaxis aun no "
+"es clara pero los usuarios están preguntando por formas más fáciles de "
+"acceder a las características, entonces una nueva funcionalidad sintáctica "
+"ha sido añadida para satisfacer esta necesidad."
 
 #: ../Doc/whatsnew/2.4.rst:241
 msgid ""
@@ -278,22 +389,31 @@ msgid ""
 "additional information on a function object; they're *decorating* functions "
 "with more details."
 msgstr ""
+"La nueva característica es llamada decoradores de funciones. El nombre "
+"proviene de la idea de que :func:`classmethod`, :func:`staticmethod` son "
+"amigos y  guardan información adicional en un objeto de una función. ellos "
+"están decorando funciones con mas detalles."
 
 #: ../Doc/whatsnew/2.4.rst:246
 msgid ""
 "The notation borrows from Java and uses the ``'@'`` character as an "
 "indicator. Using the new syntax, the example above would be written::"
 msgstr ""
+"La notación proviene de Java y usa el ``'@'`` símbolo arroba como un "
+"indicador. Usando la nueva sintaxis el ejemplo descrito arriba podría ser "
+"escrito de la siguiente forma:"
 
 #: ../Doc/whatsnew/2.4.rst:256
 msgid ""
 "The ``@classmethod`` is shorthand for the ``meth=classmethod(meth)`` "
 "assignment. More generally, if you have the following::"
 msgstr ""
+"El ``@classmethod``  es un atajo para `meth=classmethod(meth)``. De forma "
+"general si se tiene lo siguiente:"
 
 #: ../Doc/whatsnew/2.4.rst:265
 msgid "It's equivalent to the following pre-decorator code::"
-msgstr ""
+msgstr "Es el equivalente para el siguiente código de pre decorador::"
 
 #: ../Doc/whatsnew/2.4.rst:270
 msgid ""

From 28392d37496827d02797ca66a4bc164610533ad2 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 19 Apr 2021 11:49:56 +0200
Subject: [PATCH 02/18] agrega diccionario

---
 dictionaries/whatsnew_2.4.txt | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 dictionaries/whatsnew_2.4.txt

diff --git a/dictionaries/whatsnew_2.4.txt b/dictionaries/whatsnew_2.4.txt
new file mode 100644
index 0000000000..3d00c31bc8
--- /dev/null
+++ b/dictionaries/whatsnew_2.4.txt
@@ -0,0 +1,8 @@
+
+InmutableSet
+Wilson
+FutureWarning
+Kalle
+Moshe
+Zadka
+iterator
\ No newline at end of file

From 2d459947b032955b14cead55b949780299086f32 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 19 Apr 2021 12:01:28 +0200
Subject: [PATCH 03/18] otro

---
 dictionaries/{whatsnew_2.4.txt => 2.4.txt} | 1 -
 1 file changed, 1 deletion(-)
 rename dictionaries/{whatsnew_2.4.txt => 2.4.txt} (98%)

diff --git a/dictionaries/whatsnew_2.4.txt b/dictionaries/2.4.txt
similarity index 98%
rename from dictionaries/whatsnew_2.4.txt
rename to dictionaries/2.4.txt
index 3d00c31bc8..6ea8e6a3ed 100644
--- a/dictionaries/whatsnew_2.4.txt
+++ b/dictionaries/2.4.txt
@@ -1,4 +1,3 @@
-
 InmutableSet
 Wilson
 FutureWarning

From 16ea3bcea09e7ed32fdd81bb2e2520e142842917 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 19 Apr 2021 13:20:22 +0200
Subject: [PATCH 04/18] avance 19/04

---
 dictionaries/2.4.txt |   2 +-
 whatsnew/2.4.po      | 105 ++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 95 insertions(+), 12 deletions(-)

diff --git a/dictionaries/2.4.txt b/dictionaries/2.4.txt
index 6ea8e6a3ed..5300bc678e 100644
--- a/dictionaries/2.4.txt
+++ b/dictionaries/2.4.txt
@@ -1,4 +1,4 @@
-InmutableSet
+ImmutableSet
 Wilson
 FutureWarning
 Kalle
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 522fb540a8..87b2791f6f 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-04-02 20:05+0200\n"
+"PO-Revision-Date: 2021-04-19 13:19+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -119,7 +119,7 @@ msgid ""
 msgstr ""
 "El modulo set se encuentra en la librería estándar y puede ser útil si se "
 "desea usar una subclase de set o ImmutableSet classes. No existen planes de "
-"depreciación del modulo."
+"deprecación del modulo."
 
 #: ../Doc/whatsnew/2.4.rst:83
 msgid ":pep:`218` - Adding a Built-In Set Object Type"
@@ -202,7 +202,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:129
 msgid "instead of  ::"
-msgstr ""
+msgstr "en vez de ::"
 
 #: ../Doc/whatsnew/2.4.rst:136
 msgid ""
@@ -423,6 +423,12 @@ msgid ""
 "either at the module level or inside a class; you can't decorate class "
 "definitions."
 msgstr ""
+"Los decoradores deben agregarse en una linea antes de la definición de la "
+"función, un decorador por linea y no puede estar en la misma linea donde se "
+"usa la palabra def para comenzar una función, por ejemplo ``@A def f(): ..."
+"`` es incorrecto. Solo se puede decorar una definición de función tanto al "
+"nivel de modulo o dentro de una clase pero no puedes decorar definiciones de "
+"clase."
 
 #: ../Doc/whatsnew/2.4.rst:275
 msgid ""
@@ -433,18 +439,29 @@ msgid ""
 "your own decorators.  The following simple example just sets an attribute on "
 "the function object::"
 msgstr ""
+"Un decorador es simplemente una función que toma la función a ser decorada "
+"como un argumento y retorna tanto la misma función o un nuevo objeto. El "
+"valor de retorno del decorador no necesita ser llamado (como típicamente se "
+"cree) si no que los decoradores podrán ser aplicados al resultado. Es fácil "
+"escribir sus propios decoradores, El siguiente ejemplo agrega un atributo a "
+"la función objetiva::"
 
 #: ../Doc/whatsnew/2.4.rst:295
 msgid ""
 "As a slightly more realistic example, the following decorator checks that "
 "the supplied argument is an integer::"
 msgstr ""
+"Como un ejemplo un poco mas realista, el siguiente decorador revisa si el "
+"argumento entregado es un integer::"
 
 #: ../Doc/whatsnew/2.4.rst:313
 msgid ""
 "An example in :pep:`318` contains a fancier version of this idea that lets "
 "you both specify the required type and check the returned type."
 msgstr ""
+"Un ejemplo en :pep:`318`  contiene una versión mas elegante de esta idea "
+"donde deja que usted elija específicamente el tipo y revisa el tipo de "
+"retorno."
 
 #: ../Doc/whatsnew/2.4.rst:316
 msgid ""
@@ -454,11 +471,18 @@ msgid ""
 "function, as previously described.  In other words, ``@A @B @C(args)`` "
 "becomes::"
 msgstr ""
+"Los decoradores de funciones pueden tomar argumentos. Si los argumentos son "
+"entregados, el decorador de la función es llamado con solo esos argumentos y "
+"retorna un nuevo decorador de función, esta función debe tomar una función "
+"sola y retorna una función como previamente se ha descrito. En otras "
+"palabras ``@A @B @C(args)`` comienza:"
 
 #: ../Doc/whatsnew/2.4.rst:325
 msgid ""
 "Getting this right can be slightly brain-bending, but it's not too difficult."
 msgstr ""
+"Tomando esto de forma correcta puede ser un acertijo pero tampoco es muy "
+"dificultoso."
 
 #: ../Doc/whatsnew/2.4.rst:327
 msgid ""
@@ -467,10 +491,14 @@ msgid ""
 "so decorators should change the name of any new function that's constructed "
 "and returned."
 msgstr ""
+"Un pequeño cambio relacionado hace el atributo :attr:`func_name` de la "
+"función modificable. Este atributo es usado para desplegar nombres de "
+"funciones en el rastreo, entonces los decoradores cambia el nombre de "
+"cualquier nueva fgeuincion que es construida y retornada."
 
 #: ../Doc/whatsnew/2.4.rst:338
 msgid ":pep:`318` - Decorators for Functions, Methods and Classes"
-msgstr ""
+msgstr ":pep:`318` Decoradores para funciones, métodos y clases"
 
 #: ../Doc/whatsnew/2.4.rst:336
 msgid ""
@@ -478,30 +506,38 @@ msgid ""
 "wrote patches implementing function decorators, but the one that was "
 "actually checked in was patch #979728, written by Mark Russell."
 msgstr ""
+"Escrito por Kevin D.Smith, Jim Jewett y Skip Montanaro. Varias personal "
+"escribieron parches para implementación de los decoradores de funciones, "
+"pero el ;único que fue chequeado en ese parche #979728 fue Mark Russell."
 
 #: ../Doc/whatsnew/2.4.rst:340
 msgid "https://wiki.python.org/moin/PythonDecoratorLibrary"
-msgstr ""
+msgstr "https://wiki.python.org/moin/PythonDecoratorLibrary"
 
 #: ../Doc/whatsnew/2.4.rst:341
 msgid "This Wiki page contains several examples of decorators."
-msgstr ""
+msgstr "Esta pagina de wiki contiene variados ejemplos de decoradores."
 
 #: ../Doc/whatsnew/2.4.rst:347
 msgid "PEP 322: Reverse Iteration"
-msgstr ""
+msgstr "PEP 322: Iteración inversa"
 
 #: ../Doc/whatsnew/2.4.rst:349
 msgid ""
 "A new built-in function, ``reversed(seq)``, takes a sequence and returns an "
 "iterator that loops over the elements of the sequence  in reverse order.   ::"
 msgstr ""
+"Una nueva función built-in, `reversed(seq)``toma una secuencia y retorna un "
+"iterado que recorre los elementos de la secuencia en orden inverso.:"
 
 #: ../Doc/whatsnew/2.4.rst:359
 msgid ""
 "Compared to extended slicing, such as ``range(1,4)[::-1]``, :func:`reversed` "
 "is easier to read, runs faster, and uses substantially less memory."
 msgstr ""
+"Comparado con el uso tradicional de la segmentación tal como ``range(1,4)"
+"[::-1]`` la :función: `reversed` es fácil de leer, corre mas rápido y usa "
+"sustancialmente menos memoria. ."
 
 #: ../Doc/whatsnew/2.4.rst:362
 msgid ""
@@ -509,18 +545,21 @@ msgid ""
 "If you want to reverse an iterator, first convert it to  a list with :func:"
 "`list`. ::"
 msgstr ""
+"Notese que la :func:`reversed` solo acepta secuencias no iterados "
+"arbitrarios. Si se quiere reversa un iterador, primero se debe convertir a "
+"una lista usando la :func:`list`.:"
 
 #: ../Doc/whatsnew/2.4.rst:376
 msgid ":pep:`322` - Reverse Iteration"
-msgstr ""
+msgstr ":pep:`322` - Iteración inversa"
 
 #: ../Doc/whatsnew/2.4.rst:377
 msgid "Written and implemented by Raymond Hettinger."
-msgstr ""
+msgstr "Escrita e implementada por Raymond Hettinger."
 
 #: ../Doc/whatsnew/2.4.rst:383
 msgid "PEP 324: New subprocess Module"
-msgstr ""
+msgstr "PEP 324: Nuevo modulo de subproceso"
 
 #: ../Doc/whatsnew/2.4.rst:385
 msgid ""
@@ -533,6 +572,15 @@ msgid ""
 "naming is confusing.  The :mod:`subprocess` module cleans  this up, "
 "providing a unified interface that offers all the features you might need."
 msgstr ""
+"La librería estándar provee un cierto numero de formas de ejecutar un "
+"subproceso, ofreciendo diferentes funcionalidades y diferentes niveles de "
+"complejidad. ``os.system(command)`` es fácil de usar pero lento (esto corre "
+"un proceso a nivel de interprete de comandos)y peligroso (se tiene que ser "
+"cuidadoso con no considerar los metacaracteres usados en el interprete)\n"
+"El modulo :mod:`popen2` ofrece clases que puede capturar la salida estándar "
+"y el error estándar del subproceso, pero el nombre puede ser confuso.\n"
+"El modulo mod:`subprocess` deja esto mas claro proveyendo una interface "
+"unificada que ofrece todas las funcionalidades que usted necesita."
 
 #: ../Doc/whatsnew/2.4.rst:394
 msgid ""
@@ -540,6 +588,9 @@ msgid ""
 "a single class called :class:`Popen`  whose constructor supports a number of "
 "different keyword arguments. ::"
 msgstr ""
+"En vez de :mod:`popen2 que es una colección de clases el  :mod:`subprocess` "
+"contiene una sola clase llamada :class:`Popen`  cuyo constructor soporta un "
+"numero de diferentes argumentos de palabra clave:"
 
 #: ../Doc/whatsnew/2.4.rst:404
 msgid ""
@@ -548,6 +599,11 @@ msgid ""
 "*args* can be a string which will then be passed on to the shell for "
 "interpretation, just as :func:`os.system` does.)"
 msgstr ""
+"*args* es comúnmente una secuencia de cadenas de caracteres que podrán ser "
+"los argumentos del programa ejecutado como un subproceso. (Si el argumento "
+"entregado es verdadero, *args* puede ser una cadena de caracteres que serán "
+"pasados en la implementación de la liga de comandos, tal como :func:`os."
+"system` lo hace."
 
 #: ../Doc/whatsnew/2.4.rst:409
 msgid ""
@@ -556,37 +612,50 @@ msgid ""
 "descriptor, or you can use the constant ``subprocess.PIPE`` to create a pipe "
 "between the subprocess and the parent."
 msgstr ""
+"*stdin*, *stdout*, y*stderr* especifica que dato de entrada, salida y error "
+"serán. Se puede proceder un objeto de archivo o un archivo de descripción o "
+"se puede usar la constante ``subprocess.PIPE`` para crear un enlace entre el "
+"subproceso y el proceso principal."
 
 #: ../Doc/whatsnew/2.4.rst:417
 msgid "The constructor has a number of handy options:"
-msgstr ""
+msgstr "El constructor tiene un numero de opciones útiles:"
 
 #: ../Doc/whatsnew/2.4.rst:419
 msgid ""
 "*close_fds* requests that all file descriptors be closed before running the "
 "subprocess."
 msgstr ""
+"*close_fds* requiere que todos los descriptores de archivos sean cerrados "
+"antes de correr el subproceso."
 
 #: ../Doc/whatsnew/2.4.rst:422
 msgid ""
 "*cwd* specifies the working directory in which the subprocess will be "
 "executed (defaulting to whatever the parent's working directory is)."
 msgstr ""
+"*cwd*  especifica el directorio operativo donde el subproceso será ejecutado "
+"(por defecto, cualquiera que sea el directorio principal)"
 
 #: ../Doc/whatsnew/2.4.rst:425
 msgid "*env* is a dictionary specifying environment variables."
 msgstr ""
+"*env*  es un diccionario donde se especifican las variables de entorno."
 
 #: ../Doc/whatsnew/2.4.rst:427
 msgid ""
 "*preexec_fn* is a function that gets called before the child is started."
 msgstr ""
+"*preexec_fn* es una función que toma el llamado antes que el hijo sea "
+"llamado."
 
 #: ../Doc/whatsnew/2.4.rst:429
 msgid ""
 "*universal_newlines* opens the child's input and output using Python's :term:"
 "`universal newlines` feature."
 msgstr ""
+"*universal_newlines* abre el dato de entrada y salida del hijo usando la "
+"característica de Python :term:`universal newlines` ."
 
 #: ../Doc/whatsnew/2.4.rst:432
 msgid ""
@@ -597,6 +666,13 @@ msgid ""
 "then reads any data that the subprocess has sent to its standard output  or "
 "standard error, returning a tuple ``(stdout_data, stderr_data)``."
 msgstr ""
+"Una vez que se ha creado la instancia de la clase `Popen`  se puede llamar "
+"al método :meth:`wait` para poner en pausa hasta que el subproceso ha "
+"terminado, el método :meth:`poll` comprueba si se ha salido sin pausar o el "
+"uso de ``communicate(data)`` envía la cadena de caracteres *data* a la "
+"entrada estándar del subproceso. Y el uso de ``communicate(data)`` que lee "
+"cualquier dato que el subproceso ha enviado a la salida estándar, retornando "
+"una tupla ``(stdout_data, stderr_data)``."
 
 #: ../Doc/whatsnew/2.4.rst:439
 msgid ""
@@ -605,6 +681,10 @@ msgid ""
 "status code of the subprocess.  It can serve as a safer analog to :func:`os."
 "system`::"
 msgstr ""
+":func:`call` es un atajo que pasa estos argumentos a lo largo del "
+"constructor de la clase :class:`Popen`, espera por el comando para completar "
+"la secuencia y retorna el código de estatus del subproceso. Esto puede "
+"servir como un análogo mas seguro de :func:`os.system`:"
 
 #: ../Doc/whatsnew/2.4.rst:451
 msgid ""
@@ -612,6 +692,9 @@ msgid ""
 "use the shell, you can add ``shell=True`` as a keyword argument and provide "
 "a string instead of a sequence::"
 msgstr ""
+"El comando es invocado sin el uso del interprete de comandos. Si se desea "
+"usar el intérprete se puede agregar ``shell=True`` como un argumento de "
+"palabra clave y proveer una cadena de caracteres en vez de una secuencia:"
 
 #: ../Doc/whatsnew/2.4.rst:457
 msgid ""

From 67ca32e70c8099cc3ef20133c7666a0c10351863 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 19 Apr 2021 13:29:55 +0200
Subject: [PATCH 05/18] avance 27%

---
 dictionaries/2.4.txt | 4 +++-
 whatsnew/2.4.po      | 8 ++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/dictionaries/2.4.txt b/dictionaries/2.4.txt
index 5300bc678e..b49c1b8abb 100644
--- a/dictionaries/2.4.txt
+++ b/dictionaries/2.4.txt
@@ -4,4 +4,6 @@ FutureWarning
 Kalle
 Moshe
 Zadka
-iterator
\ No newline at end of file
+iterator
+Jewett
+Skip
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 87b2791f6f..8370f33097 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-04-19 13:19+0200\n"
+"PO-Revision-Date: 2021-04-19 13:28+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -452,7 +452,7 @@ msgid ""
 "the supplied argument is an integer::"
 msgstr ""
 "Como un ejemplo un poco mas realista, el siguiente decorador revisa si el "
-"argumento entregado es un integer::"
+"argumento entregado es un entero::"
 
 #: ../Doc/whatsnew/2.4.rst:313
 msgid ""
@@ -494,7 +494,7 @@ msgstr ""
 "Un pequeño cambio relacionado hace el atributo :attr:`func_name` de la "
 "función modificable. Este atributo es usado para desplegar nombres de "
 "funciones en el rastreo, entonces los decoradores cambia el nombre de "
-"cualquier nueva fgeuincion que es construida y retornada."
+"cualquier nueva función que es construída y retornada."
 
 #: ../Doc/whatsnew/2.4.rst:338
 msgid ":pep:`318` - Decorators for Functions, Methods and Classes"
@@ -545,7 +545,7 @@ msgid ""
 "If you want to reverse an iterator, first convert it to  a list with :func:"
 "`list`. ::"
 msgstr ""
-"Notese que la :func:`reversed` solo acepta secuencias no iterados "
+"Señalar que la :func:`reversed` solo acepta secuencias no iterados "
 "arbitrarios. Si se quiere reversa un iterador, primero se debe convertir a "
 "una lista usando la :func:`list`.:"
 

From 7bef794e22d18b6aea473b2f1a6c31290bc9d6cd Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 19 Apr 2021 13:36:58 +0200
Subject: [PATCH 06/18] correccion

---
 whatsnew/2.4.po | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 8370f33097..0b826a546b 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-04-19 13:28+0200\n"
+"PO-Revision-Date: 2021-04-19 13:35+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -494,7 +494,7 @@ msgstr ""
 "Un pequeño cambio relacionado hace el atributo :attr:`func_name` de la "
 "función modificable. Este atributo es usado para desplegar nombres de "
 "funciones en el rastreo, entonces los decoradores cambia el nombre de "
-"cualquier nueva función que es construída y retornada."
+"cualquier nueva función que es construida y retornada."
 
 #: ../Doc/whatsnew/2.4.rst:338
 msgid ":pep:`318` - Decorators for Functions, Methods and Classes"

From d2d7fda2c3b5152cc04b1f28dee78a62f2ac7ea7 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Fri, 21 May 2021 20:41:07 +0200
Subject: [PATCH 07/18] avance 50%

---
 whatsnew/2.4.po | 196 +++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 178 insertions(+), 18 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 0b826a546b..e0ad409e1a 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-04-19 13:35+0200\n"
+"PO-Revision-Date: 2021-05-21 20:38+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -702,20 +702,26 @@ msgid ""
 "be translated into Python code that uses :mod:`subprocess`.  Reading this "
 "section of the PEP is highly recommended."
 msgstr ""
+"La guía de estilo de Python toma varios ejemplos de linea de comandos y "
+"código python y muestra como estos son traducidos en el código python :mod:"
+"`subprocess`. Leer esta sección de la guía de estilo es altamente "
+"recomendado."
 
 #: ../Doc/whatsnew/2.4.rst:465
 msgid ":pep:`324` - subprocess - New process module"
-msgstr ""
+msgstr ":pep:`324`  Subproceso ' Nuevo modulo de procesamiento"
 
 #: ../Doc/whatsnew/2.4.rst:465
 msgid ""
 "Written and implemented by Peter Åstrand, with assistance from Fredrik Lundh "
 "and others."
 msgstr ""
+"Escrito e implementado por Peter Åstrand, con asistencia de Frederik Lundh y "
+"otros."
 
 #: ../Doc/whatsnew/2.4.rst:472
 msgid "PEP 327: Decimal Data Type"
-msgstr ""
+msgstr "PEP 327: Tipo de dato decimal"
 
 #: ../Doc/whatsnew/2.4.rst:474
 msgid ""
@@ -726,20 +732,31 @@ msgid ""
 "decimal fractions accurately.  The new :class:`Decimal` type can represent "
 "these fractions accurately, up to a user-specified precision limit."
 msgstr ""
+"Python siempre ha soportado numeros de tipo flotante (PF), basado en la "
+"estructura subyacente del lenguaje C de tipo `double`, como tipo de dato. "
+"Sin embargo, mientras la mayoría de los lenguajes provee un tipo de dato "
+"flotante decimal, muchas personas (inclusive programadores) no están al "
+"corriente que estos numeros flotantes no representan de forma certera "
+"fracciones decimales. El nuevo tipo de clase`Decimal` puede representar "
+"fracciones de forma precisa, hasta un limite de precisión especificado por "
+"el usuario."
 
 #: ../Doc/whatsnew/2.4.rst:483
 msgid "Why is Decimal needed?"
-msgstr ""
+msgstr "¿Por qué se necesita el decimal?"
 
 #: ../Doc/whatsnew/2.4.rst:485
 msgid ""
 "The limitations arise from the representation used for floating-point "
 "numbers. FP numbers are made up of three components:"
 msgstr ""
+"Las limitaciones aumentan desde la representación usada para los números de "
+"punto flotante. Los números de punto flotante están hechos de tres "
+"componentes:"
 
 #: ../Doc/whatsnew/2.4.rst:488
 msgid "The sign, which is positive or negative."
-msgstr ""
+msgstr "El signo el cual es positivo o negativo."
 
 #: ../Doc/whatsnew/2.4.rst:490
 msgid ""
@@ -747,12 +764,17 @@ msgid ""
 "fractional part.  For example, ``1.01`` in base-2 notation is ``1 + 0/2 + "
 "1/4``, or 1.25 in decimal notation."
 msgstr ""
+"El significando o mantisa el cual es el un dígito binario seguido de su "
+"parte fraccional. Por ejemplo, ``1.01`` en notación base 2 es ``1 + 0/2 + "
+"1/4`` o 1.25 en notación decimal."
 
 #: ../Doc/whatsnew/2.4.rst:494
 msgid ""
 "The exponent, which tells where the decimal point is located in the number "
 "represented."
 msgstr ""
+"El exponente, que indica dónde se encuentra el punto decimal en el número "
+"representado."
 
 #: ../Doc/whatsnew/2.4.rst:497
 msgid ""
@@ -762,6 +784,11 @@ msgid ""
 "because the mantissa is multiplied by 4 (2 to the power of the exponent 2); "
 "1.25 \\* 4 equals 5."
 msgstr ""
+"Por ejemplo, el numero 1.25 tiene un signo positivo, una mantisa de valor "
+"1.01 (en binario) y un exponente de 0 (el punto decimal no necesita ser "
+"desplazado. El numero 5 tiene el mismo signo y significando pero, el "
+"exponente es 2 porque el significando es multiplicado por 4 (2 elevado a la "
+"potencia del exponente 2), 1.25 \\* 4 es igual a 5."
 
 #: ../Doc/whatsnew/2.4.rst:503
 msgid ""
@@ -777,10 +804,25 @@ msgid ""
 "additional terms.  IEEE 754 has to chop off that infinitely repeated decimal "
 "after 52 digits, so the representation is slightly inaccurate."
 msgstr ""
+"Los sistemas modernos usualmente proveen y soportan números de punto "
+"flotante conformes al estándar llamado IEEE 754. El tipo de dato C `double` "
+"es usualmente implementado como un numero 64-bit IEEE 754, el cual usa 52 "
+"bits de espacio para la mantisa. esto significa que los números solo pueden "
+"ser especificados a 52 bits de precisión. Si se intenta representar números  "
+"cuya expansión se repite interminablemente, la expansión se termina a los 52 "
+"bits. Desafortunadamente la mayoría de software necesita producir salidas en "
+"base a 10 y comúnmente las fracciones en base 10 a menudo repiten decimales "
+"en binario. Por ejemplo 1.1 decimal en binario es ``1.0001100110011 ...``; 1 "
+"= 1/16 + 1/32 + 1/256 genera un numero infinito de términos adicionales. "
+"Esto significa que según en IEEE 754 se tiene que cortar ese decimal "
+"repetido infinitamente después de 52 dígitos, por lo que la representación "
+"es ligeramente inexacta."
 
 #: ../Doc/whatsnew/2.4.rst:515
 msgid "Sometimes you can see this inaccuracy when the number is printed::"
 msgstr ""
+"Algunas veces se puede ver esta inexactitud cuando el numero es impreso por "
+"pantalla:"
 
 #: ../Doc/whatsnew/2.4.rst:520
 msgid ""
@@ -790,6 +832,11 @@ msgid ""
 "however, the inaccuracy is still there and subsequent operations can magnify "
 "the error."
 msgstr ""
+"La inexactitud no siempre es visible cuando se imprime el numero porque el "
+"punto flotante a decimal y conversión a cadena de texto es entregada por la "
+"librería C y la mayoría de las librerías C tratan de producir una salida "
+"sensible. Incluso si no es mostrado, la inexactitud sigue ahí y las "
+"operaciones subsecuentes pueden agrandar el error."
 
 #: ../Doc/whatsnew/2.4.rst:525
 msgid ""
@@ -801,14 +848,21 @@ msgid ""
 "for applications where it does matter,  it's a lot of work to implement your "
 "own custom arithmetic routines."
 msgstr ""
+"Para muchas aplicaciones esto no importa. Si estoy trazando puntos y "
+"mostrándolos en el monitor la diferencia entre 1.1 y 1.1000000000000001 es "
+"muy pequeña para ser visible.  Los reportes a menudo limitan la salida de un "
+"cierto numero de decimales y si se redondea el numero a dos o tres e incluso "
+"a 8 decimales, el error nunca aparece. Sin embargo, para las aplicaciones "
+"donde esto importa, es una cantidad de trabajo importante el personalizar "
+"los cálculos aritméticos."
 
 #: ../Doc/whatsnew/2.4.rst:533
 msgid "Hence, the :class:`Decimal` type was created."
-msgstr ""
+msgstr "Es por eso que el tipo de clase `Decimal` fue creada."
 
 #: ../Doc/whatsnew/2.4.rst:537
 msgid "The :class:`Decimal` type"
-msgstr ""
+msgstr "El tipo de clase `Decimal`"
 
 #: ../Doc/whatsnew/2.4.rst:539
 msgid ""
@@ -818,6 +872,11 @@ msgid ""
 "used to wrap up various settings such as the precision and default rounding "
 "mode."
 msgstr ""
+"Un nuevo modulo `decimal` fue añadido a la librería estándar de Python. Esta "
+"contiene dos clases, clase `Decimal` y clase:`Context`. Las instancias de la "
+"clase decimal representan numerosos y la instancia de la clase contexto son "
+"usadas para condensar varios ajustes como la precisión y el modo de redondeo "
+"por defecto."
 
 #: ../Doc/whatsnew/2.4.rst:544
 msgid ""
@@ -826,18 +885,26 @@ msgid ""
 "represents.  :class:`Decimal` instances can be created from integers or "
 "strings::"
 msgstr ""
+"Las instancias de la clase Decimal son inmutables como los números enteros y "
+"números de punto flotante en Python, una vez han sido creados no se puede "
+"cambiar el valor de lo que la instancia representa. Las instancias de la "
+"clase decimal pueden ser creados desde números enteros o cadenas de texto:"
 
 #: ../Doc/whatsnew/2.4.rst:555
 msgid ""
 "You can also provide tuples containing the sign, the mantissa represented  "
 "as a tuple of decimal digits, and the exponent::"
 msgstr ""
+"Tambien se pueden proveer tuplas que contentan el signo, la mantisa "
+"representada como una tupla de numeros decimales y el exponente:"
 
 #: ../Doc/whatsnew/2.4.rst:561
 msgid ""
 "Cautionary note: the sign bit is a Boolean value, so 0 is positive and 1 is "
 "negative."
 msgstr ""
+"Precaución: El signo bit es un valor booleano entonces 0 es positivo y 1 es "
+"negativo."
 
 #: ../Doc/whatsnew/2.4.rst:564
 msgid ""
@@ -848,6 +915,12 @@ msgid ""
 "convert the floating-point number into a string using the desired precision "
 "and pass the string to the :class:`Decimal` constructor::"
 msgstr ""
+"Convertir desde números de punto flotante posee un pequeño problema, el "
+"punto flotante representa 1.1 y se convierte en numero decimal como 1.1 o "
+"por 1.1 mas cualquier inexactitud que se introduzca? La decisión fue evitar "
+"el problema y dejar tal conversión fuera de la API. En su lugar se debe "
+"convertir el número de punto flotante en una cadena con la precisión deseada "
+"y pasar la cadena al constructor: class: `Decimal` :"
 
 #: ../Doc/whatsnew/2.4.rst:577
 msgid ""
@@ -855,12 +928,17 @@ msgid ""
 "mathematical operations on them.  One limitation: exponentiation requires an "
 "integer exponent::"
 msgstr ""
+"Una vez que se tiene la instancia de la clase `Decimal` se pueden realizar "
+"las operaciones matemáticas de rigor. Una limitación, la exponenciación "
+"requiere un exponente expresado en tipo de dato entero:"
 
 #: ../Doc/whatsnew/2.4.rst:598
 msgid ""
 "You can combine :class:`Decimal` instances with integers, but not with "
 "floating-point numbers::"
 msgstr ""
+"Se puede combinar la instancia de la clase `Decimal` con enteros pero no con "
+"números de punto flotante:"
 
 #: ../Doc/whatsnew/2.4.rst:609
 msgid ""
@@ -870,6 +948,11 @@ msgid ""
 "precision and accuracy.  You'll also get back a regular floating-point "
 "number and not a :class:`Decimal`.   ::"
 msgstr ""
+"Los números en la clase `Decimal` pueden ser usados con los módulos `math` y "
+"`cmath` pero es preciso aclarar que ellos serán inmediatamente convertidos a "
+"números de punto flotante antes de realizar la operación, resultando en una "
+"posible perdida de precisión y exactitud. También obtendrá un número de "
+"punto flotante y no una clase  `Decimal`:"
 
 #: ../Doc/whatsnew/2.4.rst:622
 msgid ""
@@ -877,20 +960,25 @@ msgid ""
 "`Decimal`, but if you need other things such as trigonometric functions "
 "you'll have to implement them. ::"
 msgstr ""
+"Las instancias de la clase Decimal poseen un método `sqrt` que retorna una "
+"clase Decimal pero si se necesita otro tipo de cosas como funciones "
+"trigonométricas se tendrían que implementar:"
 
 #: ../Doc/whatsnew/2.4.rst:631
 msgid "The :class:`Context` type"
-msgstr ""
+msgstr "El tipo de clase `Context`"
 
 #: ../Doc/whatsnew/2.4.rst:633
 msgid ""
 "Instances of the :class:`Context` class encapsulate several settings for "
 "decimal operations:"
 msgstr ""
+"Las instancias de la clase `Context` encapsulan varios ajustes para "
+"operaciones con decimales:"
 
 #: ../Doc/whatsnew/2.4.rst:636
 msgid ":attr:`prec` is the precision, the number of decimal places."
-msgstr ""
+msgstr ":attr:`prec`es la precisión el numero de decimales."
 
 #: ../Doc/whatsnew/2.4.rst:638
 msgid ""
@@ -898,6 +986,9 @@ msgid ""
 "constants for the various possibilities: :const:`ROUND_DOWN`, :const:"
 "`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN`, and various others."
 msgstr ""
+"El atributo`rounding` especifica el modo de redondeo. El modulo decimal "
+"tiene constantes para varias posibilidades, :const:`ROUND_DOWN`, :const:"
+"`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN` y varias otras."
 
 #: ../Doc/whatsnew/2.4.rst:642
 msgid ""
@@ -906,6 +997,10 @@ msgid ""
 "returned.  Some examples of error conditions are division by zero, loss of "
 "precision, and overflow."
 msgstr ""
+"El atributo :attr:`traps` es un diccionario que especifica lo que sucede al "
+"encontrar ciertas condiciones de error: Ya sea una excepción lanzada o un "
+"valor es retornado. algunos ejemplos de errores son las divisiones por cero, "
+"perdida de precisión o desbordamiento."
 
 #: ../Doc/whatsnew/2.4.rst:647
 msgid ""
@@ -914,6 +1009,10 @@ msgid ""
 "default precision, rounding, or trap handling.  The following example shows "
 "the effect of changing the precision of the default context::"
 msgstr ""
+"Hay un contexto predeterminado local de subprocesos disponible llamando "
+"`getcontext`, se puede cambiar las propiedades de este contexto para alterar "
+"la precisión por defecto, redondear o manejar trampas. el siguiente ejemplo "
+"muestra el efecto de cambiar la precisión del contexto por defecto:"
 
 #: ../Doc/whatsnew/2.4.rst:660
 msgid ""
@@ -921,42 +1020,53 @@ msgid ""
 "return a special value such as infinity or not-a-number, or exceptions can "
 "be raised::"
 msgstr ""
+"Las acciones por defecto para condiciones de error es seleccionarle, ya sea "
+"que el modulo pueda retornar un valor especial como un infinito o un valor "
+"no numérico NaN o se pueden lanzar excepciones:"
 
 #: ../Doc/whatsnew/2.4.rst:673
 msgid ""
 "The :class:`Context` instance also has various methods for formatting  "
 "numbers such as :meth:`to_eng_string` and :meth:`to_sci_string`."
 msgstr ""
+"La instancia de la clase `Context` tambien tiene varios métodos para "
+"formatear numero tales como :meth:`to_eng_string` y :meth:`to_sci_string`."
 
 #: ../Doc/whatsnew/2.4.rst:676
 msgid ""
 "For more information, see the documentation for the :mod:`decimal` module, "
 "which includes a quick-start tutorial and a reference."
 msgstr ""
+"Para mas información, revisar la documentación para el modulo :mod:`decimal` "
+"el cual incluye un tutoría de inicio rápido y una referencia."
 
 #: ../Doc/whatsnew/2.4.rst:684
 msgid ":pep:`327` - Decimal Data Type"
-msgstr ""
+msgstr ":pep:`327` - Tipo de dato decimal"
 
 #: ../Doc/whatsnew/2.4.rst:683
 msgid ""
 "Written by Facundo Batista and implemented by Facundo Batista, Eric Price, "
 "Raymond Hettinger, Aahz, and Tim Peters."
 msgstr ""
+"Escrito por Facundo Batista e implementado por Facundo Batista, Eric Price, "
+"Raymond Hettinger, Aahz y Tim Peters."
 
 #: ../Doc/whatsnew/2.4.rst:688
 msgid "http://www.lahey.com/float.htm"
-msgstr ""
+msgstr "http://www.lahey.com/float.htm"
 
 #: ../Doc/whatsnew/2.4.rst:687
 msgid ""
 "The article uses Fortran code to illustrate many of the problems that "
 "floating-point inaccuracy can cause."
 msgstr ""
+"El articulo usa código Fortran para ilustrar varios de los problemas que la "
+"inexactitud de los puntos flotantes pueden causar."
 
 #: ../Doc/whatsnew/2.4.rst:692
 msgid "http://speleotrove.com/decimal/"
-msgstr ""
+msgstr "http://speleotrove.com/decimal/"
 
 #: ../Doc/whatsnew/2.4.rst:691
 msgid ""
@@ -965,10 +1075,14 @@ msgid ""
 "Much of this material was written by Mike Cowlishaw, designer of the Rexx "
 "language."
 msgstr ""
+"Una descripción de una representación basada en decimales. Esta "
+"representación ha sido propuesta como un estándar y subyace al nuevo tipo de "
+"dato decimal en Python. La mayor parte de este material fue escrita por Mike "
+"Cowlishaw, diseñador del lenguaje Rexx."
 
 #: ../Doc/whatsnew/2.4.rst:699
 msgid "PEP 328: Multi-line Imports"
-msgstr ""
+msgstr "PEP 328: Importaciones multilínea"
 
 #: ../Doc/whatsnew/2.4.rst:701
 msgid ""
@@ -978,6 +1092,13 @@ msgid ""
 "sequence is  very long, you can either write multiple imports from the same "
 "module, or you can use backslashes to escape the line endings like this::"
 msgstr ""
+"Un pequeño cambio en el lenguaje ha sido una modificación a una sintaxis "
+"confusa que ha sido cambiada para hacer mas fácil el agregar varios nombres "
+"en un modulo. En una declaración ``from module import names``, *names* es "
+"una secuencia de nombres separados por comas. Si la sentencia es muy larga, "
+"se puede ya sea escribir múltiples sentencias import desde el mismo modulo o "
+"se pueden usar barras invertidas para escapar de los términos de linea como "
+"esto:"
 
 #: ../Doc/whatsnew/2.4.rst:712
 msgid ""
@@ -985,6 +1106,10 @@ msgid ""
 "parentheses.  Python ignores newlines within a parenthesized expression, so "
 "the backslashes are no longer needed::"
 msgstr ""
+"La sintaxis cambió en Python 2.4 y es simplemente el permitir poner los "
+"nombres dentro de paréntesis. Python ignora nuevas lineas dentro de una "
+"expresión entre paréntesis por lo que las barras invertidas ya no se "
+"necesitan:"
 
 #: ../Doc/whatsnew/2.4.rst:721
 msgid ""
@@ -993,18 +1118,27 @@ msgid ""
 "part of the PEP was not implemented for Python 2.4, but was completed for "
 "Python 2.5."
 msgstr ""
+"La convección de estilo también proponme que todas las declaraciones "
+"usando  :keyword:`import` son importaciones absolutas, con el siguiente "
+"carácter ``.`` indica una importación relativa. Esta parte de la convención "
+"de estilo no fue implementada para Python 2.4 pero fue completada para la "
+"versión 2.5."
 
 #: ../Doc/whatsnew/2.4.rst:728
 msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative"
-msgstr ""
+msgstr ":pep:`328` - Importaciones multi linea y absolutas/relativas"
 
 #: ../Doc/whatsnew/2.4.rst:729
 msgid "Written by Aahz.  Multi-line imports were implemented by Dima Dorfman."
 msgstr ""
+"Escrita por Aahz.  Importaciones multi linea fueron implementadas por Dima "
+"Dorfman."
 
 #: ../Doc/whatsnew/2.4.rst:735
 msgid "PEP 331: Locale-Independent Float/String Conversions"
 msgstr ""
+"PEP 331: Conversiones locales-independientes números flotantes/cadenas de "
+"texto"
 
 #: ../Doc/whatsnew/2.4.rst:737
 msgid ""
@@ -1015,6 +1149,13 @@ msgid ""
 "numeric locale remain set to the ``'C'`` locale.  Often this was because the "
 "code was using the C library's :c:func:`atof` function."
 msgstr ""
+"Los modulos :mod:`locale`deja que el software de Python seleccione varias "
+"conversiones y despliegue convenciones que estan localizadas en un pais "
+"particular o lenguaje. Sin embargo, el modulo es cuidadoso en no cambiar el "
+"local numérico porque la implementación de Python requería que la "
+"configuración regional numérica permaneciera establecida en la configuración "
+"regional `` 'C' ' . A menudo, esto se debía a que el código utilizaba la "
+"función: c: func: `atof` de la biblioteca C."
 
 #: ../Doc/whatsnew/2.4.rst:744
 msgid ""
@@ -1023,24 +1164,35 @@ msgid ""
 "set. The motivating example was GTK+, whose user interface widgets weren't "
 "displaying numbers in the current locale."
 msgstr ""
+"No configurar la configuración regional numérica causaba problemas para las "
+"extensiones que usaban librerías externas de C, sin embargo, porque no "
+"configuraban la correcta configuración. El ejemplo mas patente fue GTK+, "
+"cuya interfaz de usuario no mostraba números en la ubicación actual."
 
 #: ../Doc/whatsnew/2.4.rst:749
 msgid ""
 "The solution described in the PEP is to add three new functions to the "
 "Python API that perform ASCII-only conversions, ignoring the locale setting:"
 msgstr ""
+"La solución descrita en la convención de estilo es añadir tres nuevas "
+"funciones a la API de python que performa solo conversiones a ASCII, "
+"ignorando las configuraciones locales:"
 
 #: ../Doc/whatsnew/2.4.rst:752
 msgid ""
 "``PyOS_ascii_strtod(str, ptr)``  and ``PyOS_ascii_atof(str, ptr)`` both "
 "convert a string to a C :c:type:`double`."
 msgstr ""
+"``PyOS_ascii_strtod(str, ptr)``  y``PyOS_ascii_atof(str, ptr)`` ambos "
+"convertidos de cadena de texto a C :c:type:`double`."
 
 #: ../Doc/whatsnew/2.4.rst:755
 msgid ""
 "``PyOS_ascii_formatd(buffer, buf_len, format, d)`` converts a :c:type:"
 "`double` to an ASCII string."
 msgstr ""
+"``PyOS_ascii_formatd(buffer, buf_len, format, d)`` convierte en :c:type:"
+"`double` a una cadena de texto ASCII."
 
 #: ../Doc/whatsnew/2.4.rst:758
 msgid ""
@@ -1050,28 +1202,36 @@ msgid ""
 "`locale` module  can now change the numeric locale, letting extensions such "
 "as GTK+  produce the correct results."
 msgstr ""
+"El codigo para estas funciones proviene desde la librería GLib  (https://"
+"developer.gnome.org/glib/stable/) cuyos desarrolladores amablemente han "
+"residenciado las funciones relevantes y las han donado a la fundación de "
+"software Python. El modulo :mod:`locale`ahora puede cambiar la configuración "
+"local, dejando que las extensiones como GTK¿ produzcan los resultados "
+"correctos."
 
 #: ../Doc/whatsnew/2.4.rst:767
 msgid ":pep:`331` - Locale-Independent Float/String Conversions"
-msgstr ""
+msgstr ":pep:`331` Conversiones Local-Independiente flotante/cadena de texto"
 
 #: ../Doc/whatsnew/2.4.rst:768
 msgid "Written by Christian R. Reis, and implemented by Gustavo Carneiro."
-msgstr ""
+msgstr "Escrito por Christian R. Reis, e implementado por Gustavo Carneiro."
 
 #: ../Doc/whatsnew/2.4.rst:774
 msgid "Other Language Changes"
-msgstr ""
+msgstr "Otros cambios en el lenguaje"
 
 #: ../Doc/whatsnew/2.4.rst:776
 msgid ""
 "Here are all of the changes that Python 2.4 makes to the core Python "
 "language."
 msgstr ""
+"Aqui estan todos los cambios que Python 2.4 ha hecho al core del lenguaje "
+"Python."
 
 #: ../Doc/whatsnew/2.4.rst:778
 msgid "Decorators for functions and methods were added (:pep:`318`)."
-msgstr ""
+msgstr "Decoradores para funciones fueron añadidas (:pep:`318`)."
 
 #: ../Doc/whatsnew/2.4.rst:780
 msgid ""

From acf4bd281b99fddb209c10cd81c2af5b1bf3f609 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 14 Jun 2021 17:50:44 +0200
Subject: [PATCH 08/18] avance

---
 dictionaries/2.4.txt |  2 ++
 whatsnew/2.4.po      | 75 +++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 70 insertions(+), 7 deletions(-)

diff --git a/dictionaries/2.4.txt b/dictionaries/2.4.txt
index b49c1b8abb..c67bf905c1 100644
--- a/dictionaries/2.4.txt
+++ b/dictionaries/2.4.txt
@@ -7,3 +7,5 @@ Zadka
 iterator
 Jewett
 Skip
+Reifschneider
+Hettinger
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index e0ad409e1a..56da05d0d5 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-05-21 20:38+0200\n"
+"PO-Revision-Date: 2021-06-14 17:47+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1231,29 +1231,36 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:778
 msgid "Decorators for functions and methods were added (:pep:`318`)."
-msgstr "Decoradores para funciones fueron añadidas (:pep:`318`)."
+msgstr "Fueron añadidos decoraciones para funciones (:pep:`318`)."
 
 #: ../Doc/whatsnew/2.4.rst:780
 msgid ""
 "Built-in :func:`set` and :func:`frozenset` types were  added (:pep:`218`). "
 "Other new built-ins include the ``reversed(seq)`` function (:pep:`322`)."
 msgstr ""
+"Funciones built-in `set` y :func:`frozenset` fueron añadidas (:pep:`218`). "
+"Otras nuevas funciones built-ins incluyen la función ``reversed(seq)`` (:pep:"
+"`322`)."
 
 #: ../Doc/whatsnew/2.4.rst:783
 msgid "Generator expressions were added (:pep:`289`)."
-msgstr ""
+msgstr "Generador de expresiones fueron añadidas (:pep:`289`)."
 
 #: ../Doc/whatsnew/2.4.rst:785
 msgid ""
 "Certain numeric expressions no longer return values restricted to 32 or 64 "
 "bits (:pep:`237`)."
 msgstr ""
+"Algunas expresiones numéricas ya no retornan valores restringidos a 32 o 64 "
+"bits (:pep:`237`)."
 
 #: ../Doc/whatsnew/2.4.rst:788
 msgid ""
 "You can now put parentheses around the list of names in a ``from module "
 "import names`` statement (:pep:`328`)."
 msgstr ""
+"Se puede poner entre paréntesis una lista de nombres en la declaración "
+"``from module import names`` (:pep:`328`)."
 
 #: ../Doc/whatsnew/2.4.rst:791
 msgid ""
@@ -1261,6 +1268,10 @@ msgid ""
 "class:`dict` constructor.  This includes any mapping, any iterable of key/"
 "value pairs, and keyword arguments. (Contributed by Raymond Hettinger.)"
 msgstr ""
+"El método :meth:`dict.update` ahora acepta el mismo argumento que el "
+"constructor de la :class:`dict`. Esto incluye cualquier tipo de mapeo, "
+"iterable pares de clave/valor y argumentos de palabra clave. (Contribución "
+"de Raymond Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:795
 msgid ""
@@ -1268,6 +1279,10 @@ msgid ""
 "an optional argument for specifying a fill character other than a space. "
 "(Contributed by Raymond Hettinger.)"
 msgstr ""
+"Los métodos de cadena de caracteres :meth:`ljust`, :meth:`rjust` y :meth:"
+"`center` ahora toman un argumento de tipo opcional para especificar un "
+"carácter de relleno que no sea un espacio. (Contribución de Raymond "
+"Hettinger)."
 
 #: ../Doc/whatsnew/2.4.rst:799
 msgid ""
@@ -1275,6 +1290,9 @@ msgid ""
 "`split` method but splits from the end of the string.   (Contributed by Sean "
 "Reifschneider.) ::"
 msgstr ""
+"Cadenas de caracteres también han ganado un método :meth:`rsplit` que "
+"funciona como el método :meth:`split` pero divide desde el final de la "
+"cadena de caracteres. (Contribución de Sean Reifschneider)"
 
 #: ../Doc/whatsnew/2.4.rst:808
 msgid ""
@@ -1282,6 +1300,10 @@ msgid ""
 "meth:`sort` method of lists. These parameters make some common usages of :"
 "meth:`sort` simpler. All of these parameters are optional."
 msgstr ""
+"Tres parametros de argumentos de palabra clave *cmp*, *key* y *reverse* "
+"fueron añadidos al método de listas :meth:`sort`. Estos parámetros hacen "
+"algunos usos comunes del método :meth:`sort` mas simple. Todos estos "
+"parámetros son opcionales."
 
 #: ../Doc/whatsnew/2.4.rst:812
 msgid ""
@@ -1291,6 +1313,10 @@ msgid ""
 "Previously this was the only parameter that could be provided to :meth:"
 "`sort`."
 msgstr ""
+"Para el parámetro *cmp*  el valor debe ser una función comparativa que toma "
+"dos parámetros y retorna -1, 0 o + 1 dependiendo de como compare los "
+"parámetros. Esta función será usada para ordenar la lista. Previamente esto "
+"era el único parámetro que podía ser entregado al :meth:`sort`."
 
 #: ../Doc/whatsnew/2.4.rst:817
 msgid ""
@@ -1298,6 +1324,10 @@ msgid ""
 "returns a comparison key for the element.  The list is then sorted using the "
 "comparison keys.  The following example sorts a list case-insensitively::"
 msgstr ""
+"*key* debe ser una función con un solo parámetro que toma un elemento de la "
+"lista y retorna una llave de comparación para el elemento. Entonces la lista "
+"es ordenado usando las claves de comparación. El siguiente ejemplo ordena "
+"una lista sin distinción de mayúsculas ni minúsculas::"
 
 #: ../Doc/whatsnew/2.4.rst:834
 msgid ""
@@ -1307,6 +1337,12 @@ msgid ""
 "the list while using *cmp* will call it twice for each comparison, so using "
 "*key* saves on invocations of the :meth:`lower` method."
 msgstr ""
+"El ultimo ejemplo el cual usa el parámetro *cmp*  is la antigua forma de "
+"ejecutar el orden sin distinción de mayusculas y minúsculas. Funciona pero "
+"es mas lento en vez de usar el parámetro *key*.  El uso de *key* llama al "
+"método : meth: `lower`una vez para cada elemento de la lista mientras el uso "
+"de *cmp* lo llamara dos veces para cada comparación, entonces al usar * key "
+"* se guardan las llamadas del método :meth:`lower` ."
 
 #: ../Doc/whatsnew/2.4.rst:840
 msgid ""
@@ -1314,6 +1350,10 @@ msgid ""
 "avoid a :keyword:`lambda` expression by using an unbound method instead.  "
 "For example, the above case-insensitive sort is best written as::"
 msgstr ""
+"Para funciones de clave sencillas y comparativas es a menudo posible el "
+"obviar la palabra clave `lambda` usando un método sin ligar en reemplazo. El "
+"siguiente ejemplo de orden sin importar mayusculas ni minúsculas es mejor "
+"escrito como se muestra::"
 
 #: ../Doc/whatsnew/2.4.rst:848
 msgid ""
@@ -1321,6 +1361,9 @@ msgid ""
 "true, the list will be sorted into reverse order. Instead of ``L.sort(); L."
 "reverse()``, you can now write ``L.sort(reverse=True)``."
 msgstr ""
+"Finalmente el parámetro *reverse* toma un valor de tipo booleano. Si el "
+"valor es verdadero la lista será reversada. En vez de``L.sort(); L."
+"reverse()`` ahora se puede escribir ``L.sort(reverse=True)``."
 
 #: ../Doc/whatsnew/2.4.rst:852
 msgid ""
@@ -1330,10 +1373,18 @@ msgid ""
 "list by age, resulting in a list sorted by age where people with the same "
 "age are in name-sorted order."
 msgstr ""
+"Los resultados del ordenamiento ahora están garantizados que son estables. "
+"Esto significa que dos entradas con iguales claves serán retiradas en el "
+"mismo orden en que fueron ingresadas. Por ejemplo se puede ordenar una lista "
+"de personas por el nombre y entonces ordenarla por edad, resultando en una "
+"lista ordenada donde las personas con la misma edad están en el mismo orden "
+"por nombre."
 
 #: ../Doc/whatsnew/2.4.rst:858
 msgid "(All changes to :meth:`sort` contributed by Raymond Hettinger.)"
 msgstr ""
+"(Todos los cambios al método :meth:`sort` fueron realizados por Raymond "
+"Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:860
 msgid ""
@@ -1341,29 +1392,35 @@ msgid ""
 "place :meth:`list.sort` method but can be used in expressions.  The "
 "differences are:"
 msgstr ""
+"Se tiene una nueva función incorporada ``sorted(iterable)`` que trabaja como "
+"el método in situ :meth:`list.sort` que se puede usar en expresiones. Las "
+"diferencias son:"
 
 #: ../Doc/whatsnew/2.4.rst:864
 msgid "the input may be any iterable;"
-msgstr ""
+msgstr "el dato de entrada puede ser algún interable;"
 
 #: ../Doc/whatsnew/2.4.rst:866
 msgid "a newly formed copy is sorted, leaving the original intact; and"
-msgstr ""
+msgstr "se ordena una copia recién formada, manteniendo el original intacto y"
 
 #: ../Doc/whatsnew/2.4.rst:868
 msgid "the expression returns the new sorted copy"
-msgstr ""
+msgstr "la expresión retorna una nueva copia ordenada"
 
 #: ../Doc/whatsnew/2.4.rst:891 ../Doc/whatsnew/2.4.rst:919
 #: ../Doc/whatsnew/2.4.rst:1212
 msgid "(Contributed by Raymond Hettinger.)"
-msgstr ""
+msgstr "(Contribución de Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:893 ../Doc/whatsnew/2.4.rst:1519
 msgid ""
 "Integer operations will no longer trigger an :exc:`OverflowWarning`. The :"
 "exc:`OverflowWarning` warning will disappear in Python 2.5."
 msgstr ""
+"Operaciones de numeros enteros no lanzaran una excepción :exc:"
+"`OverflowWarning`. La advertencia sobre :exc:`OverflowWarning` desaparecerá "
+"en Python 2.5."
 
 #: ../Doc/whatsnew/2.4.rst:896
 msgid ""
@@ -1372,6 +1429,10 @@ msgid ""
 "as a script. For example,  you can now run the Python profiler with ``python "
 "-m profile``. (Contributed by Nick Coghlan.)"
 msgstr ""
+"Se añadió al interprete una nueva opción de cambio :option:`-m` la cual toma "
+"un nombre, busca el modulo correspondiente en ``sys.path`` y corre el modulo "
+"como script. Ahora por ejemplo se puede correr el perfilador de Python con "
+"``python -m profile``. (Contribución de Nick Coghlan)"
 
 #: ../Doc/whatsnew/2.4.rst:901
 msgid ""

From 7d35307e5de3d30c55b1bca349fcaa226ed5ea08 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Mon, 21 Jun 2021 15:29:08 +0200
Subject: [PATCH 09/18] avance

---
 whatsnew/2.4.po | 78 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 74 insertions(+), 4 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 56da05d0d5..1c0113ad87 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-06-14 17:47+0200\n"
+"PO-Revision-Date: 2021-06-21 15:28+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -17,7 +17,7 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "Last-Translator: \n"
 "Language: es\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 3.0\n"
 
 #: ../Doc/whatsnew/2.4.rst:3
 msgid "What's New in Python 2.4"
@@ -1441,6 +1441,10 @@ msgid ""
 "for the *locals* parameter.  Previously this had to be a regular Python "
 "dictionary.  (Contributed by Raymond Hettinger.)"
 msgstr ""
+"La expresión ``eval(expr, globals, locals)`` la función`execfile(filename, "
+"globals, locals)`` y la sentencia ``exec`` ahora aceptan cualquier tipo de "
+"mapeo para parámetros locales. Previamente esto era parte de un diccionario "
+"de Python. (Contribución de Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:906
 msgid ""
@@ -1449,6 +1453,10 @@ msgid ""
 "`TypeError` exception.  This makes them more suitable for use with variable "
 "length argument lists::"
 msgstr ""
+"La función incorporada`zip` y la función  `itertools.izip`ahora retornan una "
+"lista hacia si se llama sin argumentos. Previamente estos lanzaban una "
+"excepción de tipo :exc:`TypeError`. Esto lo hace mas apropiado de usar con "
+"listas de argumentos de longitud variable:"
 
 #: ../Doc/whatsnew/2.4.rst:921
 msgid ""
@@ -1457,16 +1465,24 @@ msgid ""
 "left behind would fool further imports of the same module into succeeding, "
 "leading to confusing errors.   (Fixed by Tim Peters.)"
 msgstr ""
+"Al Encontrar un error al importar un módulo ya no deja un objeto de módulo "
+"parcialmente inicializado en `` sys.modules ''. El objeto de módulo "
+"incompleto dejado atrás engañaría a otras importaciones del mismo módulo "
+"para que tuvieran éxito, lo que provocaría errores confusos. (Corregido por "
+"Tim Peters.)"
 
 #: ../Doc/whatsnew/2.4.rst:926
 msgid ""
 ":const:`None` is now a constant; code that binds a new value to  the name "
 "``None`` is now a syntax error. (Contributed by Raymond Hettinger.)"
 msgstr ""
+":const:`None`es ahora una constante, el código que une un nuevo valor con el "
+"nombre :const:`None` es ahora un error de sintaxis (Contribución de Raymond "
+"Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:933
 msgid "Optimizations"
-msgstr ""
+msgstr "Optimizaciones"
 
 #: ../Doc/whatsnew/2.4.rst:935
 msgid ""
@@ -1476,6 +1492,11 @@ msgid ""
 "`items`, :meth:`iterkeys`, :meth:`itervalues`, and :meth:`iteritems`. "
 "(Contributed by Raymond Hettinger.)"
 msgstr ""
+"Los bucles internos para separar listas y tuplas fueron optimizados y ahora "
+"corren un tercio mas rapido. Los bucles internos para diccionarios tambien "
+"fueron optimizados resultando en una mejora en el rendimiento para :meth:"
+"`keys`, :meth:`values`, :meth:`items`, :meth:`iterkeys`, :meth:`itervalues`, "
+"y :meth:`iteritems`. (Contribución de Raymond Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:941
 msgid ""
@@ -1486,6 +1507,14 @@ msgid ""
 "was also optimized and no longer converts its argument into a temporary list "
 "before extending the base list.  (Contributed by Raymond Hettinger.)"
 msgstr ""
+"El mecanismo para mejorar y contraer listas fue optimizada  para efectos de "
+"velocidad y eficiencia en la utilización de recursos. Anexar y quitar "
+"elementos de una lista es ahora mas rápido debido al código mas eficiente y "
+"al menos frecuente uso de la función subyacente  :c:func:`realloc`. Las "
+"listas por comprensión también son beneficiadas, el método :meth:`list."
+"extend` fue también optimizado y ya no convierte mas el argumento en una "
+"lista temporal antes de extender la lista base. (Contribución de Raymond "
+"Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:948
 msgid ""
@@ -1493,6 +1522,9 @@ msgid ""
 "now run several times faster with non-sequence arguments that supply a :meth:"
 "`__len__` method.  (Contributed by Raymond Hettinger.)"
 msgstr ""
+"Las funciones :func:`list`, :func:`tuple`, :func:`map`, :func:`filter` y :"
+"func:`zip` ahora corren mucho mas rápido con argumentos no secuenciales que "
+"ahora suministra el método :meth:`__len__`. (Contribución Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:952
 msgid ""
@@ -1503,6 +1535,12 @@ msgid ""
 "arguments to functionals: ``map(mydict.__getitem__, keylist)``. (Contributed "
 "by Raymond Hettinger.)"
 msgstr ""
+"Los métodos :meth:`list.__getitem__`, :meth:`dict.__getitem__` y :meth:`dict."
+"__contains__`  ahora son implementados como objetos de la clase "
+"`method_descriptor` en vez de los objetos de la clase `wrapper_descriptor` . "
+"Este acceso dobla el rendimiento y hace que sea mas apropiado para ser usado "
+"como argumentos de:``map(mydict.__getitem__, keylist)``. (Contribución de "
+"Raymond Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:959
 msgid ""
@@ -1510,6 +1548,9 @@ msgid ""
 "for list comprehensions and speeds them up by about a third.  (Contributed "
 "by Raymond Hettinger.)"
 msgstr ""
+"Adicionalmente se ha agregado a un nuevo código de operación ``LIST_APPEND`` "
+"esto simplifica la generación de código a nivel de byte para las listas por "
+"comprensión y las agiliza en aproximadamente un tercio."
 
 #: ../Doc/whatsnew/2.4.rst:963
 msgid ""
@@ -1517,6 +1558,9 @@ msgid ""
 "faster bytecode; remarkably, the resulting bytecode is  more readable.  "
 "(Enhanced by Raymond Hettinger.)"
 msgstr ""
+"El optimizador de código a nivel de byte ha sido mejorado para producir "
+"código a nivel de byte mas corto y rápido. Esto resulta en código mas "
+"legible. (Contribución de Raymond Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:967
 msgid ""
@@ -1527,6 +1571,13 @@ msgid ""
 "strings is still recommended when you want to efficiently glue a large "
 "number of strings together. (Contributed by Armin Rigo.)"
 msgstr ""
+"La concatenación de cadenas de texto en la declaración de ``s = s + \"abc"
+"\"`` and ``s += \"abc\"``ahora son ejecutadas de forma mas eficiente en "
+"ciertas circunstancias. Esta optimizaciones no serán mostradas en otras "
+"implementaciones de Python tales como Python, entonces no se debe utilizar, "
+"es mejor seguir utilizando el método :meth:`join`de cadenas de caracteres si "
+"se quiere mantener la eficiencia de concatenar un largo numero de cadenas de "
+"caracteres. (Contribución de Armin Rigo.)"
 
 #: ../Doc/whatsnew/2.4.rst:974
 msgid ""
@@ -1536,10 +1587,16 @@ msgid ""
 "used measurement of Python's performance.  Your own applications may show "
 "greater or smaller benefits from Python 2.4.)"
 msgstr ""
+"El resultado de las optimizaciones de la versión 2.4 es que tomando Python "
+"2.4 como punto de referencia corre alrededor de un 5% mas rápido que Python "
+"2.3 y un 35% mas rápido que Python 2.2 (pystone no es particularmente un "
+"buen punto de referencia pero es el mas usado para medir rendimiento en "
+"Python. Sus propias aplicaciones pueden mostrar beneficios mas grandes o "
+"mínimos desde Python 2.4)"
 
 #: ../Doc/whatsnew/2.4.rst:990
 msgid "New, Improved, and Deprecated Modules"
-msgstr ""
+msgstr "Módulos nuevos, mejorados y obsoletos"
 
 #: ../Doc/whatsnew/2.4.rst:992
 msgid ""
@@ -1549,6 +1606,12 @@ msgid ""
 "source tree for a more complete list of changes, or look through the CVS "
 "logs for all the details."
 msgstr ""
+"Como es usual, la librería estándar de Python recibió un número de mejoras y "
+"corrección de errores. Aquí hay una lista parcial de los cambios mas "
+"notables, ordenados alfabéticamente por nombre de módulo. Consulte el "
+"archivo :file:`Misc/NEWS` en la estructura del directorio para una completa "
+"lista de los cambios o se puede buscar a través del registro CVS para "
+"obtener todos los detalles."
 
 #: ../Doc/whatsnew/2.4.rst:997
 msgid ""
@@ -1556,6 +1619,9 @@ msgid ""
 "parameter that lets you perform a limited number of passes through the "
 "polling loop.  The default is still to loop forever."
 msgstr ""
+"El módulo :mod:`asyncore` y la función :func:`loop`ahora tiene un parámetro "
+"*count* que permite ejecutar un limitado numero de pases mediante el bucle. "
+"El valor predeterminado sigue siendo el bucle para siempre."
 
 #: ../Doc/whatsnew/2.4.rst:1001
 msgid ""
@@ -1563,6 +1629,10 @@ msgid ""
 "Base64, Base32, and Base16 encoding and decoding, including optional case "
 "folding and optional alternative alphabets. (Contributed by Barry Warsaw.)"
 msgstr ""
+"El modulo :mod:`base64` ahora tiene un soporte mas completo :rfc:`3548` para "
+"Base64, Base32 y  Base16 para codificación y descodificación, incluyendo "
+"procesos de convertir caracteres a minúsculas y alfabetos alternativos. "
+"(Contribución de Barry Warsaw)"
 
 #: ../Doc/whatsnew/2.4.rst:1005
 msgid ""

From 6aafffcdf695ad91c6921d5a4a41d746a18afa1a Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Tue, 26 Oct 2021 18:08:49 +0200
Subject: [PATCH 10/18] avance

---
 dictionaries/2.4.txt |  23 ++++
 whatsnew/2.4.po      | 311 ++++++++++++++++++++++---------------------
 2 files changed, 181 insertions(+), 153 deletions(-)

diff --git a/dictionaries/2.4.txt b/dictionaries/2.4.txt
index c67bf905c1..c52d19e2c8 100644
--- a/dictionaries/2.4.txt
+++ b/dictionaries/2.4.txt
@@ -9,3 +9,26 @@ Jewett
 Skip
 Reifschneider
 Hettinger
+Svensson
+Hye-Shik
+Chang
+Unsupported
+format 
+character
+Montanaro
+Russell
+iterador
+Åstrand
+Frederik
+Lundh
+rounding
+Rexx
+Dorfman
+atof
+ptr
+Reis
+Carneiro
+hashable
+Rigo
+pystone
+
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 1c0113ad87..f94e27b5e9 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-06-21 15:28+0200\n"
+"PO-Revision-Date: 2021-10-26 18:08+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -72,17 +72,17 @@ msgid ""
 "Often you will be referred to the PEP for a particular new feature for "
 "explanations of the implementation and design rationale."
 msgstr ""
-"Este artículo no pretende entregar una especificación completa y detallada "
-"de cada funcionalidad nueva, en vez de esto, se provee una breve descripción "
-"de las nuevas características. Para obtener más información se debe "
-"consultar la documentación oficial de Python 2.4, tal como la librería de "
-"referencia de Python y el manual de referencia de Python. Otra fuente de "
-"información es PEP (guía de estilo-mejoras de python) para buscar "
-"información sobre la implementación y fundamentación del diseño."
+"Este artículo no pretende proveer una especificación completa y detallada de "
+"cada funcionalidad nueva, en vez de esto, se provee una breve descripción de "
+"las nuevas características. Para obtener más información se debe consultar "
+"la documentación oficial de Python 2.4, tal como la librería de referencia "
+"de Python y el manual de referencia de Python. Otra fuente de información es "
+"PEP (guía de estilo-mejoras de python) para buscar información sobre la "
+"implementación y fundamentación del diseño."
 
 #: ../Doc/whatsnew/2.4.rst:36
 msgid "PEP 218: Built-In Set Objects"
-msgstr "PEP 218: Objetos built-in"
+msgstr "PEP 218: Objetos conjunto integrados"
 
 #: ../Doc/whatsnew/2.4.rst:38
 msgid ""
@@ -95,11 +95,10 @@ msgid ""
 msgstr ""
 "Python 2.3 introdujo el módulo ´set´, implementaciones del lenguaje C de "
 "tipos de datos han sido agregados al core de Python como dos nuevos tipos "
-"built in. ´Set´ o conjuntos (iterable) y ´frozenset´conjuntos congelados "
-"(iterable) . Ellos proveen operaciones de alto rendimiento para pruebas de "
-"testing, eliminar datos duplicados de una secuencia y operaciones "
-"matemáticas como: Uniones, intersecciones, diferencias y diferencias "
-"simétricas. ::"
+"integrados. ``set (iterable)`` y ``frozenset (iterable)`` . Ellos proveen "
+"operaciones de alto rendimiento para pruebas de pertenencia, eliminar datos "
+"duplicados de una secuencia y operaciones matemáticas como: uniones, "
+"intersecciones, diferencias y diferencias simétricas. ::"
 
 #: ../Doc/whatsnew/2.4.rst:71
 msgid ""
@@ -107,9 +106,9 @@ msgid ""
 "is immutable and hashable, it may be used as a dictionary key or as a member "
 "of another set."
 msgstr ""
-"La función built-in frozenset() es la versión inmutable de set(). Como es "
-"inmutable y hashable (su valor no cambia), se puede usar como una llave de "
-"diccionario o como parte de otro set."
+"La función de conjuntos integrados frozenset() es una versión inmutable de "
+"set(). Como es inmutable y hashable (su valor no cambia), se puede usar como "
+"una llave de diccionario o como parte de otro set."
 
 #: ../Doc/whatsnew/2.4.rst:75
 msgid ""
@@ -117,25 +116,25 @@ msgid ""
 "you wish to subclass the :class:`Set` or :class:`ImmutableSet` classes.  "
 "There are currently no plans to deprecate the module."
 msgstr ""
-"El modulo set se encuentra en la librería estándar y puede ser útil si se "
-"desea usar una subclase de set o ImmutableSet classes. No existen planes de "
-"deprecación del modulo."
+"El módulo set se encuentra en la librería estándar y puede ser útil si se "
+"desea usar una subclase de set o :class: `ImmutableSet` No existen planes de "
+"deprecación del módulo."
 
 #: ../Doc/whatsnew/2.4.rst:83
 msgid ":pep:`218` - Adding a Built-In Set Object Type"
-msgstr ":pep:`218` - Agregando un set de tipo de objeto incorporado"
+msgstr ":pep:`218` - Agregando tipo de objeto integrado set"
 
 #: ../Doc/whatsnew/2.4.rst:83
 msgid ""
 "Originally proposed by Greg Wilson and ultimately implemented by Raymond "
 "Hettinger."
 msgstr ""
-"Originalmente propuesto por Greg Wilson e implementado en la posteridad por "
+"Originalmente propuesto por Greg Wilson e implementado finalmente por "
 "Raymond Hettinger."
 
 #: ../Doc/whatsnew/2.4.rst:90
 msgid "PEP 237: Unifying Long Integers and Integers"
-msgstr "PEP 237, Unificando tipos de datos enteros"
+msgstr "PEP 237, Unificando enteros largos y enteros"
 
 #: ../Doc/whatsnew/2.4.rst:92
 msgid ""
@@ -169,7 +168,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:108
 msgid ":pep:`237` - Unifying Long Integers and Integers"
-msgstr ":pep:`237` - Unificando tipos de datos enteros"
+msgstr ":pep:`237` - Unificando enteros largos y enteros"
 
 #: ../Doc/whatsnew/2.4.rst:108
 msgid ""
@@ -194,11 +193,14 @@ msgid ""
 "large.  When trying to write a functionally-styled program, it would be "
 "natural to write something like::"
 msgstr ""
-"La funcionalidad iterator fue introducida en Python 2.2 y el modulo "
-"'itertools' hace mas fácil escribir programas que iteran sobre largos sets "
-"de datos sin tener todo el conjunto de datos en memoria en tiempo de "
+"La funcionalidad iterador, fue introducida en Python 2.2, y el módulo "
+"'itertools' deberían hacer mas fácil escribir programas que iteran sobre "
+"conjuntos grandes de datos sin tener todos los datos en memoria en tiempo de "
 "ejecución. Las listas de comprensión no se ajustan adecuadamente pues "
-"producen en python una lista de objetos.contenido todos los ítems ::"
+"producen en python una lista de objetos conteniendo todos los ítems. Esto "
+"inevitablemente lleva todos los objetos a la memoria lo cual puede ser aun "
+"provoca si el conjunto de datos es muy grande. Cuando se intenta escribir un "
+"programa de estilo funcional, seria lo mas natural escribir algo como::"
 
 #: ../Doc/whatsnew/2.4.rst:129
 msgid "instead of  ::"
@@ -211,9 +213,9 @@ msgid ""
 "form to avoid having all link objects in memory at the same time."
 msgstr ""
 "La primera forma es mas concisa y quizás mas legible pero en caso de "
-"trabajar con un numero largo de objetos podría ser necesario el escribir una "
-"segunda linea para evitar tener los objetos enlazados en memoria al mismo "
-"tiempo."
+"trabajar con un gran número largo de objetos podría ser necesario el "
+"escribir una segunda línea para evitar tener los objetos enlazados en "
+"memoria al mismo tiempo."
 
 #: ../Doc/whatsnew/2.4.rst:140
 msgid ""
@@ -222,7 +224,7 @@ msgid ""
 "return elements one by one.  The above example could be written as::"
 msgstr ""
 "Las expresiones generadoras trabajan de forma similar a las listas por "
-"comprensión pero no muestra la lista completa, en vez de eso se crea un "
+"comprensión pero no materializan la lista completa, en vez de eso se crea un "
 "generador que retornará los elementos uno a uno.\n"
 "El siguiente ejemplo podría ser escrito como:"
 
@@ -266,7 +268,7 @@ msgid ""
 "efforts steered by Hye-Shik Chang."
 msgstr ""
 "Propuesto por Raymond Hettinger e implementada por Jiwon Seo con los "
-"primeros esfuerzos por Hye-Shik Chang."
+"primeros esfuerzos dirigidos por Hye-Shik Chang."
 
 #: ../Doc/whatsnew/2.4.rst:172
 msgid "PEP 292: Simpler String Substitutions"
@@ -278,7 +280,7 @@ msgid ""
 "for substituting variables into strings; this style of substitution may be "
 "better for applications where untrained users need to edit templates."
 msgstr ""
-"Algunas nuevas clases en la librería estándar entrega un mecanismo "
+"Algunas nuevas clases en la librería estándar proveen un mecanismo "
 "alternativo para sustituir variables dentro de cadenas de caracteres, este "
 "estilo de sustituciones puede ser mejor por aplicaciones donde usuarios sin "
 "experiencia necesitan editar plantillas."
@@ -303,10 +305,10 @@ msgid ""
 msgstr ""
 "Cuando se escriben plantillas con cadenas de caracteres puede ser muy fácil "
 "olvidar el uso de ``i`` or ``s`` después de cerrar paréntesis. Esto no es un "
-"problema grande si se está dentro de un modulo de Python pues al correr el "
+"problema grande si se está dentro de un módulo de Python pues al correr el "
 "código se lanza el siguiente mensaje de error \"Unsupported format character"
-"\" :exc:`ValueError` y el problema se resuelve. Sin embargo, tener en cuenta "
-"que una aplicación como Mailman donde una plantilla de caracteres o "
+"\" :exc:`ValueError` y el problema se resuelve. Sin embargo, tengamos en "
+"cuenta una aplicación como Mailman donde una plantilla de caracteres o "
 "traducciones son editadas por usuarios que no están familiarizados con "
 "Python. La sintaxis de como formatear las cadenas de caracteres es "
 "complicada de explicar para ciertos usuarios y si ellos cometen un error es "
@@ -317,8 +319,8 @@ msgid ""
 "PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses "
 "``$`` to indicate a substitution::"
 msgstr ""
-"PEP 292 agrega una :class:`Template` class a :mod:`string` al modulo que usa "
-"``$`` para indicar una sustitución::"
+"PEP 292 agrega una clase `Template` al módulo `string` al módulo que usa ``"
+"$`` para indicar una sustitución::"
 
 #: ../Doc/whatsnew/2.4.rst:200
 msgid ""
@@ -328,7 +330,7 @@ msgid ""
 msgstr ""
 "Si una llave se ha perdido desde el diccionario, el método `substitute` "
 "lanzará una :exc:`KeyError`. También el método `safe_substitute` que ignora "
-"las llaves perdidas::"
+"las llaves faltantes::"
 
 #: ../Doc/whatsnew/2.4.rst:211
 msgid ":pep:`292` - Simpler String Substitutions"
@@ -352,7 +354,7 @@ msgid ""
 "function as a method of the new type. Your code would look like this::"
 msgstr ""
 "Python 2.2 extendió el modelo de objeto de Python añadiendo métodos "
-"estéticos y métodos de clase pero no se extendió la sintaxis de Python para "
+"estáticos y métodos de clase pero no se extendió la sintaxis de Python para "
 "proveer alguna nueva forma de definir métodos estáticos o de clase. En vez "
 "de eso se tenía que escribir la palabra clave `def` de manera usual y pasar "
 "el método resultante a la :func:`staticmethod` o a la :func:`classmethod` "
@@ -364,7 +366,7 @@ msgid ""
 "If the method was very long, it would be easy to miss or forget the :func:"
 "`classmethod` invocation after the function body."
 msgstr ""
-"Si el método era muy largo, era muy probable el perder o olvidar la  "
+"Si el método era muy largo, era muy probable el perder o olvidar la "
 "invocación :func:`classmethod` dentro del cuerpo de la función."
 
 #: ../Doc/whatsnew/2.4.rst:236
@@ -391,7 +393,7 @@ msgid ""
 msgstr ""
 "La nueva característica es llamada decoradores de funciones. El nombre "
 "proviene de la idea de que :func:`classmethod`, :func:`staticmethod` son "
-"amigos y  guardan información adicional en un objeto de una función. ellos "
+"amigos y guardan información adicional en un objeto de una función. ellos "
 "están decorando funciones con mas detalles."
 
 #: ../Doc/whatsnew/2.4.rst:246
@@ -423,11 +425,11 @@ msgid ""
 "either at the module level or inside a class; you can't decorate class "
 "definitions."
 msgstr ""
-"Los decoradores deben agregarse en una linea antes de la definición de la "
-"función, un decorador por linea y no puede estar en la misma linea donde se "
+"Los decoradores deben agregarse en una línea antes de la definición de la "
+"función, un decorador por línea y no puede estar en la misma línea donde se "
 "usa la palabra def para comenzar una función, por ejemplo ``@A def f(): ..."
 "`` es incorrecto. Solo se puede decorar una definición de función tanto al "
-"nivel de modulo o dentro de una clase pero no puedes decorar definiciones de "
+"nivel de módulo o dentro de una clase pero no puedes decorar definiciones de "
 "clase."
 
 #: ../Doc/whatsnew/2.4.rst:275
@@ -443,7 +445,7 @@ msgstr ""
 "como un argumento y retorna tanto la misma función o un nuevo objeto. El "
 "valor de retorno del decorador no necesita ser llamado (como típicamente se "
 "cree) si no que los decoradores podrán ser aplicados al resultado. Es fácil "
-"escribir sus propios decoradores, El siguiente ejemplo agrega un atributo a "
+"escribir sus propios decoradores. El siguiente ejemplo agrega un atributo a "
 "la función objetiva::"
 
 #: ../Doc/whatsnew/2.4.rst:295
@@ -472,7 +474,7 @@ msgid ""
 "becomes::"
 msgstr ""
 "Los decoradores de funciones pueden tomar argumentos. Si los argumentos son "
-"entregados, el decorador de la función es llamado con solo esos argumentos y "
+"provistos, el decorador de la función es llamado con solo esos argumentos y "
 "retorna un nuevo decorador de función, esta función debe tomar una función "
 "sola y retorna una función como previamente se ha descrito. En otras "
 "palabras ``@A @B @C(args)`` comienza:"
@@ -481,8 +483,8 @@ msgstr ""
 msgid ""
 "Getting this right can be slightly brain-bending, but it's not too difficult."
 msgstr ""
-"Tomando esto de forma correcta puede ser un acertijo pero tampoco es muy "
-"dificultoso."
+"Conseguir que esto resulte correcto puede ser un acertijo pero tampoco es "
+"muy dificultoso."
 
 #: ../Doc/whatsnew/2.4.rst:327
 msgid ""
@@ -506,9 +508,9 @@ msgid ""
 "wrote patches implementing function decorators, but the one that was "
 "actually checked in was patch #979728, written by Mark Russell."
 msgstr ""
-"Escrito por Kevin D.Smith, Jim Jewett y Skip Montanaro. Varias personal "
-"escribieron parches para implementación de los decoradores de funciones, "
-"pero el ;único que fue chequeado en ese parche #979728 fue Mark Russell."
+"Escrito por Kevin D.Smith, Jim Jewett y Skip Montanaro. Varias personas "
+"escribieron parches sobre la implementación de los decoradores de funciones, "
+"pero el único que fue chequeado fue #979728 por Mark Russell."
 
 #: ../Doc/whatsnew/2.4.rst:340
 msgid "https://wiki.python.org/moin/PythonDecoratorLibrary"
@@ -516,7 +518,7 @@ msgstr "https://wiki.python.org/moin/PythonDecoratorLibrary"
 
 #: ../Doc/whatsnew/2.4.rst:341
 msgid "This Wiki page contains several examples of decorators."
-msgstr "Esta pagina de wiki contiene variados ejemplos de decoradores."
+msgstr "Esta pagina de wiki contiene múltiples ejemplos de decoradores."
 
 #: ../Doc/whatsnew/2.4.rst:347
 msgid "PEP 322: Reverse Iteration"
@@ -527,8 +529,9 @@ msgid ""
 "A new built-in function, ``reversed(seq)``, takes a sequence and returns an "
 "iterator that loops over the elements of the sequence  in reverse order.   ::"
 msgstr ""
-"Una nueva función built-in, `reversed(seq)``toma una secuencia y retorna un "
-"iterado que recorre los elementos de la secuencia en orden inverso.:"
+"Una nueva función de conjuntos integrados, ``reversed(seq)``toma una "
+"secuencia y retorna un iterador que recorre los elementos de la secuencia en "
+"orden inverso.:"
 
 #: ../Doc/whatsnew/2.4.rst:359
 msgid ""
@@ -536,8 +539,8 @@ msgid ""
 "is easier to read, runs faster, and uses substantially less memory."
 msgstr ""
 "Comparado con el uso tradicional de la segmentación tal como ``range(1,4)"
-"[::-1]`` la :función: `reversed` es fácil de leer, corre mas rápido y usa "
-"sustancialmente menos memoria. ."
+"[::-1]`` la  función `reversed` es fácil de leer,  se ejecuta mas rápido y "
+"usa sustancialmente menos memoria."
 
 #: ../Doc/whatsnew/2.4.rst:362
 msgid ""
@@ -545,9 +548,9 @@ msgid ""
 "If you want to reverse an iterator, first convert it to  a list with :func:"
 "`list`. ::"
 msgstr ""
-"Señalar que la :func:`reversed` solo acepta secuencias no iterados "
-"arbitrarios. Si se quiere reversa un iterador, primero se debe convertir a "
-"una lista usando la :func:`list`.:"
+"Señalar que la función `reversed` solo acepta secuencias, no iteradores "
+"arbitrarios. Si se quiere revertir un iterador, primero se debe convertir a "
+"una lista usando la función`list`.:"
 
 #: ../Doc/whatsnew/2.4.rst:376
 msgid ":pep:`322` - Reverse Iteration"
@@ -559,7 +562,7 @@ msgstr "Escrita e implementada por Raymond Hettinger."
 
 #: ../Doc/whatsnew/2.4.rst:383
 msgid "PEP 324: New subprocess Module"
-msgstr "PEP 324: Nuevo modulo de subproceso"
+msgstr "PEP 324: Nuevo módulo de subproceso"
 
 #: ../Doc/whatsnew/2.4.rst:385
 msgid ""
@@ -572,14 +575,14 @@ msgid ""
 "naming is confusing.  The :mod:`subprocess` module cleans  this up, "
 "providing a unified interface that offers all the features you might need."
 msgstr ""
-"La librería estándar provee un cierto numero de formas de ejecutar un "
+"La librería estándar provee un cierto número de formas de ejecutar un "
 "subproceso, ofreciendo diferentes funcionalidades y diferentes niveles de "
 "complejidad. ``os.system(command)`` es fácil de usar pero lento (esto corre "
 "un proceso a nivel de interprete de comandos)y peligroso (se tiene que ser "
-"cuidadoso con no considerar los metacaracteres usados en el interprete)\n"
-"El modulo :mod:`popen2` ofrece clases que puede capturar la salida estándar "
+"cuidadoso con no considerar los metacaracteres usados en el intérprete)\n"
+"El módulo :mod:`popen2` ofrece clases que pueden capturar la salida estándar "
 "y el error estándar del subproceso, pero el nombre puede ser confuso.\n"
-"El modulo mod:`subprocess` deja esto mas claro proveyendo una interface "
+"El módulo mod:`subprocess` deja esto mas claro proveyendo una interface "
 "unificada que ofrece todas las funcionalidades que usted necesita."
 
 #: ../Doc/whatsnew/2.4.rst:394
@@ -590,7 +593,7 @@ msgid ""
 msgstr ""
 "En vez de :mod:`popen2 que es una colección de clases el  :mod:`subprocess` "
 "contiene una sola clase llamada :class:`Popen`  cuyo constructor soporta un "
-"numero de diferentes argumentos de palabra clave:"
+"número de diferentes argumentos de palabra clave:"
 
 #: ../Doc/whatsnew/2.4.rst:404
 msgid ""
@@ -601,9 +604,9 @@ msgid ""
 msgstr ""
 "*args* es comúnmente una secuencia de cadenas de caracteres que podrán ser "
 "los argumentos del programa ejecutado como un subproceso. (Si el argumento "
-"entregado es verdadero, *args* puede ser una cadena de caracteres que serán "
-"pasados en la implementación de la liga de comandos, tal como :func:`os."
-"system` lo hace."
+"*shell* es verdadero, *args* puede ser una cadena de caracteres que serán "
+"pasados directamente a la shell para su interpretación, tal como :func:`os."
+"system` lo hace.)"
 
 #: ../Doc/whatsnew/2.4.rst:409
 msgid ""
@@ -612,14 +615,14 @@ msgid ""
 "descriptor, or you can use the constant ``subprocess.PIPE`` to create a pipe "
 "between the subprocess and the parent."
 msgstr ""
-"*stdin*, *stdout*, y*stderr* especifica que dato de entrada, salida y error "
-"serán. Se puede proceder un objeto de archivo o un archivo de descripción o "
-"se puede usar la constante ``subprocess.PIPE`` para crear un enlace entre el "
-"subproceso y el proceso principal."
+"*stdin*, *stdout*, y *stderr* especifican que flujos de entrada, salida y "
+"error serán utilizados. Se puede proceder un objeto de archivo o un archivo "
+"de descripción o se puede usar la constante ``subprocess.PIPE`` para crear "
+"un enlace entre el subproceso y el proceso principal."
 
 #: ../Doc/whatsnew/2.4.rst:417
 msgid "The constructor has a number of handy options:"
-msgstr "El constructor tiene un numero de opciones útiles:"
+msgstr "El constructor tiene un número de opciones útiles:"
 
 #: ../Doc/whatsnew/2.4.rst:419
 msgid ""
@@ -646,7 +649,7 @@ msgstr ""
 msgid ""
 "*preexec_fn* is a function that gets called before the child is started."
 msgstr ""
-"*preexec_fn* es una función que toma el llamado antes que el hijo sea "
+"*preexec_fn* es una función que es llamada antes de que el proceso hijo sea "
 "llamado."
 
 #: ../Doc/whatsnew/2.4.rst:429
@@ -654,7 +657,7 @@ msgid ""
 "*universal_newlines* opens the child's input and output using Python's :term:"
 "`universal newlines` feature."
 msgstr ""
-"*universal_newlines* abre el dato de entrada y salida del hijo usando la "
+"*universal_newlines* abre el flujo de entrada y salida del hijo usando la "
 "característica de Python :term:`universal newlines` ."
 
 #: ../Doc/whatsnew/2.4.rst:432
@@ -702,14 +705,14 @@ msgid ""
 "be translated into Python code that uses :mod:`subprocess`.  Reading this "
 "section of the PEP is highly recommended."
 msgstr ""
-"La guía de estilo de Python toma varios ejemplos de linea de comandos y "
+"La guía de estilo de Python toma varios ejemplos de línea de comandos y "
 "código python y muestra como estos son traducidos en el código python :mod:"
 "`subprocess`. Leer esta sección de la guía de estilo es altamente "
 "recomendado."
 
 #: ../Doc/whatsnew/2.4.rst:465
 msgid ":pep:`324` - subprocess - New process module"
-msgstr ":pep:`324`  Subproceso ' Nuevo modulo de procesamiento"
+msgstr ":pep:`324` - subprocess - Nuevo módulo de procesos"
 
 #: ../Doc/whatsnew/2.4.rst:465
 msgid ""
@@ -732,31 +735,30 @@ msgid ""
 "decimal fractions accurately.  The new :class:`Decimal` type can represent "
 "these fractions accurately, up to a user-specified precision limit."
 msgstr ""
-"Python siempre ha soportado numeros de tipo flotante (PF), basado en la "
+"Python siempre ha soportado números de tipo flotante (PF), basado en la "
 "estructura subyacente del lenguaje C de tipo `double`, como tipo de dato. "
 "Sin embargo, mientras la mayoría de los lenguajes provee un tipo de dato "
 "flotante decimal, muchas personas (inclusive programadores) no están al "
-"corriente que estos numeros flotantes no representan de forma certera "
-"fracciones decimales. El nuevo tipo de clase`Decimal` puede representar "
+"corriente que estos números flotantes no representan de forma certera "
+"fracciones decimales. El nuevo tipo de clase `Decimal` puede representar "
 "fracciones de forma precisa, hasta un limite de precisión especificado por "
 "el usuario."
 
 #: ../Doc/whatsnew/2.4.rst:483
 msgid "Why is Decimal needed?"
-msgstr "¿Por qué se necesita el decimal?"
+msgstr "¿Por qué se necesita Decimal?"
 
 #: ../Doc/whatsnew/2.4.rst:485
 msgid ""
 "The limitations arise from the representation used for floating-point "
 "numbers. FP numbers are made up of three components:"
 msgstr ""
-"Las limitaciones aumentan desde la representación usada para los números de "
-"punto flotante. Los números de punto flotante están hechos de tres "
-"componentes:"
+"Las limitaciones surgen de la representación usada para los números de punto "
+"flotante. Los números de punto flotante están hechos de tres componentes:"
 
 #: ../Doc/whatsnew/2.4.rst:488
 msgid "The sign, which is positive or negative."
-msgstr "El signo el cual es positivo o negativo."
+msgstr "El signo, el cual es positivo o negativo."
 
 #: ../Doc/whatsnew/2.4.rst:490
 msgid ""
@@ -784,9 +786,9 @@ msgid ""
 "because the mantissa is multiplied by 4 (2 to the power of the exponent 2); "
 "1.25 \\* 4 equals 5."
 msgstr ""
-"Por ejemplo, el numero 1.25 tiene un signo positivo, una mantisa de valor "
+"Por ejemplo, el número 1.25 tiene un signo positivo, una mantisa de valor "
 "1.01 (en binario) y un exponente de 0 (el punto decimal no necesita ser "
-"desplazado. El numero 5 tiene el mismo signo y significando pero, el "
+"desplazado. El números 5 tiene el mismo signo y significando pero, el "
 "exponente es 2 porque el significando es multiplicado por 4 (2 elevado a la "
 "potencia del exponente 2), 1.25 \\* 4 es igual a 5."
 
@@ -806,14 +808,14 @@ msgid ""
 msgstr ""
 "Los sistemas modernos usualmente proveen y soportan números de punto "
 "flotante conformes al estándar llamado IEEE 754. El tipo de dato C `double` "
-"es usualmente implementado como un numero 64-bit IEEE 754, el cual usa 52 "
+"es usualmente implementado como un número 64-bit IEEE 754, el cual usa 52 "
 "bits de espacio para la mantisa. esto significa que los números solo pueden "
 "ser especificados a 52 bits de precisión. Si se intenta representar números  "
-"cuya expansión se repite interminablemente, la expansión se termina a los 52 "
+"cuya expansión se repite infinitamente, la expansión se termina a los 52 "
 "bits. Desafortunadamente la mayoría de software necesita producir salidas en "
 "base a 10 y comúnmente las fracciones en base 10 a menudo repiten decimales "
 "en binario. Por ejemplo 1.1 decimal en binario es ``1.0001100110011 ...``; 1 "
-"= 1/16 + 1/32 + 1/256 genera un numero infinito de términos adicionales. "
+"= 1/16 + 1/32 + 1/256 genera un números infinito de términos adicionales. "
 "Esto significa que según en IEEE 754 se tiene que cortar ese decimal "
 "repetido infinitamente después de 52 dígitos, por lo que la representación "
 "es ligeramente inexacta."
@@ -821,7 +823,7 @@ msgstr ""
 #: ../Doc/whatsnew/2.4.rst:515
 msgid "Sometimes you can see this inaccuracy when the number is printed::"
 msgstr ""
-"Algunas veces se puede ver esta inexactitud cuando el numero es impreso por "
+"Algunas veces se puede ver esta inexactitud cuando el número es impreso por "
 "pantalla:"
 
 #: ../Doc/whatsnew/2.4.rst:520
@@ -832,7 +834,7 @@ msgid ""
 "however, the inaccuracy is still there and subsequent operations can magnify "
 "the error."
 msgstr ""
-"La inexactitud no siempre es visible cuando se imprime el numero porque el "
+"La inexactitud no siempre es visible cuando se imprime el número porque el "
 "punto flotante a decimal y conversión a cadena de texto es entregada por la "
 "librería C y la mayoría de las librerías C tratan de producir una salida "
 "sensible. Incluso si no es mostrado, la inexactitud sigue ahí y las "
@@ -851,7 +853,7 @@ msgstr ""
 "Para muchas aplicaciones esto no importa. Si estoy trazando puntos y "
 "mostrándolos en el monitor la diferencia entre 1.1 y 1.1000000000000001 es "
 "muy pequeña para ser visible.  Los reportes a menudo limitan la salida de un "
-"cierto numero de decimales y si se redondea el numero a dos o tres e incluso "
+"cierto número de decimales y si se redondea el número a dos o tres e incluso "
 "a 8 decimales, el error nunca aparece. Sin embargo, para las aplicaciones "
 "donde esto importa, es una cantidad de trabajo importante el personalizar "
 "los cálculos aritméticos."
@@ -872,11 +874,11 @@ msgid ""
 "used to wrap up various settings such as the precision and default rounding "
 "mode."
 msgstr ""
-"Un nuevo modulo `decimal` fue añadido a la librería estándar de Python. Esta "
-"contiene dos clases, clase `Decimal` y clase:`Context`. Las instancias de la "
-"clase decimal representan numerosos y la instancia de la clase contexto son "
-"usadas para condensar varios ajustes como la precisión y el modo de redondeo "
-"por defecto."
+"Un nuevo módulo, :mod: `decimal`, fue añadido a la librería estándar de "
+"Python. Esta contiene dos clases, clase `Decimal` y clase `Context`. Las "
+"instancias de la clase decimal representan números y la instancia de la "
+"clase contexto son usadas para condensar varios ajustes como la precisión y "
+"el modo de redondeo por defecto."
 
 #: ../Doc/whatsnew/2.4.rst:544
 msgid ""
@@ -885,18 +887,19 @@ msgid ""
 "represents.  :class:`Decimal` instances can be created from integers or "
 "strings::"
 msgstr ""
-"Las instancias de la clase Decimal son inmutables como los números enteros y "
-"números de punto flotante en Python, una vez han sido creados no se puede "
-"cambiar el valor de lo que la instancia representa. Las instancias de la "
-"clase decimal pueden ser creados desde números enteros o cadenas de texto:"
+"Las instancias de la :class: `Decimal` son inmutables como los números "
+"enteros y números de punto flotante en Python, una vez han sido creadas no "
+"se puede cambiar el valor de lo que la instancia representa. Las instancias "
+"de la :class: `Decimal` pueden ser creados desde números enteros o cadenas "
+"de texto:"
 
 #: ../Doc/whatsnew/2.4.rst:555
 msgid ""
 "You can also provide tuples containing the sign, the mantissa represented  "
 "as a tuple of decimal digits, and the exponent::"
 msgstr ""
-"Tambien se pueden proveer tuplas que contentan el signo, la mantisa "
-"representada como una tupla de numeros decimales y el exponente:"
+"También se pueden proveer tuplas que contentan el signo, la mantisa "
+"representada como una tupla de números decimales y el exponente:"
 
 #: ../Doc/whatsnew/2.4.rst:561
 msgid ""
@@ -916,11 +919,11 @@ msgid ""
 "and pass the string to the :class:`Decimal` constructor::"
 msgstr ""
 "Convertir desde números de punto flotante posee un pequeño problema, el "
-"punto flotante representa 1.1 y se convierte en numero decimal como 1.1 o "
+"punto flotante representa 1.1 y se convierte en número decimal como 1.1 o "
 "por 1.1 mas cualquier inexactitud que se introduzca? La decisión fue evitar "
 "el problema y dejar tal conversión fuera de la API. En su lugar se debe "
 "convertir el número de punto flotante en una cadena con la precisión deseada "
-"y pasar la cadena al constructor: class: `Decimal` :"
+"y pasar la cadena al constructor :class: `Decimal` :"
 
 #: ../Doc/whatsnew/2.4.rst:577
 msgid ""
@@ -928,7 +931,7 @@ msgid ""
 "mathematical operations on them.  One limitation: exponentiation requires an "
 "integer exponent::"
 msgstr ""
-"Una vez que se tiene la instancia de la clase `Decimal` se pueden realizar "
+"Una vez que se tiene la instancia de la :class: `Decimal` se pueden realizar "
 "las operaciones matemáticas de rigor. Una limitación, la exponenciación "
 "requiere un exponente expresado en tipo de dato entero:"
 
@@ -952,7 +955,7 @@ msgstr ""
 "`cmath` pero es preciso aclarar que ellos serán inmediatamente convertidos a "
 "números de punto flotante antes de realizar la operación, resultando en una "
 "posible perdida de precisión y exactitud. También obtendrá un número de "
-"punto flotante y no una clase  `Decimal`:"
+"punto flotante y no una :class:  `Decimal`:"
 
 #: ../Doc/whatsnew/2.4.rst:622
 msgid ""
@@ -978,7 +981,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:636
 msgid ":attr:`prec` is the precision, the number of decimal places."
-msgstr ":attr:`prec`es la precisión el numero de decimales."
+msgstr "atributo `prec` es la precisión del número de decimales."
 
 #: ../Doc/whatsnew/2.4.rst:638
 msgid ""
@@ -986,7 +989,7 @@ msgid ""
 "constants for the various possibilities: :const:`ROUND_DOWN`, :const:"
 "`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN`, and various others."
 msgstr ""
-"El atributo`rounding` especifica el modo de redondeo. El modulo decimal "
+"El atributo `rounding` especifica el modo de redondeo. El módulo decimal "
 "tiene constantes para varias posibilidades, :const:`ROUND_DOWN`, :const:"
 "`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN` y varias otras."
 
@@ -1020,24 +1023,24 @@ msgid ""
 "return a special value such as infinity or not-a-number, or exceptions can "
 "be raised::"
 msgstr ""
-"Las acciones por defecto para condiciones de error es seleccionarle, ya sea "
-"que el modulo pueda retornar un valor especial como un infinito o un valor "
-"no numérico NaN o se pueden lanzar excepciones:"
+"Las acciones por defecto para condiciones de error se puede seleccionar, ya "
+"sea que el módulo pueda retornar un valor especial como un infinito o un "
+"valor no numérico NaN o se pueden lanzar excepciones:"
 
 #: ../Doc/whatsnew/2.4.rst:673
 msgid ""
 "The :class:`Context` instance also has various methods for formatting  "
 "numbers such as :meth:`to_eng_string` and :meth:`to_sci_string`."
 msgstr ""
-"La instancia de la clase `Context` tambien tiene varios métodos para "
-"formatear numero tales como :meth:`to_eng_string` y :meth:`to_sci_string`."
+"La instancia de la clase `Context` también tiene varios métodos para "
+"formatear números tales como :meth:`to_eng_string` y :meth:`to_sci_string`."
 
 #: ../Doc/whatsnew/2.4.rst:676
 msgid ""
 "For more information, see the documentation for the :mod:`decimal` module, "
 "which includes a quick-start tutorial and a reference."
 msgstr ""
-"Para mas información, revisar la documentación para el modulo :mod:`decimal` "
+"Para mas información, revisar la documentación para el módulo :mod:`decimal` "
 "el cual incluye un tutoría de inicio rápido y una referencia."
 
 #: ../Doc/whatsnew/2.4.rst:684
@@ -1094,10 +1097,10 @@ msgid ""
 msgstr ""
 "Un pequeño cambio en el lenguaje ha sido una modificación a una sintaxis "
 "confusa que ha sido cambiada para hacer mas fácil el agregar varios nombres "
-"en un modulo. En una declaración ``from module import names``, *names* es "
+"en un módulo. En una declaración ``from module import names``, *names* es "
 "una secuencia de nombres separados por comas. Si la sentencia es muy larga, "
-"se puede ya sea escribir múltiples sentencias import desde el mismo modulo o "
-"se pueden usar barras invertidas para escapar de los términos de linea como "
+"se puede ya sea escribir múltiples sentencias import desde el mismo módulo o "
+"se pueden usar barras invertidas para escapar de los términos de línea como "
 "esto:"
 
 #: ../Doc/whatsnew/2.4.rst:712
@@ -1107,7 +1110,7 @@ msgid ""
 "the backslashes are no longer needed::"
 msgstr ""
 "La sintaxis cambió en Python 2.4 y es simplemente el permitir poner los "
-"nombres dentro de paréntesis. Python ignora nuevas lineas dentro de una "
+"nombres dentro de paréntesis. Python ignora nuevas líneas dentro de una "
 "expresión entre paréntesis por lo que las barras invertidas ya no se "
 "necesitan:"
 
@@ -1118,20 +1121,19 @@ msgid ""
 "part of the PEP was not implemented for Python 2.4, but was completed for "
 "Python 2.5."
 msgstr ""
-"La convección de estilo también proponme que todas las declaraciones "
-"usando  :keyword:`import` son importaciones absolutas, con el siguiente "
-"carácter ``.`` indica una importación relativa. Esta parte de la convención "
-"de estilo no fue implementada para Python 2.4 pero fue completada para la "
-"versión 2.5."
+"La convención de estilo también propone que todas las declaraciones usando  :"
+"keyword:`import` son importaciones absolutas, con el siguiente carácter ``."
+"`` indica una importación relativa. Esta parte de la convención de estilo no "
+"fue implementada para Python 2.4 pero fue completada para la versión 2.5."
 
 #: ../Doc/whatsnew/2.4.rst:728
 msgid ":pep:`328` - Imports: Multi-Line and Absolute/Relative"
-msgstr ":pep:`328` - Importaciones multi linea y absolutas/relativas"
+msgstr ":pep:`328` - Importaciones multi línea y absolutas/relativas"
 
 #: ../Doc/whatsnew/2.4.rst:729
 msgid "Written by Aahz.  Multi-line imports were implemented by Dima Dorfman."
 msgstr ""
-"Escrita por Aahz.  Importaciones multi linea fueron implementadas por Dima "
+"Escrita por Aahz.  Importaciones multi línea fueron implementadas por Dima "
 "Dorfman."
 
 #: ../Doc/whatsnew/2.4.rst:735
@@ -1149,9 +1151,9 @@ msgid ""
 "numeric locale remain set to the ``'C'`` locale.  Often this was because the "
 "code was using the C library's :c:func:`atof` function."
 msgstr ""
-"Los modulos :mod:`locale`deja que el software de Python seleccione varias "
+"Los módulos :mod:`locale`deja que el software de Python seleccione varias "
 "conversiones y despliegue convenciones que estan localizadas en un pais "
-"particular o lenguaje. Sin embargo, el modulo es cuidadoso en no cambiar el "
+"particular o lenguaje. Sin embargo, el módulo es cuidadoso en no cambiar el "
 "local numérico porque la implementación de Python requería que la "
 "configuración regional numérica permaneciera establecida en la configuración "
 "regional `` 'C' ' . A menudo, esto se debía a que el código utilizaba la "
@@ -1175,7 +1177,7 @@ msgid ""
 "Python API that perform ASCII-only conversions, ignoring the locale setting:"
 msgstr ""
 "La solución descrita en la convención de estilo es añadir tres nuevas "
-"funciones a la API de python que performa solo conversiones a ASCII, "
+"funciones a la API de python que ejecuta solo conversiones a ASCII, "
 "ignorando las configuraciones locales:"
 
 #: ../Doc/whatsnew/2.4.rst:752
@@ -1202,10 +1204,10 @@ msgid ""
 "`locale` module  can now change the numeric locale, letting extensions such "
 "as GTK+  produce the correct results."
 msgstr ""
-"El codigo para estas funciones proviene desde la librería GLib  (https://"
+"El código para estas funciones proviene desde la librería GLib  (https://"
 "developer.gnome.org/glib/stable/) cuyos desarrolladores amablemente han "
 "residenciado las funciones relevantes y las han donado a la fundación de "
-"software Python. El modulo :mod:`locale`ahora puede cambiar la configuración "
+"software Python. El módulo :mod:`locale`ahora puede cambiar la configuración "
 "local, dejando que las extensiones como GTK¿ produzcan los resultados "
 "correctos."
 
@@ -1226,7 +1228,7 @@ msgid ""
 "Here are all of the changes that Python 2.4 makes to the core Python "
 "language."
 msgstr ""
-"Aqui estan todos los cambios que Python 2.4 ha hecho al core del lenguaje "
+"Aquí están todos los cambios que Python 2.4 ha hecho al core del lenguaje "
 "Python."
 
 #: ../Doc/whatsnew/2.4.rst:778
@@ -1238,9 +1240,9 @@ msgid ""
 "Built-in :func:`set` and :func:`frozenset` types were  added (:pep:`218`). "
 "Other new built-ins include the ``reversed(seq)`` function (:pep:`322`)."
 msgstr ""
-"Funciones built-in `set` y :func:`frozenset` fueron añadidas (:pep:`218`). "
-"Otras nuevas funciones built-ins incluyen la función ``reversed(seq)`` (:pep:"
-"`322`)."
+"Funciones de conjuntos integrados `set` y función`frozenset` fueron añadidas "
+"(:pep:`218`). Otras nuevas funciones de conjuntos integrados incluyen la "
+"función ``reversed(seq)`` (:pep:`322`)."
 
 #: ../Doc/whatsnew/2.4.rst:783
 msgid "Generator expressions were added (:pep:`289`)."
@@ -1300,7 +1302,7 @@ msgid ""
 "meth:`sort` method of lists. These parameters make some common usages of :"
 "meth:`sort` simpler. All of these parameters are optional."
 msgstr ""
-"Tres parametros de argumentos de palabra clave *cmp*, *key* y *reverse* "
+"Tres parámetros de argumentos de palabra clave *cmp*, *key* y *reverse* "
 "fueron añadidos al método de listas :meth:`sort`. Estos parámetros hacen "
 "algunos usos comunes del método :meth:`sort` mas simple. Todos estos "
 "parámetros son opcionales."
@@ -1337,8 +1339,8 @@ msgid ""
 "the list while using *cmp* will call it twice for each comparison, so using "
 "*key* saves on invocations of the :meth:`lower` method."
 msgstr ""
-"El ultimo ejemplo el cual usa el parámetro *cmp*  is la antigua forma de "
-"ejecutar el orden sin distinción de mayusculas y minúsculas. Funciona pero "
+"El ultimo ejemplo el cual usa el parámetro *cmp*  es la antigua forma de "
+"ejecutar el orden sin distinción de mayúsculas y minúsculas. Funciona pero "
 "es mas lento en vez de usar el parámetro *key*.  El uso de *key* llama al "
 "método : meth: `lower`una vez para cada elemento de la lista mientras el uso "
 "de *cmp* lo llamara dos veces para cada comparación, entonces al usar * key "
@@ -1352,7 +1354,7 @@ msgid ""
 msgstr ""
 "Para funciones de clave sencillas y comparativas es a menudo posible el "
 "obviar la palabra clave `lambda` usando un método sin ligar en reemplazo. El "
-"siguiente ejemplo de orden sin importar mayusculas ni minúsculas es mejor "
+"siguiente ejemplo de orden sin importar mayúsculas ni minúsculas es mejor "
 "escrito como se muestra::"
 
 #: ../Doc/whatsnew/2.4.rst:848
@@ -1362,8 +1364,8 @@ msgid ""
 "reverse()``, you can now write ``L.sort(reverse=True)``."
 msgstr ""
 "Finalmente el parámetro *reverse* toma un valor de tipo booleano. Si el "
-"valor es verdadero la lista será reversada. En vez de``L.sort(); L."
-"reverse()`` ahora se puede escribir ``L.sort(reverse=True)``."
+"valor es verdadero la lista será ordenada de forma inversa. En vez de``L."
+"sort(); L.reverse()`` ahora se puede escribir ``L.sort(reverse=True)``."
 
 #: ../Doc/whatsnew/2.4.rst:852
 msgid ""
@@ -1418,7 +1420,7 @@ msgid ""
 "Integer operations will no longer trigger an :exc:`OverflowWarning`. The :"
 "exc:`OverflowWarning` warning will disappear in Python 2.5."
 msgstr ""
-"Operaciones de numeros enteros no lanzaran una excepción :exc:"
+"Operaciones de números enteros no lanzaran una excepción :exc:"
 "`OverflowWarning`. La advertencia sobre :exc:`OverflowWarning` desaparecerá "
 "en Python 2.5."
 
@@ -1430,7 +1432,7 @@ msgid ""
 "-m profile``. (Contributed by Nick Coghlan.)"
 msgstr ""
 "Se añadió al interprete una nueva opción de cambio :option:`-m` la cual toma "
-"un nombre, busca el modulo correspondiente en ``sys.path`` y corre el modulo "
+"un nombre, busca el módulo correspondiente en ``sys.path`` y corre el módulo "
 "como script. Ahora por ejemplo se puede correr el perfilador de Python con "
 "``python -m profile``. (Contribución de Nick Coghlan)"
 
@@ -1441,7 +1443,7 @@ msgid ""
 "for the *locals* parameter.  Previously this had to be a regular Python "
 "dictionary.  (Contributed by Raymond Hettinger.)"
 msgstr ""
-"La expresión ``eval(expr, globals, locals)`` la función`execfile(filename, "
+"La expresión ``eval(expr, globals, locals)`` la función ``execfile(filename, "
 "globals, locals)`` y la sentencia ``exec`` ahora aceptan cualquier tipo de "
 "mapeo para parámetros locales. Previamente esto era parte de un diccionario "
 "de Python. (Contribución de Raymond Hettinger.)"
@@ -1453,8 +1455,8 @@ msgid ""
 "`TypeError` exception.  This makes them more suitable for use with variable "
 "length argument lists::"
 msgstr ""
-"La función incorporada`zip` y la función  `itertools.izip`ahora retornan una "
-"lista hacia si se llama sin argumentos. Previamente estos lanzaban una "
+"La función incorporada `zip` y la función  `itertools.izip` ahora retornan "
+"una lista hacia si se llama sin argumentos. Previamente estos lanzaban una "
 "excepción de tipo :exc:`TypeError`. Esto lo hace mas apropiado de usar con "
 "listas de argumentos de longitud variable:"
 
@@ -1493,7 +1495,7 @@ msgid ""
 "(Contributed by Raymond Hettinger.)"
 msgstr ""
 "Los bucles internos para separar listas y tuplas fueron optimizados y ahora "
-"corren un tercio mas rapido. Los bucles internos para diccionarios tambien "
+"corren un tercio mas rápido. Los bucles internos para diccionarios también "
 "fueron optimizados resultando en una mejora en el rendimiento para :meth:"
 "`keys`, :meth:`values`, :meth:`items`, :meth:`iterkeys`, :meth:`itervalues`, "
 "y :meth:`iteritems`. (Contribución de Raymond Hettinger)"
@@ -1576,7 +1578,7 @@ msgstr ""
 "ciertas circunstancias. Esta optimizaciones no serán mostradas en otras "
 "implementaciones de Python tales como Python, entonces no se debe utilizar, "
 "es mejor seguir utilizando el método :meth:`join`de cadenas de caracteres si "
-"se quiere mantener la eficiencia de concatenar un largo numero de cadenas de "
+"se quiere mantener la eficiencia de concatenar un largo número de cadenas de "
 "caracteres. (Contribución de Armin Rigo.)"
 
 #: ../Doc/whatsnew/2.4.rst:974
@@ -1620,7 +1622,7 @@ msgid ""
 "polling loop.  The default is still to loop forever."
 msgstr ""
 "El módulo :mod:`asyncore` y la función :func:`loop`ahora tiene un parámetro "
-"*count* que permite ejecutar un limitado numero de pases mediante el bucle. "
+"*count* que permite ejecutar un limitado número de pases mediante el bucle. "
 "El valor predeterminado sigue siendo el bucle para siempre."
 
 #: ../Doc/whatsnew/2.4.rst:1001
@@ -1629,7 +1631,7 @@ msgid ""
 "Base64, Base32, and Base16 encoding and decoding, including optional case "
 "folding and optional alternative alphabets. (Contributed by Barry Warsaw.)"
 msgstr ""
-"El modulo :mod:`base64` ahora tiene un soporte mas completo :rfc:`3548` para "
+"El módulo :mod:`base64` ahora tiene un soporte mas completo :rfc:`3548` para "
 "Base64, Base32 y  Base16 para codificación y descodificación, incluyendo "
 "procesos de convertir caracteres a minúsculas y alfabetos alternativos. "
 "(Contribución de Barry Warsaw)"
@@ -2233,6 +2235,9 @@ msgid ""
 "empty list instead of raising a :exc:`TypeError` exception if called with no "
 "arguments."
 msgstr ""
+"La función de conjunto integrado zip y la función `itertools.izip` ahora "
+"retornan una lista hacia en vez de lanzar una excepción de tipo `TypeError` "
+"si son llamados sin argumentos."
 
 #: ../Doc/whatsnew/2.4.rst:1526
 msgid ""

From f672776ee17825c1a4031b676d9b90db18cd1bc1 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Wed, 27 Oct 2021 16:00:21 +0200
Subject: [PATCH 11/18] cambios

---
 dictionaries/2.4.txt |  2 ++
 whatsnew/2.4.po      | 48 ++++++++++++++++++++++----------------------
 2 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/dictionaries/2.4.txt b/dictionaries/2.4.txt
index c52d19e2c8..d1969d9916 100644
--- a/dictionaries/2.4.txt
+++ b/dictionaries/2.4.txt
@@ -31,4 +31,6 @@ Carneiro
 hashable
 Rigo
 pystone
+reversed
+subprocess
 
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index f94e27b5e9..ce9220391a 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-10-26 18:08+0200\n"
+"PO-Revision-Date: 2021-10-27 11:05+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -93,8 +93,8 @@ msgid ""
 "sequences, and for mathematical operations like unions, intersections, "
 "differences, and symmetric differences. ::"
 msgstr ""
-"Python 2.3 introdujo el módulo ´set´, implementaciones del lenguaje C de "
-"tipos de datos han sido agregados al core de Python como dos nuevos tipos "
+"Python 2.3 introdujo el módulo :mod: ´set´, implementaciones del lenguaje C "
+"de tipos de datos han sido agregados al core de Python como dos nuevos tipos "
 "integrados. ``set (iterable)`` y ``frozenset (iterable)`` . Ellos proveen "
 "operaciones de alto rendimiento para pruebas de pertenencia, eliminar datos "
 "duplicados de una secuencia y operaciones matemáticas como: uniones, "
@@ -106,9 +106,9 @@ msgid ""
 "is immutable and hashable, it may be used as a dictionary key or as a member "
 "of another set."
 msgstr ""
-"La función de conjuntos integrados frozenset() es una versión inmutable de "
-"set(). Como es inmutable y hashable (su valor no cambia), se puede usar como "
-"una llave de diccionario o como parte de otro set."
+"La función de conjuntos integrados :func: frozenset() es una versión "
+"inmutable de set(). Como es inmutable y hashable (su valor no cambia), se "
+"puede usar como una llave de diccionario o como parte de otro set."
 
 #: ../Doc/whatsnew/2.4.rst:75
 msgid ""
@@ -134,7 +134,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:90
 msgid "PEP 237: Unifying Long Integers and Integers"
-msgstr "PEP 237, Unificando enteros largos y enteros"
+msgstr "PEP 237: Unificando enteros largos y enteros"
 
 #: ../Doc/whatsnew/2.4.rst:92
 msgid ""
@@ -148,10 +148,10 @@ msgstr ""
 "El prolongado proceso de transición para este PEP que comenzó en Python 2.2 "
 "ha dado un paso más adelante en Python 2.4. En la versión 2.3 ciertas "
 "operaciones de enteros podían comportarse diferente después de lanzar la "
-"unificación del tipo de dato int-long entregando alertas FutureWarning y "
-"retornando valores limitados a 32 o 64 bits dependiendo de su plataforma. En "
-"la versión 2.4 estas expresiones ya no producen alertas y en vez de eso "
-"entrega un resultado diferente que suele ser un entero largo."
+"unificación del tipo de dato int-long entregando alertas :exc: "
+"`FutureWarning` y retornando valores limitados a 32 o 64 bits dependiendo de "
+"su plataforma. En la versión 2.4 estas expresiones ya no producen alertas y "
+"en vez de eso entrega un resultado diferente que suele ser un entero largo."
 
 #: ../Doc/whatsnew/2.4.rst:99
 msgid ""
@@ -272,7 +272,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:172
 msgid "PEP 292: Simpler String Substitutions"
-msgstr "PEP 292 Sustituciones simples de cadenas de caracteres"
+msgstr "PEP 292: Sustituciones simples de cadenas de caracteres"
 
 #: ../Doc/whatsnew/2.4.rst:174
 msgid ""
@@ -319,8 +319,8 @@ msgid ""
 "PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses "
 "``$`` to indicate a substitution::"
 msgstr ""
-"PEP 292 agrega una clase `Template` al módulo `string` al módulo que usa ``"
-"$`` para indicar una sustitución::"
+"PEP 292 agrega una clase :class:`Template` al módulo :mod: `string` al "
+"módulo que usa ``$`` para indicar una sustitución::"
 
 #: ../Doc/whatsnew/2.4.rst:200
 msgid ""
@@ -328,9 +328,9 @@ msgid ""
 "raise a :exc:`KeyError`.  There's also a :meth:`safe_substitute` method that "
 "ignores missing keys::"
 msgstr ""
-"Si una llave se ha perdido desde el diccionario, el método `substitute` "
-"lanzará una :exc:`KeyError`. También el método `safe_substitute` que ignora "
-"las llaves faltantes::"
+"Si una llave falta en el diccionario, el método :meth: `substitute` lanzará "
+"una :exc:`KeyError`. También el método `safe_substitute` que ignora las "
+"llaves faltantes::"
 
 #: ../Doc/whatsnew/2.4.rst:211
 msgid ":pep:`292` - Simpler String Substitutions"
@@ -529,7 +529,7 @@ msgid ""
 "A new built-in function, ``reversed(seq)``, takes a sequence and returns an "
 "iterator that loops over the elements of the sequence  in reverse order.   ::"
 msgstr ""
-"Una nueva función de conjuntos integrados, ``reversed(seq)``toma una "
+"Una nueva función de conjuntos integrados, ``reversed(seq)`` toma una "
 "secuencia y retorna un iterador que recorre los elementos de la secuencia en "
 "orden inverso.:"
 
@@ -1207,9 +1207,9 @@ msgstr ""
 "El código para estas funciones proviene desde la librería GLib  (https://"
 "developer.gnome.org/glib/stable/) cuyos desarrolladores amablemente han "
 "residenciado las funciones relevantes y las han donado a la fundación de "
-"software Python. El módulo :mod:`locale`ahora puede cambiar la configuración "
-"local, dejando que las extensiones como GTK¿ produzcan los resultados "
-"correctos."
+"software Python. El módulo :mod:`locale` ahora puede cambiar la "
+"configuración local, dejando que las extensiones como GTK¿ produzcan los "
+"resultados correctos."
 
 #: ../Doc/whatsnew/2.4.rst:767
 msgid ":pep:`331` - Locale-Independent Float/String Conversions"
@@ -1400,7 +1400,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:864
 msgid "the input may be any iterable;"
-msgstr "el dato de entrada puede ser algún interable;"
+msgstr "el dato de entrada puede ser algún iterable;"
 
 #: ../Doc/whatsnew/2.4.rst:866
 msgid "a newly formed copy is sorted, leaving the original intact; and"
@@ -1574,7 +1574,7 @@ msgid ""
 "number of strings together. (Contributed by Armin Rigo.)"
 msgstr ""
 "La concatenación de cadenas de texto en la declaración de ``s = s + \"abc"
-"\"`` and ``s += \"abc\"``ahora son ejecutadas de forma mas eficiente en "
+"\"`` and ``s += \"abc\"`` ahora son ejecutadas de forma mas eficiente en "
 "ciertas circunstancias. Esta optimizaciones no serán mostradas en otras "
 "implementaciones de Python tales como Python, entonces no se debe utilizar, "
 "es mejor seguir utilizando el método :meth:`join`de cadenas de caracteres si "
@@ -1621,7 +1621,7 @@ msgid ""
 "parameter that lets you perform a limited number of passes through the "
 "polling loop.  The default is still to loop forever."
 msgstr ""
-"El módulo :mod:`asyncore` y la función :func:`loop`ahora tiene un parámetro "
+"El módulo :mod:`asyncore` y la función :func:`loop` ahora tiene un parámetro "
 "*count* que permite ejecutar un limitado número de pases mediante el bucle. "
 "El valor predeterminado sigue siendo el bucle para siempre."
 

From a5d4b51c6fa849d94b496acabd1a526ac46a4a61 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Thu, 28 Oct 2021 10:29:56 +0200
Subject: [PATCH 12/18] jueves

---
 dictionaries/2.4.txt | 1 +
 whatsnew/2.4.po      | 8 ++++----
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dictionaries/2.4.txt b/dictionaries/2.4.txt
index d1969d9916..5fd879c984 100644
--- a/dictionaries/2.4.txt
+++ b/dictionaries/2.4.txt
@@ -33,4 +33,5 @@ Rigo
 pystone
 reversed
 subprocess
+exc
 
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index ce9220391a..d80f4fe12f 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-10-27 11:05+0200\n"
+"PO-Revision-Date: 2021-10-28 10:29+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -1577,9 +1577,9 @@ msgstr ""
 "\"`` and ``s += \"abc\"`` ahora son ejecutadas de forma mas eficiente en "
 "ciertas circunstancias. Esta optimizaciones no serán mostradas en otras "
 "implementaciones de Python tales como Python, entonces no se debe utilizar, "
-"es mejor seguir utilizando el método :meth:`join`de cadenas de caracteres si "
-"se quiere mantener la eficiencia de concatenar un largo número de cadenas de "
-"caracteres. (Contribución de Armin Rigo.)"
+"es mejor seguir utilizando el método :meth:`join` de cadenas de caracteres "
+"si se quiere mantener la eficiencia de concatenar un largo número de cadenas "
+"de caracteres. (Contribución de Armin Rigo.)"
 
 #: ../Doc/whatsnew/2.4.rst:974
 msgid ""

From 6efe9fd0194806fc71cf632d3066d4d914eeb768 Mon Sep 17 00:00:00 2001
From: Ivonne M <ivonne.wftm@gmail.com>
Date: Thu, 28 Oct 2021 11:57:34 +0200
Subject: [PATCH 13/18] jueves2

---
 whatsnew/2.4.po | 203 ++++++++++++++++++++++++------------------------
 1 file changed, 102 insertions(+), 101 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index d80f4fe12f..5fecdf94b8 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -9,7 +9,7 @@ msgstr ""
 "Project-Id-Version: Python 2.4\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
-"PO-Revision-Date: 2021-10-28 10:29+0200\n"
+"PO-Revision-Date: 2021-10-28 11:57+0200\n"
 "Language-Team: python-doc-es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -93,7 +93,7 @@ msgid ""
 "sequences, and for mathematical operations like unions, intersections, "
 "differences, and symmetric differences. ::"
 msgstr ""
-"Python 2.3 introdujo el módulo :mod: ´set´, implementaciones del lenguaje C "
+"Python 2.3 introdujo el módulo :mod:`sets` , implementaciones del lenguaje C "
 "de tipos de datos han sido agregados al core de Python como dos nuevos tipos "
 "integrados. ``set (iterable)`` y ``frozenset (iterable)`` . Ellos proveen "
 "operaciones de alto rendimiento para pruebas de pertenencia, eliminar datos "
@@ -106,9 +106,9 @@ msgid ""
 "is immutable and hashable, it may be used as a dictionary key or as a member "
 "of another set."
 msgstr ""
-"La función de conjuntos integrados :func: frozenset() es una versión "
-"inmutable de set(). Como es inmutable y hashable (su valor no cambia), se "
-"puede usar como una llave de diccionario o como parte de otro set."
+"La función de conjuntos integrados :func: `frozenset` es una versión "
+"inmutable de :func:`set`. Como es inmutable y hashable (su valor no cambia), "
+"se puede usar como una llave de diccionario o como parte de otro set."
 
 #: ../Doc/whatsnew/2.4.rst:75
 msgid ""
@@ -116,9 +116,9 @@ msgid ""
 "you wish to subclass the :class:`Set` or :class:`ImmutableSet` classes.  "
 "There are currently no plans to deprecate the module."
 msgstr ""
-"El módulo set se encuentra en la librería estándar y puede ser útil si se "
-"desea usar una subclase de set o :class: `ImmutableSet` No existen planes de "
-"deprecación del módulo."
+"El módulo set :mod:`sets` se encuentra en la librería estándar y puede ser "
+"útil si se desea usar una subclase de :class:`Set` o :class:`ImmutableSet` "
+"No existen planes de deprecación del módulo."
 
 #: ../Doc/whatsnew/2.4.rst:83
 msgid ":pep:`218` - Adding a Built-In Set Object Type"
@@ -148,7 +148,7 @@ msgstr ""
 "El prolongado proceso de transición para este PEP que comenzó en Python 2.2 "
 "ha dado un paso más adelante en Python 2.4. En la versión 2.3 ciertas "
 "operaciones de enteros podían comportarse diferente después de lanzar la "
-"unificación del tipo de dato int-long entregando alertas :exc: "
+"unificación del tipo de dato int-long entregando alertas :exc:"
 "`FutureWarning` y retornando valores limitados a 32 o 64 bits dependiendo de "
 "su plataforma. En la versión 2.4 estas expresiones ya no producen alertas y "
 "en vez de eso entrega un resultado diferente que suele ser un entero largo."
@@ -193,8 +193,8 @@ msgid ""
 "large.  When trying to write a functionally-styled program, it would be "
 "natural to write something like::"
 msgstr ""
-"La funcionalidad iterador, fue introducida en Python 2.2, y el módulo "
-"'itertools' deberían hacer mas fácil escribir programas que iteran sobre "
+"La funcionalidad iterador, fue introducida en Python 2.2, y el :mod:"
+"`itertools` deberían hacer mas fácil escribir programas que iteran sobre "
 "conjuntos grandes de datos sin tener todos los datos en memoria en tiempo de "
 "ejecución. Las listas de comprensión no se ajustan adecuadamente pues "
 "producen en python una lista de objetos conteniendo todos los ítems. Esto "
@@ -319,8 +319,8 @@ msgid ""
 "PEP 292 adds a :class:`Template` class to the :mod:`string` module that uses "
 "``$`` to indicate a substitution::"
 msgstr ""
-"PEP 292 agrega una clase :class:`Template` al módulo :mod: `string` al "
-"módulo que usa ``$`` para indicar una sustitución::"
+"PEP 292 agrega una clase :class:`Template` al módulo :mod:`string` al módulo "
+"que usa ``$`` para indicar una sustitución::"
 
 #: ../Doc/whatsnew/2.4.rst:200
 msgid ""
@@ -328,9 +328,9 @@ msgid ""
 "raise a :exc:`KeyError`.  There's also a :meth:`safe_substitute` method that "
 "ignores missing keys::"
 msgstr ""
-"Si una llave falta en el diccionario, el método :meth: `substitute` lanzará "
-"una :exc:`KeyError`. También el método `safe_substitute` que ignora las "
-"llaves faltantes::"
+"Si una llave falta en el diccionario, el método :meth:`substitute` lanzará "
+"una :exc:`KeyError`. También el método :meth:`safe_substitute` que ignora "
+"las llaves faltantes::"
 
 #: ../Doc/whatsnew/2.4.rst:211
 msgid ":pep:`292` - Simpler String Substitutions"
@@ -356,10 +356,10 @@ msgstr ""
 "Python 2.2 extendió el modelo de objeto de Python añadiendo métodos "
 "estáticos y métodos de clase pero no se extendió la sintaxis de Python para "
 "proveer alguna nueva forma de definir métodos estáticos o de clase. En vez "
-"de eso se tenía que escribir la palabra clave `def` de manera usual y pasar "
-"el método resultante a la :func:`staticmethod` o a la :func:`classmethod` "
-"que podía agrupar la función como método de un nuevo tipo. El código podría "
-"verse como esto:"
+"de eso se tenía que escribir la palabra clave :keyword:`def` de manera usual "
+"y pasar el método resultante a la :func:`staticmethod` o a la :func:"
+"`classmethod` que podía agrupar la función como método de un nuevo tipo. El "
+"código podría verse como esto:"
 
 #: ../Doc/whatsnew/2.4.rst:233
 msgid ""
@@ -539,8 +539,8 @@ msgid ""
 "is easier to read, runs faster, and uses substantially less memory."
 msgstr ""
 "Comparado con el uso tradicional de la segmentación tal como ``range(1,4)"
-"[::-1]`` la  función `reversed` es fácil de leer,  se ejecuta mas rápido y "
-"usa sustancialmente menos memoria."
+"[::-1]`` la  función :func:`reversed` es fácil de leer,  se ejecuta mas "
+"rápido y usa sustancialmente menos memoria."
 
 #: ../Doc/whatsnew/2.4.rst:362
 msgid ""
@@ -548,9 +548,9 @@ msgid ""
 "If you want to reverse an iterator, first convert it to  a list with :func:"
 "`list`. ::"
 msgstr ""
-"Señalar que la función `reversed` solo acepta secuencias, no iteradores "
+"Señalar que la función :func:`reversed`solo acepta secuencias, no iteradores "
 "arbitrarios. Si se quiere revertir un iterador, primero se debe convertir a "
-"una lista usando la función`list`.:"
+"una lista usando la función :func:`list`.:"
 
 #: ../Doc/whatsnew/2.4.rst:376
 msgid ":pep:`322` - Reverse Iteration"
@@ -582,7 +582,7 @@ msgstr ""
 "cuidadoso con no considerar los metacaracteres usados en el intérprete)\n"
 "El módulo :mod:`popen2` ofrece clases que pueden capturar la salida estándar "
 "y el error estándar del subproceso, pero el nombre puede ser confuso.\n"
-"El módulo mod:`subprocess` deja esto mas claro proveyendo una interface "
+"El módulo :mod:`subprocess` deja esto mas claro proveyendo una interface "
 "unificada que ofrece todas las funcionalidades que usted necesita."
 
 #: ../Doc/whatsnew/2.4.rst:394
@@ -591,8 +591,8 @@ msgid ""
 "a single class called :class:`Popen`  whose constructor supports a number of "
 "different keyword arguments. ::"
 msgstr ""
-"En vez de :mod:`popen2 que es una colección de clases el  :mod:`subprocess` "
-"contiene una sola clase llamada :class:`Popen`  cuyo constructor soporta un "
+"En vez de :mod:`popen2` que es una colección de clases el :mod:`subprocess` "
+"contiene una sola clase llamada :class:`Popen` cuyo constructor soporta un "
 "número de diferentes argumentos de palabra clave:"
 
 #: ../Doc/whatsnew/2.4.rst:404
@@ -669,7 +669,7 @@ msgid ""
 "then reads any data that the subprocess has sent to its standard output  or "
 "standard error, returning a tuple ``(stdout_data, stderr_data)``."
 msgstr ""
-"Una vez que se ha creado la instancia de la clase `Popen`  se puede llamar "
+"Una vez que se ha creado la instancia de la :class:`Popen`  se puede llamar "
 "al método :meth:`wait` para poner en pausa hasta que el subproceso ha "
 "terminado, el método :meth:`poll` comprueba si se ha salido sin pausar o el "
 "uso de ``communicate(data)`` envía la cadena de caracteres *data* a la "
@@ -736,13 +736,13 @@ msgid ""
 "these fractions accurately, up to a user-specified precision limit."
 msgstr ""
 "Python siempre ha soportado números de tipo flotante (PF), basado en la "
-"estructura subyacente del lenguaje C de tipo `double`, como tipo de dato. "
-"Sin embargo, mientras la mayoría de los lenguajes provee un tipo de dato "
-"flotante decimal, muchas personas (inclusive programadores) no están al "
+"estructura subyacente del lenguaje C de tipo :c:type:`double`, como tipo de "
+"dato. Sin embargo, mientras la mayoría de los lenguajes provee un tipo de "
+"dato flotante decimal, muchas personas (inclusive programadores) no están al "
 "corriente que estos números flotantes no representan de forma certera "
-"fracciones decimales. El nuevo tipo de clase `Decimal` puede representar "
-"fracciones de forma precisa, hasta un limite de precisión especificado por "
-"el usuario."
+"fracciones decimales. El nuevo tipo de clase :class:`Decimal` puede "
+"representar fracciones de forma precisa, hasta un limite de precisión "
+"especificado por el usuario."
 
 #: ../Doc/whatsnew/2.4.rst:483
 msgid "Why is Decimal needed?"
@@ -807,18 +807,18 @@ msgid ""
 "after 52 digits, so the representation is slightly inaccurate."
 msgstr ""
 "Los sistemas modernos usualmente proveen y soportan números de punto "
-"flotante conformes al estándar llamado IEEE 754. El tipo de dato C `double` "
-"es usualmente implementado como un número 64-bit IEEE 754, el cual usa 52 "
-"bits de espacio para la mantisa. esto significa que los números solo pueden "
-"ser especificados a 52 bits de precisión. Si se intenta representar números  "
-"cuya expansión se repite infinitamente, la expansión se termina a los 52 "
-"bits. Desafortunadamente la mayoría de software necesita producir salidas en "
-"base a 10 y comúnmente las fracciones en base 10 a menudo repiten decimales "
-"en binario. Por ejemplo 1.1 decimal en binario es ``1.0001100110011 ...``; 1 "
-"= 1/16 + 1/32 + 1/256 genera un números infinito de términos adicionales. "
-"Esto significa que según en IEEE 754 se tiene que cortar ese decimal "
-"repetido infinitamente después de 52 dígitos, por lo que la representación "
-"es ligeramente inexacta."
+"flotante conformes al estándar llamado IEEE 754. El tipo de dato C :c:type:"
+"`double` es usualmente implementado como un número 64-bit IEEE 754, el cual "
+"usa 52 bits de espacio para la mantisa. esto significa que los números solo "
+"pueden ser especificados a 52 bits de precisión. Si se intenta representar "
+"números  cuya expansión se repite infinitamente, la expansión se termina a "
+"los 52 bits. Desafortunadamente la mayoría de software necesita producir "
+"salidas en base a 10 y comúnmente las fracciones en base 10 a menudo repiten "
+"decimales en binario. Por ejemplo 1.1 decimal en binario es "
+"``1.0001100110011 ...``; 1 = 1/16 + 1/32 + 1/256 genera un números infinito "
+"de términos adicionales. Esto significa que según en IEEE 754 se tiene que "
+"cortar ese decimal repetido infinitamente después de 52 dígitos, por lo que "
+"la representación es ligeramente inexacta."
 
 #: ../Doc/whatsnew/2.4.rst:515
 msgid "Sometimes you can see this inaccuracy when the number is printed::"
@@ -860,11 +860,11 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:533
 msgid "Hence, the :class:`Decimal` type was created."
-msgstr "Es por eso que el tipo de clase `Decimal` fue creada."
+msgstr "Es por eso que el tipo de clase :class:`Decimal` fue creada."
 
 #: ../Doc/whatsnew/2.4.rst:537
 msgid "The :class:`Decimal` type"
-msgstr "El tipo de clase `Decimal`"
+msgstr "El tipo de clase :class:`Decimal`"
 
 #: ../Doc/whatsnew/2.4.rst:539
 msgid ""
@@ -874,11 +874,11 @@ msgid ""
 "used to wrap up various settings such as the precision and default rounding "
 "mode."
 msgstr ""
-"Un nuevo módulo, :mod: `decimal`, fue añadido a la librería estándar de "
-"Python. Esta contiene dos clases, clase `Decimal` y clase `Context`. Las "
-"instancias de la clase decimal representan números y la instancia de la "
-"clase contexto son usadas para condensar varios ajustes como la precisión y "
-"el modo de redondeo por defecto."
+"Un nuevo módulo, :mod:`decimal`, fue añadido a la librería estándar de "
+"Python. Esta contiene dos clases, :class:`Decimal` y :class:`Context`. Las "
+"instancias de la clase decimal :class:`Decimal` representan números y la "
+"instancia de la clase contexto son usadas para condensar varios ajustes como "
+"la precisión y el modo de redondeo por defecto."
 
 #: ../Doc/whatsnew/2.4.rst:544
 msgid ""
@@ -887,7 +887,7 @@ msgid ""
 "represents.  :class:`Decimal` instances can be created from integers or "
 "strings::"
 msgstr ""
-"Las instancias de la :class: `Decimal` son inmutables como los números "
+"Las instancias de la clase :class:`Decimal` son inmutables como los números "
 "enteros y números de punto flotante en Python, una vez han sido creadas no "
 "se puede cambiar el valor de lo que la instancia representa. Las instancias "
 "de la :class: `Decimal` pueden ser creados desde números enteros o cadenas "
@@ -923,7 +923,7 @@ msgstr ""
 "por 1.1 mas cualquier inexactitud que se introduzca? La decisión fue evitar "
 "el problema y dejar tal conversión fuera de la API. En su lugar se debe "
 "convertir el número de punto flotante en una cadena con la precisión deseada "
-"y pasar la cadena al constructor :class: `Decimal` :"
+"y pasar la cadena al constructor :class:`Decimal` :"
 
 #: ../Doc/whatsnew/2.4.rst:577
 msgid ""
@@ -931,17 +931,17 @@ msgid ""
 "mathematical operations on them.  One limitation: exponentiation requires an "
 "integer exponent::"
 msgstr ""
-"Una vez que se tiene la instancia de la :class: `Decimal` se pueden realizar "
-"las operaciones matemáticas de rigor. Una limitación, la exponenciación "
-"requiere un exponente expresado en tipo de dato entero:"
+"Una vez que se tiene la instancia de la clase :class:`Decimal` se pueden "
+"realizar las operaciones matemáticas de rigor. Una limitación, la "
+"exponenciación requiere un exponente expresado en tipo de dato entero:"
 
 #: ../Doc/whatsnew/2.4.rst:598
 msgid ""
 "You can combine :class:`Decimal` instances with integers, but not with "
 "floating-point numbers::"
 msgstr ""
-"Se puede combinar la instancia de la clase `Decimal` con enteros pero no con "
-"números de punto flotante:"
+"Se puede combinar la instancia de la clase :class:`Decimal` con enteros pero "
+"no con números de punto flotante:"
 
 #: ../Doc/whatsnew/2.4.rst:609
 msgid ""
@@ -951,11 +951,11 @@ msgid ""
 "precision and accuracy.  You'll also get back a regular floating-point "
 "number and not a :class:`Decimal`.   ::"
 msgstr ""
-"Los números en la clase `Decimal` pueden ser usados con los módulos `math` y "
-"`cmath` pero es preciso aclarar que ellos serán inmediatamente convertidos a "
-"números de punto flotante antes de realizar la operación, resultando en una "
-"posible perdida de precisión y exactitud. También obtendrá un número de "
-"punto flotante y no una :class:  `Decimal`:"
+"Los números en la clase :class:`Decimal` pueden ser usados con los módulos :"
+"mod:`math` y :mod:`cmath` pero es preciso aclarar que ellos serán "
+"inmediatamente convertidos a números de punto flotante antes de realizar la "
+"operación, resultando en una posible perdida de precisión y exactitud. "
+"También obtendrá un número de punto flotante y no una clase :class:`Decimal`:"
 
 #: ../Doc/whatsnew/2.4.rst:622
 msgid ""
@@ -963,13 +963,13 @@ msgid ""
 "`Decimal`, but if you need other things such as trigonometric functions "
 "you'll have to implement them. ::"
 msgstr ""
-"Las instancias de la clase Decimal poseen un método `sqrt` que retorna una "
-"clase Decimal pero si se necesita otro tipo de cosas como funciones "
-"trigonométricas se tendrían que implementar:"
+"Las instancias de la clase :class:`Decimal` poseen un método :meth:`sqrt` "
+"que retorna una clase :class:`Decimal` pero si se necesita otro tipo de "
+"cosas como funciones trigonométricas se tendrían que implementar:"
 
 #: ../Doc/whatsnew/2.4.rst:631
 msgid "The :class:`Context` type"
-msgstr "El tipo de clase `Context`"
+msgstr "El tipo de clase :class:`Context`"
 
 #: ../Doc/whatsnew/2.4.rst:633
 msgid ""
@@ -981,7 +981,7 @@ msgstr ""
 
 #: ../Doc/whatsnew/2.4.rst:636
 msgid ":attr:`prec` is the precision, the number of decimal places."
-msgstr "atributo `prec` es la precisión del número de decimales."
+msgstr "atributo :attr:`prec` es la precisión del número de decimales."
 
 #: ../Doc/whatsnew/2.4.rst:638
 msgid ""
@@ -989,9 +989,9 @@ msgid ""
 "constants for the various possibilities: :const:`ROUND_DOWN`, :const:"
 "`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN`, and various others."
 msgstr ""
-"El atributo `rounding` especifica el modo de redondeo. El módulo decimal "
-"tiene constantes para varias posibilidades, :const:`ROUND_DOWN`, :const:"
-"`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN` y varias otras."
+"El atributo :attr:`rounding` especifica el modo de redondeo. El módulo :mod:"
+"`decimal` tiene constantes para varias posibilidades, :const:`ROUND_DOWN`, :"
+"const:`ROUND_CEILING`,  :const:`ROUND_HALF_EVEN` y varias otras."
 
 #: ../Doc/whatsnew/2.4.rst:642
 msgid ""
@@ -1012,10 +1012,11 @@ msgid ""
 "default precision, rounding, or trap handling.  The following example shows "
 "the effect of changing the precision of the default context::"
 msgstr ""
-"Hay un contexto predeterminado local de subprocesos disponible llamando "
-"`getcontext`, se puede cambiar las propiedades de este contexto para alterar "
-"la precisión por defecto, redondear o manejar trampas. el siguiente ejemplo "
-"muestra el efecto de cambiar la precisión del contexto por defecto:"
+"Hay un contexto predeterminado local de subprocesos disponible llamando a la "
+"función :func:`getcontext`, se puede cambiar las propiedades de este "
+"contexto para alterar la precisión por defecto, redondear o manejar trampas. "
+"el siguiente ejemplo muestra el efecto de cambiar la precisión del contexto "
+"por defecto:"
 
 #: ../Doc/whatsnew/2.4.rst:660
 msgid ""
@@ -1032,7 +1033,7 @@ msgid ""
 "The :class:`Context` instance also has various methods for formatting  "
 "numbers such as :meth:`to_eng_string` and :meth:`to_sci_string`."
 msgstr ""
-"La instancia de la clase `Context` también tiene varios métodos para "
+"La instancia de la clase :class:`Context` también tiene varios métodos para "
 "formatear números tales como :meth:`to_eng_string` y :meth:`to_sci_string`."
 
 #: ../Doc/whatsnew/2.4.rst:676
@@ -1151,13 +1152,13 @@ msgid ""
 "numeric locale remain set to the ``'C'`` locale.  Often this was because the "
 "code was using the C library's :c:func:`atof` function."
 msgstr ""
-"Los módulos :mod:`locale`deja que el software de Python seleccione varias "
+"Los módulos :mod:`locale` deja que el software de Python seleccione varias "
 "conversiones y despliegue convenciones que estan localizadas en un pais "
 "particular o lenguaje. Sin embargo, el módulo es cuidadoso en no cambiar el "
 "local numérico porque la implementación de Python requería que la "
 "configuración regional numérica permaneciera establecida en la configuración "
 "regional `` 'C' ' . A menudo, esto se debía a que el código utilizaba la "
-"función: c: func: `atof` de la biblioteca C."
+"función: c: func:`atof` de la biblioteca C."
 
 #: ../Doc/whatsnew/2.4.rst:744
 msgid ""
@@ -1240,9 +1241,9 @@ msgid ""
 "Built-in :func:`set` and :func:`frozenset` types were  added (:pep:`218`). "
 "Other new built-ins include the ``reversed(seq)`` function (:pep:`322`)."
 msgstr ""
-"Funciones de conjuntos integrados `set` y función`frozenset` fueron añadidas "
-"(:pep:`218`). Otras nuevas funciones de conjuntos integrados incluyen la "
-"función ``reversed(seq)`` (:pep:`322`)."
+"Funciones de conjuntos integrados :func:`set` y :func:`frozenset` fueron "
+"añadidas (:pep:`218`). Otras nuevas funciones de conjuntos integrados "
+"incluyen la función ``reversed(seq)`` (:pep:`322`)."
 
 #: ../Doc/whatsnew/2.4.rst:783
 msgid "Generator expressions were added (:pep:`289`)."
@@ -1342,9 +1343,9 @@ msgstr ""
 "El ultimo ejemplo el cual usa el parámetro *cmp*  es la antigua forma de "
 "ejecutar el orden sin distinción de mayúsculas y minúsculas. Funciona pero "
 "es mas lento en vez de usar el parámetro *key*.  El uso de *key* llama al "
-"método : meth: `lower`una vez para cada elemento de la lista mientras el uso "
-"de *cmp* lo llamara dos veces para cada comparación, entonces al usar * key "
-"* se guardan las llamadas del método :meth:`lower` ."
+"método : meth: `lower` una vez para cada elemento de la lista mientras el "
+"uso de *cmp* lo llamara dos veces para cada comparación, entonces al usar * "
+"key * se guardan las llamadas del método :meth:`lower` ."
 
 #: ../Doc/whatsnew/2.4.rst:840
 msgid ""
@@ -1353,9 +1354,9 @@ msgid ""
 "For example, the above case-insensitive sort is best written as::"
 msgstr ""
 "Para funciones de clave sencillas y comparativas es a menudo posible el "
-"obviar la palabra clave `lambda` usando un método sin ligar en reemplazo. El "
-"siguiente ejemplo de orden sin importar mayúsculas ni minúsculas es mejor "
-"escrito como se muestra::"
+"obviar la palabra clave :keyword:`lambda` usando un método sin ligar en "
+"reemplazo. El siguiente ejemplo de orden sin importar mayúsculas ni "
+"minúsculas es mejor escrito como se muestra::"
 
 #: ../Doc/whatsnew/2.4.rst:848
 msgid ""
@@ -1455,10 +1456,10 @@ msgid ""
 "`TypeError` exception.  This makes them more suitable for use with variable "
 "length argument lists::"
 msgstr ""
-"La función incorporada `zip` y la función  `itertools.izip` ahora retornan "
-"una lista hacia si se llama sin argumentos. Previamente estos lanzaban una "
-"excepción de tipo :exc:`TypeError`. Esto lo hace mas apropiado de usar con "
-"listas de argumentos de longitud variable:"
+"La función incorporada :func:`zip` y la función :func:`itertools.izip` ahora "
+"retornan una lista hacia si se llama sin argumentos. Previamente estos "
+"lanzaban una excepción de tipo :exc:`TypeError`. Esto lo hace mas apropiado "
+"de usar con listas de argumentos de longitud variable:"
 
 #: ../Doc/whatsnew/2.4.rst:921
 msgid ""
@@ -1538,11 +1539,11 @@ msgid ""
 "by Raymond Hettinger.)"
 msgstr ""
 "Los métodos :meth:`list.__getitem__`, :meth:`dict.__getitem__` y :meth:`dict."
-"__contains__`  ahora son implementados como objetos de la clase "
-"`method_descriptor` en vez de los objetos de la clase `wrapper_descriptor` . "
-"Este acceso dobla el rendimiento y hace que sea mas apropiado para ser usado "
-"como argumentos de:``map(mydict.__getitem__, keylist)``. (Contribución de "
-"Raymond Hettinger)"
+"__contains__`  ahora son implementados como objetos de la clase :class:"
+"`method_descriptor` en vez de los objetos de la clase :class:"
+"`wrapper_descriptor` . Este acceso dobla el rendimiento y hace que sea mas "
+"apropiado para ser usado como argumentos de:``map(mydict.__getitem__, "
+"keylist)``. (Contribución de Raymond Hettinger)"
 
 #: ../Doc/whatsnew/2.4.rst:959
 msgid ""
@@ -2235,9 +2236,9 @@ msgid ""
 "empty list instead of raising a :exc:`TypeError` exception if called with no "
 "arguments."
 msgstr ""
-"La función de conjunto integrado zip y la función `itertools.izip` ahora "
-"retornan una lista hacia en vez de lanzar una excepción de tipo `TypeError` "
-"si son llamados sin argumentos."
+"La función de conjunto integrado :func:`zip` y la :func:`itertools.izip` "
+"ahora retornan una lista hacia en vez de lanzar una excepción de tipo :exc:"
+"`TypeError` si son llamados sin argumentos."
 
 #: ../Doc/whatsnew/2.4.rst:1526
 msgid ""

From ad8da49cee8349f0b26cefe9ff92f34fc0213d93 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <cmaureir@users.noreply.github.com>
Date: Mon, 1 Nov 2021 09:49:50 +0100
Subject: [PATCH 14/18] Update whatsnew/2.4.po

---
 whatsnew/2.4.po | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 5fecdf94b8..7a2bf47943 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -1153,7 +1153,7 @@ msgid ""
 "code was using the C library's :c:func:`atof` function."
 msgstr ""
 "Los módulos :mod:`locale` deja que el software de Python seleccione varias "
-"conversiones y despliegue convenciones que estan localizadas en un pais "
+"conversiones y despliegue convenciones que están localizadas en un país "
 "particular o lenguaje. Sin embargo, el módulo es cuidadoso en no cambiar el "
 "local numérico porque la implementación de Python requería que la "
 "configuración regional numérica permaneciera establecida en la configuración "

From cd72cc948b28f1db58b3b4cf76c597adbe678112 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Mon, 1 Nov 2021 12:03:33 +0100
Subject: [PATCH 15/18] Fix small issues

---
 whatsnew/2.4.po | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 7a2bf47943..f888b0bf8a 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -106,7 +106,7 @@ msgid ""
 "is immutable and hashable, it may be used as a dictionary key or as a member "
 "of another set."
 msgstr ""
-"La función de conjuntos integrados :func: `frozenset` es una versión "
+"La función de conjuntos integrados :func:`frozenset` es una versión "
 "inmutable de :func:`set`. Como es inmutable y hashable (su valor no cambia), "
 "se puede usar como una llave de diccionario o como parte de otro set."
 
@@ -548,9 +548,9 @@ msgid ""
 "If you want to reverse an iterator, first convert it to  a list with :func:"
 "`list`. ::"
 msgstr ""
-"Señalar que la función :func:`reversed`solo acepta secuencias, no iteradores "
-"arbitrarios. Si se quiere revertir un iterador, primero se debe convertir a "
-"una lista usando la función :func:`list`.:"
+"Señalar que la función :func:`reversed` solo acepta secuencias, no "
+"iteradores arbitrarios. Si se quiere revertir un iterador, primero se debe "
+"convertir a una lista usando la función :func:`list`.:"
 
 #: ../Doc/whatsnew/2.4.rst:376
 msgid ":pep:`322` - Reverse Iteration"
@@ -877,8 +877,8 @@ msgstr ""
 "Un nuevo módulo, :mod:`decimal`, fue añadido a la librería estándar de "
 "Python. Esta contiene dos clases, :class:`Decimal` y :class:`Context`. Las "
 "instancias de la clase decimal :class:`Decimal` representan números y la "
-"instancia de la clase contexto son usadas para condensar varios ajustes como "
-"la precisión y el modo de redondeo por defecto."
+"instancia de la :class:`Context` son usadas para condensar varios ajustes "
+"como la precisión y el modo de redondeo por defecto."
 
 #: ../Doc/whatsnew/2.4.rst:544
 msgid ""
@@ -890,8 +890,8 @@ msgstr ""
 "Las instancias de la clase :class:`Decimal` son inmutables como los números "
 "enteros y números de punto flotante en Python, una vez han sido creadas no "
 "se puede cambiar el valor de lo que la instancia representa. Las instancias "
-"de la :class: `Decimal` pueden ser creados desde números enteros o cadenas "
-"de texto:"
+"de la :class:`Decimal` pueden ser creados desde números enteros o cadenas de "
+"texto:"
 
 #: ../Doc/whatsnew/2.4.rst:555
 msgid ""
@@ -976,7 +976,7 @@ msgid ""
 "Instances of the :class:`Context` class encapsulate several settings for "
 "decimal operations:"
 msgstr ""
-"Las instancias de la clase `Context` encapsulan varios ajustes para "
+"Las instancias de la :class:`Context` encapsulan varios ajustes para "
 "operaciones con decimales:"
 
 #: ../Doc/whatsnew/2.4.rst:636
@@ -1158,7 +1158,7 @@ msgstr ""
 "local numérico porque la implementación de Python requería que la "
 "configuración regional numérica permaneciera establecida en la configuración "
 "regional `` 'C' ' . A menudo, esto se debía a que el código utilizaba la "
-"función: c: func:`atof` de la biblioteca C."
+"función :c:func:`atof` de la biblioteca C."
 
 #: ../Doc/whatsnew/2.4.rst:744
 msgid ""
@@ -1343,9 +1343,9 @@ msgstr ""
 "El ultimo ejemplo el cual usa el parámetro *cmp*  es la antigua forma de "
 "ejecutar el orden sin distinción de mayúsculas y minúsculas. Funciona pero "
 "es mas lento en vez de usar el parámetro *key*.  El uso de *key* llama al "
-"método : meth: `lower` una vez para cada elemento de la lista mientras el "
-"uso de *cmp* lo llamara dos veces para cada comparación, entonces al usar * "
-"key * se guardan las llamadas del método :meth:`lower` ."
+"método :meth:`lower` una vez para cada elemento de la lista mientras el uso "
+"de *cmp* lo llamara dos veces para cada comparación, entonces al usar * key "
+"* se guardan las llamadas del método :meth:`lower`."
 
 #: ../Doc/whatsnew/2.4.rst:840
 msgid ""

From c8e8606b957f7de6eb05f2abe7c7c91c11f0f8ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Wed, 8 Dec 2021 20:38:18 +0100
Subject: [PATCH 16/18] =?UTF-8?q?finalizando=20whatsnew/2.4=20autom=C3=A1t?=
 =?UTF-8?q?icamente?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 dictionaries/whatsnew_2.4.txt |  57 ++++++
 whatsnew/2.4.po               | 339 ++++++++++++++++++++++++++++++++--
 2 files changed, 380 insertions(+), 16 deletions(-)
 create mode 100644 dictionaries/whatsnew_2.4.txt

diff --git a/dictionaries/whatsnew_2.4.txt b/dictionaries/whatsnew_2.4.txt
new file mode 100644
index 0000000000..e9fc5a89d0
--- /dev/null
+++ b/dictionaries/whatsnew_2.4.txt
@@ -0,0 +1,57 @@
+Bastin
+Belmonte
+Beni
+Cherniavsky
+Dionne
+Dyck
+Eland
+Erhard
+Gass
+Hamish
+Hurt
+Jörg
+Jürgen
+Koray
+Lawson
+Lehmann
+Loper
+Mazin
+Pentium
+Perrin
+Raynor
+Rejeb
+Sadruddin
+This
+Trevor
+Urtubia
+Vasiliev
+Yves
+against
+core
+didn
+differs
+earlier
+either
+euc
+expression
+gbk
+hkscs
+independent
+iterated
+iterators
+jis
+jisx
+johab
+jp
+kr
+matched
+optional
+replicate
+returns
+shift
+something
+specified
+symbolic
+tested
+whether
+will
diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index f888b0bf8a..2e0d06fc48 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -10,13 +10,13 @@ msgstr ""
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2019-05-06 11:59-0400\n"
 "PO-Revision-Date: 2021-10-28 11:57+0200\n"
+"Last-Translator: \n"
 "Language-Team: python-doc-es\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"
-"Last-Translator: \n"
-"Language: es\n"
 "X-Generator: Poedit 3.0\n"
 
 #: ../Doc/whatsnew/2.4.rst:3
@@ -1642,40 +1642,48 @@ msgid ""
 "The :mod:`bisect` module now has an underlying C implementation for improved "
 "performance. (Contributed by Dmitry Vasiliev.)"
 msgstr ""
+"El módulo :mod:`bisect` ahora tiene una implementación C subyacente para "
+"mejorar el rendimiento. (Contribuido por Dmitry Vasiliev.)"
 
 #: ../Doc/whatsnew/2.4.rst:1008
 msgid ""
 "The CJKCodecs collections of East Asian codecs, maintained by Hye-Shik "
 "Chang, was integrated into 2.4.   The new encodings are:"
 msgstr ""
+"Las colecciones CJKCodecs de códecs de Asia oriental, mantenidas por Hye-"
+"Shik Chang, se integraron en 2.4. Las nuevas codificaciones son:"
 
 #: ../Doc/whatsnew/2.4.rst:1011
 msgid "Chinese (PRC): gb2312, gbk, gb18030, big5hkscs, hz"
-msgstr ""
+msgstr "Chino (PRC): gb2312, gbk, gb18030, big5hkscs, hz"
 
 #: ../Doc/whatsnew/2.4.rst:1013
 msgid "Chinese (ROC): big5, cp950"
-msgstr ""
+msgstr "Chino (República de China): big5, cp950"
 
 #: ../Doc/whatsnew/2.4.rst:1017
 msgid "Japanese: cp932, euc-jis-2004, euc-jp, euc-jisx0213, iso-2022-jp,"
-msgstr ""
+msgstr "Japonés: cp932, euc-jis-2004, euc-jp, euc-jisx0213, iso-2022-jp,"
 
 #: ../Doc/whatsnew/2.4.rst:1016
 msgid ""
 "iso-2022-jp-1, iso-2022-jp-2, iso-2022-jp-3, iso-2022-jp-ext, iso-2022-"
 "jp-2004, shift-jis, shift-jisx0213, shift-jis-2004"
 msgstr ""
+"iso-2022-jp-1, iso-2022-jp-2, iso-2022-jp-3, iso-2022-jp-ext, iso-2022-"
+"jp-2004, shift-jis, shift-jisx0213, shift- jis-2004"
 
 #: ../Doc/whatsnew/2.4.rst:1019
 msgid "Korean: cp949, euc-kr, johab, iso-2022-kr"
-msgstr ""
+msgstr "Coreano: cp949, euc-kr, johab, iso-2022-kr"
 
 #: ../Doc/whatsnew/2.4.rst:1021
 msgid ""
 "Some other new encodings were added: HP Roman8,  ISO_8859-11, ISO_8859-16, "
 "PCTP-154, and TIS-620."
 msgstr ""
+"Se agregaron algunas otras codificaciones nuevas: HP Roman8, ISO_8859-11, "
+"ISO_8859-16, PCTP-154 y TIS-620."
 
 #: ../Doc/whatsnew/2.4.rst:1024
 msgid ""
@@ -1685,6 +1693,12 @@ msgid ""
 "method will now return as much data as it can and future calls will resume "
 "decoding where previous ones left off.  (Implemented by Walter Dörwald.)"
 msgstr ""
+"Los códecs UTF-8 y UTF-16 ahora se adaptan mejor a la recepción de entradas "
+"parciales. Anteriormente, la clase :class:`StreamReader` intentaba leer más "
+"datos, lo que hacía imposible reanudar la decodificación desde el flujo. El "
+"método :meth:`read` ahora devolverá tantos datos como pueda y las llamadas "
+"futuras reanudarán la decodificación donde lo dejaron las anteriores. "
+"(Implementado por Walter Dörwald.)"
 
 #: ../Doc/whatsnew/2.4.rst:1030
 msgid ""
@@ -1693,6 +1707,10 @@ msgid ""
 "ended queue that supports efficiently adding and removing elements from "
 "either end::"
 msgstr ""
+"Hay un nuevo módulo :mod:`collections` para varios tipos de datos de "
+"recopilación especializados. Actualmente contiene solo un tipo, :class:"
+"`deque`, una cola de dos extremos que admite la adición y eliminación de "
+"elementos de manera eficiente desde cualquier extremo:"
 
 #: ../Doc/whatsnew/2.4.rst:1050
 msgid ""
@@ -1700,6 +1718,9 @@ msgid ""
 "take advantage of :class:`collections.deque` for improved performance.  "
 "(Contributed by Raymond Hettinger.)"
 msgstr ""
+"Varios módulos, como los módulos :mod:`Queue` y :mod:`threading`, ahora "
+"aprovechan :class:`collections.deque` para mejorar el rendimiento. "
+"(Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1054
 msgid ""
@@ -1709,6 +1730,11 @@ msgid ""
 "argument that isn't a string.   (Contributed by John Belmonte and David "
 "Goodger.)"
 msgstr ""
+"Las clases de :mod:`ConfigParser` se han mejorado ligeramente. El método :"
+"meth:`read` ahora devuelve una lista de los archivos que se analizaron "
+"correctamente y el método :meth:`set` genera :exc:`TypeError` si se pasa un "
+"argumento *value* que no es una cadena. (Contribuido por John Belmonte y "
+"David Goodger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1059
 msgid ""
@@ -1717,6 +1743,9 @@ msgid ""
 "transparency, this makes it possible to use a transparent background. "
 "(Contributed by Jörg Lehmann.)"
 msgstr ""
+"El módulo :mod:`curses` ahora admite la extensión ncurses :func:"
+"`use_default_colors`. En plataformas donde el terminal admite transparencia, "
+"esto permite utilizar un fondo transparente. (Contribución de Jörg Lehmann.)"
 
 #: ../Doc/whatsnew/2.4.rst:1064
 msgid ""
@@ -1724,6 +1753,9 @@ msgid ""
 "creates an HTML table showing a side by side comparison of two versions of a "
 "text. (Contributed by Dan Gass.)"
 msgstr ""
+"El módulo :mod:`difflib` ahora incluye una clase :class:`HtmlDiff` que crea "
+"una tabla HTML que muestra una comparación lado a lado de dos versiones de "
+"un texto. (Contribuido por Dan Gass.)"
 
 #: ../Doc/whatsnew/2.4.rst:1068
 msgid ""
@@ -1736,6 +1768,14 @@ msgid ""
 "the  :attr:`defect` attribute of the message.  (Developed by Anthony Baxter, "
 "Barry Warsaw, Thomas Wouters, and others.)"
 msgstr ""
+"El paquete :mod:`email` se actualizó a la versión 3.0, que eliminó varias "
+"API obsoletas y elimina la compatibilidad con versiones de Python anteriores "
+"a la 2.3. La versión 3.0 del paquete usa un nuevo analizador incremental "
+"para mensajes MIME, disponible en el módulo :mod:`email.FeedParser`. El "
+"nuevo analizador no requiere leer todo el mensaje en la memoria y no genera "
+"excepciones si un mensaje tiene un formato incorrecto; en su lugar, registra "
+"cualquier problema en el atributo :attr:`defect` del mensaje. (Desarrollado "
+"por Anthony Baxter, Barry Warsaw, Thomas Wouters y otros)."
 
 #: ../Doc/whatsnew/2.4.rst:1077
 msgid ""
@@ -1746,6 +1786,12 @@ msgid ""
 "a dataset without the expense of a full sort.  (Contributed by Raymond "
 "Hettinger.)"
 msgstr ""
+"El módulo :mod:`heapq` se ha convertido a C. La mejora de diez veces "
+"resultante en la velocidad hace que el módulo sea adecuado para manejar "
+"grandes volúmenes de datos. Además, el módulo tiene dos funciones nuevas :"
+"func:`nlargest` y :func:`nsmallest` que usan montones para encontrar los N "
+"valores más grandes o más pequeños en un conjunto de datos sin el gasto de "
+"una clasificación completa. (Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1083
 msgid ""
@@ -1755,6 +1801,11 @@ msgid ""
 "`MOVED_PERMANENTLY`; use pydoc to get a full list.  (Contributed by Andrew "
 "Eland.)"
 msgstr ""
+"El módulo :mod:`httplib` ahora contiene constantes para códigos de estado "
+"HTTP definidos en varios documentos RFC relacionados con HTTP. Las "
+"constantes tienen nombres como :const:`OK`, :const:`CREATED`, :const:"
+"`CONTINUE`, y :const:`MOVED_PERMANENTLY`; use pydoc para obtener una lista "
+"completa. (Contribuido por Andrew Eland.)"
 
 #: ../Doc/whatsnew/2.4.rst:1089
 msgid ""
@@ -1762,6 +1813,9 @@ msgid ""
 "Yves Dionne) and new :meth:`deleteacl` and :meth:`myrights` methods "
 "(contributed by Arnaud Mazin)."
 msgstr ""
+"El módulo :mod:`imaplib` ahora es compatible con el comando THREAD de IMAP "
+"(aportado por Yves Dionne) y los nuevos métodos :meth:`deleteacl` y :meth:"
+"`myrights` (aportado por Arnaud Mazin)."
 
 #: ../Doc/whatsnew/2.4.rst:1093
 msgid ""
@@ -1773,6 +1827,13 @@ msgid ""
 "which have matching values of the key, and returns a series of 2-tuples "
 "containing the key value and an iterator over the subsequence."
 msgstr ""
+"El módulo :mod:`itertools` ganó una función ``groupby(iterable[, *func*])``. "
+"El parámetro *iterable* is something that can be iterated over to return a "
+"stream of elements, and the optional *func* es una función que toma un "
+"elemento y devuelve un valor clave; si se omite, la clave es simplemente el "
+"elemento en sí. :func:`groupby` luego agrupa los elementos en subsecuencias "
+"que tienen valores coincidentes de la clave y devuelve una serie de 2 tuplas "
+"que contienen el valor de la clave y un iterador sobre la subsecuencia."
 
 #: ../Doc/whatsnew/2.4.rst:1101
 msgid ""
@@ -1780,6 +1841,9 @@ msgid ""
 "whether a number is even or odd, so the result of :func:`groupby` is to "
 "return consecutive runs of odd or even numbers. ::"
 msgstr ""
+"Aquí hay un ejemplo para aclarar esto. La función *key* simplemente devuelve "
+"si un número es par o impar, por lo que el resultado de :func:`groupby` es "
+"devolver series consecutivas de números pares o impares. ::"
 
 #: ../Doc/whatsnew/2.4.rst:1117
 msgid ""
@@ -1787,10 +1851,13 @@ msgid ""
 "`groupby` is similar to the Unix ``uniq`` filter which makes it handy for "
 "eliminating, counting, or identifying duplicate elements::"
 msgstr ""
+":func:`groupby` se utiliza normalmente con entrada ordenada. La lógica para :"
+"func:`groupby` es similar al filtro Unix ``uniq``, lo que lo hace útil para "
+"eliminar, contar o identificar elementos duplicados:"
 
 #: ../Doc/whatsnew/2.4.rst:1140
 msgid "(Contributed by Hye-Shik Chang.)"
-msgstr ""
+msgstr "(Contribuido por Hye-Shik Chang.)"
 
 #: ../Doc/whatsnew/2.4.rst:1142
 msgid ""
@@ -1798,6 +1865,9 @@ msgid ""
 "returns *N* independent iterators that replicate *iterator*.  If *N* is "
 "omitted, the default is 2. ::"
 msgstr ""
+":mod:`itertools` también obtuvo una función denominada ``tee(iterator, N)`` "
+"que devuelve *N* independent iterators that replicate *iterator*.  If *N* se "
+"omite, el valor predeterminado es 2. ::"
 
 #: ../Doc/whatsnew/2.4.rst:1155
 msgid ""
@@ -1810,6 +1880,15 @@ msgid ""
 "include bookmarking, windowing, or lookahead iterators. (Contributed by "
 "Raymond Hettinger.)"
 msgstr ""
+"Tenga en cuenta que :func:`tee` debe mantener copias de los valores "
+"devueltos por el iterador; en el peor de los casos, es posible que deba "
+"conservarlos todos. Por lo tanto, esto debe usarse con cuidado si el "
+"iterador principal puede ejecutarse muy por delante del iterador final en un "
+"flujo largo de entradas. Si la separación es grande, entonces también podría "
+"usar :func:`list` en su lugar. Cuando los iteradores se siguen de cerca "
+"entre sí, :func:`tee` es ideal. Las posibles aplicaciones incluyen "
+"marcadores, ventanas o iteradores de anticipación. (Contribuido por Raymond "
+"Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1164
 msgid ""
@@ -1818,6 +1897,10 @@ msgid ""
 "func:`l\\*gettext` functions that return messages in the chosen encoding. "
 "(Contributed by Gustavo Niemeyer.)"
 msgstr ""
+"Se agregaron varias funciones al módulo :mod:`locale`, como :func:"
+"`bind_textdomain_codeset` para especificar una codificación particular y una "
+"familia de funciones :func:`l\\*gettext` que devuelven mensajes en la "
+"codificación elegida. (Contribución de Gustavo Niemeyer.)"
 
 #: ../Doc/whatsnew/2.4.rst:1169
 msgid ""
@@ -1827,6 +1910,12 @@ msgid ""
 "specified to log to a particular file, change the logging format, or set the "
 "logging level. For example::"
 msgstr ""
+"Se agregaron algunos argumentos de palabras clave a la función :func:"
+"`basicConfig` del paquete :mod:`logging` para simplificar la configuración "
+"del registro. El comportamiento predeterminado es registrar mensajes con "
+"error estándar, pero se pueden especificar varios argumentos de palabras "
+"clave para registrar en un archivo en particular, cambiar el formato de "
+"registro o establecer el nivel de registro. Por ejemplo::"
 
 #: ../Doc/whatsnew/2.4.rst:1180
 msgid ""
@@ -1837,10 +1926,17 @@ msgid ""
 "certain size.  Both classes derive from a new :class:`BaseRotatingHandler` "
 "class that can be used to implement other rotating handlers."
 msgstr ""
+"Otras adiciones al paquete :mod:`logging` incluyen un método de conveniencia "
+"``log(level, msg)``, así como una clase :class:`TimedRotatingFileHandler` "
+"que rota sus archivos de registro en un intervalo cronometrado. El módulo ya "
+"tenía :class:`RotatingFileHandler`, que rotaba los registros una vez que el "
+"archivo excedía un cierto tamaño. Ambas clases derivan de una nueva clase :"
+"class:`BaseRotatingHandler` que se puede utilizar para implementar otros "
+"controladores rotativos."
 
 #: ../Doc/whatsnew/2.4.rst:1187
 msgid "(Changes implemented by Vinay Sajip.)"
-msgstr ""
+msgstr "(Cambios implementados por Vinay Sajip.)"
 
 #: ../Doc/whatsnew/2.4.rst:1189
 msgid ""
@@ -1849,6 +1945,10 @@ msgid ""
 "primary effect is to make :file:`.pyc` files significantly smaller. "
 "(Contributed by Martin von Löwis.)"
 msgstr ""
+"El módulo :mod:`marshal` ahora comparte cadenas internas al desempaquetar "
+"una estructura de datos. Esto puede reducir el tamaño de ciertas cadenas de "
+"pickle, pero el efecto principal es hacer que los archivos :file:`.pyc` sean "
+"significativamente más pequeños. (Contribución de Martin von Löwis.)"
 
 #: ../Doc/whatsnew/2.4.rst:1194
 msgid ""
@@ -1856,6 +1956,10 @@ msgid ""
 "and :meth:`descriptions` methods to retrieve  newsgroup descriptions for a "
 "single group or for a range of groups. (Contributed by Jürgen A. Erhard.)"
 msgstr ""
+"La clase :class:`NNTP` del módulo :mod:`nntplib` obtuvo los métodos :meth:"
+"`description` y :meth:`descriptions` para recuperar descripciones de grupos "
+"de noticias para un solo grupo o para un rango de grupos. (Contribución de "
+"Jürgen A. Erhard.)"
 
 #: ../Doc/whatsnew/2.4.rst:1198
 msgid ""
@@ -1865,6 +1969,11 @@ msgid ""
 "or item; these callables make excellent data extractors when used with :func:"
 "`map` or :func:`sorted`.  For example::"
 msgstr ""
+"Se agregaron dos nuevas funciones al módulo :mod:`operator`, "
+"``attrgetter(attr)`` y ``itemgetter(index)``. Ambas funciones devuelven "
+"invocables que toman un solo argumento y devuelven el atributo o elemento "
+"correspondiente; estos llamables son excelentes extractores de datos cuando "
+"se utilizan con :func:`map` o :func:`sorted`. Por ejemplo::"
 
 #: ../Doc/whatsnew/2.4.rst:1214
 msgid ""
@@ -1874,6 +1983,12 @@ msgid ""
 "can now include the string ``'%default'``, which will be replaced by the "
 "option's default value.  (Contributed by Greg Ward.)"
 msgstr ""
+"El módulo :mod:`optparse` se actualizó de varias formas. El módulo ahora "
+"pasa sus mensajes a través de :func:`gettext.gettext`, lo que permite "
+"internacionalizar los mensajes de error y ayuda de Optik. Los mensajes de "
+"ayuda para las opciones ahora pueden incluir la cadena ``'%default'``, que "
+"será reemplazada por el valor predeterminado de la opción. (Contribuido por "
+"Greg Ward.)"
 
 #: ../Doc/whatsnew/2.4.rst:1220
 msgid ""
@@ -1883,6 +1998,12 @@ msgid ""
 "replacement for :func:`rfc822.formatdate`.  You may want to write new e-mail "
 "processing code with this in mind.  (Change implemented by Anthony Baxter.)"
 msgstr ""
+"El plan a largo plazo es desaprobar el módulo :mod:`rfc822` en alguna "
+"versión futura de Python a favor del paquete :mod:`email`. Con este fin, la "
+"función :func:`email.Utils.formatdate` se ha modificado para que pueda "
+"utilizarse como reemplazo de :func:`rfc822.formatdate`. Es posible que desee "
+"escribir un nuevo código de procesamiento de correo electrónico con esto en "
+"mente. (Cambio implementado por Anthony Baxter)."
 
 #: ../Doc/whatsnew/2.4.rst:1226
 msgid ""
@@ -1891,6 +2012,11 @@ msgid ""
 "to platform-specific sources of randomness such as :file:`/dev/urandom` on "
 "Linux or the Windows CryptoAPI.  (Contributed by Trevor Perrin.)"
 msgstr ""
+"Se agregó una nueva función ``urandom(n)`` al módulo :mod:`os`, que devuelve "
+"una cadena que contiene *n* bytes de datos aleatorios. Esta función "
+"proporciona acceso a fuentes de aleatoriedad específicas de la plataforma, "
+"como :file:`/dev/urandom` en Linux o Windows CryptoAPI. (Contribuido por "
+"Trevor Perrin.)"
 
 #: ../Doc/whatsnew/2.4.rst:1231
 msgid ""
@@ -1900,24 +2026,35 @@ msgid ""
 "false if *path* is a symlink that points to a destination that doesn't "
 "exist. (Contributed by Beni Cherniavsky.)"
 msgstr ""
+"Otra función nueva: ``os.path.lexists(path)`` devuelve verdadero si el "
+"archivo especificado por *path* exists, whether or not it's a symbolic "
+"link.  This differs from the existing ASDF01 function, which returns false "
+"if *path* es un enlace simbólico que apunta a un destino que no existe. "
+"(Contribuido por Beni Cherniavsky.)"
 
 #: ../Doc/whatsnew/2.4.rst:1237
 msgid ""
 "A new :func:`getsid` function was added to the :mod:`posix` module that "
 "underlies the :mod:`os` module. (Contributed by J. Raynor.)"
 msgstr ""
+"Se agregó una nueva función :func:`getsid` al módulo :mod:`posix` que "
+"subyace al módulo :mod:`os`. (Contribuido por J. Raynor.)"
 
 #: ../Doc/whatsnew/2.4.rst:1240
 msgid ""
 "The :mod:`poplib` module now supports POP over SSL.  (Contributed by Hector "
 "Urtubia.)"
 msgstr ""
+"El módulo :mod:`poplib` ahora admite POP sobre SSL. (Contribuido por Héctor "
+"Urtubia.)"
 
 #: ../Doc/whatsnew/2.4.rst:1243
 msgid ""
 "The :mod:`profile` module can now profile C extension functions. "
 "(Contributed by Nick Bastin.)"
 msgstr ""
+"El módulo :mod:`profile` ahora puede perfilar funciones de extensión C. "
+"(Contribuido por Nick Bastin.)"
 
 #: ../Doc/whatsnew/2.4.rst:1246
 msgid ""
@@ -1927,6 +2064,11 @@ msgid ""
 "arbitrarily large random numbers more efficient.  (Contributed by Raymond "
 "Hettinger.)"
 msgstr ""
+"El módulo :mod:`random` tiene un nuevo método llamado ``getrandbits(N)`` que "
+"devuelve un entero largo *N* bits de longitud. El método :meth:`randrange` "
+"existente ahora usa :meth:`getrandbits` cuando corresponde, lo que hace que "
+"la generación de números aleatorios arbitrariamente grandes sea más "
+"eficiente. (Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1252
 msgid ""
@@ -1938,6 +2080,13 @@ msgid ""
 "group didn't match, the pattern *B* will be used instead. (Contributed by "
 "Gustavo Niemeyer.)"
 msgstr ""
+"El lenguaje de expresiones regulares aceptado por el módulo :mod:`re` se "
+"amplió con expresiones condicionales simples, escritas como ``(?(group)A|"
+"B)``. En su lugar, se utilizará *group* is either a numeric group ID or a "
+"group name defined with ASDF02 earlier in the expression.  If the specified "
+"group matched, the regular expression pattern *A* will be tested against the "
+"string; if the group didn't match, the pattern *B*. (Contribución de Gustavo "
+"Niemeyer.)"
 
 #: ../Doc/whatsnew/2.4.rst:1259
 msgid ""
@@ -1952,6 +2101,16 @@ msgid ""
 "Python 2.4's regular expression engine can match this pattern without "
 "problems."
 msgstr ""
+"El módulo :mod:`re` ya no es recursivo, gracias a la enorme cantidad de "
+"trabajo de Gustavo Niemeyer. En un motor de expresión regular recursivo, "
+"ciertos patrones dan como resultado que se consuma una gran cantidad de "
+"espacio de pila de C y es posible desbordar la pila. Por ejemplo, si comparó "
+"una cadena de 30000 bytes de caracteres ``a`` con la expresión ``(a|b)+``, "
+"se consumió un marco de pila por carácter. Python 2.3 intentó verificar el "
+"desbordamiento de la pila y generar una excepción :exc:`RuntimeError`, pero "
+"ciertos patrones podrían eludir la verificación y, si no tuvo suerte, Python "
+"podría segregar. El motor de expresiones regulares de Python 2.4 puede "
+"coincidir con este patrón sin problemas."
 
 #: ../Doc/whatsnew/2.4.rst:1269
 msgid ""
@@ -1961,6 +2120,11 @@ msgid ""
 "would quietly accept this, but 2.4 will raise a :exc:`RuntimeError` "
 "exception."
 msgstr ""
+"El módulo :mod:`signal` ahora realiza una verificación de errores más "
+"estricta en los parámetros de la función :func:`signal.signal`. Por ejemplo, "
+"no puede establecer un controlador en la señal :const:`SIGKILL`; las "
+"versiones anteriores de Python aceptarían silenciosamente esto, pero 2.4 "
+"generará una excepción :exc:`RuntimeError`."
 
 #: ../Doc/whatsnew/2.4.rst:1274
 msgid ""
@@ -1969,6 +2133,10 @@ msgid ""
 "service name for a given port number. (Contributed by Dave Cole and Barry "
 "Warsaw.)"
 msgstr ""
+"Se agregaron dos nuevas funciones al módulo :mod:`socket`. :func:"
+"`socketpair` devuelve un par de sockets conectados y ``getservbyport(port)`` "
+"busca el nombre del servicio para un número de puerto determinado. "
+"(Contribuido por Dave Cole y Barry Warsaw.)"
 
 #: ../Doc/whatsnew/2.4.rst:1279
 msgid ""
@@ -1977,12 +2145,19 @@ msgid ""
 "exit functions.  Eventually :func:`sys.exitfunc` will become a purely "
 "internal interface, accessed only by :mod:`atexit`."
 msgstr ""
+"La función :func:`sys.exitfunc` ha quedado obsoleta. El código debe usar el "
+"módulo :mod:`atexit` existente, que maneja correctamente la llamada a "
+"múltiples funciones de salida. Finalmente, :func:`sys.exitfunc` se "
+"convertirá en una interfaz puramente interna, a la que solo accederá :mod:"
+"`atexit`."
 
 #: ../Doc/whatsnew/2.4.rst:1284
 msgid ""
 "The :mod:`tarfile` module now generates GNU-format tar files by default. "
 "(Contributed by Lars Gustäbel.)"
 msgstr ""
+"El módulo :mod:`tarfile` ahora genera archivos tar en formato GNU de forma "
+"predeterminada. (Contribución de Lars Gustäbel.)"
 
 #: ../Doc/whatsnew/2.4.rst:1287
 msgid ""
@@ -1990,6 +2165,9 @@ msgid ""
 "thread-local data.  The module contains a :class:`local` class whose "
 "attribute values are local to different threads. ::"
 msgstr ""
+"El módulo :mod:`threading` ahora tiene una forma elegante y sencilla de "
+"admitir datos locales de subprocesos. El módulo contiene una clase :class:"
+"`local` cuyos valores de atributo son locales para diferentes subprocesos. ::"
 
 #: ../Doc/whatsnew/2.4.rst:1297
 msgid ""
@@ -1997,6 +2175,10 @@ msgid ""
 "`number` and :attr:`url` attributes.  You can subclass :class:`local` to "
 "initialize attributes or to add methods. (Contributed by Jim Fulton.)"
 msgstr ""
+"Otros subprocesos pueden asignar y recuperar sus propios valores para los "
+"atributos :attr:`number` y :attr:`url`. Puede crear una subclase de :class:"
+"`local` para inicializar atributos o agregar métodos. (Contribuido por Jim "
+"Fulton.)"
 
 #: ../Doc/whatsnew/2.4.rst:1301
 msgid ""
@@ -2004,6 +2186,10 @@ msgid ""
 "collection during the timing loop.  This change makes consecutive timings "
 "more comparable.  (Contributed by Raymond Hettinger.)"
 msgstr ""
+"El módulo :mod:`timeit` ahora deshabilita automáticamente la recolección de "
+"basura periódica durante el ciclo de temporización. Este cambio hace que los "
+"tiempos consecutivos sean más comparables. (Contribuido por Raymond "
+"Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1305
 msgid ""
@@ -2012,6 +2198,10 @@ msgid ""
 "sockets, and regular expression pattern objects. (Contributed by Raymond "
 "Hettinger.)"
 msgstr ""
+"El módulo :mod:`weakref` ahora admite una variedad más amplia de objetos, "
+"incluidas funciones de Python, instancias de clases, conjuntos, frozensets, "
+"deques, matrices, archivos, sockets y objetos de patrones de expresión "
+"regular. (Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1310
 msgid ""
@@ -2019,16 +2209,20 @@ msgid ""
 "transmitting multiple XML-RPC calls in a single HTTP operation. (Contributed "
 "by Brian Quinlan.)"
 msgstr ""
+"El módulo :mod:`xmlrpclib` ahora admite una extensión de múltiples llamadas "
+"para transmitir múltiples llamadas XML-RPC en una sola operación HTTP. "
+"(Contribuido por Brian Quinlan.)"
 
 #: ../Doc/whatsnew/2.4.rst:1314
 msgid ""
 "The :mod:`mpz`, :mod:`rotor`, and :mod:`xreadlines` modules have  been "
 "removed."
 msgstr ""
+"Se han eliminado los módulos :mod:`mpz`, :mod:`rotor` y :mod:`xreadlines`."
 
 #: ../Doc/whatsnew/2.4.rst:1323
 msgid "cookielib"
-msgstr ""
+msgstr "cookielib"
 
 #: ../Doc/whatsnew/2.4.rst:1325
 msgid ""
@@ -2039,6 +2233,13 @@ msgid ""
 "connecting to the server. As in web browsers, policy objects control whether "
 "cookies are accepted or not."
 msgstr ""
+"La biblioteca :mod:`cookielib` admite el manejo del lado del cliente para "
+"las cookies HTTP, reflejando el soporte de cookies del lado del servidor del "
+"módulo :mod:`Cookie`. Las cookies se almacenan en frascos de galletas; la "
+"biblioteca almacena de forma transparente las cookies ofrecidas por el "
+"servidor web en el tarro de cookies y recupera la cookie del tarro cuando se "
+"conecta al servidor. Al igual que en los navegadores web, los objetos de "
+"política controlan si las cookies se aceptan o no."
 
 #: ../Doc/whatsnew/2.4.rst:1332
 msgid ""
@@ -2047,20 +2248,28 @@ msgid ""
 "applications can use the Mozilla or Lynx cookie files, and one that stores "
 "cookies in the same format as the Perl libwww library."
 msgstr ""
+"Para almacenar cookies entre sesiones, se proporcionan dos implementaciones "
+"de tarros de cookies: una que almacena cookies en formato Netscape para que "
+"las aplicaciones puedan usar los archivos de cookies de Mozilla o Lynx, y "
+"otra que almacena cookies en el mismo formato que la biblioteca libwww de "
+"Perl."
 
 #: ../Doc/whatsnew/2.4.rst:1337
 msgid ""
 ":mod:`urllib2` has been changed to interact with :mod:`cookielib`: :class:"
 "`HTTPCookieProcessor` manages a cookie jar that is used when accessing URLs."
 msgstr ""
+":mod:`urllib2` se ha cambiado para interactuar con :mod:`cookielib`: :class:"
+"`HTTPCookieProcessor` administra un tarro de cookies que se utiliza al "
+"acceder a las URL."
 
 #: ../Doc/whatsnew/2.4.rst:1341
 msgid "This module was contributed by John J. Lee."
-msgstr ""
+msgstr "Este módulo fue una contribución de John J. Lee."
 
 #: ../Doc/whatsnew/2.4.rst:1347
 msgid "doctest"
-msgstr ""
+msgstr "doctest"
 
 #: ../Doc/whatsnew/2.4.rst:1349
 msgid ""
@@ -2069,22 +2278,30 @@ msgid ""
 "func:`doctest.testmod`, but the refactorings allow customizing the module's "
 "operation in various ways"
 msgstr ""
+"El módulo :mod:`doctest` se sometió a una refactorización considerable "
+"gracias a Edward Loper y Tim Peters. Las pruebas pueden ser tan simples como "
+"ejecutar :func:`doctest.testmod`, pero las refactorizaciones permiten "
+"personalizar el funcionamiento del módulo de varias formas."
 
 #: ../Doc/whatsnew/2.4.rst:1354
 msgid ""
 "The new :class:`DocTestFinder` class extracts the tests from a given  "
 "object's docstrings::"
 msgstr ""
+"La nueva clase :class:`DocTestFinder` extrae las pruebas de las cadenas de "
+"documentos de un objeto dado:"
 
 #: ../Doc/whatsnew/2.4.rst:1370
 msgid ""
 "The new :class:`DocTestRunner` class then runs individual tests and can "
 "produce a summary of the results::"
 msgstr ""
+"La nueva clase :class:`DocTestRunner` luego ejecuta pruebas individuales y "
+"puede producir un resumen de los resultados:"
 
 #: ../Doc/whatsnew/2.4.rst:1379
 msgid "The above example produces the following output::"
-msgstr ""
+msgstr "El ejemplo anterior produce la siguiente salida:"
 
 #: ../Doc/whatsnew/2.4.rst:1387
 msgid ""
@@ -2093,6 +2310,11 @@ msgid ""
 "number of different flags that customize its behaviour; ambitious users can "
 "also write a completely new subclass of :class:`OutputChecker`."
 msgstr ""
+":class:`DocTestRunner` usa una instancia de la clase :class:`OutputChecker` "
+"para comparar la salida esperada con la salida real. Esta clase toma varios "
+"indicadores diferentes que personalizan su comportamiento; Los usuarios "
+"ambiciosos también pueden escribir una subclase completamente nueva de :"
+"class:`OutputChecker`."
 
 #: ../Doc/whatsnew/2.4.rst:1392
 msgid ""
@@ -2101,10 +2323,16 @@ msgid ""
 "expected output matches any substring,  making it easier to accommodate "
 "outputs that vary in minor ways::"
 msgstr ""
+"El comprobador de salida predeterminado proporciona una serie de funciones "
+"útiles. Por ejemplo, con el indicador de opción :const:`doctest.ELLIPSIS`, "
+"una elipsis (``...``) en la salida esperada coincide con cualquier "
+"subcadena, lo que facilita la adaptación de salidas que varían en formas "
+"menores:"
 
 #: ../Doc/whatsnew/2.4.rst:1403
 msgid "Another special string, ``<BLANKLINE>``, matches a blank line::"
 msgstr ""
+"Otra cadena especial, ``<BLANKLINE>``, coincide con una línea en blanco:"
 
 #: ../Doc/whatsnew/2.4.rst:1411
 msgid ""
@@ -2113,20 +2341,29 @@ msgid ""
 "`doctest.REPORT_CDIFF` (context diffs), or :const:`doctest.REPORT_NDIFF` "
 "(delta-style) option flags.  For example::"
 msgstr ""
+"Otra nueva capacidad es producir una visualización de estilo diff de la "
+"salida especificando :const:`doctest.REPORT_UDIFF` (diferencias "
+"unificadas), :const:`doctest.REPORT_CDIFF` (diferencias de contexto), o :"
+"const:`doctest.REPORT_NDIFF` Indicadores de opción (estilo delta). Por "
+"ejemplo::"
 
 #: ../Doc/whatsnew/2.4.rst:1427
 msgid ""
 "Running the above function's tests with :const:`doctest.REPORT_UDIFF` "
 "specified, you get the following output:"
 msgstr ""
+"Al ejecutar las pruebas de la función anterior con :const:`doctest."
+"REPORT_UDIFF` especificado, obtiene el siguiente resultado:"
 
 #: ../Doc/whatsnew/2.4.rst:1448
 msgid "Build and C API Changes"
-msgstr ""
+msgstr "Cambios en la API de Build y C"
 
 #: ../Doc/whatsnew/2.4.rst:1450
 msgid "Some of the changes to Python's build process and to the C API are:"
 msgstr ""
+"Algunos de los cambios en el proceso de compilación de Python y en la API de "
+"C son:"
 
 #: ../Doc/whatsnew/2.4.rst:1452
 msgid ""
@@ -2134,12 +2371,19 @@ msgid ""
 "extension functions: :c:macro:`Py_RETURN_NONE`, :c:macro:`Py_RETURN_TRUE`, "
 "and :c:macro:`Py_RETURN_FALSE`. (Contributed by Brett Cannon.)"
 msgstr ""
+"Se agregaron tres nuevas macros de conveniencia para valores de retorno "
+"comunes de funciones de extensión:: c: macro: `Py_RETURN_NONE`,: c: macro:` "
+"Py_RETURN_TRUE`, y: c: macro: `Py_RETURN_FALSE`. (Contribuido por Brett "
+"Cannon.)"
 
 #: ../Doc/whatsnew/2.4.rst:1456
 msgid ""
 "Another new macro, :c:macro:`Py_CLEAR(obj)`,  decreases the reference count "
 "of *obj* and sets *obj* to the null pointer.  (Contributed by Jim Fulton.)"
 msgstr ""
+"Otra nueva macro,: c: macro: `Py_CLEAR (obj)`, reduce el recuento de "
+"referencias de *obj* and sets *obj* al puntero nulo. (Contribuido por Jim "
+"Fulton.)"
 
 #: ../Doc/whatsnew/2.4.rst:1459
 msgid ""
@@ -2147,6 +2391,9 @@ msgid ""
 "tuples from a variable length argument list of Python objects.  (Contributed "
 "by Raymond Hettinger.)"
 msgstr ""
+"Una nueva función, ``PyTuple_Pack(N, obj1, obj2, ..., objN)``, construye "
+"tuplas a partir de una lista de argumentos de longitud variable de objetos "
+"Python. (Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1463
 msgid ""
@@ -2154,12 +2401,17 @@ msgid ""
 "lookups without masking exceptions raised during the look-up process. "
 "(Contributed by Raymond Hettinger.)"
 msgstr ""
+"Una nueva función, ``PyDict_Contains(d, k)``, implementa búsquedas rápidas "
+"de diccionarios sin enmascarar las excepciones que surgen durante el proceso "
+"de búsqueda. (Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1467
 msgid ""
 "The :c:macro:`Py_IS_NAN(X)` macro returns 1 if  its float or double argument "
 "*X* is a NaN.   (Contributed by Tim Peters.)"
 msgstr ""
+"La macro: c: macro: `Py_IS_NAN (X)` devuelve 1 si su argumento flotante o "
+"doble *X* es un NaN. (Contribuido por Tim Peters.)"
 
 #: ../Doc/whatsnew/2.4.rst:1470
 msgid ""
@@ -2168,6 +2420,10 @@ msgid ""
 "been performed.  If this function  returns false, no lock operations are "
 "needed. (Contributed by Nick Coghlan.)"
 msgstr ""
+"El código C puede evitar el bloqueo innecesario mediante el uso de la nueva "
+"función :c:func:`PyEval_ThreadsInitialized` para saber si se ha realizado "
+"alguna operación de subproceso. Si esta función devuelve falso, no se "
+"necesitan operaciones de bloqueo. (Contribuido por Nick Coghlan.)"
 
 #: ../Doc/whatsnew/2.4.rst:1475
 msgid ""
@@ -2175,6 +2431,9 @@ msgid ""
 "func:`PyArg_ParseTupleAndKeywords` but takes a  :c:type:`va_list` instead of "
 "a number of arguments. (Contributed by Greg Chapman.)"
 msgstr ""
+"Una nueva función, :c:func:`PyArg_VaParseTupleAndKeywords`, es la misma que :"
+"c:func:`PyArg_ParseTupleAndKeywords` pero toma un :c:type:`va_list` en lugar "
+"de varios argumentos. (Contribuido por Greg Chapman.)"
 
 #: ../Doc/whatsnew/2.4.rst:1479
 msgid ""
@@ -2183,6 +2442,10 @@ msgid ""
 "can halve the access time for a method such as :meth:`set.__contains__`.  "
 "(Contributed by Raymond Hettinger.)"
 msgstr ""
+"Un nuevo indicador de método, :const:`METH_COEXISTS`, permite que una "
+"función definida en ranuras coexista con un :c:type:`PyCFunction` que tiene "
+"el mismo nombre. Esto puede reducir a la mitad el tiempo de acceso para un "
+"método como :meth:`set.__contains__`. (Contribuido por Raymond Hettinger.)"
 
 #: ../Doc/whatsnew/2.4.rst:1484
 msgid ""
@@ -2196,32 +2459,48 @@ msgid ""
 "that processor architecture doesn't call that register \"the TSC register"
 "\".  (Contributed by Jeremy Hylton.)"
 msgstr ""
+"Python ahora se puede construir con perfiles adicionales para el intérprete "
+"en sí, con la intención de ayudar a las personas que desarrollan el núcleo "
+"de Python. Proporcionar: option: `! - enable-profiling` al: program:` "
+"configure` script le permitirá perfilar el intérprete con: program: `gprof`, "
+"y proporcionar el: option:`! - with-tsc` switch permite la creación de "
+"perfiles utilizando el registro de contador de marcas de tiempo del Pentium. "
+"Tenga en cuenta que el conmutador: option: `! - with-tsc` tiene un nombre "
+"ligeramente incorrecto, porque la función de creación de perfiles también "
+"funciona en la plataforma PowerPC, aunque la arquitectura del procesador no "
+"llama a ese registro\" el registro TSC \". (Contribuido por Jeremy Hylton.)"
 
 #: ../Doc/whatsnew/2.4.rst:1494
 msgid ""
 "The :c:type:`tracebackobject` type has been renamed to :c:type:"
 "`PyTracebackObject`."
 msgstr ""
+"El tipo :c:type:`tracebackobject` ha sido renombrado a :c:type:"
+"`PyTracebackObject`."
 
 #: ../Doc/whatsnew/2.4.rst:1501
 msgid "Port-Specific Changes"
-msgstr ""
+msgstr "Cambios específicos del puerto"
 
 #: ../Doc/whatsnew/2.4.rst:1503
 msgid ""
 "The Windows port now builds under MSVC++ 7.1 as well as version 6. "
 "(Contributed by Martin von Löwis.)"
 msgstr ""
+"El puerto de Windows ahora se construye bajo MSVC ++ 7.1 y también con la "
+"versión 6. (Contribuido por Martin von Löwis)."
 
 #: ../Doc/whatsnew/2.4.rst:1510
 msgid "Porting to Python 2.4"
-msgstr ""
+msgstr "Portar a Python 2.4"
 
 #: ../Doc/whatsnew/2.4.rst:1512
 msgid ""
 "This section lists previously described changes that may require changes to "
 "your code:"
 msgstr ""
+"Esta sección enumera los cambios descritos anteriormente que pueden requerir "
+"cambios en su código:"
 
 #: ../Doc/whatsnew/2.4.rst:1515
 msgid ""
@@ -2229,6 +2508,9 @@ msgid ""
 "trigger a :exc:`FutureWarning` and return  a value limited to 32 or 64 bits; "
 "instead they return a long integer."
 msgstr ""
+"Los desplazamientos a la izquierda y las constantes hexadecimales / octales "
+"que son demasiado grandes ya no activan un :exc:`FutureWarning` y devuelven "
+"un valor limitado a 32 o 64 bits; en su lugar, devuelven un entero largo."
 
 #: ../Doc/whatsnew/2.4.rst:1522
 msgid ""
@@ -2247,12 +2529,18 @@ msgid ""
 "different classes will now always be unequal, and  relative comparisons "
 "(``<``, ``>``) will raise a :exc:`TypeError`."
 msgstr ""
+"Ya no puede comparar las instancias :class:`date` y :class:`~datetime."
+"datetime` proporcionadas por el módulo :mod:`datetime`. Dos instancias de "
+"clases diferentes ahora siempre serán desiguales, y las comparaciones "
+"relativas (``<``, ``>``) generarán un :exc:`TypeError`."
 
 #: ../Doc/whatsnew/2.4.rst:1531
 msgid ""
 ":func:`dircache.listdir` now passes exceptions to the caller instead of "
 "returning empty lists."
 msgstr ""
+":func:`dircache.listdir` ahora pasa excepciones a la persona que llama en "
+"lugar de devolver listas vacías."
 
 #: ../Doc/whatsnew/2.4.rst:1534
 msgid ""
@@ -2260,29 +2548,40 @@ msgid ""
 "the wrong order.  This has been corrected; applications relying on the wrong "
 "order need to be fixed."
 msgstr ""
+":func:`LexicalHandler.startDTD` solía recibir los identificadores públicos y "
+"del sistema en el orden incorrecto. Esto ha sido corregido; las aplicaciones "
+"que se basan en el orden incorrecto deben corregirse."
 
 #: ../Doc/whatsnew/2.4.rst:1538
 msgid ""
 ":func:`fcntl.ioctl` now warns if the *mutate*  argument is omitted and "
 "relevant."
 msgstr ""
+":func:`fcntl.ioctl` ahora advierte si el argumento *mutate* se omite y es "
+"relevante."
 
 #: ../Doc/whatsnew/2.4.rst:1541
 msgid ""
 "The :mod:`tarfile` module now generates GNU-format tar files by default."
 msgstr ""
+"El módulo :mod:`tarfile` ahora genera archivos de GNU tar-formato por "
+"defecto."
 
 #: ../Doc/whatsnew/2.4.rst:1543
 msgid ""
 "Encountering a failure while importing a module no longer leaves a partially-"
 "initialized module object in ``sys.modules``."
 msgstr ""
+"Encontrar una falla al importar un módulo ya no deja un objeto de módulo "
+"parcialmente inicializado en ``sys.modules``."
 
 #: ../Doc/whatsnew/2.4.rst:1546
 msgid ""
 ":const:`None` is now a constant; code that binds a new value to  the name "
 "``None`` is now a syntax error."
 msgstr ""
+":const:`None` ahora es una constante; El código que une un nuevo valor al "
+"nombre ``None`` ahora es un error de sintaxis."
 
 #: ../Doc/whatsnew/2.4.rst:1549
 msgid ""
@@ -2291,10 +2590,14 @@ msgid ""
 "silently.  For example, you can no longer set a handler on the :const:"
 "`SIGKILL` signal."
 msgstr ""
+"La función :func:`signals.signal` ahora genera una excepción :exc:"
+"`RuntimeError` para ciertos valores ilegales; anteriormente estos errores "
+"pasaban silenciosamente. Por ejemplo, ya no puede configurar un controlador "
+"en la señal :const:`SIGKILL`."
 
 #: ../Doc/whatsnew/2.4.rst:1559
 msgid "Acknowledgements"
-msgstr ""
+msgstr "Agradecimientos"
 
 #: ../Doc/whatsnew/2.4.rst:1561
 msgid ""
@@ -2303,3 +2606,7 @@ msgid ""
 "Koray Can, Hye-Shik Chang, Michael Dyck, Raymond Hettinger, Brian Hurt, "
 "Hamish Lawson, Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb."
 msgstr ""
+"El autor desea agradecer a las siguientes personas por ofrecer sugerencias, "
+"correcciones y ayuda con varios borradores de este artículo: Koray Can, Hye-"
+"Shik Chang, Michael Dyck, Raymond Hettinger, Brian Hurt, Hamish Lawson, "
+"Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb."

From 6181e8307e78cccbe6e7b550a85ead64e49a8d61 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Wed, 8 Dec 2021 21:16:19 +0100
Subject: [PATCH 17/18] finalizando whatsnew/2.4 de forma automatica

---
 whatsnew/2.4.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index 2e0d06fc48..e6c9829851 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -2372,8 +2372,8 @@ msgid ""
 "and :c:macro:`Py_RETURN_FALSE`. (Contributed by Brett Cannon.)"
 msgstr ""
 "Se agregaron tres nuevas macros de conveniencia para valores de retorno "
-"comunes de funciones de extensión:: c: macro: `Py_RETURN_NONE`,: c: macro:` "
-"Py_RETURN_TRUE`, y: c: macro: `Py_RETURN_FALSE`. (Contribuido por Brett "
+"comunes de funciones de extensión: :c:macro:`Py_RETURN_NONE`, :c:macro:`"
+"Py_RETURN_TRUE`, y :c:macro:`Py_RETURN_FALSE`. (Contribuido por Brett "
 "Cannon.)"
 
 #: ../Doc/whatsnew/2.4.rst:1456
@@ -2381,7 +2381,7 @@ msgid ""
 "Another new macro, :c:macro:`Py_CLEAR(obj)`,  decreases the reference count "
 "of *obj* and sets *obj* to the null pointer.  (Contributed by Jim Fulton.)"
 msgstr ""
-"Otra nueva macro,: c: macro: `Py_CLEAR (obj)`, reduce el recuento de "
+"Otra nueva macro, :c:macro:`Py_CLEAR(obj)`, reduce el recuento de "
 "referencias de *obj* and sets *obj* al puntero nulo. (Contribuido por Jim "
 "Fulton.)"
 
@@ -2410,7 +2410,7 @@ msgid ""
 "The :c:macro:`Py_IS_NAN(X)` macro returns 1 if  its float or double argument "
 "*X* is a NaN.   (Contributed by Tim Peters.)"
 msgstr ""
-"La macro: c: macro: `Py_IS_NAN (X)` devuelve 1 si su argumento flotante o "
+"La macro :c:macro:`Py_IS_NAN(X)` devuelve 1 si su argumento flotante o "
 "doble *X* es un NaN. (Contribuido por Tim Peters.)"
 
 #: ../Doc/whatsnew/2.4.rst:1470

From 9064b7280a1fe12bce0729671a5999da40a87de4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?=
 <Cristian.Maureira-Fredes@qt.io>
Date: Wed, 8 Dec 2021 21:19:36 +0100
Subject: [PATCH 18/18] powrap

---
 whatsnew/2.4.po | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po
index e6c9829851..2827e7d75c 100644
--- a/whatsnew/2.4.po
+++ b/whatsnew/2.4.po
@@ -2372,8 +2372,8 @@ msgid ""
 "and :c:macro:`Py_RETURN_FALSE`. (Contributed by Brett Cannon.)"
 msgstr ""
 "Se agregaron tres nuevas macros de conveniencia para valores de retorno "
-"comunes de funciones de extensión: :c:macro:`Py_RETURN_NONE`, :c:macro:`"
-"Py_RETURN_TRUE`, y :c:macro:`Py_RETURN_FALSE`. (Contribuido por Brett "
+"comunes de funciones de extensión: :c:macro:`Py_RETURN_NONE`, :c:macro:"
+"`Py_RETURN_TRUE`, y :c:macro:`Py_RETURN_FALSE`. (Contribuido por Brett "
 "Cannon.)"
 
 #: ../Doc/whatsnew/2.4.rst:1456
@@ -2410,8 +2410,8 @@ msgid ""
 "The :c:macro:`Py_IS_NAN(X)` macro returns 1 if  its float or double argument "
 "*X* is a NaN.   (Contributed by Tim Peters.)"
 msgstr ""
-"La macro :c:macro:`Py_IS_NAN(X)` devuelve 1 si su argumento flotante o "
-"doble *X* es un NaN. (Contribuido por Tim Peters.)"
+"La macro :c:macro:`Py_IS_NAN(X)` devuelve 1 si su argumento flotante o doble "
+"*X* es un NaN. (Contribuido por Tim Peters.)"
 
 #: ../Doc/whatsnew/2.4.rst:1470
 msgid ""