diff --git a/dictionaries/whatsnew_2.0.txt b/dictionaries/whatsnew_2.0.txt new file mode 100644 index 0000000000..ccd36d3f9f --- /dev/null +++ b/dictionaries/whatsnew_2.0.txt @@ -0,0 +1,72 @@ +Andrich +April +Bill +Bolen +Bosch +Elementwise +Enhancement +Fools +Fulton +Funk +Gallew +Garshol +Gregg +Guidelines +Hauser +Integration +Itanium +Iteration +Kamp +Kelsey +Labs +Lockstep +Marius +Markovitch +Maruch +Mick +Montanaro +Moshe +Mullender +Objectwise +Oliver +Operators +Polzin +Proposal +Purpose +Rushing +Russ +Sam +Schmidt +Schneider +Secret +Sjoerd +Skip +Tiedemann +Tismer +Tobias +Toby +Trent +Tutt +Waldman +Ward +Yakov +Zadka +codificándola +crucialmente +discrepantes +dyld +front +hacks +ifdefs +infórmelo +manejadora +patches +pipelining +recompiladas +rpm +sdist +subelemento +suffix +trashcan +wininst +xmlproc diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 5feff6078f..7d2715dfa1 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -6,35 +6,37 @@ # 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" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-05-05 12:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2021-08-05 09:24+0100\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Last-Translator: Claudia Millan \n" +"Language: es\n" +"X-Generator: Poedit 3.0\n" #: ../Doc/whatsnew/2.0.rst:3 msgid "What's New in Python 2.0" -msgstr "" +msgstr "Novedades de Python 2.0" #: ../Doc/whatsnew/2.0.rst msgid "Author" -msgstr "" +msgstr "Autor" #: ../Doc/whatsnew/2.0.rst:5 msgid "A.M. Kuchling and Moshe Zadka" -msgstr "" +msgstr "A.M. Kuchling y Moshe Zadka" #: ../Doc/whatsnew/2.0.rst:13 msgid "Introduction" -msgstr "" +msgstr "Introducción" #: ../Doc/whatsnew/2.0.rst:15 msgid "" @@ -43,6 +45,10 @@ msgid "" "useful changes, and points out a few incompatible changes that may require " "rewriting code." msgstr "" +"El 16 de octubre de 2000 se publicó una nueva versión de Python, la 2.0. " +"Este artículo cubre las emocionantes nuevas características de la 2.0, " +"destaca algunos otros cambios útiles y señala algunos cambios incompatibles " +"que pueden requerir reescribir el código." #: ../Doc/whatsnew/2.0.rst:20 msgid "" @@ -55,10 +61,20 @@ msgid "" "for PythonLabs are now getting paid to spend their days fixing bugs, and " "also due to the improved communication resulting from moving to SourceForge." msgstr "" +"El desarrollo de Python nunca se detiene por completo entre versiones, y " +"siempre se presenta un flujo constante de correcciones de errores y mejoras. " +"Una gran cantidad de correcciones menores, algunas optimizaciones, " +"docstrings adicionales y mejores mensajes de error fueron incluidos en la " +"versión 2.0; sería imposible enumerarlos todos, pero son ciertamente " +"significativos. Consulte los registros CVS disponibles públicamente si desea " +"ver la lista completa. Este progreso se debe a que los cinco desarrolladores " +"que trabajan para PythonLabs reciben ahora una remuneración por pasar sus " +"días arreglando errores, y también a la mejora de la comunicación resultante " +"del traslado a SourceForge." #: ../Doc/whatsnew/2.0.rst:33 msgid "What About Python 1.6?" -msgstr "" +msgstr "¿Qué pasa con Python 1.6?" #: ../Doc/whatsnew/2.0.rst:35 msgid "" @@ -71,22 +87,39 @@ msgid "" "received a few fixes to ensure that it's forward-compatible with Python " "2.0. 1.6 is therefore part of Python's evolution, and not a side branch." msgstr "" +"Python 1.6 puede considerarse como la versión de Python de las Obligaciones " +"Contractuales. Después de que el equipo principal de desarrollo dejara el " +"CNRI en mayo de 2000, el CNRI pidió que se creara una versión 1.6 que " +"contuviera todo el trabajo sobre Python que se había realizado en el CNRI. " +"Por lo tanto, Python 1.6 representa el estado del árbol CVS en mayo de 2000, " +"siendo la novedad más importante el soporte de Unicode. El desarrollo " +"continuó después de mayo, por supuesto, así que el árbol 1.6 recibió algunas " +"correcciones para asegurar que es compatible con Python 2.0. 1.Por lo tanto, " +"la 6 es parte de la evolución de Python, y no una rama lateral." #: ../Doc/whatsnew/2.0.rst:44 msgid "" -"So, should you take much interest in Python 1.6? Probably not. The " -"1.6final and 2.0beta1 releases were made on the same day (September 5, " -"2000), the plan being to finalize Python 2.0 within a month or so. If you " -"have applications to maintain, there seems little point in breaking things " -"by moving to 1.6, fixing them, and then having another round of breakage " -"within a month by moving to 2.0; you're better off just going straight to " -"2.0. Most of the really interesting features described in this document are " -"only in 2.0, because a lot of work was done between May and September." -msgstr "" +"So, should you take much interest in Python 1.6? Probably not. The 1.6final " +"and 2.0beta1 releases were made on the same day (September 5, 2000), the " +"plan being to finalize Python 2.0 within a month or so. If you have " +"applications to maintain, there seems little point in breaking things by " +"moving to 1.6, fixing them, and then having another round of breakage within " +"a month by moving to 2.0; you're better off just going straight to 2.0. Most " +"of the really interesting features described in this document are only in " +"2.0, because a lot of work was done between May and September." +msgstr "" +"Entonces, ¿deberías interesarte mucho por Python 1.6? Probablemente no. Las " +"versiones 1.6final y 2.0beta1 se publicaron el mismo día (5 de septiembre de " +"2000), y el plan es finalizar Python 2.0 en un mes más o menos. Si tienes " +"aplicaciones que mantener, no parece que tenga mucho sentido romper cosas al " +"pasar a la 1.6, arreglarlas, y luego tener otra ronda de roturas dentro de " +"un mes al pasar a la 2.0; es mejor pasar directamente a la 2.0. La mayoría " +"de las características realmente interesantes descritas en este documento " +"sólo están en la 2.0, porque se hizo mucho trabajo entre mayo y septiembre." #: ../Doc/whatsnew/2.0.rst:57 msgid "New Development Process" -msgstr "" +msgstr "Nuevo proceso de desarrollo" #: ../Doc/whatsnew/2.0.rst:59 msgid "" @@ -98,6 +131,14 @@ msgid "" "available from Python's project page, located at https://sourceforge.net/" "projects/python/." msgstr "" +"El cambio más importante en Python 2.0 puede que no sea en el código en " +"absoluto, sino en la forma de desarrollar Python: en mayo de 2000 los " +"desarrolladores de Python comenzaron a utilizar las herramientas puestas a " +"disposición por SourceForge para almacenar el código fuente, rastrear los " +"informes de errores y gestionar la cola de envíos de parches. Para informar " +"de errores o enviar parches para Python 2.0, utilice las herramientas de " +"seguimiento de errores y gestión de parches disponibles en la página del " +"proyecto Python, situada en https://sourceforge.net/projects/python/." #: ../Doc/whatsnew/2.0.rst:66 msgid "" @@ -118,6 +159,25 @@ msgid "" "access, probably that task would have been viewed as \"nice, but not worth " "the time and effort needed\" and it would never have gotten done." msgstr "" +"El más importante de los servicios alojados ahora en SourceForge es el árbol " +"CVS de Python, el repositorio de versiones controladas que contiene el " +"código fuente de Python. Anteriormente, había unas 7 personas que tenían " +"acceso de escritura al árbol CVS, y todos los parches tenían que ser " +"inspeccionados y comprobados por una de las personas de esta corta lista. " +"Obviamente, esto no era muy escalable. Al trasladar el árbol CVS a " +"SourceForge, fue posible conceder acceso de escritura a más personas; en " +"septiembre de 2000 había 27 personas que podían revisar los cambios, un " +"aumento de cuatro veces. Esto hace posible cambios a gran escala que no se " +"intentarían si tuvieran que pasar por el pequeño grupo de desarrolladores " +"del núcleo. Por ejemplo, un día a Peter Schneider-Kamp se le ocurrió dejar " +"de lado la compatibilidad con K&R C y convertir el código fuente de Python a " +"ANSI C. Después de obtener la aprobación en la lista de correo de python-" +"dev, se lanzó a una ráfaga de revisiones que duró aproximadamente una " +"semana, otros desarrolladores se unieron para ayudar, y el trabajo estaba " +"hecho. Si sólo hubiera habido 5 personas con acceso de escritura, " +"probablemente esa tarea habría sido considerada como \"agradable, pero no " +"vale la pena el tiempo y el esfuerzo necesarios\" y nunca se habría " +"realizado." #: ../Doc/whatsnew/2.0.rst:83 msgid "" @@ -133,12 +193,25 @@ msgid "" "notification e-mail messages that are completely unhelpful, so Ka-Ping Yee " "wrote an HTML screen-scraper that sends more useful messages." msgstr "" +"El cambio al uso de los servicios de SourceForge ha dado lugar a un notable " +"aumento de la velocidad de desarrollo. Ahora los parches se envían, se " +"comentan, son revisados por otras personas además del remitente original, y " +"van de un lado a otro hasta que se considera que el parche merece ser " +"revisado. Los errores se rastrean en una ubicación central y se pueden " +"asignar a una persona específica para que los corrija, y podemos contar el " +"número de errores abiertos para medir el progreso. Esto no ha tenido un " +"coste: los desarrolladores tienen ahora más correo electrónico con el que " +"lidiar, más listas de correo que seguir, y se han tenido que escribir " +"herramientas especiales para el nuevo entorno. Por ejemplo, SourceForge " +"envía por defecto mensajes de correo electrónico de notificación de parches " +"y errores que son completamente inútiles, por lo que Ka-Ping Yee escribió un " +"raspador de pantalla HTML que envía mensajes más útiles." #: ../Doc/whatsnew/2.0.rst:95 msgid "" "The ease of adding code caused a few initial growing pains, such as code was " "checked in before it was ready or without getting clear agreement from the " -"developer group. The approval process that has emerged is somewhat similar " +"developer group. The approval process that has emerged is somewhat similar " "to that used by the Apache group. Developers can vote +1, +0, -0, or -1 on a " "patch; +1 and -1 denote acceptance or rejection, while +0 and -0 mean the " "developer is mostly indifferent to the change, though with a slight positive " @@ -148,6 +221,19 @@ msgid "" "can still ignore the result of a vote, and approve or reject a change even " "if the community disagrees with him." msgstr "" +"La facilidad para añadir código provocó algunos problemas iniciales de " +"crecimiento, como el hecho de que el código se registrara antes de estar " +"listo o sin obtener un acuerdo claro del grupo de desarrolladores. El " +"proceso de aprobación que ha surgido es algo similar al utilizado por el " +"grupo Apache. Los desarrolladores pueden votar +1, +0, -0 o -1 sobre un " +"parche; +1 y -1 denotan aceptación o rechazo, mientras que +0 y -0 " +"significan que el desarrollador es mayormente indiferente al cambio, aunque " +"con un ligero sesgo positivo o negativo. El cambio más significativo con " +"respecto al modelo de Apache es que la votación es esencialmente consultiva, " +"lo que permite a Guido van Rossum, que tiene el estatus de Dictador " +"Benevolente Vitalicio, saber cuál es la opinión general. Puede seguir " +"ignorando el resultado de una votación y aprobar o rechazar un cambio aunque " +"la comunidad no esté de acuerdo con él." #: ../Doc/whatsnew/2.0.rst:106 msgid "" @@ -162,6 +248,17 @@ msgid "" "accepting or rejecting the proposal. Quoting from the introduction to :pep:" "`1`, \"PEP Purpose and Guidelines\":" msgstr "" +"Producir un parche real es el último paso en la adición de una nueva " +"característica, y suele ser fácil en comparación con la tarea anterior de " +"llegar a un buen diseño. Las discusiones sobre nuevas funcionalidades a " +"menudo pueden explotar en largos hilos de la lista de correo, haciendo que " +"la discusión sea difícil de seguir, y nadie puede leer todos los mensajes en " +"python-dev. Por lo tanto, se ha establecido un proceso relativamente formal " +"para escribir Propuestas de Mejora de Python (PEPs), siguiendo el modelo del " +"proceso RFC de Internet. Las PEP son borradores de documentos que describen " +"una nueva característica propuesta, y se revisan continuamente hasta que la " +"comunidad llega a un consenso, aceptando o rechazando la propuesta. Cita de " +"la introducción de :pep:`1`, \"PEP Purpose and Guidelines\":" #: ../Doc/whatsnew/2.0.rst:120 msgid "" @@ -170,6 +267,11 @@ msgid "" "for Python. The PEP should provide a concise technical specification of the " "feature and a rationale for the feature." msgstr "" +"PEP son las siglas de Python Enhancement Proposal. Un PEP es un documento de " +"diseño que proporciona información a la comunidad de Python, o que describe " +"una nueva característica para Python. El PEP debe proporcionar una " +"especificación técnica concisa de la característica y una justificación de " +"la misma." #: ../Doc/whatsnew/2.0.rst:125 msgid "" @@ -178,6 +280,11 @@ msgid "" "decisions that have gone into Python. The PEP author is responsible for " "building consensus within the community and documenting dissenting opinions." msgstr "" +"Pretendemos que los PEPs sean los mecanismos principales para proponer " +"nuevas características, para recoger las opiniones de la comunidad sobre un " +"tema y para documentar las decisiones de diseño que se han tomado en Python. " +"El autor del PEP es responsable de crear consenso dentro de la comunidad y " +"de documentar las opiniones discrepantes." #: ../Doc/whatsnew/2.0.rst:130 msgid "" @@ -188,10 +295,16 @@ msgid "" "September 2000, there are 25 PEPS, ranging from :pep:`201`, \"Lockstep " "Iteration\", to PEP 225, \"Elementwise/Objectwise Operators\"." msgstr "" +"Lee el resto de :pep:`1` para conocer los detalles del proceso editorial, el " +"estilo y el formato de los PEP. Los PEP se mantienen en el árbol CVS de " +"Python en SourceForge, aunque no forman parte de la distribución de Python " +"2.0, y también están disponibles en formato HTML en https://www.python.org/" +"dev/peps/. En septiembre de 2000, había 25 PEPS, desde :pep:`201`, " +"\"Lockstep Iteration\", hasta PEP 225, \"Elementwise/Objectwise Operators\"." #: ../Doc/whatsnew/2.0.rst:141 msgid "Unicode" -msgstr "" +msgstr "Unicode" #: ../Doc/whatsnew/2.0.rst:143 msgid "" @@ -200,6 +313,10 @@ msgid "" "instead of the 8-bit number used by ASCII, meaning that 65,536 distinct " "characters can be supported." msgstr "" +"La mayor novedad de Python 2.0 es un nuevo tipo de datos fundamental: Las " +"cadenas Unicode. Unicode utiliza números de 16 bits para representar los " +"caracteres en lugar de los 8 bits utilizados por ASCII, lo que significa que " +"se pueden admitir 65.536 caracteres distintos." #: ../Doc/whatsnew/2.0.rst:148 msgid "" @@ -210,6 +327,13 @@ msgid "" "was written up as :pep:`100`, \"Python Unicode Integration\". This article " "will simply cover the most significant points about the Unicode interfaces." msgstr "" +"La interfaz final para el soporte de Unicode se alcanzó a través de " +"innumerables discusiones, a menudo tormentosas, en la lista de correo de " +"python-dev, y fue implementada en su mayor parte por Marc-André Lemburg, " +"basándose en una implementación del tipo de cadena Unicode de Fredrik Lundh. " +"Una explicación detallada de la interfaz fue escrita como :pep:`100`, " +"\"Python Unicode Integration\". Este artículo se limitará a cubrir los " +"puntos más significativos de las interfaces Unicode." #: ../Doc/whatsnew/2.0.rst:155 msgid "" @@ -219,6 +343,12 @@ msgid "" "The existing ``\\xHHHH`` escape sequence can also be used, and octal escapes " "can be used for characters up to U+01FF, which is represented by ``\\777``." msgstr "" +"En el código fuente de Python, las cadenas Unicode se escriben como ``u " +"\"cadena\"``. Los caracteres Unicode arbitrarios pueden escribirse " +"utilizando una nueva secuencia de escape, ``uHHHH``, donde *HHHH* es un " +"número hexadecimal de 4 dígitos desde 0000 hasta FFFF. También se puede " +"utilizar la secuencia de escape existente ``xHHHH``, y se pueden utilizar " +"escapes octales para caracteres hasta U+01FF, que se representa con ``777``." #: ../Doc/whatsnew/2.0.rst:161 msgid "" @@ -233,30 +363,50 @@ msgid "" "installation by calling the ``sys.setdefaultencoding(encoding)`` function in " "a customized version of :file:`site.py`." msgstr "" +"Las cadenas Unicode, al igual que las cadenas normales, son un tipo de " +"secuencia inmutable. Pueden ser indexadas y cortadas, pero no modificadas en " +"su lugar. Las cadenas Unicode tienen un método ``encode( [encoding] )`` que " +"retorna una cadena de 8 bits en la codificación deseada. Las codificaciones " +"son nombradas por cadenas, como ``'ascii'``, ``'utf-8'``, ``'iso-8859-1'``, " +"o lo que sea. Se define una API de códecs para implementar y registrar " +"nuevas codificaciones que luego están disponibles en todo el programa " +"Python. Si no se especifica una codificación, la codificación por defecto " +"suele ser ASCII de 7 bits, aunque puede cambiarse para tu instalación de " +"Python llamando a la función ``sys.setdefaultencoding(encoding)`` en una " +"versión personalizada de :file:`site.py`." #: ../Doc/whatsnew/2.0.rst:172 msgid "" "Combining 8-bit and Unicode strings always coerces to Unicode, using the " "default ASCII encoding; the result of ``'a' + u'bc'`` is ``u'abc'``." msgstr "" +"La combinación de cadenas de 8 bits y Unicode siempre fuerza conversión a " +"Unicode, utilizando la codificación ASCII por defecto; el resultado de ``'a' " +"+ u'bc'`` es ``u'abc'``." #: ../Doc/whatsnew/2.0.rst:175 msgid "" "New built-in functions have been added, and existing built-ins modified to " "support Unicode:" msgstr "" +"Se han añadido nuevas funciones incorporadas y se han modificado las " +"existentes para que sean compatibles con Unicode:" #: ../Doc/whatsnew/2.0.rst:178 msgid "" "``unichr(ch)`` returns a Unicode string 1 character long, containing the " "character *ch*." msgstr "" +"``unichr(ch)`` retorna una cadena Unicode de 1 carácter, que contiene el " +"carácter *ch*." #: ../Doc/whatsnew/2.0.rst:181 msgid "" "``ord(u)``, where *u* is a 1-character regular or Unicode string, returns " "the number of the character as an integer." msgstr "" +"``ord(u)``, donde *u* es una cadena regular o Unicode de 1 carácter, retorna " +"el número del carácter como un entero." #: ../Doc/whatsnew/2.0.rst:184 msgid "" @@ -268,6 +418,14 @@ msgid "" "errors to be silently ignored and ``'replace'`` uses U+FFFD, the official " "replacement character, in case of any problems." msgstr "" +"``unicode(string [, encoding] [, errors] )`` crea una cadena Unicode a " +"partir de una cadena de 8 bits. ``encoding`` es una cadena que nombra la " +"codificación a utilizar. El parámetro ``errors`` especifica el tratamiento " +"de los caracteres que no son válidos para la codificación actual; pasar " +"``'strict`` como valor hace que se lance una excepción en cualquier error de " +"codificación, mientras que ``'ignore`` hace que los errores se ignoren " +"silenciosamente y ``'replace`` utiliza U+FFFD, el carácter oficial de " +"reemplazo, en caso de cualquier problema." #: ../Doc/whatsnew/2.0.rst:192 msgid "" @@ -277,6 +435,12 @@ msgid "" "built-ins; if you find a built-in function that accepts strings but doesn't " "accept Unicode strings at all, please report it as a bug.)" msgstr "" +"La sentencia ``exec``, y varias funciones integradas como ``eval()``, " +"``getattr()``, y ``setattr()`` también aceptarán cadenas Unicode así como " +"cadenas regulares. (Es posible que en el proceso de corrección de esto se " +"hayan pasado por alto algunas funciones incorporadas; si encuentra una " +"función incorporada que acepte cadenas pero que no acepte cadenas Unicode en " +"absoluto, por favor, infórmelo como un error)" #: ../Doc/whatsnew/2.0.rst:198 msgid "" @@ -286,6 +450,12 @@ msgid "" "it's uppercase. ``unicodedata.bidirectional(u'\\u0660')`` returns 'AN', " "meaning that U+0660 is an Arabic number." msgstr "" +"Un nuevo módulo, :mod:`unicodedata`, proporciona una interfaz para las " +"propiedades de los caracteres Unicode. Por ejemplo, ``unicodedata." +"category(u'A')`` retorna la cadena de 2 caracteres 'Lu', la 'L' denota que " +"es una letra, y la 'u' significa que es mayúscula. ``unicodedata." +"bidirectional(u'\\u0660')`` retorna 'AN', lo que significa que U+0660 es un " +"número árabe." #: ../Doc/whatsnew/2.0.rst:204 msgid "" @@ -294,6 +464,11 @@ msgid "" "most often use the ``codecs.lookup(encoding)`` function, which returns a 4-" "element tuple: ``(encode_func, decode_func, stream_reader, stream_writer)``." msgstr "" +"El módulo :mod:`codecs` contiene funciones para buscar codificaciones " +"existentes y registrar otras nuevas. A menos que quiera implementar una " +"nueva codificación, lo más habitual es que utilice la función ``codecs." +"lookup(encoding)``, que retorna una tupla de 4 elementos: ``(encode_func, " +"decode_func, stream_reader, stream_writer)``." #: ../Doc/whatsnew/2.0.rst:209 msgid "" @@ -303,6 +478,10 @@ msgid "" "encoding, and *length* tells you how much of the Unicode string was " "converted." msgstr "" +"*encode_func* es una función que toma una cadena Unicode, y retorna una 2-" +"tupla ``(string, length)``. *string* es una cadena de 8 bits que contiene " +"una porción (tal vez toda) de la cadena Unicode convertida a la codificación " +"dada, y *longitud* indica la cantidad de cadena Unicode convertida." #: ../Doc/whatsnew/2.0.rst:214 msgid "" @@ -311,6 +490,10 @@ msgid "" "Unicode string *ustring* and the integer *length* telling how much of the 8-" "bit string was consumed." msgstr "" +"*decode_func* es lo opuesto a *encode_func*, tomando una cadena de 8 bits y " +"retornando una 2-tupla ``(ustring, length)``, que consiste en la cadena " +"Unicode resultante *ustring* y el entero *length* que dice cuánto de la " +"cadena de 8 bits se consumió." #: ../Doc/whatsnew/2.0.rst:219 msgid "" @@ -319,6 +502,10 @@ msgid "" "meth:`readline`, and :meth:`readlines` methods. These methods will all " "translate from the given encoding and return Unicode strings." msgstr "" +"*stream_reader* es una clase que soporta la decodificación de la entrada de " +"un flujo. *stream_reader(file_obj)* retorna un objeto que soporta los " +"métodos :meth:`read`, :meth:`readline` y :meth:`readlines`. Todos estos " +"métodos traducirán desde la codificación dada y retornarán cadenas Unicode." #: ../Doc/whatsnew/2.0.rst:224 msgid "" @@ -327,16 +514,22 @@ msgid "" "`write` and :meth:`writelines` methods. These methods expect Unicode " "strings, translating them to the given encoding on output." msgstr "" +"*stream_writer*, de forma similar, es una clase que soporta la codificación " +"de la salida a un flujo. *stream_writer(file_obj)* retorna un objeto que " +"soporta los métodos :meth:`write` y :meth:`writelines`. Estos métodos " +"esperan cadenas Unicode, traduciéndolas a la codificación dada en la salida." #: ../Doc/whatsnew/2.0.rst:229 msgid "" "For example, the following code writes a Unicode string into a file, " "encoding it as UTF-8::" msgstr "" +"Por ejemplo, el siguiente código escribe una cadena Unicode en un archivo, " +"codificándola como UTF-8::" #: ../Doc/whatsnew/2.0.rst:243 msgid "The following code would then read UTF-8 input from the file::" -msgstr "" +msgstr "El siguiente código leería la entrada UTF-8 del archivo::" #: ../Doc/whatsnew/2.0.rst:249 msgid "" @@ -344,6 +537,9 @@ msgid "" "module, which has a new underlying implementation called SRE written by " "Fredrik Lundh of Secret Labs AB." msgstr "" +"Las expresiones regulares compatibles con Unicode están disponibles a través " +"del módulo :mod:`re`, que tiene una nueva implementación subyacente llamada " +"SRE escrita por Fredrik Lundh de Secret Labs AB." #: ../Doc/whatsnew/2.0.rst:253 msgid "" @@ -353,10 +549,16 @@ msgid "" "future version of Python may drop support for 8-bit strings and provide only " "Unicode strings." msgstr "" +"Se ha añadido una opción de línea de comandos ``-U`` que hace que el " +"compilador de Python interprete todos los literales de cadena como literales " +"de cadena Unicode. Esta opción está pensada para ser utilizada en las " +"pruebas y para asegurar el futuro de su código Python, ya que alguna versión " +"futura de Python puede dejar de soportar cadenas de 8 bits y proporcionar " +"sólo cadenas Unicode." #: ../Doc/whatsnew/2.0.rst:262 msgid "List Comprehensions" -msgstr "" +msgstr "Comprensión de listas" #: ../Doc/whatsnew/2.0.rst:264 msgid "" @@ -367,6 +569,12 @@ msgid "" "might want to pull out all the strings containing a given substring, or " "strip off trailing whitespace from each line." msgstr "" +"Las listas son un tipo de datos muy útil en Python, y muchos programas " +"manipulan una lista en algún momento. Dos operaciones comunes en las listas " +"son hacer un bucle sobre ellas, y escoger los elementos que cumplen un " +"cierto criterio, o aplicar alguna función a cada elemento. Por ejemplo, dada " +"una lista de cadenas, podrías querer sacar todas las cadenas que contengan " +"una determinada subcadena, o quitar los espacios en blanco de cada línea." #: ../Doc/whatsnew/2.0.rst:271 msgid "" @@ -379,6 +587,14 @@ msgid "" "paragraph, finding all the strings in the list containing a given " "substring. You could write the following to do it::" msgstr "" +"Las funciones :func:`map` y :func:`filter` existentes pueden usarse para " +"este propósito, pero requieren una función como uno de sus argumentos. Esto " +"está bien si hay una función incorporada que se puede pasar directamente, " +"pero si no la hay, hay que crear una pequeña función para hacer el trabajo " +"requerido, y las reglas de ámbito de Python hacen que el resultado sea feo " +"si la pequeña función necesita información adicional. Tomemos el primer " +"ejemplo del párrafo anterior, encontrar todas las cadenas de la lista que " +"contienen una subcadena dada. Podrías escribir lo siguiente para hacerlo::" #: ../Doc/whatsnew/2.0.rst:286 msgid "" @@ -386,10 +602,14 @@ msgid "" "anonymous function created by the :keyword:`lambda` expression knows what " "substring is being searched for. List comprehensions make this cleaner::" msgstr "" +"Debido a las reglas de ámbito de Python, se utiliza un argumento por defecto " +"para que la función anónima creada por la expresión :keyword:`lambda` sepa " +"qué subcadena se está buscando. Las comprensiones de lista hacen esto más " +"limpio::" #: ../Doc/whatsnew/2.0.rst:292 msgid "List comprehensions have the form::" -msgstr "" +msgstr "Las comprensiones de listas tienen la forma::" #: ../Doc/whatsnew/2.0.rst:299 msgid "" @@ -401,12 +621,21 @@ msgid "" "keyword:`!if` clause is optional; if present, *expression* is only evaluated " "and added to the result if *condition* is true." msgstr "" +"Las cláusulas :keyword:`!for`...\\ :keyword:`!in` contienen las secuencias a " +"iterar. Las secuencias no tienen por qué tener la misma longitud, ya que no " +"se itera sobre ellas en paralelo, sino de izquierda a derecha; esto se " +"explica más claramente en los párrafos siguientes. Los elementos de la lista " +"generada serán los valores sucesivos de la *expresión*. La cláusula final :" +"keyword:`!if` es opcional; si está presente, la *expresión* sólo se evalúa y " +"se añade al resultado si la *condición* es verdadera." #: ../Doc/whatsnew/2.0.rst:307 msgid "" "To make the semantics very clear, a list comprehension is equivalent to the " "following Python code::" msgstr "" +"Para dejar muy clara la semántica, una comprensión de lista equivale al " +"siguiente código de Python::" #: ../Doc/whatsnew/2.0.rst:319 msgid "" @@ -415,6 +644,10 @@ msgid "" "all the sequences. If you have two lists of length 3, the output list is 9 " "elements long::" msgstr "" +"Esto significa que cuando hay múltiples cláusulas :keyword:`!for`...\\ :" +"keyword:`!in`, la lista resultante será igual al producto de las longitudes " +"de todas las secuencias. Si tiene dos listas de longitud 3, la lista de " +"salida tendrá 9 elementos::" #: ../Doc/whatsnew/2.0.rst:330 msgid "" @@ -422,6 +655,10 @@ msgid "" "creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" +"Para evitar introducir una ambigüedad en la gramática de Python, si " +"*expresión* está creando una tupla, debe estar rodeada de paréntesis. La " +"primera comprensión de la lista a continuación es un error de sintaxis, " +"mientras que la segunda es correcta::" #: ../Doc/whatsnew/2.0.rst:339 msgid "" @@ -431,10 +668,16 @@ msgid "" "comprehension patch, which was then discussed for a seemingly endless time " "on the python-dev mailing list and kept up-to-date by Skip Montanaro." msgstr "" +"La idea de las comprensiones de listas procede originalmente del lenguaje de " +"programación funcional Haskell (https://www.haskell.org). Greg Ewing fue el " +"que más abogó por añadirlas a Python y escribió el parche inicial de " +"comprensión de listas, que luego se discutió durante un tiempo aparentemente " +"interminable en la lista de correo de python-dev y se mantuvo actualizada " +"por Skip Montanaro." #: ../Doc/whatsnew/2.0.rst:349 msgid "Augmented Assignment" -msgstr "" +msgstr "Asignación aumentada" #: ../Doc/whatsnew/2.0.rst:351 msgid "" @@ -444,6 +687,11 @@ msgid "" "value of the variable ``a`` by 2, equivalent to the slightly lengthier ``a " "= a + 2``." msgstr "" +"Los operadores de asignación aumentados, otra característica largamente " +"solicitada, han sido añadidos a Python 2.0. Los operadores de asignación " +"aumentados incluyen ``+=``, ``-=``, ``*=``, etc. Por ejemplo, la sentencia " +"``a += 2`` incrementa el valor de la variable ``a`` en 2, lo que equivale a " +"la sentencia algo más larga ``a = a + 2``." #: ../Doc/whatsnew/2.0.rst:356 msgid "" @@ -454,6 +702,12 @@ msgid "" "following :class:`Number` class stores a number and supports using += to " "create a new instance with an incremented value." msgstr "" +"La lista completa de operadores de asignación soportados es ``+=``, ``-=``, " +"``*=``, ``/=``, ``%=``, ``**=``, ``&=``, ``|=``, ``^=``, ``>>=``, y ``<=``. " +"Las clases de Python pueden anular los operadores de asignación aumentados " +"definiendo métodos llamados :meth:`__iadd__`, :meth:`__isub__`, etc. Por " +"ejemplo, la siguiente clase :class:`Number` almacena un número y soporta el " +"uso de += para crear una nueva instancia con un valor incrementado." #: ../Doc/whatsnew/2.0.rst:377 msgid "" @@ -462,6 +716,10 @@ msgid "" "value; this return value is bound as the new value of the variable on the " "left-hand side." msgstr "" +"El método especial :meth:`__iadd__` es llamado con el valor del incremento, " +"y debe retornar una nueva instancia con un valor adecuadamente modificado; " +"este valor de retorno se vincula como el nuevo valor de la variable del lado " +"izquierdo." #: ../Doc/whatsnew/2.0.rst:381 msgid "" @@ -470,10 +728,14 @@ msgid "" "Perl, and PHP also support them. The augmented assignment patch was " "implemented by Thomas Wouters." msgstr "" +"Los operadores de asignación aumentada se introdujeron por primera vez en el " +"lenguaje de programación C, y la mayoría de los lenguajes derivados de C, " +"como :program:`awk`, C++, Java, Perl y PHP también los soportan. El parche " +"de asignación aumentada fue implementado por Thomas Wouters." #: ../Doc/whatsnew/2.0.rst:390 msgid "String Methods" -msgstr "" +msgstr "Métodos de cadena de caracteres" #: ../Doc/whatsnew/2.0.rst:392 msgid "" @@ -485,6 +747,13 @@ msgid "" "takes 3 string arguments, that means eight possible permutations, and " "correspondingly complicated code." msgstr "" +"Hasta ahora, la funcionalidad de manipulación de cadenas de caracteres " +"estaba en el módulo :mod:`string`, que normalmente era un front-end para el " +"módulo :mod:`strop` escrito en C. La adición de Unicode supuso una " +"dificultad para el módulo :mod:`strop`, porque todas las funciones tendrían " +"que ser reescritas para aceptar cadenas de 8 bits o Unicode. Para funciones " +"como :func:`string.replace`, que toma 3 argumentos de cadena, eso significa " +"ocho posibles permutaciones, y el correspondiente código complicado." #: ../Doc/whatsnew/2.0.rst:400 msgid "" @@ -492,6 +761,9 @@ msgid "" "manipulation functionality available through methods on both 8-bit strings " "and Unicode strings. ::" msgstr "" +"En cambio, Python 2.0 traslada el problema al tipo de cadena de caracteres, " +"haciendo que la funcionalidad de manipulación de cadenas esté disponible a " +"través de métodos tanto en cadenas de 8 bits como en cadenas Unicode. ::" #: ../Doc/whatsnew/2.0.rst:411 msgid "" @@ -500,12 +772,18 @@ msgid "" "methods return new strings, and do not modify the string on which they " "operate." msgstr "" +"Una cosa que no ha cambiado, a pesar de una notable broma de April Fools, es " +"que las cadenas de Python son inmutables. Así, los métodos de cadenas " +"retornan cadenas nuevas, y no modifican la cadena sobre la que operan." #: ../Doc/whatsnew/2.0.rst:415 msgid "" "The old :mod:`string` module is still around for backwards compatibility, " "but it mostly acts as a front-end to the new string methods." msgstr "" +"El antiguo módulo :mod:`string` sigue existiendo por compatibilidad con el " +"pasado, pero actúa principalmente como un front-end para los nuevos métodos " +"de cadena de caracteres." #: ../Doc/whatsnew/2.0.rst:418 msgid "" @@ -514,6 +792,10 @@ msgid "" "`endswith`. ``s.startswith(t)`` is equivalent to ``s[:len(t)] == t``, while " "``s.endswith(t)`` is equivalent to ``s[-len(t):] == t``." msgstr "" +"Dos métodos que no tienen paralelo en las versiones anteriores a la 2.0, " +"aunque existieron en JPython durante bastante tiempo, son :meth:`startswith` " +"y :meth:`endswith`. ``s.startswith(t)`` es equivalente a ``s[:len(t)] == " +"t``, mientras que ``s.endswith(t)`` es equivalente a ``s[-len(t):] == t``." #: ../Doc/whatsnew/2.0.rst:423 msgid "" @@ -523,10 +805,15 @@ msgid "" "module, with the arguments reversed. In other words, ``s.join(seq)`` is " "equivalent to the old ``string.join(seq, s)``." msgstr "" +"Otro método que merece una mención especial es :meth:`join`. El método :meth:" +"`join` de una cadena recibe un parámetro, una secuencia de cadenas, y es " +"equivalente a la función :func:`string.join` del antiguo módulo :mod:" +"`string`, con los argumentos invertidos. En otras palabras, ``s.join(seq)`` " +"es equivalente a la antigua ``string.join(seq, s)``." #: ../Doc/whatsnew/2.0.rst:433 msgid "Garbage Collection of Cycles" -msgstr "" +msgstr "Recogida de basura de los ciclos" #: ../Doc/whatsnew/2.0.rst:435 msgid "" @@ -537,6 +824,13 @@ msgid "" "no longer accessible, since you need to have a reference to an object to " "access it, and if the count is zero, no references exist any longer." msgstr "" +"La implementación en C de Python utiliza el conteo de referencias para " +"implementar la recolección de basura. Cada objeto de Python mantiene un " +"recuento del número de referencias que apuntan a sí mismo, y ajusta el " +"recuento a medida que se crean o destruyen referencias. Una vez que el " +"recuento de referencias llega a cero, el objeto deja de ser accesible, ya " +"que es necesario tener una referencia a un objeto para acceder a él, y si el " +"recuento es cero, ya no existen referencias." #: ../Doc/whatsnew/2.0.rst:442 msgid "" @@ -547,12 +841,21 @@ msgid "" "doesn't realise that objects are no longer accessible, resulting in a memory " "leak. This happens when there are cycles of references." msgstr "" +"El conteo de referencias tiene algunas propiedades agradables: es fácil de " +"entender e implementar, y la implementación resultante es portable, bastante " +"rápida, y reacciona bien con otras bibliotecas que implementan sus propios " +"esquemas de manejo de memoria. El mayor problema del conteo de referencias " +"es que a veces no se da cuenta de que los objetos ya no son accesibles, lo " +"que provoca una fuga de memoria. Esto ocurre cuando hay ciclos de " +"referencias." #: ../Doc/whatsnew/2.0.rst:449 msgid "" "Consider the simplest possible cycle, a class instance which has a " "reference to itself::" msgstr "" +"Consideremos el ciclo más simple posible, una instancia de clase que tiene " +"una referencia a sí misma::" #: ../Doc/whatsnew/2.0.rst:455 msgid "" @@ -560,6 +863,9 @@ msgid "" "``instance`` is 2; one reference is from the variable named ``'instance'``, " "and the other is from the ``myself`` attribute of the instance." msgstr "" +"Después de ejecutar las dos líneas de código anteriores, la cuenta de " +"referencias de ``instance`` es 2; una referencia es de la variable llamada " +"``'instance``, y la otra es del atributo ``myself`` de la instancia." #: ../Doc/whatsnew/2.0.rst:459 msgid "" @@ -570,6 +876,13 @@ msgid "" "objects can participate in a cycle if they have references to each other, " "causing all of the objects to be leaked." msgstr "" +"Si la siguiente línea de código es ``del instance``, ¿qué ocurre? La cuenta " +"de referencias de ``instance`` se reduce en 1, por lo que tiene una cuenta " +"de referencias de 1; la referencia en el atributo ``myself`` sigue " +"existiendo. Sin embargo, la instancia ya no es accesible a través del código " +"de Python, y podría ser eliminada. Varios objetos pueden participar en un " +"ciclo si tienen referencias entre sí, haciendo que todos los objetos se " +"filtren." #: ../Doc/whatsnew/2.0.rst:466 msgid "" @@ -579,6 +892,11 @@ msgid "" "collection, obtain debugging statistics, and tuning the collector's " "parameters." msgstr "" +"Python 2.0 soluciona este problema ejecutando periódicamente un algoritmo de " +"detección de ciclos que busca los ciclos inaccesibles y borra los objetos " +"implicados. Un nuevo módulo :mod:`gc` proporciona funciones para realizar " +"una recolección de basura, obtener estadísticas de depuración y afinar los " +"parámetros del recolector." #: ../Doc/whatsnew/2.0.rst:471 msgid "" @@ -593,6 +911,17 @@ msgid "" "buggy, by specifying the :option:`!--without-cycle-gc` switch when running " "the :program:`configure` script." msgstr "" +"Ejecutar el algoritmo de detección de ciclos lleva algo de tiempo, y por lo " +"tanto resultará en una sobrecarga adicional. Se espera que después de que " +"hayamos adquirido experiencia con la recogida de ciclos al utilizar la " +"versión 2.0, Python 2.1 sea capaz de minimizar la sobrecarga con un " +"cuidadoso ajuste. Todavía no es obvio cuánto rendimiento se pierde, porque " +"la evaluación comparativa de esto es difícil y depende crucialmente de la " +"frecuencia con la que el programa crea y destruye objetos. La detección de " +"ciclos puede ser desactivada cuando Python es compilado, si no puede " +"permitirse ni siquiera una pequeña penalización de velocidad o sospecha que " +"la recolección de ciclos es un error, especificando la opción :option:`!--" +"without-cycle-gc` cuando se ejecuta el script :program:`configure`." #: ../Doc/whatsnew/2.0.rst:482 msgid "" @@ -606,10 +935,20 @@ msgid "" "threads titled \"Reference cycle collection for Python\" and \"Finalization " "again\"." msgstr "" +"Varias personas abordaron este problema y contribuyeron a una solución. Una " +"primera implementación del enfoque de detección de ciclos fue escrita por " +"Toby Kelsey. El algoritmo actual fue sugerido por Eric Tiedemann durante una " +"visita al CNRI, y Guido van Rossum y Neil Schemenauer escribieron dos " +"implementaciones diferentes, que posteriormente fueron integradas por Neil. " +"Muchas otras personas ofrecieron sugerencias a lo largo del camino; los " +"archivos de marzo de 2000 de la lista de correo python-dev contienen la " +"mayor parte de la discusión relevante, especialmente en los hilos titulados " +"\"Colección de ciclos de referencia para Python\" y \"Finalización de nuevo" +"\"." #: ../Doc/whatsnew/2.0.rst:495 msgid "Other Core Changes" -msgstr "" +msgstr "Otros cambios en el núcleo" #: ../Doc/whatsnew/2.0.rst:497 msgid "" @@ -617,10 +956,13 @@ msgid "" "functions. None of the changes are very far-reaching, but they're handy " "conveniences." msgstr "" +"Se han realizado varios cambios menores en la sintaxis y las funciones " +"incorporadas de Python. Ninguno de los cambios es de gran alcance, pero son " +"conveniencias prácticas." #: ../Doc/whatsnew/2.0.rst:502 msgid "Minor Language Changes" -msgstr "" +msgstr "Cambios menores del lenguaje" #: ../Doc/whatsnew/2.0.rst:504 msgid "" @@ -633,6 +975,15 @@ msgid "" "and clearer way to achieve the same effect. This syntax is symmetrical with " "the syntax for defining functions::" msgstr "" +"Una nueva sintaxis hace más conveniente llamar a una función dada con una " +"tupla de argumentos y/o un diccionario de argumentos de palabras clave. En " +"Python 1.5 y anteriores, se utilizaba la función incorporada :func:`apply`: " +"``apply(f, args, kw)`` llama a la función :func:`f` con la tupla de " +"argumentos *args* y los argumentos de palabras clave en el diccionario " +"*kw*. :func:`apply` es lo mismo en 2.0, pero gracias a un parche de Greg " +"Ewing, ``f(*args, **kw)`` es una forma más corta y clara de conseguir el " +"mismo efecto. Esta sintaxis es simétrica con la sintaxis para definir " +"funciones::" #: ../Doc/whatsnew/2.0.rst:518 msgid "" @@ -644,6 +995,13 @@ msgid "" "``sys.stdout`` and then restore the old value. For sending output to " "standard error, it's much easier to write this::" msgstr "" +"La sentencia ``print`` puede ahora tener su salida dirigida a un objeto tipo " +"archivo siguiendo a ``print`` con ``>> archivo``, similar al operador de " +"redirección en los shells de Unix. Antes había que utilizar el método :meth:" +"`write` del objeto tipo archivo, que carece de la comodidad y simplicidad de " +"``print``, o bien asignar un nuevo valor a ``sys.stdout`` y luego restaurar " +"el valor anterior. Para enviar la salida al error estándar, es mucho más " +"fácil escribir esto::" #: ../Doc/whatsnew/2.0.rst:528 msgid "" @@ -651,6 +1009,9 @@ msgid "" "module as name`` or ``from module import name as othername``. The patch was " "submitted by Thomas Wouters." msgstr "" +"Ahora se puede cambiar el nombre de los módulos al importarlos, utilizando " +"la sintaxis ``import module as name`` o ``from module import name as " +"othername``. El parche fue enviado por Thomas Wouters." #: ../Doc/whatsnew/2.0.rst:532 #, python-format @@ -661,6 +1022,12 @@ msgid "" "which inserts the :func:`str` of its argument. For example, ``'%r %s' % " "('abc', 'abc')`` returns a string containing ``'abc' abc``." msgstr "" +"Un nuevo estilo de formato está disponible cuando se utiliza el operador ``" +"%``; '%r' insertará el :func:`repr` de su argumento. Esto también se añadió " +"por consideraciones de simetría, esta vez por simetría con el estilo de " +"formato existente '%s', que inserta el :func:`str` de su argumento. Por " +"ejemplo, ``'%r %s' % ('abc', 'abc')`` retorna una cadena que contiene " +"``'abc' abc``." #: ../Doc/whatsnew/2.0.rst:538 msgid "" @@ -674,6 +1041,16 @@ msgid "" "built-in objects written in C can define what :keyword:`!in` means for them " "via a new slot in the sequence protocol." msgstr "" +"Anteriormente no había forma de implementar una clase que sobrepasara el " +"operador incorporado de Python :keyword:`in` e implementara una versión " +"personalizada.``obj in seq`` retorna verdadero si *obj* está presente en la " +"secuencia *seq*; Python lo calcula simplemente probando cada índice de la " +"secuencia hasta que se encuentra *obj* o se encuentra un :exc:`IndexError`. " +"Moshe Zadka ha contribuido con un parche que añade un método mágico :meth:" +"`__contains__` para proporcionar una implementación personalizada para :" +"keyword:`!in`. Además, los nuevos objetos incorporados escritos en C pueden " +"definir lo que :keyword:`!in` significa para ellos a través de una nueva " +"ranura en el protocolo de secuencia." #: ../Doc/whatsnew/2.0.rst:547 msgid "" @@ -684,6 +1061,13 @@ msgid "" "and crashed; Jeremy Hylton rewrote the code to no longer crash, producing a " "useful result instead. For example, after this code::" msgstr "" +"Las versiones anteriores de Python utilizaban un algoritmo recursivo para " +"borrar objetos. Las estructuras de datos muy anidadas podían hacer que el " +"intérprete llenara la pila de C y se bloqueara; Christian Tismer reescribió " +"la lógica de borrado para solucionar este problema. En una nota relacionada, " +"la comparación de objetos recursivos se repite infinitamente y se bloquea; " +"Jeremy Hylton reescribió el código para que no se bloquee, produciendo un " +"resultado útil. Por ejemplo, después de este código::" #: ../Doc/whatsnew/2.0.rst:559 msgid "" @@ -696,6 +1080,15 @@ msgid "" "even if a user-defined :meth:`__cmp__` method encountered an error, since " "the resulting exception would simply be silently swallowed." msgstr "" +"La comparación ``a==b`` retorna verdadero, porque las dos estructuras de " +"datos recursivas son isomorfas. Véase el hilo \"trashcan and PR#7\" en los " +"archivos de abril de 2000 de la lista de correo de python-dev para la " +"discusión que condujo a esta implementación, y algunos enlaces relevantes " +"útiles. Tenga en cuenta que las comparaciones ahora también pueden generar " +"excepciones. En versiones anteriores de Python, una operación de comparación " +"como ``cmp(a,b)`` siempre producía una respuesta, incluso si un método :meth:" +"`__cmp__` definido por el usuario encontraba un error, ya que la excepción " +"resultante simplemente se tragaba en silencio." #: ../Doc/whatsnew/2.0.rst:571 msgid "" @@ -706,6 +1099,12 @@ msgid "" "supports Windows CE; see the Python CE page at http://pythonce.sourceforge." "net/ for more information." msgstr "" +"Se ha trabajado en portar Python a Windows de 64 bits en el procesador " +"Itanium, principalmente por Trent Mick de ActiveState. (Confusamente, ``sys." +"platform`` sigue siendo ``'win32`` en Win64 porque parece que para facilitar " +"la portabilidad, MS Visual C++ trata el código como de 32 bits en Itanium) " +"PythonWin también es compatible con Windows CE; vea la página de Python CE " +"en http://pythonce.sourceforge.net/ para más información." #: ../Doc/whatsnew/2.0.rst:577 msgid "" @@ -714,6 +1113,10 @@ msgid "" "suffix=.x\". Consult the README in the Python source distribution for more " "instructions." msgstr "" +"Otra plataforma nueva es Darwin/MacOS X; el soporte inicial para ella está " +"en Python 2.0. La carga dinámica funciona, si se especifica \"configure --" +"with-dyld --with-suffix=.x\". Consulte el README de la distribución de " +"fuentes de Python para obtener más instrucciones." #: ../Doc/whatsnew/2.0.rst:581 msgid "" @@ -726,6 +1129,15 @@ msgid "" "exc:`NameError`, so any existing code that expects :exc:`NameError` to be " "raised should still work. ::" msgstr "" +"Se ha intentado aliviar uno de los defectos de Python, la a menudo confusa " +"excepción :exc:`NameError` cuando el código hace referencia a una variable " +"local antes de que se le haya asignado un valor. Por ejemplo, el siguiente " +"código lanza una excepción en la sentencia ``print`` tanto en 1.5.2 como en " +"2.0; en 1.5.2 se lanza una excepción :exc:`NameError`, mientras que en 2.0 " +"se lanza una nueva excepción :exc:`UnboundLocalError`. :exc:" +"`UnboundLocalError` es una subclase de :exc:`NameError`, así que cualquier " +"código existente que espere que se lance :exc:`NameError` debería seguir " +"funcionando. ::" #: ../Doc/whatsnew/2.0.rst:595 msgid "" @@ -733,10 +1145,13 @@ msgid "" "introduced. They're both subclasses of :exc:`SyntaxError`, and are raised " "when Python code is found to be improperly indented." msgstr "" +"Se han introducido dos nuevas excepciones, :exc:`TabError` y :exc:" +"`IndentationError`. Ambas son subclases de :exc:`SyntaxError`, y se lanzan " +"cuando el código Python se encuentra con una sangría incorrecta." #: ../Doc/whatsnew/2.0.rst:601 msgid "Changes to Built-in Functions" -msgstr "" +msgstr "Cambios en las funciones incorporadas" #: ../Doc/whatsnew/2.0.rst:603 msgid "" @@ -747,6 +1162,13 @@ msgid "" "``None`` if the sequences aren't all of the same length, while :func:`zip` " "truncates the returned list to the length of the shortest argument sequence." msgstr "" +"Se ha añadido un nuevo built-in, ``zip(seq1, seq2, ...)``. :func:`zip` " +"retorna una lista de tuplas donde cada tupla contiene el i-ésimo elemento de " +"cada una de las secuencias del argumento. La diferencia entre :func:`zip` y " +"``map(None, seq1, seq2)`` es que :func:`map` rellena las secuencias con " +"``None`` si las secuencias no tienen la misma longitud, mientras que :func:" +"`zip` trunca la lista retornada a la longitud de la secuencia argumental más " +"corta." #: ../Doc/whatsnew/2.0.rst:610 msgid "" @@ -756,6 +1178,11 @@ msgid "" "`TypeError` exception with the message \"can't convert non-string with " "explicit base\"." msgstr "" +"Las funciones :func:`int` y :func:`long` aceptan ahora un parámetro \"base\" " +"opcional cuando el primer argumento es una cadena. `int('123', 10)`` retorna " +"123, mientras que ``int('123', 16)`` retorna 291. ``int(123, 16)`` lanza una " +"excepción :exc:`TypeError` con el mensaje \"no se puede convertir una cadena " +"con base explícita\"." #: ../Doc/whatsnew/2.0.rst:616 msgid "" @@ -765,6 +1192,12 @@ msgid "" "version_info`` would be ``(2, 0, 1, 'beta', 1)``. *level* is a string such " "as ``\"alpha\"``, ``\"beta\"``, or ``\"final\"`` for a final release." msgstr "" +"Se ha añadido al módulo :mod:`sys` una nueva variable que contiene " +"información más detallada sobre la versión. ``sys.version_info`` es una " +"tupla ``(major, minor, micro, level, serial)`` Por ejemplo, en una " +"hipotética 2.0.1beta1, ``sys.version_info`` sería ``(2, 0, 1, 'beta', 1)``. " +"*level* es una cadena como ``\"alpha\"``, ``\"beta\"``, o ``\"final\"`` para " +"una versión final." #: ../Doc/whatsnew/2.0.rst:622 msgid "" @@ -774,11 +1207,17 @@ msgid "" "`get` would do, and also inserts it into the dictionary as the value for " "*key*. Thus, the following lines of code::" msgstr "" +"Los diccionarios tienen un nuevo y extraño método, ``setdefault(key, " +"default)``, que se comporta de forma similar al método :meth:`get` " +"existente. Sin embargo, si falta la clave, :meth:`setdefault` retorna el " +"valor de *default* como haría :meth:`get`, y también lo inserta en el " +"diccionario como valor de *key*. Así, las siguientes líneas de código::" #: ../Doc/whatsnew/2.0.rst:633 msgid "" "can be reduced to a single ``return dict.setdefault(key, [])`` statement." msgstr "" +"puede reducirse a una única sentencia ``return dict.setdefault(key, [])``." #: ../Doc/whatsnew/2.0.rst:635 msgid "" @@ -790,10 +1229,18 @@ msgid "" "1000, and a rough maximum value for a given platform can be found by running " "a new script, :file:`Misc/find_recursionlimit.py`." msgstr "" +"El intérprete establece una profundidad de recursión máxima para atrapar la " +"recursión desbocada antes de llenar la pila de C y causar un volcado del " +"núcleo o GPF. Anteriormente este límite se fijaba cuando se compilaba " +"Python, pero en la versión 2.0 la profundidad máxima de recursión puede " +"leerse y modificarse usando :func:`sys.getrecursionlimit` y :func:`sys." +"setrecursionlimit`. El valor por defecto es 1000, y se puede encontrar un " +"valor máximo aproximado para una plataforma determinada ejecutando un nuevo " +"script, :file:`Misc/find_recursionlimit.py`." #: ../Doc/whatsnew/2.0.rst:647 msgid "Porting to 2.0" -msgstr "" +msgstr "Adaptación a la versión 2.0" #: ../Doc/whatsnew/2.0.rst:649 msgid "" @@ -804,6 +1251,13 @@ msgid "" "always be avoided. This section lists the changes in Python 2.0 that may " "cause old Python code to break." msgstr "" +"Las nuevas versiones de Python se esfuerzan por ser compatibles con las " +"anteriores, y el historial ha sido bastante bueno. Sin embargo, algunos " +"cambios se consideran lo suficientemente útiles, normalmente porque corrigen " +"decisiones de diseño iniciales que resultaron ser activamente erróneas, que " +"no siempre se puede evitar romper la compatibilidad hacia atrás. Esta " +"sección enumera los cambios en Python 2.0 que pueden hacer que el código " +"Python antiguo se rompa." #: ../Doc/whatsnew/2.0.rst:656 msgid "" @@ -817,6 +1271,16 @@ msgid "" "to simply add an extra set of parentheses to pass both values as a tuple: " "``L.append( (1,2) )``." msgstr "" +"El cambio que probablemente romperá la mayor parte del código es el " +"endurecimiento de los argumentos aceptados por algunos métodos. Algunos " +"métodos tomaban múltiples argumentos y los trataban como una tupla, " +"particularmente varios métodos de lista como :meth:`append` y :meth:" +"`insert`. En versiones anteriores de Python, si ``L`` es una lista, ``L." +"append( 1,2 )`` añade la tupla ``(1,2)`` a la lista. En Python 2.0 esto " +"provoca una excepción :exc:`TypeError` con el mensaje 'append requiere " +"exactamente 1 argumento; se han dado 2'. La solución es simplemente añadir " +"un conjunto extra de paréntesis para pasar ambos valores como una tupla: " +"``L.append( (1,2) )``." #: ../Doc/whatsnew/2.0.rst:665 msgid "" @@ -829,6 +1293,15 @@ msgid "" "preprocessor symbol ``NO_STRICT_LIST_APPEND`` to preserve the old behaviour; " "this isn't recommended." msgstr "" +"Las versiones anteriores de estos métodos eran más indulgentes porque " +"utilizaban una antigua función de la interfaz C de Python para analizar sus " +"argumentos; la versión 2.0 los moderniza para utilizar :func:" +"`PyArg_ParseTuple`, la función actual de análisis de argumentos, que " +"proporciona mensajes de error más útiles y trata las llamadas con múltiples " +"argumentos como errores. Si es absolutamente necesario usar la versión 2.0 " +"pero no puedes arreglar tu código, puedes editar :file:`Objects/listobject." +"c` y definir el símbolo del preprocesador ``NO_STRICT_LIST_APPEND`` para " +"preservar el antiguo comportamiento; esto no es recomendable." #: ../Doc/whatsnew/2.0.rst:673 msgid "" @@ -844,6 +1317,17 @@ msgid "" "argument form is simply marked as deprecated; it *will* be tightened up " "again in a future Python version." msgstr "" +"Algunas de las funciones del módulo :mod:`socket` siguen siendo indulgentes " +"en este sentido. Por ejemplo, :func:`socket.connect( ('hostname', 25) )` es " +"la forma correcta, pasando una tupla que representa una dirección IP, pero :" +"func:`socket.connect( 'hostname', 25 )` también funciona. :func:`socket." +"connect_ex` y :func:`socket.bind` son igualmente fáciles de usar. 2.0alpha1 " +"endureció estas funciones, pero como la documentación utilizaba la forma " +"errónea de argumentos múltiples, mucha gente escribió código que se rompería " +"con la comprobación más estricta. GvR se echó atrás en los cambios ante la " +"reacción del público, así que para el módulo :mod:`socket`, la documentación " +"se arregló y la forma de argumento múltiple simplemente se marcó como " +"obsoleta; se *reforzará* de nuevo en una futura versión de Python." #: ../Doc/whatsnew/2.0.rst:684 msgid "" @@ -852,6 +1336,10 @@ msgid "" "the lowest 8 bits of the result, so ``\\x123456`` was equivalent to ``" "\\x56``." msgstr "" +"El escape ``\\x`` en los literales de cadena ahora toma exactamente 2 " +"dígitos hexadecimales. Antes consumía todos los dígitos hexadecimales que " +"seguían a la 'x' y tomaba los 8 bits más bajos del resultado, por lo que ``" +"\\x123456`` era equivalente a ``\\x56``." #: ../Doc/whatsnew/2.0.rst:688 msgid "" @@ -861,6 +1349,11 @@ msgid "" "error message was just the missing attribute name ``eggs``, and code written " "to take advantage of this fact will break in 2.0." msgstr "" +"Las excepciones :exc:`AttributeError` y :exc:`NameError` tienen un mensaje " +"de error más amigable, cuyo texto será algo así como ``'Spam' instance has " +"no attribute 'eggs'`` o ``name 'eggs' is not defined``. Anteriormente, el " +"mensaje de error era simplemente la falta del nombre del atributo ``eggs``, " +"y el código escrito para aprovechar este hecho se romperá en la versión 2.0." #: ../Doc/whatsnew/2.0.rst:694 #, python-format @@ -879,6 +1372,21 @@ msgid "" "``%`` operator (``%d``, ``%i``, ``%x``, etc.). For example, ``\"%d\" % " "2L**64`` will produce the string ``18446744073709551616``." msgstr "" +"Se ha trabajado para que los enteros y los enteros largos sean un poco más " +"intercambiables. En la versión 1.5.2, se añadió soporte para archivos " +"grandes en Solaris, para permitir la lectura de archivos de más de 2 GiB; " +"esto hizo que el método :meth:`tell` de los objetos de archivo retornara un " +"entero largo en lugar de un entero normal. Algunos códigos restaban dos " +"desplazamientos de archivos e intentaban utilizar el resultado para " +"multiplicar una secuencia o cortar una cadena, pero esto generaba un :exc:" +"`TypeError`. En la versión 2.0, los enteros largos pueden utilizarse para " +"multiplicar o cortar una secuencia, y se comportarán como se espera " +"intuitivamente; ``3L * 'abc'`` produce 'abcabcabc', y ``(0,1,2,3)[2L:4L]`` " +"produce (2,3). Los enteros largos también pueden utilizarse en varios " +"contextos en los que antes sólo se aceptaban enteros, como en el método :" +"meth:`seek` de los objetos de archivo, y en los formatos soportados por el " +"operador ``%`` (``%d``, ``%i``, ``%x``, etc.). Por ejemplo, ``\"%d\" % " +"2L**64`` producirá la cadena ``18446744073709551616``." #: ../Doc/whatsnew/2.0.rst:708 msgid "" @@ -890,6 +1398,13 @@ msgid "" "which does ``str(longval)[:-1]`` and assumes the 'L' is there, will now lose " "the final digit." msgstr "" +"El cambio más sutil de los enteros largos es que el :func:`str` de un entero " +"largo ya no tiene un carácter 'L' al final, aunque :func:`repr` todavía lo " +"incluye. La 'L' molestaba a muchas personas que querían imprimir enteros " +"largos con el mismo aspecto que los enteros normales, ya que tenían que " +"esforzarse por cortar el carácter. Esto ya no es un problema en 2.0, pero el " +"código que hace ``str(longval)[:-1]`` y asume que la 'L' está ahí, ahora " +"perderá el dígito final." #: ../Doc/whatsnew/2.0.rst:716 #, python-format @@ -902,6 +1417,14 @@ msgid "" "in binary, so ``repr(8.1)`` is ``'8.0999999999999996'``, while str(8.1) is " "``'8.1'``." msgstr "" +"Tomar el :func:`repr` de un flotador utiliza ahora una precisión de formato " +"diferente a la de :func:`str`. :func:`repr` utiliza la cadena de formato ``" +"%.17g`` para el :func:`sprintf` de C, mientras que :func:`str` utiliza ``" +"%.12g`` como antes. El efecto es que :func:`repr` puede mostrar " +"ocasionalmente más decimales que :func:`str`, para ciertos números. Por " +"ejemplo, el número 8,1 no puede representarse exactamente en binario, por lo " +"que ``repr(8,1)`` es ``'8,09999999999996'``, mientras que str(8,1) es " +"``'8,1'``." #: ../Doc/whatsnew/2.0.rst:724 msgid "" @@ -911,10 +1434,15 @@ msgid "" "exceptions was translated from Python to a built-in C module, written by " "Barry Warsaw and Fredrik Lundh." msgstr "" +"La opción de línea de comandos ``-X``, que convertía todas las excepciones " +"estándar en cadenas en lugar de clases, ha sido eliminada; las excepciones " +"estándar serán ahora siempre clases. El módulo :mod:`exceptions` que " +"contiene las excepciones estándar ha sido traducido de Python a un módulo C " +"integrado, escrito por Barry Warsaw y Fredrik Lundh." #: ../Doc/whatsnew/2.0.rst:740 msgid "Extending/Embedding Changes" -msgstr "" +msgstr "Extensión/Incorporación de cambios" #: ../Doc/whatsnew/2.0.rst:742 msgid "" @@ -923,6 +1451,10 @@ msgid "" "larger application. If you aren't dealing with Python's C API, you can " "safely skip this section." msgstr "" +"Algunos de los cambios están bajo la cubierta, y sólo serán evidentes para " +"la gente que escribe módulos de extensión de C o que incrusta un intérprete " +"de Python en una aplicación más grande. Si no estás tratando con la API de C " +"de Python, puedes saltarte esta sección." #: ../Doc/whatsnew/2.0.rst:747 msgid "" @@ -932,6 +1464,12 @@ msgid "" "built for Python 1.5.x due to how Windows DLLs work, so Python will raise an " "exception and the import will fail." msgstr "" +"El número de versión de la API C de Python se incrementó, por lo que las " +"extensiones C compiladas para 1.5.2 deben ser recompiladas para que " +"funcionen con 2.0. En Windows, no es posible que Python 2.0 importe una " +"extensión de terceros construida para Python 1.5.x debido a cómo funcionan " +"las DLL de Windows, por lo que Python lanzará una excepción y la importación " +"fallará." #: ../Doc/whatsnew/2.0.rst:753 msgid "" @@ -941,6 +1479,12 @@ msgid "" "remember to write code such as ``if type(obj) == myExtensionClass``, but can " "use the more natural ``if isinstance(obj, myExtensionClass)``." msgstr "" +"Los usuarios del módulo ExtensionClass de Jim Fulton estarán encantados de " +"saber que se han añadido ganchos para que las ExtensionClasses sean ahora " +"compatibles con :func:`isinstance` y :func:`issubclass`. Esto significa que " +"ya no tiene que recordar escribir código como ``if type(obj) == " +"myExtensionClass``, sino que puede utilizar el más natural ``if " +"isinstance(obj, myExtensionClass)``." #: ../Doc/whatsnew/2.0.rst:759 msgid "" @@ -952,6 +1496,14 @@ msgid "" "Include/ directory that held various portability hacks; they've been merged " "into a single file, :file:`Include/pyport.h`." msgstr "" +"El archivo :file:`Python/importdl.c`, que era una masa de #ifdefs para " +"soportar la carga dinámica en muchas plataformas diferentes, fue limpiado y " +"reorganizado por Greg Stein. :file:`importdl.c` es ahora bastante pequeño, y " +"el código específico de la plataforma se ha movido a un montón de archivos :" +"file:`Python/dynload_\\*.c`. Otra limpieza: también había una serie de " +"archivos :file:`my\\*.h` en el directorio Include/ que contenían varios " +"hacks de portabilidad; se han fusionado en un único archivo, :file:`Include/" +"pyport.h`." #: ../Doc/whatsnew/2.0.rst:767 msgid "" @@ -962,6 +1514,13 @@ msgid "" "discussions during which the interface was hammered out, see the Web " "archives of the 'patches' and 'python-dev' lists at python.org." msgstr "" +"Se ha completado la tan esperada reestructuración de malloc de Vladimir " +"Marangozov, para facilitar que el intérprete de Python utilice un asignador " +"personalizado en lugar del estándar de C :func:`malloc`. Para la " +"documentación, lea los comentarios en :file:`Include/pymem.h` y :file:" +"`Include/objimpl.h`. Para ver las largas discusiones durante las cuales se " +"elaboró la interfaz, consulte los archivos web de las listas 'patches' y " +"'python-dev' en python.org." #: ../Doc/whatsnew/2.0.rst:774 msgid "" @@ -970,6 +1529,10 @@ msgid "" "Macintosh. Threading support using the user-space GNU ``pth`` library was " "also contributed." msgstr "" +"Las versiones recientes del entorno de desarrollo GUSI para MacOS soportan " +"hilos POSIX. Por lo tanto, el soporte de hilos POSIX de Python ahora " +"funciona en Macintosh. También se ha contribuido al soporte de hilos " +"utilizando la biblioteca GNU ``pth`` del espacio de usuario." #: ../Doc/whatsnew/2.0.rst:779 msgid "" @@ -980,6 +1543,13 @@ msgid "" "as an unthreaded version; with the 2.0 changes, the difference is only 10%. " "These improvements were contributed by Yakov Markovitch." msgstr "" +"También se ha mejorado el soporte de hilos en Windows. Windows soporta " +"bloqueos de hilos que utilizan objetos del núcleo sólo en caso de " +"contención; en el caso común cuando no hay contención, utilizan funciones " +"más simples que son un orden de magnitud más rápido. Una versión con hilos " +"de Python 1.5.2 en NT es dos veces más lenta que una versión sin hilos; con " +"los cambios de la 2.0, la diferencia es sólo del 10%. Estas mejoras fueron " +"aportadas por Yakov Markovitch." #: ../Doc/whatsnew/2.0.rst:786 msgid "" @@ -987,6 +1557,9 @@ msgid "" "requires an ANSI C compiler, and can no longer be done using a compiler that " "only supports K&R C." msgstr "" +"El código fuente de Python 2.0 ahora sólo utiliza prototipos ANSI C, por lo " +"que la compilación de Python ahora requiere un compilador ANSI C, y ya no " +"puede hacerse utilizando un compilador que sólo soporte K&R C." #: ../Doc/whatsnew/2.0.rst:790 msgid "" @@ -996,6 +1569,12 @@ msgid "" "who are generating Python code would run into this limit. A patch by " "Charles G. Waldman raises the limit from ``2^16`` to ``2^{32}``." msgstr "" +"Anteriormente, la máquina virtual de Python utilizaba números de 16 bits en " +"su bytecode, lo que limitaba el tamaño de los archivos fuente. En " +"particular, esto afectaba al tamaño máximo de las listas literales y los " +"diccionarios en el código fuente de Python; ocasionalmente, las personas que " +"generan código Python se encontraban con este límite. Un parche de Charles " +"G. Waldman eleva el límite de ``2^16`` a ``2^{32}``." #: ../Doc/whatsnew/2.0.rst:796 msgid "" @@ -1007,16 +1586,26 @@ msgid "" "third argument for the value to be assigned to the name. This third " "argument is, respectively, a Python object, a C long, or a C string." msgstr "" +"Se han añadido tres nuevas funciones para añadir constantes al diccionario " +"de un módulo en el momento de la inicialización: :func:" +"`PyModule_AddObject`, :func:`PyModule_AddIntConstant`, y :func:" +"`PyModule_AddStringConstant`. Cada una de estas funciones toma un objeto de " +"módulo, una cadena C terminada en cero que contiene el nombre a añadir, y un " +"tercer argumento para el valor a asignar al nombre. Este tercer argumento " +"es, respectivamente, un objeto Python, un C long o una cadena C." #: ../Doc/whatsnew/2.0.rst:804 msgid "" "A wrapper API was added for Unix-style signal handlers. :func:`PyOS_getsig` " "gets a signal handler and :func:`PyOS_setsig` will set a new handler." msgstr "" +"Se ha añadido una API envolvente para los manejadores de señales de estilo " +"Unix. :func:`PyOS_getsig` obtiene un manejador de señales y :func:" +"`PyOS_setsig` establecerá un nuevo manejador." #: ../Doc/whatsnew/2.0.rst:811 msgid "Distutils: Making Modules Easy to Install" -msgstr "" +msgstr "Distutils: Facilitando la instalación de módulos" #: ../Doc/whatsnew/2.0.rst:813 msgid "" @@ -1029,6 +1618,15 @@ msgid "" "different extension packages, which made administering a Python installation " "something of a chore." msgstr "" +"Antes de Python 2.0, la instalación de módulos era un asunto tedioso -- no " +"había forma de averiguar automáticamente dónde se instalaba Python, o qué " +"opciones del compilador se debían usar para los módulos de extensión. Los " +"autores de software tenían que pasar por un arduo ritual de edición de " +"Makefiles y archivos de configuración, que sólo funcionaban realmente en " +"Unix y dejaban sin soporte a Windows y MacOS. Los usuarios de Python se " +"enfrentaban a instrucciones de instalación muy diferentes que variaban entre " +"los distintos paquetes de extensión, lo que hacía que la administración de " +"una instalación de Python fuera una tarea ardua." #: ../Doc/whatsnew/2.0.rst:821 msgid "" @@ -1045,6 +1643,19 @@ msgid "" "separating the build from the install, building or installing in non-default " "directories, and more." msgstr "" +"El SIG de utilidades de distribución, liderado por Greg Ward, ha creado las " +"Distutils, un sistema para facilitar la instalación de paquetes. Forman el " +"paquete :mod:`distutils`, una nueva parte de la biblioteca estándar de " +"Python. En el mejor de los casos, la instalación de un módulo de Python " +"desde el código fuente requerirá los mismos pasos: primero simplemente hay " +"que desempaquetar el archivo tar o zip, y ejecutar \"``python setup.py " +"install``. La plataforma será detectada automáticamente, el compilador será " +"reconocido, los módulos de extensión C serán compilados, y la distribución " +"será instalada en el directorio apropiado. Los argumentos opcionales de la " +"línea de comandos proporcionan más control sobre el proceso de instalación, " +"el paquete distutils ofrece muchos lugares para anular los valores " +"predeterminados - separando la construcción de la instalación, construyendo " +"o instalando en directorios no predeterminados, y más." #: ../Doc/whatsnew/2.0.rst:833 msgid "" @@ -1052,18 +1663,25 @@ msgid "" "For the simple case, when the software contains only .py files, a minimal :" "file:`setup.py` can be just a few lines long::" msgstr "" +"Para usar las Distutils, necesitas escribir un script :file:`setup.py`. Para " +"el caso simple, cuando el software contiene sólo archivos .py, un :file:" +"`setup.py` mínimo puede tener sólo unas pocas líneas::" #: ../Doc/whatsnew/2.0.rst:841 msgid "" "The :file:`setup.py` file isn't much more complicated if the software " "consists of a few packages::" msgstr "" +"El archivo :file:`setup.py` no es mucho más complicado si el software consta " +"de unos pocos paquetes::" #: ../Doc/whatsnew/2.0.rst:848 msgid "" "A C extension can be the most complicated case; here's an example taken from " "the PyXML package::" msgstr "" +"Una extensión en C puede ser el caso más complicado; he aquí un ejemplo " +"tomado del paquete PyXML::" #: ../Doc/whatsnew/2.0.rst:864 msgid "" @@ -1076,16 +1694,26 @@ msgid "" "distribution formats such as Debian packages and Solaris :file:`.pkg` files " "are in various stages of development." msgstr "" +"Las Distutils también pueden encargarse de crear distribuciones fuente y " +"binarias. El comando \"sdist\", ejecutado por \"``python setup.py sdist``, " +"construye una distribución fuente como :file:`foo-1.0.tar.gz`. Añadir nuevos " +"comandos no es difícil, ya se han aportado los comandos \"bdist_rpm\" y " +"\"bdist_wininst\" para crear una distribución RPM y un instalador de Windows " +"para el software, respectivamente. Los comandos para crear otros formatos de " +"distribución, como los paquetes de Debian y los archivos :file:`.pkg` de " +"Solaris, se encuentran en diversas etapas de desarrollo." #: ../Doc/whatsnew/2.0.rst:873 msgid "" "All this is documented in a new manual, *Distributing Python Modules*, that " "joins the basic set of Python documentation." msgstr "" +"Todo esto está documentado en un nuevo manual, *Distribución de módulos de " +"Python*, que se une al conjunto básico de documentación de Python." #: ../Doc/whatsnew/2.0.rst:880 msgid "XML Modules" -msgstr "" +msgstr "Módulos XML" #: ../Doc/whatsnew/2.0.rst:882 msgid "" @@ -1101,10 +1729,22 @@ msgid "" "documentation or the source code for complete details. The Python XML SIG is " "also working on improved documentation." msgstr "" +"La versión 1.5.2 de Python incluía un sencillo analizador XML en forma de " +"módulo :mod:`xmllib`, aportado por Sjoerd Mullender. Desde el lanzamiento de " +"la versión 1.5.2, se han generalizado dos interfaces diferentes para el " +"procesamiento de XML: SAX2 (versión 2 de la API Simple para XML) proporciona " +"una interfaz basada en eventos con algunas similitudes con :mod:`xmllib`, y " +"el DOM (Modelo de Objetos de Documento) proporciona una interfaz basada en " +"un árbol, transformando un documento XML en un árbol de nodos que puede ser " +"atravesado y modificado. Python 2.0 incluye una interfaz SAX2 y una interfaz " +"DOM reducida como parte del paquete :mod:`xml`. Aquí daremos una breve " +"descripción de estas nuevas interfaces; consulte la documentación de Python " +"o el código fuente para obtener detalles completos. El SIG XML de Python " +"también está trabajando en la mejora de la documentación." #: ../Doc/whatsnew/2.0.rst:896 msgid "SAX2 Support" -msgstr "" +msgstr "Soporte de SAX2" #: ../Doc/whatsnew/2.0.rst:898 msgid "" @@ -1116,6 +1756,13 @@ msgid "" "by the parser, the :meth:`characters` method is called for every chunk of " "character data, and so forth." msgstr "" +"SAX define una interfaz basada en eventos para analizar XML. Para usar SAX, " +"debes escribir una clase manejadora de SAX. Las clases manejadoras heredan " +"de varias clases proporcionadas por SAX, y sobrescriben varios métodos que " +"luego serán llamados por el analizador XML. Por ejemplo, los métodos :meth:" +"`startElement` y :meth:`endElement` son llamados para cada etiqueta inicial " +"y final encontrada por el analizador, el método :meth:`characters` es " +"llamado para cada trozo de datos de caracteres, etc." #: ../Doc/whatsnew/2.0.rst:906 msgid "" @@ -1125,6 +1772,11 @@ msgid "" "class can get very complicated if you're trying to modify the document " "structure in some elaborate way." msgstr "" +"La ventaja del enfoque basado en eventos es que todo el documento no tiene " +"que residir en la memoria en un momento dado, lo cual es importante si estás " +"procesando documentos realmente enormes. Sin embargo, escribir la clase " +"manejadora de SAX puede ser muy complicado si se intenta modificar la " +"estructura del documento de alguna manera elaborada." #: ../Doc/whatsnew/2.0.rst:912 msgid "" @@ -1132,16 +1784,21 @@ msgid "" "message for every starting and ending tag, and then parses the file :file:" "`hamlet.xml` using it::" msgstr "" +"Por ejemplo, este pequeño programa de ejemplo define un manejador que " +"imprime un mensaje para cada etiqueta inicial y final, y luego analiza el " +"archivo :file:`hamlet.xml` usándolo::" #: ../Doc/whatsnew/2.0.rst:935 msgid "" "For more information, consult the Python documentation, or the XML HOWTO at " "http://pyxml.sourceforge.net/topics/howto/xml-howto.html." msgstr "" +"Para más información, consulte la documentación de Python o el XML HOWTO en " +"http://pyxml.sourceforge.net/topics/howto/xml-howto.html." #: ../Doc/whatsnew/2.0.rst:940 msgid "DOM Support" -msgstr "" +msgstr "Soporte DOM" #: ../Doc/whatsnew/2.0.rst:942 msgid "" @@ -1154,6 +1811,15 @@ msgid "" "element and attribute values, insert and delete nodes, and convert the tree " "back into XML." msgstr "" +"El Modelo de Objetos del Documento es una representación basada en un árbol " +"para un documento XML. Una instancia de :class:`Document` de nivel superior " +"es la raíz del árbol, y tiene un único hijo que es la instancia de :class:" +"`Element` de nivel superior. Este :class:`Element` tiene nodos hijos que " +"representan los datos de los caracteres y cualquier subelemento, que puede " +"tener otros hijos propios, y así sucesivamente. Utilizando el DOM puedes " +"recorrer el árbol resultante como quieras, acceder a los valores de los " +"elementos y atributos, insertar y eliminar nodos y volver a convertir el " +"árbol en XML." #: ../Doc/whatsnew/2.0.rst:950 msgid "" @@ -1164,6 +1830,12 @@ msgid "" "producing XML output than simply writing ````...\\ ```` to a " "file." msgstr "" +"El DOM es útil para modificar documentos XML, porque se puede crear un árbol " +"DOM, modificarlo añadiendo nuevos nodos o reordenando subárboles, y luego " +"producir un nuevo documento XML como salida. También se puede construir un " +"árbol DOM manualmente y convertirlo en XML, lo que puede ser una forma más " +"flexible de producir una salida XML que simplemente escribir ````...\\ " +"```` un archivo." #: ../Doc/whatsnew/2.0.rst:956 msgid "" @@ -1172,6 +1844,10 @@ msgid "" "support for XML namespaces. The :func:`parse` and :func:`parseString` " "convenience functions are provided for generating a DOM tree::" msgstr "" +"La implementación del DOM incluida en Python se encuentra en el módulo :mod:" +"`xml.dom.minidom`. Es una implementación ligera del DOM de nivel 1 con " +"soporte para espacios de nombres XML. Las funciones :func:`parse` y :func:" +"`parseString` se proporcionan para generar un árbol DOM::" #: ../Doc/whatsnew/2.0.rst:964 msgid "" @@ -1184,10 +1860,20 @@ msgid "" "class:`Document` instances have a method to find all child elements with a " "given tag name. Continuing from the previous 2-line example::" msgstr "" +"``doc`` es una instancia de :class:`Document`. El :class:`Document`, al " +"igual que el resto de clases del DOM como el :class:`Element` y el :class:" +"`Text`, es una subclase de la clase base :class:`Node`. Por lo tanto, todos " +"los nodos de un árbol DOM soportan ciertos métodos comunes, como :meth:" +"`toxml` que retorna una cadena que contiene la representación XML del nodo y " +"sus hijos. Cada clase también tiene métodos especiales propios; por ejemplo, " +"las instancias :class:`Element` y :class:`Document` tienen un método para " +"encontrar todos los elementos hijos con un nombre de etiqueta dado. " +"Continuando con el ejemplo anterior de 2 líneas::" #: ../Doc/whatsnew/2.0.rst:977 msgid "For the *Hamlet* XML file, the above few lines output::" msgstr "" +"Para el archivo XML *Hamlet*, las líneas anteriores dan como resultado::" #: ../Doc/whatsnew/2.0.rst:982 msgid "" @@ -1195,16 +1881,21 @@ msgid "" "and its children can be easily modified by deleting, adding, or removing " "nodes::" msgstr "" +"El elemento raíz del documento está disponible como ``doc.documentElement``, " +"y sus hijos pueden modificarse fácilmente borrando, añadiendo o eliminando " +"nodos::" #: ../Doc/whatsnew/2.0.rst:997 msgid "" "Again, I will refer you to the Python documentation for a complete listing " "of the different :class:`Node` classes and their various methods." msgstr "" +"Una vez más, te remito a la documentación de Python para obtener una lista " +"completa de las diferentes clases :class:`Node` y sus diversos métodos." #: ../Doc/whatsnew/2.0.rst:1002 msgid "Relationship to PyXML" -msgstr "" +msgstr "Relación con PyXML" #: ../Doc/whatsnew/2.0.rst:1004 msgid "" @@ -1215,6 +1906,12 @@ msgid "" "written programs that used PyXML, you're probably wondering about its " "compatibility with the 2.0 :mod:`xml` package." msgstr "" +"El Grupo de Interés Especial XML lleva un tiempo trabajando en código Python " +"relacionado con XML. Su distribución de código, llamada PyXML, está " +"disponible en las páginas web del SIG en https://www.python.org/community/" +"sigs/current/xml-sig. La distribución de PyXML también utiliza el nombre de " +"paquete ``xml``. Si has escrito programas que utilizan PyXML, probablemente " +"te preguntes sobre su compatibilidad con el paquete 2.0 :mod:`xml`." #: ../Doc/whatsnew/2.0.rst:1010 msgid "" @@ -1227,22 +1924,32 @@ msgid "" "a strict superset of the standard package, adding a bunch of additional " "features. Some of the additional features in PyXML include:" msgstr "" +"La respuesta es que el paquete :mod:`xml` de Python 2.0 no es compatible con " +"PyXML, pero puede hacerse compatible instalando una versión reciente de " +"PyXML. Muchas aplicaciones pueden arreglárselas con el soporte XML que se " +"incluye en Python 2.0, pero las aplicaciones más complicadas requerirán que " +"se instale el paquete PyXML completo. Cuando se instala, las versiones 0.6.0 " +"o superiores de PyXML sustituyen al paquete :mod:`xml` que se entrega con " +"Python, y son un estricto superconjunto del paquete estándar, añadiendo un " +"montón de características adicionales. Algunas de las características " +"adicionales de PyXML incluyen:" #: ../Doc/whatsnew/2.0.rst:1019 msgid "4DOM, a full DOM implementation from FourThought, Inc." -msgstr "" +msgstr "4DOM, una implementación completa de DOM de FourThought, Inc." #: ../Doc/whatsnew/2.0.rst:1021 msgid "The xmlproc validating parser, written by Lars Marius Garshol." -msgstr "" +msgstr "El parser de validación xmlproc, escrito por Lars Marius Garshol." #: ../Doc/whatsnew/2.0.rst:1023 msgid "The :mod:`sgmlop` parser accelerator module, written by Fredrik Lundh." msgstr "" +"El módulo acelerador del parser :mod:`sgmlop`, escrito por Fredrik Lundh." #: ../Doc/whatsnew/2.0.rst:1029 msgid "Module changes" -msgstr "" +msgstr "Cambios en los módulos" #: ../Doc/whatsnew/2.0.rst:1031 msgid "" @@ -1253,6 +1960,12 @@ msgid "" "and :mod:`nntplib`. Consult the CVS logs for the exact patch-by-patch " "details." msgstr "" +"Se han realizado muchas mejoras y correcciones de errores en la extensa " +"biblioteca estándar de Python; algunos de los módulos afectados son :mod:" +"`readline`, :mod:`ConfigParser`, :mod:`cgi`, :mod:`calendar`, :mod:`posix`, :" +"mod:`readline`, :mod:`xmllib`, :mod:`aifc`, :mod:`chunk, wave`, :mod:" +"`random`, :mod:`shelve`, y :mod:`nntplib`. Consulte los registros de CVS " +"para conocer los detalles exactos parche por parche." #: ../Doc/whatsnew/2.0.rst:1037 msgid "" @@ -1265,6 +1978,14 @@ msgid "" "mod:`urllib` modules were also changed to support ``https://`` URLs, though " "no one has implemented FTP or SMTP over SSL." msgstr "" +"Brian Gallew ha contribuido al soporte de OpenSSL para el módulo :mod:" +"`socket`. OpenSSL es una implementación de Secure Socket Layer, que encripta " +"los datos que se envían a través de un socket. Al compilar Python, puedes " +"editar :file:`Modules/Setup` para incluir el soporte de SSL, que añade una " +"función adicional al módulo :mod:`socket`: ``socket.ssl(socket, keyfile, " +"certfile)``, que toma un objeto socket y retorna un socket SSL. Los módulos :" +"mod:`httplib` y :mod:`urllib` también han sido modificados para soportar " +"URLs ``https://``, aunque nadie ha implementado FTP o SMTP sobre SSL." #: ../Doc/whatsnew/2.0.rst:1046 msgid "" @@ -1273,6 +1994,11 @@ msgid "" "provided, though using HTTP/1.1 features such as pipelining will require " "rewriting code to use a different set of interfaces." msgstr "" +"El módulo :mod:`httplib` ha sido reescrito por Greg Stein para soportar " +"HTTP/1.1. Se proporciona compatibilidad con la versión 1.5 de :mod:" +"`httplib`, aunque el uso de las características de HTTP/1.1, como el " +"pipelining, requerirá reescribir el código para utilizar un conjunto " +"diferente de interfaces." #: ../Doc/whatsnew/2.0.rst:1051 msgid "" @@ -1282,6 +2008,12 @@ msgid "" "contributed an optimization which makes operations like ``create_line`` and " "``create_polygon`` much faster, especially when using lots of coordinates." msgstr "" +"El módulo :mod:`Tkinter` soporta ahora la versión 8.1, 8.2 o 8.3 de Tcl/Tk, " +"y se ha eliminado el soporte para las versiones 7.x más antiguas. El módulo " +"Tkinter ahora soporta la visualización de cadenas Unicode en los widgets Tk. " +"Además, Fredrik Lundh ha contribuido con una optimización que hace que " +"operaciones como ``create_line`` y ``create_polygon`` sean mucho más " +"rápidas, especialmente cuando se utilizan muchas coordenadas." #: ../Doc/whatsnew/2.0.rst:1057 msgid "" @@ -1292,6 +2024,13 @@ msgid "" "operating systems that only have BSD curses, but there don't seem to be any " "currently maintained OSes that fall into this category." msgstr "" +"El módulo :mod:`curses` ha sido ampliado en gran medida, a partir de la " +"versión mejorada de Oliver Andrich, para proporcionar muchas funciones " +"adicionales de los curses ncurses y SYSV, como el color, el soporte de " +"conjuntos de caracteres alternativos, los pads y el soporte de ratón. Esto " +"significa que el módulo ya no es compatible con los sistemas operativos que " +"sólo tienen curses BSD, pero no parece haber ningún sistema operativo " +"actualmente mantenido que caiga en esta categoría." #: ../Doc/whatsnew/2.0.rst:1064 msgid "" @@ -1301,10 +2040,16 @@ msgid "" "by Fredrik Lundh and partially funded by Hewlett Packard, supports matching " "against both 8-bit strings and Unicode strings." msgstr "" +"Como se mencionó en la discusión anterior sobre el soporte Unicode de la " +"2.0, la implementación subyacente de las expresiones regulares " +"proporcionadas por el módulo :mod:`re` ha sido cambiada. SRE, un nuevo motor " +"de expresiones regulares escrito por Fredrik Lundh y parcialmente financiado " +"por Hewlett Packard, soporta la comparación con cadenas de 8 bits y cadenas " +"Unicode." #: ../Doc/whatsnew/2.0.rst:1074 msgid "New modules" -msgstr "" +msgstr "Nuevos módulos" #: ../Doc/whatsnew/2.0.rst:1076 msgid "" @@ -1312,6 +2057,9 @@ msgid "" "descriptions; consult the 2.0 documentation for the details of a particular " "module." msgstr "" +"Se han añadido varios módulos nuevos. Nos limitaremos a enumerarlos con " +"breves descripciones; consulte la documentación de la versión 2.0 para " +"conocer los detalles de un módulo concreto." #: ../Doc/whatsnew/2.0.rst:1080 msgid "" @@ -1321,12 +2069,19 @@ msgid "" "and calling :func:`atexit.register` with the function to be called on exit. " "(Contributed by Skip Montanaro.)" msgstr "" +":mod:`atexit`: Para registrar las funciones que serán llamadas antes de que " +"el intérprete de Python salga. El código que actualmente establece ``sys." +"exitfunc`` directamente debe cambiarse para usar el módulo :mod:`atexit` en " +"su lugar, importando :mod:`atexit` y llamando a :func:`atexit.register` con " +"la función a llamar al salir. (Contribución de Skip Montanaro)" #: ../Doc/whatsnew/2.0.rst:1086 msgid "" ":mod:`codecs`, :mod:`encodings`, :mod:`unicodedata`: Added as part of the " "new Unicode support." msgstr "" +":mod:`codecs`, :mod:`encodings`, :mod:`unicodedata`: Añadidos como parte " +"del nuevo soporte de Unicode." #: ../Doc/whatsnew/2.0.rst:1089 msgid "" @@ -1334,6 +2089,9 @@ msgid "" "`dircmp` modules, which have now become deprecated. (Contributed by Gordon " "MacMillan and Moshe Zadka.)" msgstr "" +":mod:`filecmp`: Sustituye a los antiguos módulos :mod:`cmp`, :mod:`cmpcache` " +"y :mod:`dircmp`, que han quedado obsoletos. (Contribución de Gordon " +"MacMillan y Moshe Zadka)" #: ../Doc/whatsnew/2.0.rst:1093 msgid "" @@ -1343,6 +2101,11 @@ msgid "" "separate contributions by Martin von Löwis, Peter Funk, and James " "Henstridge.)" msgstr "" +":mod:`gettext`: Este módulo proporciona soporte de internacionalización " +"(I18N) y localización (L10N) para los programas de Python, proporcionando " +"una interfaz a la biblioteca de catálogo de mensajes GNU gettext. (Integrado " +"por Barry Warsaw, a partir de contribuciones separadas de Martin von Löwis, " +"Peter Funk y James Henstridge)" #: ../Doc/whatsnew/2.0.rst:1098 msgid "" @@ -1350,6 +2113,9 @@ msgid "" "twin to the existing :mod:`sunaudiodev` module. (Contributed by Peter Bosch, " "with fixes by Jeremy Hylton.)" msgstr "" +":mod:`linuxaudiodev`: Soporte para el dispositivo :file:`/dev/audio` en " +"Linux, un gemelo del módulo existente :mod:`sunaudiodev`. (Contribuido por " +"Peter Bosch, con correcciones de Jeremy Hylton)" #: ../Doc/whatsnew/2.0.rst:1102 msgid "" @@ -1360,12 +2126,20 @@ msgid "" "the :mod:`re` module. (Contributed by Sam Rushing, with some extensions by A." "M. Kuchling.)" msgstr "" +":mod:`mmap`: Una interfaz para archivos mapeados en memoria tanto en Windows " +"como en Unix. El contenido de un fichero puede ser mapeado directamente en " +"memoria, en cuyo momento se comporta como una cadena mutable, por lo que su " +"contenido puede ser leído y modificado. Incluso pueden pasarse a funciones " +"que esperan cadenas ordinarias, como el módulo :mod:`re`. (Contribución de " +"Sam Rushing, con algunas extensiones de A.M. Kuchling)" #: ../Doc/whatsnew/2.0.rst:1108 msgid "" ":mod:`pyexpat`: An interface to the Expat XML parser. (Contributed by Paul " "Prescod.)" msgstr "" +":mod:`pyexpat`: Una interfaz para el analizador XML de Expat. (Contribuido " +"por Paul Prescod.)" #: ../Doc/whatsnew/2.0.rst:1111 msgid "" @@ -1375,18 +2149,28 @@ msgid "" "rules from it, and can then answer questions about the fetchability of a " "given URL. (Contributed by Skip Montanaro.)" msgstr "" +":mod:`robotparser`: Analiza un archivo :file:`robots.txt`, que se utiliza " +"para escribir arañas web que evitan amablemente ciertas áreas de un sitio " +"web. El analizador acepta el contenido de un archivo :file:`robots.txt`, " +"construye un conjunto de reglas a partir de él y puede responder a preguntas " +"sobre la capacidad de búsqueda de una URL determinada. (Contribución de Skip " +"Montanaro)" #: ../Doc/whatsnew/2.0.rst:1117 msgid "" ":mod:`tabnanny`: A module/script to check Python source code for ambiguous " "indentation. (Contributed by Tim Peters.)" msgstr "" +":mod:`tabnanny`: Un módulo/script para comprobar el código fuente de Python " +"en busca de sangrías ambiguas. (Contribuido por Tim Peters.)" #: ../Doc/whatsnew/2.0.rst:1120 msgid "" ":mod:`UserString`: A base class useful for deriving objects that behave like " "strings." msgstr "" +":mod:`UserString`: Una clase base útil para derivar objetos que se comportan " +"como cadenas." #: ../Doc/whatsnew/2.0.rst:1123 msgid "" @@ -1399,6 +2183,15 @@ msgid "" "file:`Tools/idle/BrowserControl.py`, and adapted for the standard library by " "Fred.)" msgstr "" +":mod:`webbrowser`: Un módulo que proporciona una forma independiente de la " +"plataforma para lanzar un navegador web en una URL específica. Para cada " +"plataforma, se prueban varios navegadores en un orden específico. El usuario " +"puede modificar el navegador que se lanza estableciendo la variable de " +"entorno *BROWSER*. (Originalmente inspirado por el parche de Eric S. Raymond " +"a :mod:`urllib` que añadía una funcionalidad similar, pero el módulo final " +"proviene de un código originalmente implementado por Fred Drake como :file:" +"`Tools/idle/BrowserControl.py`, y adaptado para la biblioteca estándar por " +"Fred)" #: ../Doc/whatsnew/2.0.rst:1132 msgid "" @@ -1407,6 +2200,11 @@ msgid "" "now been added to the core distribution, and enhanced to support Unicode. :" "mod:`_winreg` was written by Bill Tutt and Mark Hammond." msgstr "" +":mod:`_winreg`: Una interfaz para el registro de Windows. :mod:`_winreg` es " +"una adaptación de las funciones que han formado parte de PythonWin desde " +"1995, pero ahora se ha añadido a la distribución principal, y se ha mejorado " +"para soportar Unicode. :mod:`_winreg` fue escrito por Bill Tutt y Mark " +"Hammond." #: ../Doc/whatsnew/2.0.rst:1137 msgid "" @@ -1415,6 +2213,11 @@ msgid "" "on Unix, not to be confused with :program:`gzip`\\ -format files (which are " "supported by the :mod:`gzip` module) (Contributed by James C. Ahlstrom.)" msgstr "" +":mod:`zipfile`: Un módulo para leer y escribir archivos con formato ZIP. Se " +"trata de archivos producidos por :program:`PKZIP` en DOS/Windows o :program:" +"`zip` en Unix, que no deben confundirse con los archivos con formato :" +"program:`gzip` (que son compatibles con el módulo :mod:`gzip`) (Contribución " +"de James C. Ahlstrom.)" #: ../Doc/whatsnew/2.0.rst:1142 msgid "" @@ -1423,10 +2226,14 @@ msgid "" "(Implemented by Greg Stein, with much discussion on python-dev along the " "way.)" msgstr "" +":mod:`imputil`: Un módulo que proporciona una forma más sencilla de escribir " +"ganchos de importación personalizados, en comparación con el módulo :mod:" +"`ihooks` existente. (Implementado por Greg Stein, con mucha discusión en " +"python-dev a lo largo del camino)" #: ../Doc/whatsnew/2.0.rst:1150 msgid "IDLE Improvements" -msgstr "" +msgstr "Mejoras en IDLE" #: ../Doc/whatsnew/2.0.rst:1152 msgid "" @@ -1434,58 +2241,76 @@ msgid "" "Python 2.0 includes IDLE 0.6, which adds a number of new features and " "improvements. A partial list:" msgstr "" +"IDLE es el IDE oficial de Python multiplataforma, escrito con Tkinter. " +"Python 2.0 incluye IDLE 0.6, que añade una serie de nuevas características y " +"mejoras. Una lista parcial:" #: ../Doc/whatsnew/2.0.rst:1156 msgid "" "UI improvements and optimizations, especially in the area of syntax " "highlighting and auto-indentation." msgstr "" +"Mejoras y optimizaciones de la interfaz de usuario, especialmente en el área " +"de resaltado de sintaxis y auto-indentación." #: ../Doc/whatsnew/2.0.rst:1159 msgid "" "The class browser now shows more information, such as the top level " "functions in a module." msgstr "" +"El navegador de clases muestra ahora más información, como las funciones de " +"nivel superior de un módulo." #: ../Doc/whatsnew/2.0.rst:1162 msgid "" "Tab width is now a user settable option. When opening an existing Python " "file, IDLE automatically detects the indentation conventions, and adapts." msgstr "" +"El ancho del tabulador es ahora una opción configurable por el usuario. Al " +"abrir un archivo Python existente, IDLE detecta automáticamente las " +"convenciones de sangría y se adapta." #: ../Doc/whatsnew/2.0.rst:1165 msgid "" "There is now support for calling browsers on various platforms, used to open " "the Python documentation in a browser." msgstr "" +"Ahora hay soporte para llamar a los navegadores en varias plataformas, " +"utilizado para abrir la documentación de Python en un navegador." #: ../Doc/whatsnew/2.0.rst:1168 msgid "" "IDLE now has a command line, which is largely similar to the vanilla Python " "interpreter." msgstr "" +"IDLE ahora tiene una línea de comandos, que es en gran medida similar al " +"intérprete de Python vainilla." #: ../Doc/whatsnew/2.0.rst:1171 msgid "Call tips were added in many places." -msgstr "" +msgstr "Se añadieron consejos de llamada en muchos lugares." #: ../Doc/whatsnew/2.0.rst:1173 msgid "IDLE can now be installed as a package." -msgstr "" +msgstr "Ahora IDLE puede instalarse como un paquete." #: ../Doc/whatsnew/2.0.rst:1175 msgid "In the editor window, there is now a line/column bar at the bottom." msgstr "" +"En la ventana del editor, ahora hay una barra de líneas/columnas en la parte " +"inferior." #: ../Doc/whatsnew/2.0.rst:1177 msgid "" "Three new keystroke commands: Check module (:kbd:`Alt-F5`), Import module (:" "kbd:`F5`) and Run script (:kbd:`Ctrl-F5`)." msgstr "" +"Tres nuevos comandos de teclado: Comprobar módulo (:kbd:`Alt-F5`), Importar " +"módulo (:kbd:`F5`) y Ejecutar script (:kbd:`Ctrl-F5`)." #: ../Doc/whatsnew/2.0.rst:1184 msgid "Deleted and Deprecated Modules" -msgstr "" +msgstr "Módulos eliminados y obsoletos" #: ../Doc/whatsnew/2.0.rst:1186 msgid "" @@ -1494,6 +2319,10 @@ msgid "" "it was for a platform-independent windowing toolkit that's no longer " "developed." msgstr "" +"Se han eliminado algunos módulos porque son obsoletos, o porque ahora hay " +"mejores formas de hacer lo mismo. El módulo :mod:`stdwin` ha desaparecido; " +"era para un conjunto de herramientas de ventanas independientes de la " +"plataforma que ya no se desarrolla." #: ../Doc/whatsnew/2.0.rst:1190 msgid "" @@ -1504,10 +2333,17 @@ msgid "" "file:`lib-old`, you can simply add that directory to ``sys.path`` to get " "them back, but you're encouraged to update any code that uses these modules." msgstr "" +"Varios módulos han sido trasladados al subdirectorio :file:`lib-old`: :mod:" +"`cmp`, :mod:`cmpcache`, :mod:`dircmp`, :mod:`dump`, :mod:`find`, :mod:" +"`grep`, :mod:`packmail`, :mod:`poly`, :mod:`util`, :mod:`whatsound`, :mod:" +"`zmod`. Si tiene código que depende de un módulo que ha sido movido a :file:" +"`lib-old`, puede simplemente añadir ese directorio a ``sys.path`` para " +"recuperarlo, pero se recomienda actualizar cualquier código que utilice " +"estos módulos." #: ../Doc/whatsnew/2.0.rst:1199 msgid "Acknowledgements" -msgstr "" +msgstr "Agradecimientos" #: ../Doc/whatsnew/2.0.rst:1201 msgid "" @@ -1517,3 +2353,8 @@ msgid "" "Skip Montanaro, Vladimir Marangozov, Tobias Polzin, Guido van Rossum, Neil " "Schemenauer, and Russ Schmidt." msgstr "" +"Los autores desean agradecer a las siguientes personas sus sugerencias sobre " +"varios borradores de este artículo: David Bolen, Mark Hammond, Gregg Hauser, " +"Jeremy Hylton, Fredrik Lundh, Detlef Lannert, Aahz Maruch, Skip Montanaro, " +"Vladimir Marangozov, Tobias Polzin, Guido van Rossum, Neil Schemenauer y " +"Russ Schmidt."